Open chaosphere2112 opened 8 years ago
Forgot the model header:
double lat(lat) ;
lat:units = "degrees_north" ;
lat:long_name = "latitude" ;
double gw(lat) ;
gw:long_name = "gauss weights" ;
gw:cell_methods = "time: mean" ;
gw:initialized = "yes" ;
double time(time) ;
time:climatology = "time_climo" ;
time:bounds = "time_bnds" ;
time:long_name = "climatological time" ;
time:calendar = "noleap" ;
time:units = "days since 0001-09-01 00:00:00" ;
double ch4vmr(time) ;
ch4vmr:long_name = "ch4 volume mixing ratio" ;
ch4vmr:cell_methods = "time: mean" ;
ch4vmr:initialized = "yes" ;
double lon(lon) ;
lon:units = "degrees_east" ;
lon:long_name = "longitude" ;
float ODV_bcar2(time, lat, lon) ;
ODV_bcar2:_FillValue = 1.e+36f ;
ODV_bcar2:long_name = "bcar2 optical depth in visible band" ;
ODV_bcar2:cell_methods = "time: mean" ;
ODV_bcar2:units = "1" ;
ODV_bcar2:missing_value = 1.e+36f ;
ODV_bcar2:vwgts = "ODV_bcar2_vwgts" ;
ODV_bcar2:initialized = "yes" ;
float FSNTOAC(time, lat, lon) ;
FSNTOAC:Sampling_Sequence = "rad_lwsw" ;
FSNTOAC:long_name = "Clearsky net solar flux at top of atmosphere" ;
FSNTOAC:cell_methods = "time: mean" ;
FSNTOAC:units = "W/m2" ;
FSNTOAC:initialized = "yes" ;
float FLUTC(time, lat, lon) ;
FLUTC:Sampling_Sequence = "rad_lwsw" ;
FLUTC:long_name = "Clearsky upwelling longwave flux at top of model" ;
FLUTC:cell_methods = "time: mean" ;
FLUTC:units = "W/m2" ;
FLUTC:initialized = "yes" ;
float ODV_SSLTC(time, lat, lon) ;
ODV_SSLTC:_FillValue = 1.e+36f ;
ODV_SSLTC:long_name = "SSLTC optical depth in visible band" ;
ODV_SSLTC:cell_methods = "time: mean" ;
ODV_SSLTC:units = "1" ;
ODV_SSLTC:missing_value = 1.e+36f ;
ODV_SSLTC:vwgts = "ODV_SSLTC_vwgts" ;
ODV_SSLTC:initialized = "yes" ;
float ODV_SSLTA(time, lat, lon) ;
ODV_SSLTA:_FillValue = 1.e+36f ;
ODV_SSLTA:long_name = "SSLTA optical depth in visible band" ;
ODV_SSLTA:cell_methods = "time: mean" ;
ODV_SSLTA:units = "1" ;
ODV_SSLTA:missing_value = 1.e+36f ;
ODV_SSLTA:vwgts = "ODV_SSLTA_vwgts" ;
ODV_SSLTA:initialized = "yes" ;
int tbnd(tbnd) ;
double time_bnds(time, tbnd) ;
time_bnds:initialized = "yes" ;
time_bnds:units = "days since 0001-09-01 00:00:00" ;
int nbdate ;
nbdate:long_name = "base date (YYYYMMDD)" ;
nbdate:cell_methods = "time: mean" ;
nbdate:initialized = "yes" ;
int nsteph(time) ;
nsteph:long_name = "current timestep" ;
nsteph:cell_methods = "time: mean" ;
nsteph:initialized = "yes" ;
float TGCLDIWP(time, lat, lon) ;
TGCLDIWP:Sampling_Sequence = "rad_lwsw" ;
TGCLDIWP:long_name = "Total grid-box cloud ice water path" ;
TGCLDIWP:cell_methods = "time: mean" ;
TGCLDIWP:units = "gram/m2" ;
TGCLDIWP:initialized = "yes" ;
float FSNS(time, lat, lon) ;
FSNS:Sampling_Sequence = "rad_lwsw" ;
FSNS:long_name = "Net solar flux at surface" ;
FSNS:cell_methods = "time: mean" ;
FSNS:units = "W/m2" ;
FSNS:initialized = "yes" ;
int ntrm ;
ntrm:long_name = "spectral truncation parameter M" ;
ntrm:cell_methods = "time: mean" ;
ntrm:initialized = "yes" ;
int ntrn ;
ntrn:long_name = "spectral truncation parameter N" ;
ntrn:cell_methods = "time: mean" ;
ntrn:initialized = "yes" ;
int nsbase ;
nsbase:long_name = "seconds of base day" ;
nsbase:cell_methods = "time: mean" ;
nsbase:initialized = "yes" ;
float FSNT(time, lat, lon) ;
FSNT:Sampling_Sequence = "rad_lwsw" ;
FSNT:long_name = "Net solar flux at top of model" ;
FSNT:cell_methods = "time: mean" ;
FSNT:units = "W/m2" ;
FSNT:initialized = "yes" ;
double co2vmr(time) ;
co2vmr:long_name = "co2 volume mixing ratio" ;
co2vmr:cell_methods = "time: mean" ;
co2vmr:initialized = "yes" ;
double lev(lev) ;
lev:units = "level" ;
lev:long_name = "hybrid level at midpoints (1000*(A+B))" ;
lev:standard_name = "atmosphere_hybrid_sigma_pressure_coordinate" ;
lev:formula_terms = "a: hyam b: hybm p0: P0 ps: PS" ;
lev:positive = "down" ;
float CLDLIQ(time, lev, lat, lon) ;
CLDLIQ:long_name = "Grid box averaged cloud liquid amount" ;
CLDLIQ:cell_methods = "time: mean" ;
CLDLIQ:units = "kg/kg" ;
CLDLIQ:initialized = "yes" ;
float DCQ(time, lev, lat, lon) ;
DCQ:long_name = "Q tendency due to moist processes" ;
DCQ:cell_methods = "time: mean" ;
DCQ:units = "kg/kg/s" ;
DCQ:initialized = "yes" ;
float ODV_dust4(time, lat, lon) ;
ODV_dust4:_FillValue = 1.e+36f ;
ODV_dust4:long_name = "dust4 optical depth in visible band" ;
ODV_dust4:cell_methods = "time: mean" ;
ODV_dust4:units = "1" ;
ODV_dust4:missing_value = 1.e+36f ;
ODV_dust4:vwgts = "ODV_dust4_vwgts" ;
ODV_dust4:initialized = "yes" ;
float PRECSC(time, lat, lon) ;
PRECSC:long_name = "Convective snow rate (water equivalent)" ;
PRECSC:cell_methods = "time: mean" ;
PRECSC:units = "m/s" ;
PRECSC:initialized = "yes" ;
float ODV_dust1(time, lat, lon) ;
ODV_dust1:_FillValue = 1.e+36f ;
ODV_dust1:long_name = "dust1 optical depth in visible band" ;
ODV_dust1:cell_methods = "time: mean" ;
ODV_dust1:units = "1" ;
ODV_dust1:missing_value = 1.e+36f ;
ODV_dust1:vwgts = "ODV_dust1_vwgts" ;
ODV_dust1:initialized = "yes" ;
float ODV_dust3(time, lat, lon) ;
ODV_dust3:_FillValue = 1.e+36f ;
ODV_dust3:long_name = "dust3 optical depth in visible band" ;
ODV_dust3:cell_methods = "time: mean" ;
ODV_dust3:units = "1" ;
ODV_dust3:missing_value = 1.e+36f ;
ODV_dust3:vwgts = "ODV_dust3_vwgts" ;
ODV_dust3:initialized = "yes" ;
float ODV_dust2(time, lat, lon) ;
ODV_dust2:_FillValue = 1.e+36f ;
ODV_dust2:long_name = "dust2 optical depth in visible band" ;
ODV_dust2:cell_methods = "time: mean" ;
ODV_dust2:units = "1" ;
ODV_dust2:missing_value = 1.e+36f ;
ODV_dust2:vwgts = "ODV_dust2_vwgts" ;
ODV_dust2:initialized = "yes" ;
float PRECSH(time, lat, lon) ;
PRECSH:long_name = "Shallow Convection precipitation rate" ;
PRECSH:cell_methods = "time: mean" ;
PRECSH:units = "m/s" ;
PRECSH:initialized = "yes" ;
int ndbase ;
ndbase:long_name = "base day" ;
ndbase:cell_methods = "time: mean" ;
ndbase:initialized = "yes" ;
float PRECSL(time, lat, lon) ;
PRECSL:long_name = "Large-scale (stable) snow rate (water equivalent)" ;
PRECSL:cell_methods = "time: mean" ;
PRECSL:units = "m/s" ;
PRECSL:initialized = "yes" ;
double sol_tsi(time) ;
sol_tsi:long_name = "total solar irradiance" ;
sol_tsi:cell_methods = "time: mean" ;
sol_tsi:units = "W/m2" ;
sol_tsi:initialized = "yes" ;
int datesec(time) ;
datesec:long_name = "current seconds of current date" ;
datesec:cell_methods = "time: mean" ;
datesec:initialized = "yes" ;
int wnummax(lat) ;
wnummax:long_name = "cutoff Fourier wavenumber" ;
wnummax:cell_methods = "time: mean" ;
wnummax:initialized = "yes" ;
float ODV_bcar1(time, lat, lon) ;
ODV_bcar1:_FillValue = 1.e+36f ;
ODV_bcar1:long_name = "bcar1 optical depth in visible band" ;
ODV_bcar1:cell_methods = "time: mean" ;
ODV_bcar1:units = "1" ;
ODV_bcar1:missing_value = 1.e+36f ;
ODV_bcar1:vwgts = "ODV_bcar1_vwgts" ;
ODV_bcar1:initialized = "yes" ;
float CLDMED(time, lat, lon) ;
CLDMED:Sampling_Sequence = "rad_lwsw" ;
CLDMED:long_name = "Vertically-integrated mid-level cloud" ;
CLDMED:cell_methods = "time: mean" ;
CLDMED:units = "fraction" ;
CLDMED:initialized = "yes" ;
float FSDS(time, lat, lon) ;
FSDS:Sampling_Sequence = "rad_lwsw" ;
FSDS:long_name = "Downwelling solar flux at surface" ;
FSDS:cell_methods = "time: mean" ;
FSDS:units = "W/m2" ;
FSDS:initialized = "yes" ;
float DTH(time, lev, lat, lon) ;
DTH:long_name = "T horizontal diffusive heating" ;
DTH:cell_methods = "time: mean" ;
DTH:units = "K/s" ;
DTH:initialized = "yes" ;
float FSNTOA(time, lat, lon) ;
FSNTOA:Sampling_Sequence = "rad_lwsw" ;
FSNTOA:long_name = "Net solar flux at top of atmosphere" ;
FSNTOA:cell_methods = "time: mean" ;
FSNTOA:units = "W/m2" ;
FSNTOA:initialized = "yes" ;
float CLDLOW(time, lat, lon) ;
CLDLOW:Sampling_Sequence = "rad_lwsw" ;
CLDLOW:long_name = "Vertically-integrated low cloud" ;
CLDLOW:cell_methods = "time: mean" ;
CLDLOW:units = "fraction" ;
CLDLOW:initialized = "yes" ;
double f11vmr(time) ;
f11vmr:long_name = "f11 volume mixing ratio" ;
f11vmr:cell_methods = "time: mean" ;
f11vmr:initialized = "yes" ;
float SWCF(time, lat, lon) ;
SWCF:Sampling_Sequence = "rad_lwsw" ;
SWCF:long_name = "Shortwave cloud forcing" ;
SWCF:cell_methods = "time: mean" ;
SWCF:units = "W/m2" ;
SWCF:initialized = "yes" ;
float SFCLDICE(time, lat, lon) ;
SFCLDICE:long_name = "CLDICE surface flux" ;
SFCLDICE:cell_methods = "time: mean" ;
SFCLDICE:units = "kg/m2/s" ;
SFCLDICE:initialized = "yes" ;
float DTV(time, lev, lat, lon) ;
DTV:long_name = "T vertical diffusion" ;
DTV:cell_methods = "time: mean" ;
DTV:units = "K/s" ;
DTV:initialized = "yes" ;
int mdt ;
mdt:long_name = "timestep" ;
mdt:cell_methods = "time: mean" ;
mdt:units = "s" ;
mdt:initialized = "yes" ;
float PS(time, lat, lon) ;
PS:long_name = "Surface pressure" ;
PS:cell_methods = "time: mean" ;
PS:units = "Pa" ;
PS:initialized = "yes" ;
float CLDTOT(time, lat, lon) ;
CLDTOT:Sampling_Sequence = "rad_lwsw" ;
CLDTOT:long_name = "Vertically-integrated total cloud" ;
CLDTOT:cell_methods = "time: mean" ;
CLDTOT:units = "fraction" ;
CLDTOT:initialized = "yes" ;
double ilev(ilev) ;
ilev:units = "level" ;
ilev:long_name = "hybrid level at interfaces (1000*(A+B))" ;
ilev:standard_name = "atmosphere_hybrid_sigma_pressure_coordinate" ;
ilev:formula_terms = "a: hyai b: hybi p0: P0 ps: PS" ;
ilev:positive = "down" ;
float CMFMCDZM(time, ilev, lat, lon) ;
CMFMCDZM:long_name = "Convection mass flux from ZM deep" ;
CMFMCDZM:cell_methods = "time: mean" ;
CMFMCDZM:units = "kg/m2/s" ;
CMFMCDZM:initialized = "yes" ;
float FLDSC(time, lat, lon) ;
FLDSC:Sampling_Sequence = "rad_lwsw" ;
FLDSC:long_name = "Clearsky downwelling longwave flux at surface" ;
FLDSC:cell_methods = "time: mean" ;
FLDSC:units = "W/m2" ;
FLDSC:initialized = "yes" ;
double n2ovmr(time) ;
n2ovmr:long_name = "n2o volume mixing ratio" ;
n2ovmr:cell_methods = "time: mean" ;
n2ovmr:initialized = "yes" ;
float TAUX(time, lat, lon) ;
TAUX:long_name = "Zonal surface stress" ;
TAUX:cell_methods = "time: mean" ;
TAUX:units = "N/m2" ;
TAUX:initialized = "yes" ;
float TAUY(time, lat, lon) ;
TAUY:long_name = "Meridional surface stress" ;
TAUY:cell_methods = "time: mean" ;
TAUY:units = "N/m2" ;
TAUY:initialized = "yes" ;
float ICIMR(time, lev, lat, lon) ;
ICIMR:long_name = "Prognostic in-cloud ice mixing ratio" ;
ICIMR:cell_methods = "time: mean" ;
ICIMR:units = "kg/kg" ;
ICIMR:initialized = "yes" ;
float SRFRAD(time, lat, lon) ;
SRFRAD:long_name = "Net radiative flux at surface" ;
SRFRAD:cell_methods = "time: mean" ;
SRFRAD:units = "W/m2" ;
SRFRAD:initialized = "yes" ;
float Z3(time, lev, lat, lon) ;
Z3:long_name = "Geopotential Height (above sea level)" ;
Z3:cell_methods = "time: mean" ;
Z3:units = "m" ;
Z3:initialized = "yes" ;
float TREFMXAV(time, lat, lon) ;
TREFMXAV:long_name = "Average of TREFHT daily maximum" ;
TREFMXAV:cell_methods = "time: mean" ;
TREFMXAV:units = "K" ;
TREFMXAV:initialized = "yes" ;
double P0 ;
P0:long_name = "reference pressure" ;
P0:cell_methods = "time: mean" ;
P0:units = "Pa" ;
P0:initialized = "yes" ;
float SHFLX(time, lat, lon) ;
SHFLX:long_name = "Surface sensible heat flux" ;
SHFLX:cell_methods = "time: mean" ;
SHFLX:units = "W/m2" ;
SHFLX:initialized = "yes" ;
float FLNSC(time, lat, lon) ;
FLNSC:Sampling_Sequence = "rad_lwsw" ;
FLNSC:long_name = "Clearsky net longwave flux at surface" ;
FLNSC:cell_methods = "time: mean" ;
FLNSC:units = "W/m2" ;
FLNSC:initialized = "yes" ;
float FSNSC(time, lat, lon) ;
FSNSC:Sampling_Sequence = "rad_lwsw" ;
FSNSC:long_name = "Clearsky net solar flux at surface" ;
FSNSC:cell_methods = "time: mean" ;
FSNSC:units = "W/m2" ;
FSNSC:initialized = "yes" ;
float RELHUM(time, lev, lat, lon) ;
RELHUM:long_name = "Relative humidity" ;
RELHUM:cell_methods = "time: mean" ;
RELHUM:units = "percent" ;
RELHUM:initialized = "yes" ;
float Q(time, lev, lat, lon) ;
Q:long_name = "Specific humidity" ;
Q:cell_methods = "time: mean" ;
Q:units = "kg/kg" ;
Q:initialized = "yes" ;
float QFLX(time, lat, lon) ;
QFLX:long_name = "Surface water flux" ;
QFLX:cell_methods = "time: mean" ;
QFLX:units = "kg/m2/s" ;
QFLX:initialized = "yes" ;
float PSL(time, lat, lon) ;
PSL:long_name = "Sea level pressure" ;
PSL:cell_methods = "time: mean" ;
PSL:units = "Pa" ;
PSL:initialized = "yes" ;
float UU(time, lev, lat, lon) ;
UU:long_name = "Zonal velocity squared" ;
UU:cell_methods = "time: mean" ;
UU:units = "m2/s2" ;
UU:initialized = "yes" ;
float LANDFRAC(time, lat, lon) ;
LANDFRAC:long_name = "Fraction of sfc area covered by land" ;
LANDFRAC:cell_methods = "time: mean" ;
LANDFRAC:units = "fraction" ;
LANDFRAC:initialized = "yes" ;
float FLNT(time, lat, lon) ;
FLNT:Sampling_Sequence = "rad_lwsw" ;
FLNT:long_name = "Net longwave flux at top of model" ;
FLNT:cell_methods = "time: mean" ;
FLNT:units = "W/m2" ;
FLNT:initialized = "yes" ;
float PRECT(time, lat, lon) ;
PRECT:long_name = "Total (convective and large-scale) precipitation rate (liq + ice)" ;
PRECT:cell_methods = "time: mean" ;
PRECT:units = "m/s" ;
PRECT:initialized = "yes" ;
float TROP_Z(time, lat, lon) ;
TROP_Z:_FillValue = 1.e+36f ;
TROP_Z:long_name = "Tropopause Height" ;
TROP_Z:cell_methods = "time: mean" ;
TROP_Z:units = "m" ;
TROP_Z:missing_value = 1.e+36f ;
TROP_Z:vwgts = "TROP_Z_vwgts" ;
TROP_Z:initialized = "yes" ;
float ICEFRAC(time, lat, lon) ;
ICEFRAC:long_name = "Fraction of sfc area covered by sea-ice" ;
ICEFRAC:cell_methods = "time: mean" ;
ICEFRAC:units = "fraction" ;
ICEFRAC:initialized = "yes" ;
float PRECL(time, lat, lon) ;
PRECL:long_name = "Large-scale (stable) precipitation rate (liq + ice)" ;
PRECL:cell_methods = "time: mean" ;
PRECL:units = "m/s" ;
PRECL:initialized = "yes" ;
float PRECC(time, lat, lon) ;
PRECC:long_name = "Convective precipitation rate (liq + ice)" ;
PRECC:cell_methods = "time: mean" ;
PRECC:units = "m/s" ;
PRECC:initialized = "yes" ;
float VT(time, lev, lat, lon) ;
VT:long_name = "Meridional heat transport" ;
VT:cell_methods = "time: mean" ;
VT:units = "K m/s" ;
VT:initialized = "yes" ;
float FLNTC(time, lat, lon) ;
FLNTC:Sampling_Sequence = "rad_lwsw" ;
FLNTC:long_name = "Clearsky net longwave flux at top of model" ;
FLNTC:cell_methods = "time: mean" ;
FLNTC:units = "W/m2" ;
FLNTC:initialized = "yes" ;
float FREQSH(time, lat, lon) ;
FREQSH:long_name = "Fractional occurance of shallow convection" ;
FREQSH:cell_methods = "time: mean" ;
FREQSH:units = "fraction" ;
FREQSH:initialized = "yes" ;
float TMQ(time, lat, lon) ;
TMQ:long_name = "Total (vertically integrated) precipitatable water" ;
TMQ:cell_methods = "time: mean" ;
TMQ:units = "kg/m2" ;
TMQ:initialized = "yes" ;
float CMFDQR(time, lev, lat, lon) ;
CMFDQR:long_name = "Q tendency - shallow convection rainout" ;
CMFDQR:cell_methods = "time: mean" ;
CMFDQR:units = "kg/kg/s" ;
CMFDQR:initialized = "yes" ;
double hybm(lev) ;
hybm:long_name = "hybrid B coefficient at layer midpoints" ;
hybm:cell_methods = "time: mean" ;
hybm:initialized = "yes" ;
float FREQZM(time, lat, lon) ;
FREQZM:long_name = "Fractional occurance of ZM convection" ;
FREQZM:cell_methods = "time: mean" ;
FREQZM:units = "fraction" ;
FREQZM:initialized = "yes" ;
float LWCF(time, lat, lon) ;
LWCF:Sampling_Sequence = "rad_lwsw" ;
LWCF:long_name = "Longwave cloud forcing" ;
LWCF:cell_methods = "time: mean" ;
LWCF:units = "W/m2" ;
LWCF:initialized = "yes" ;
float FLDS(time, lat, lon) ;
FLDS:Sampling_Sequence = "rad_lwsw" ;
FLDS:long_name = "Downwelling longwave flux at surface" ;
FLDS:cell_methods = "time: mean" ;
FLDS:units = "W/m2" ;
FLDS:initialized = "yes" ;
double hybi(ilev) ;
hybi:long_name = "hybrid B coefficient at layer interfaces" ;
hybi:cell_methods = "time: mean" ;
hybi:initialized = "yes" ;
float CLDICE(time, lev, lat, lon) ;
CLDICE:long_name = "Grid box averaged cloud ice amount" ;
CLDICE:cell_methods = "time: mean" ;
CLDICE:units = "kg/kg" ;
CLDICE:initialized = "yes" ;
float VD01(time, lev, lat, lon) ;
VD01:long_name = "Vertical diffusion of Q" ;
VD01:cell_methods = "time: mean" ;
VD01:units = "kg/kg/s" ;
VD01:initialized = "yes" ;
float QREFHT(time, lat, lon) ;
QREFHT:long_name = "Reference height humidity" ;
QREFHT:cell_methods = "time: mean" ;
QREFHT:units = "kg/kg" ;
QREFHT:initialized = "yes" ;
float U10(time, lat, lon) ;
U10:long_name = "10m wind speed" ;
U10:cell_methods = "time: mean" ;
U10:units = "m/s" ;
U10:initialized = "yes" ;
float AEROD_v(time, lat, lon) ;
AEROD_v:_FillValue = 1.e+36f ;
AEROD_v:long_name = "Total Aerosol Optical Depth in visible band" ;
AEROD_v:cell_methods = "time: mean" ;
AEROD_v:units = "1" ;
AEROD_v:missing_value = 1.e+36f ;
AEROD_v:vwgts = "AEROD_v_vwgts" ;
AEROD_v:initialized = "yes" ;
float SNOWHLND(time, lat, lon) ;
SNOWHLND:long_name = "Water equivalent snow depth" ;
SNOWHLND:cell_methods = "time: mean" ;
SNOWHLND:units = "m" ;
SNOWHLND:initialized = "yes" ;
float TREFMNAV(time, lat, lon) ;
TREFMNAV:long_name = "Average of TREFHT daily minimum" ;
TREFMNAV:cell_methods = "time: mean" ;
TREFMNAV:units = "K" ;
TREFMNAV:initialized = "yes" ;
float TSMX(time, lat, lon) ;
TSMX:long_name = "Maximum surface temperature over output period" ;
TSMX:cell_methods = "time: maximum, time: mean" ;
TSMX:units = "K" ;
TSMX:initialized = "yes" ;
float PHIS(time, lat, lon) ;
PHIS:long_name = "Surface geopotential" ;
PHIS:cell_methods = "time: mean" ;
PHIS:units = "m2/s2" ;
PHIS:initialized = "yes" ;
float FSUTOA(time, lat, lon) ;
FSUTOA:Sampling_Sequence = "rad_lwsw" ;
FSUTOA:long_name = "Upwelling solar flux at top of atmosphere" ;
FSUTOA:cell_methods = "time: mean" ;
FSUTOA:units = "W/m2" ;
FSUTOA:initialized = "yes" ;
float OMEGA(time, lev, lat, lon) ;
OMEGA:long_name = "Vertical velocity (pressure)" ;
OMEGA:cell_methods = "time: mean" ;
OMEGA:units = "Pa/s" ;
OMEGA:initialized = "yes" ;
float FLUT(time, lat, lon) ;
FLUT:Sampling_Sequence = "rad_lwsw" ;
FLUT:long_name = "Upwelling longwave flux at top of model" ;
FLUT:cell_methods = "time: mean" ;
FLUT:units = "W/m2" ;
FLUT:initialized = "yes" ;
float PBLH(time, lat, lon) ;
PBLH:long_name = "PBL height" ;
PBLH:cell_methods = "time: mean" ;
PBLH:units = "m" ;
PBLH:initialized = "yes" ;
float TREFHT(time, lat, lon) ;
TREFHT:long_name = "Reference height temperature" ;
TREFHT:cell_methods = "time: mean" ;
TREFHT:units = "K" ;
TREFHT:initialized = "yes" ;
float FICE(time, lev, lat, lon) ;
FICE:long_name = "Fractional ice content within cloud" ;
FICE:cell_methods = "time: mean" ;
FICE:units = "fraction" ;
FICE:initialized = "yes" ;
float FSDSC(time, lat, lon) ;
FSDSC:Sampling_Sequence = "rad_lwsw" ;
FSDSC:long_name = "Clearsky downwelling solar flux at surface" ;
FSDSC:cell_methods = "time: mean" ;
FSDSC:units = "W/m2" ;
FSDSC:initialized = "yes" ;
float DTCOND(time, lev, lat, lon) ;
DTCOND:long_name = "T tendency - moist processes" ;
DTCOND:cell_methods = "time: mean" ;
DTCOND:units = "K/s" ;
DTCOND:initialized = "yes" ;
float V(time, lev, lat, lon) ;
V:long_name = "Meridional wind" ;
V:cell_methods = "time: mean" ;
V:units = "m/s" ;
V:initialized = "yes" ;
float CONCLD(time, lev, lat, lon) ;
CONCLD:long_name = "Convective cloud cover" ;
CONCLD:cell_methods = "time: mean" ;
CONCLD:units = "fraction" ;
CONCLD:initialized = "yes" ;
int ndcur(time) ;
ndcur:long_name = "current day (from base day)" ;
ndcur:cell_methods = "time: mean" ;
ndcur:initialized = "yes" ;
float ICWMR(time, lev, lat, lon) ;
ICWMR:long_name = "Prognostic in-cloud water mixing ratio" ;
ICWMR:cell_methods = "time: mean" ;
ICWMR:units = "kg/kg" ;
ICWMR:initialized = "yes" ;
int nbsec ;
nbsec:long_name = "seconds of base date" ;
nbsec:cell_methods = "time: mean" ;
nbsec:initialized = "yes" ;
float CLDHGH(time, lat, lon) ;
CLDHGH:Sampling_Sequence = "rad_lwsw" ;
CLDHGH:long_name = "Vertically-integrated high cloud" ;
CLDHGH:cell_methods = "time: mean" ;
CLDHGH:units = "fraction" ;
CLDHGH:initialized = "yes" ;
float ICLDIWP(time, lev, lat, lon) ;
ICLDIWP:Sampling_Sequence = "rad_lwsw" ;
ICLDIWP:long_name = "In-cloud ice water path" ;
ICLDIWP:cell_methods = "time: mean" ;
ICLDIWP:units = "gram/m2" ;
ICLDIWP:initialized = "yes" ;
float SFCLDLIQ(time, lat, lon) ;
SFCLDLIQ:long_name = "CLDLIQ surface flux" ;
SFCLDLIQ:cell_methods = "time: mean" ;
SFCLDLIQ:units = "kg/m2/s" ;
SFCLDLIQ:initialized = "yes" ;
float RHREFHT(time, lat, lon) ;
RHREFHT:long_name = "Reference height relative humidity" ;
RHREFHT:cell_methods = "time: mean" ;
RHREFHT:units = "fraction" ;
RHREFHT:initialized = "yes" ;
float FLNS(time, lat, lon) ;
FLNS:Sampling_Sequence = "rad_lwsw" ;
FLNS:long_name = "Net longwave flux at surface" ;
FLNS:cell_methods = "time: mean" ;
FLNS:units = "W/m2" ;
FLNS:initialized = "yes" ;
float PCONVT(time, lat, lon) ;
PCONVT:long_name = "convection top pressure" ;
PCONVT:cell_methods = "time: mean" ;
PCONVT:units = "Pa" ;
PCONVT:initialized = "yes" ;
float SOLIN(time, lat, lon) ;
SOLIN:Sampling_Sequence = "rad_lwsw" ;
SOLIN:long_name = "Solar insolation" ;
SOLIN:cell_methods = "time: mean" ;
SOLIN:units = "W/m2" ;
SOLIN:initialized = "yes" ;
float ICLDTWP(time, lev, lat, lon) ;
ICLDTWP:Sampling_Sequence = "rad_lwsw" ;
ICLDTWP:long_name = "In-cloud cloud total water path (liquid and ice)" ;
ICLDTWP:cell_methods = "time: mean" ;
ICLDTWP:units = "gram/m2" ;
ICLDTWP:initialized = "yes" ;
float PCONVB(time, lat, lon) ;
PCONVB:long_name = "convection base pressure" ;
PCONVB:cell_methods = "time: mean" ;
PCONVB:units = "Pa" ;
PCONVB:initialized = "yes" ;
float GCLDLWP(time, lev, lat, lon) ;
GCLDLWP:Sampling_Sequence = "rad_lwsw" ;
GCLDLWP:long_name = "Grid-box cloud water path" ;
GCLDLWP:cell_methods = "time: mean" ;
GCLDLWP:units = "gram/m2" ;
GCLDLWP:initialized = "yes" ;
double f12vmr(time) ;
f12vmr:long_name = "f12 volume mixing ratio" ;
f12vmr:cell_methods = "time: mean" ;
f12vmr:initialized = "yes" ;
float FSNTC(time, lat, lon) ;
FSNTC:Sampling_Sequence = "rad_lwsw" ;
FSNTC:long_name = "Clearsky net solar flux at top of model" ;
FSNTC:cell_methods = "time: mean" ;
FSNTC:units = "W/m2" ;
FSNTC:initialized = "yes" ;
float ODV_ocar1(time, lat, lon) ;
ODV_ocar1:_FillValue = 1.e+36f ;
ODV_ocar1:long_name = "ocar1 optical depth in visible band" ;
ODV_ocar1:cell_methods = "time: mean" ;
ODV_ocar1:units = "1" ;
ODV_ocar1:missing_value = 1.e+36f ;
ODV_ocar1:vwgts = "ODV_ocar1_vwgts" ;
ODV_ocar1:initialized = "yes" ;
float ODV_ocar2(time, lat, lon) ;
ODV_ocar2:_FillValue = 1.e+36f ;
ODV_ocar2:long_name = "ocar2 optical depth in visible band" ;
ODV_ocar2:cell_methods = "time: mean" ;
ODV_ocar2:units = "1" ;
ODV_ocar2:missing_value = 1.e+36f ;
ODV_ocar2:vwgts = "ODV_ocar2_vwgts" ;
ODV_ocar2:initialized = "yes" ;
float OCNFRAC(time, lat, lon) ;
OCNFRAC:long_name = "Fraction of sfc area covered by ocean" ;
OCNFRAC:cell_methods = "time: mean" ;
OCNFRAC:units = "fraction" ;
OCNFRAC:initialized = "yes" ;
float QRL(time, lev, lat, lon) ;
QRL:Sampling_Sequence = "rad_lwsw" ;
QRL:long_name = "Longwave heating rate" ;
QRL:cell_methods = "time: mean" ;
QRL:units = "K/s" ;
QRL:initialized = "yes" ;
float TS(time, lat, lon) ;
TS:long_name = "Surface temperature (radiative)" ;
TS:cell_methods = "time: mean" ;
TS:units = "K" ;
TS:initialized = "yes" ;
float QRS(time, lev, lat, lon) ;
QRS:Sampling_Sequence = "rad_lwsw" ;
QRS:long_name = "Solar heating rate" ;
QRS:cell_methods = "time: mean" ;
QRS:units = "K/s" ;
QRS:initialized = "yes" ;
float OMEGAT(time, lev, lat, lon) ;
OMEGAT:long_name = "Vertical heat flux" ;
OMEGAT:cell_methods = "time: mean" ;
OMEGAT:units = "K Pa/s" ;
OMEGAT:initialized = "yes" ;
float TGCLDLWP(time, lat, lon) ;
TGCLDLWP:Sampling_Sequence = "rad_lwsw" ;
TGCLDLWP:long_name = "Total grid-box cloud liquid water path" ;
TGCLDLWP:cell_methods = "time: mean" ;
TGCLDLWP:units = "gram/m2" ;
TGCLDLWP:initialized = "yes" ;
float CLOUD(time, lev, lat, lon) ;
CLOUD:Sampling_Sequence = "rad_lwsw" ;
CLOUD:long_name = "Cloud fraction" ;
CLOUD:cell_methods = "time: mean" ;
CLOUD:units = "fraction" ;
CLOUD:initialized = "yes" ;
float LHFLX(time, lat, lon) ;
LHFLX:long_name = "Surface latent heat flux" ;
LHFLX:cell_methods = "time: mean" ;
LHFLX:units = "W/m2" ;
LHFLX:initialized = "yes" ;
int ntrk ;
ntrk:long_name = "spectral truncation parameter K" ;
ntrk:cell_methods = "time: mean" ;
ntrk:initialized = "yes" ;
float TSMN(time, lat, lon) ;
TSMN:long_name = "Minimum surface temperature over output period" ;
TSMN:cell_methods = "time: minimum, time: mean" ;
TSMN:units = "K" ;
TSMN:initialized = "yes" ;
double hyai(ilev) ;
hyai:long_name = "hybrid A coefficient at layer interfaces" ;
hyai:cell_methods = "time: mean" ;
hyai:initialized = "yes" ;
float PRECCDZM(time, lat, lon) ;
PRECCDZM:long_name = "Convective precipitation rate from ZM deep" ;
PRECCDZM:cell_methods = "time: mean" ;
PRECCDZM:units = "m/s" ;
PRECCDZM:initialized = "yes" ;
float ODV_sulf(time, lat, lon) ;
ODV_sulf:_FillValue = 1.e+36f ;
ODV_sulf:long_name = "sulf optical depth in visible band" ;
ODV_sulf:cell_methods = "time: mean" ;
ODV_sulf:units = "1" ;
ODV_sulf:missing_value = 1.e+36f ;
ODV_sulf:vwgts = "ODV_sulf_vwgts" ;
ODV_sulf:initialized = "yes" ;
double hyam(lev) ;
hyam:long_name = "hybrid A coefficient at layer midpoints" ;
hyam:cell_methods = "time: mean" ;
hyam:initialized = "yes" ;
float TROP_P(time, lat, lon) ;
TROP_P:_FillValue = 1.e+36f ;
TROP_P:long_name = "Tropopause Pressure" ;
TROP_P:cell_methods = "time: mean" ;
TROP_P:units = "Pa" ;
TROP_P:missing_value = 1.e+36f ;
TROP_P:vwgts = "TROP_P_vwgts" ;
TROP_P:initialized = "yes" ;
float VQ(time, lev, lat, lon) ;
VQ:long_name = "Meridional water transport" ;
VQ:cell_methods = "time: mean" ;
VQ:units = "m/skg/kg" ;
VQ:initialized = "yes" ;
float TROP_T(time, lat, lon) ;
TROP_T:_FillValue = 1.e+36f ;
TROP_T:long_name = "Tropopause Temperature" ;
TROP_T:cell_methods = "time: mean" ;
TROP_T:units = "K" ;
TROP_T:missing_value = 1.e+36f ;
TROP_T:vwgts = "TROP_T_vwgts" ;
TROP_T:initialized = "yes" ;
float VU(time, lev, lat, lon) ;
VU:long_name = "Meridional flux of zonal momentum" ;
VU:cell_methods = "time: mean" ;
VU:units = "m2/s2" ;
VU:initialized = "yes" ;
float VV(time, lev, lat, lon) ;
VV:long_name = "Meridional velocity squared" ;
VV:cell_methods = "time: mean" ;
VV:units = "m2/s2" ;
VV:initialized = "yes" ;
int date(time) ;
date:long_name = "current date (YYYYMMDD)" ;
date:cell_methods = "time: mean" ;
date:initialized = "yes" ;
float CMFDQ(time, lev, lat, lon) ;
CMFDQ:long_name = "QV tendency - shallow convection" ;
CMFDQ:cell_methods = "time: mean" ;
CMFDQ:units = "kg/kg/s" ;
CMFDQ:initialized = "yes" ;
float U(time, lev, lat, lon) ;
U:long_name = "Zonal wind" ;
U:cell_methods = "time: mean" ;
U:units = "m/s" ;
U:initialized = "yes" ;
float CMFDT(time, lev, lat, lon) ;
CMFDT:long_name = "T tendency - shallow convection" ;
CMFDT:cell_methods = "time: mean" ;
CMFDT:units = "K/s" ;
CMFDT:initialized = "yes" ;
float FSDTOA(time, lat, lon) ;
FSDTOA:Sampling_Sequence = "rad_lwsw" ;
FSDTOA:long_name = "Downwelling solar flux at top of atmosphere" ;
FSDTOA:cell_methods = "time: mean" ;
FSDTOA:units = "W/m2" ;
FSDTOA:initialized = "yes" ;
float SNOWHICE(time, lat, lon) ;
SNOWHICE:long_name = "Water equivalent snow depth" ;
SNOWHICE:cell_methods = "time: mean" ;
SNOWHICE:units = "m" ;
SNOWHICE:initialized = "yes" ;
int nscur(time) ;
nscur:long_name = "current seconds of current day" ;
nscur:cell_methods = "time: mean" ;
nscur:initialized = "yes" ;
float QC(time, lev, lat, lon) ;
QC:long_name = "Q tendency - shallow convection LW export" ;
QC:cell_methods = "time: mean" ;
QC:units = "kg/kg/s" ;
QC:initialized = "yes" ;
float CMFMC(time, ilev, lat, lon) ;
CMFMC:long_name = "Moist shallow convection mass flux" ;
CMFMC:cell_methods = "time: mean" ;
CMFMC:units = "kg/m2/s" ;
CMFMC:initialized = "yes" ;
int nlon(lat) ;
nlon:long_name = "number of longitudes" ;
nlon:cell_methods = "time: mean" ;
nlon:initialized = "yes" ;
float T(time, lev, lat, lon) ;
T:long_name = "Temperature" ;
T:cell_methods = "time: mean" ;
T:units = "K" ;
T:initialized = "yes" ;
double time_climo(time, tbnd) ;
time_climo:initialized = "yes" ;
time_climo:units = "days since 0001-09-01 00:00:00" ;
double time_weights(time) ;
time_weights:initialized = "yes" ;
double ODV_bcar2_vwgts(time, lat, lon) ;
double ODV_SSLTC_vwgts(time, lat, lon) ;
double ODV_SSLTA_vwgts(time, lat, lon) ;
double ODV_dust4_vwgts(time, lat, lon) ;
double ODV_dust1_vwgts(time, lat, lon) ;
double ODV_dust3_vwgts(time, lat, lon) ;
double ODV_dust2_vwgts(time, lat, lon) ;
double ODV_bcar1_vwgts(time, lat, lon) ;
double AEROD_v_vwgts(time, lat, lon) ;
double ODV_ocar1_vwgts(time, lat, lon) ;
double ODV_ocar2_vwgts(time, lat, lon) ;
double ODV_sulf_vwgts(time, lat, lon) ;
double TROP_Z_vwgts(time, lat, lon) ;
double TROP_P_vwgts(time, lat, lon) ;
double TROP_T_vwgts(time, lat, lon) ;
Obviously, all but one of these are cases where a variable is requested but is not available directly in ACME output. Sampling them, I see some cases where the variable is a masked variant of one we have and some for which we have nothing close that I know of, so there may be an involved calculation. I don't see any which look like a simple variable renaming would handle it.
The one exception is where the LHFLX units in the ECMWF obs files have a bunch of garbage characters. We could bypass this with a few lines of code to handle this as a special case.
Obviously, all but one of these are cases where a variable is requested but is not available directly in ACME output. Sampling them, I see some cases where the variable is a masked variant of one we have and some for which we have nothing close that I know of, so there may be an involved calculation. I don't see any which look like a simple variable renaming would handle it.
I've looked more carefully at four of them. Two were quick & easy and are already done (less than an hour for both of them). One requires data which is in CESM/CAM output, but not in the ACME output I'm looking at. Maybe there's an alternative, or maybe ACME just has to be enhanced to write out another variable. The fourth requires data which is in neither my sample CAM output nor my sample ACME output. Possibly it would be possible for the user to request it. NCAR's AMWG checks for a variable of the given name, and gives up if it's not there. We already do that much.
Thus, for the 4 variables, we now do all of them as well as AMWG would on the same data, but that's probably not good enough.
For whoever wants a time estimate based on this sample: half of the variables almost always, less than a week. All of the variables all of the time, never if it's just us, a month if it's top priority for ACME developers.
I'm finished now with most of the variables, not all. I'll be issuing a pull request tomorrow. Here are comments on everything on the list: ALBEDO done. ALBEDOC done. EP done. LHFLX done. This case hints at what we can expect in the future. The exception came from a user-supplied diagnostic, among the first of many we hope to see in the future. But the exception is not at all his fault. ECMWF has garbage strings in the units attribute of some data. The code had workarounds to handle similar garbage, but had missed this one. I added a special case for ECMWF. TTRP done. I'm unimpressed by the AMWG algorithm, but Jerry Potter says it's ok, so I did it the same way. SST done. However, the HadISST obs are bad. In the HadISST series, time has no units. In the HadISST_?? series, the main variable SST has no units (there is no time). It's not possible for an automated program to reliably guess the units when they are not supplied. We might be able to special-case it, but we shouldn't. Instead, the HadISST obs files should be abandoned, and a new file set made which has the same data with correct attributes. LWCFSRF done. MEANPTOP, MEANTAU, MEANTTOP, TCLDAREA "done." My ACME test data, and apparently Chris's, does not contain these variables. I doubt if they contain enough data to compute these variables either, but I would be delighted if someone could show that it's possible. Possibly ACME would have options to write more cloud data, in which case we would see these variables in its output files and everything would work. Anyway, I marked this as "done" because if one of these variables is in its input data files, then our diagnostics will plot it. That's all AMWG does too. SWCFSRF done. PRECT_LAND done. PRECIP with obs WILLMOTT looks like an erroneous request. There is no such variable in WILLMOTT data. ACME output includes several precipitation variables, and we now compute PRECT and PRECT_LAND from them as well. If this request is correct, maybe someone can tell me what PRECIP is. Then I could put it in. For example that would be almost trivial to do if PRECIP is a mistyped PRECIP_LAND; WILLMOTT has that one.
@painter1
Looking at some AMWG output, PRECIP with Willmott & Matsura should be PRECIP_LAND; they describe PRECIP as "Cumulative precipitation (land)".
I'll fix it so it has the correct request.
PRECIP_LAND is done. I also did PRECIP, which is different. So I've made a pull request, #230, and will soon close this issue.
The only missing variables left are the cloud variables which, as I wrote before, seem to be more of an ACME issue than a diagnostics issue. And the atrocious HadISST* obs files should to be fixed, but they also aren't a metrics/diagnostics issue.
:+1: Awesome, thanks Jeff!
Mega issue for Plotset 5 Failures from Metadiags
These were run with a fresh uvcmetrics install via
conda create -n uvcmetrics_clean -c uvcdat uvcmetrics
. I ran on my laptop using obs and climate_output2 copied from /space1 on aims4.This is the command I used, minus paths:
The table below is every diagnostic that failed to run, along with the relevant lines from stderr. Further below is a table listing the available variables in each of the listed obs sets, and the available ones in the model output. Interesting tidbits that may be relevant:
MODIS
obs set inAMWGMaster
is possibly problematic; the filter that shows up in the actual diags commands (f_startswith('MODIS')
) will pick up a few sets of files. In my obs set, there isMODISCOSP
,MODIS
, andMODIS_LAI
(alsomodis_radweighted
, but it's probably case-sensitive? but possibly not on a mac?).CRITICAL:root:Could not find any of the requested variables ['ALBEDO'] among []
CRITICAL:root:Could not find any of the requested variables ['ALBEDOC'] among []
CRITICAL:root:Could not find any of the requested variables ['ALBEDO'] among []
CRITICAL:root:Could not find any of the requested variables ['ALBEDOC'] among []
CRITICAL:root:Could not find any of the requested variables ['EP'] among []
CRITICAL:root:Could not find any of the requested variables ['TTRP'] among []
CRITICAL:root:Could not find any of the requested variables ['SST'] among []
CRITICAL:root:Could not find any of the requested variables ['SST'] among []
CRITICAL:root:Could not find any of the requested variables ['SST'] among []
CRITICAL:root:Could not find any of the requested variables ['LWCFSRF'] among []
CRITICAL:root:Could not find any of the requested variables ['MEANPTOP'] among []
CRITICAL:root:Could not find any of the requested variables ['MEANTAU'] among []
CRITICAL:root:Could not find any of the requested variables ['MEANTTOP'] among []
CRITICAL:root:Could not find any of the requested variables ['SWCFSRF'] among []
CRITICAL:root:Could not find any of the requested variables ['TCLDAREA'] among []
CRITICAL:root:Could not find any of the requested variables ['MEANPTOP'] among []
CRITICAL:root:Could not find any of the requested variables ['MEANTAU'] among []
CRITICAL:root:Could not find any of the requested variables ['MEANTTOP'] among []
CRITICAL:root:Could not find any of the requested variables ['TCLDAREA'] among []
CRITICAL:root:Could not find any of the requested variables ['TTRP'] among []
CRITICAL:root:Could not find any of the requested variables ['PRECT_LAND'] among []
CRITICAL:root:Could not find any of the requested variables ['PRECIP'] among []
Back to top
CERES Variables:
Back to top
CERES2 Variables:
Back to top
ECMWF Variables
Back to top
HadISST Variables
Back to top
HadISST_PD Variables
Back to top
HadISST_PI Variables
Back to top
ISCCP Variables
Back to top
MODIS
Plain ol' MODIS
MODISCOSP
MODIS_LAI
Back to top
NCEP
Back to top
PRECL
Back to top
WILLMOTT