CDAT / uvcmetrics

metrics aka diagnostics for comparing models with observations or each other
BSD 3-Clause "New" or "Revised" License
3 stars 8 forks source link

Plotset 5 Failures #222

Open chaosphere2112 opened 8 years ago

chaosphere2112 commented 8 years ago

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:

metadiags --obs path=/path/to/obs,climos=yes --model path=/path/to/climate_output2,climos=yes --package AMWG --set 5 --outputdir /path/to/outputdirectory

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:

  1. The MODIS obs set in AMWGMaster 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 is MODISCOSP, MODIS, and MODIS_LAI (also modis_radweighted, but it's probably case-sensitive? but possibly not on a mac?).

OBS Set Variable Error Message
CERES ALBEDO CRITICAL:root:Could not find any of the requested variables ['ALBEDO'] among []
CERES ALBEDOC CRITICAL:root:Could not find any of the requested variables ['ALBEDOC'] among []
CERES2 ALBEDO CRITICAL:root:Could not find any of the requested variables ['ALBEDO'] among []
CERES2 ALBEDOC CRITICAL:root:Could not find any of the requested variables ['ALBEDOC'] among []
ECMWF EP CRITICAL:root:Could not find any of the requested variables ['EP'] among []
ECMWF LHFLX Exception
ECMWF TTRP CRITICAL:root:Could not find any of the requested variables ['TTRP'] among []
HadISST SST CRITICAL:root:Could not find any of the requested variables ['SST'] among []
HadISST_PD SST CRITICAL:root:Could not find any of the requested variables ['SST'] among []
HadISST_PI SST CRITICAL:root:Could not find any of the requested variables ['SST'] among []
ISCCP LWCFSRF CRITICAL:root:Could not find any of the requested variables ['LWCFSRF'] among []
ISCCP MEANPTOP CRITICAL:root:Could not find any of the requested variables ['MEANPTOP'] among []
ISCCP MEANTAU CRITICAL:root:Could not find any of the requested variables ['MEANTAU'] among []
ISCCP MEANTTOP CRITICAL:root:Could not find any of the requested variables ['MEANTTOP'] among []
ISCCP SWCFSRF CRITICAL:root:Could not find any of the requested variables ['SWCFSRF'] among []
ISCCP TCLDAREA CRITICAL:root:Could not find any of the requested variables ['TCLDAREA'] among []
MODIS MEANPTOP CRITICAL:root:Could not find any of the requested variables ['MEANPTOP'] among []
MODIS MEANTAU CRITICAL:root:Could not find any of the requested variables ['MEANTAU'] among []
MODIS MEANTTOP CRITICAL:root:Could not find any of the requested variables ['MEANTTOP'] among []
MODIS TCLDAREA CRITICAL:root:Could not find any of the requested variables ['TCLDAREA'] among []
NCEP TTRP CRITICAL:root:Could not find any of the requested variables ['TTRP'] among []
PRECL PRECT_LAND CRITICAL:root:Could not find any of the requested variables ['PRECT_LAND'] among []
WILLMOTT PRECIP CRITICAL:root:Could not find any of the requested variables ['PRECIP'] among []

Back to top

CERES Variables:

    float ALBEDO(time, lat, lon) ;
        ALBEDO:units = "dimensionless" ;
        ALBEDO:long_name = "TOA albedo" ;
        ALBEDO:missing_value = 3.402823e+38f ;
        ALBEDO:_FillValue = 1.e+20f ;
    float ALBEDOC(time, lat, lon) ;
        ALBEDOC:units = "dimensionless" ;
        ALBEDOC:long_name = "TOA clearsky albedo" ;
        ALBEDOC:missing_value = 3.402823e+38f ;
        ALBEDOC:_FillValue = 1.e+20f ;
    float FLUT(time, lat, lon) ;
        FLUT:_FillValue = 1.e+20f ;
        FLUT:missing_value = 3.402823e+38f ;
        FLUT:long_name = "TOA upward LW flux" ;
        FLUT:units = "W/m^2" ;
    float FLUTC(time, lat, lon) ;
        FLUTC:_FillValue = 1.e+20f ;
        FLUTC:missing_value = 3.402823e+38f ;
        FLUTC:long_name = "TOA clearsky upward LW flux" ;
        FLUTC:units = "W/m^2" ;
    float FSNTOA(time, lat, lon) ;
        FSNTOA:units = "W/m^2" ;
        FSNTOA:long_name = "TOA net SW flux" ;
        FSNTOA:missing_value = 3.402823e+38f ;
        FSNTOA:_FillValue = 1.e+20f ;
    float FSNTOAC(time, lat, lon) ;
        FSNTOAC:units = "W/m^2" ;
        FSNTOAC:long_name = "TOA clearsky net SW flux" ;
        FSNTOAC:missing_value = 3.402823e+38f ;
        FSNTOAC:_FillValue = 1.e+20f ;
    float LWCF(time, lat, lon) ;
        LWCF:units = "W/m^2" ;
        LWCF:long_name = "TOA LW cloud forcing" ;
        LWCF:missing_value = 3.402823e+38f ;
        LWCF:_FillValue = 1.e+20f ;
    float SOLIN(time, lat, lon) ;
        SOLIN:_FillValue = 1.e+20f ;
        SOLIN:missing_value = 3.402823e+38f ;
        SOLIN:long_name = "TOA solar incidence" ;
        SOLIN:units = "W/m^2" ;
    float SOLINC(time, lat, lon) ;
        SOLINC:_FillValue = 1.e+20f ;
        SOLINC:missing_value = 3.402823e+38f ;
        SOLINC:long_name = "TOA clearsky solar incidence" ;
        SOLINC:units = "W/m^2" ;
    float SWCF(time, lat, lon) ;
        SWCF:units = "W/m^2" ;
        SWCF:long_name = "TOA SW cloud forcing" ;
        SWCF:missing_value = 3.402823e+38f ;
        SWCF:_FillValue = 1.e+20f ;
    float TOARAD(time, lat, lon) ;
        TOARAD:units = "W/m^2" ;
        TOARAD:long_name = "TOA net radiative flux" ;
        TOARAD:missing_value = 3.402823e+38f ;
        TOARAD:_FillValue = 1.e+20f ;
    float TOARADC(time, lat, lon) ;
        TOARADC:units = "W/m^2" ;
        TOARADC:long_name = "TOA clearsky net radiative flux" ;
        TOARADC:missing_value = 3.402823e+38f ;
        TOARADC:_FillValue = 1.e+20f ;
    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
    float lon(lon) ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_east" ;
    int time(time) ;
        time:units = "month: 1=Jan, ..., 12=Dec" ;
        time:long_name = "time" ;
    float wgt(lat) ;
        wgt:units = "dimensionless" ;
        wgt:long_name = "normalized cosine weights" ;

Back to top

CERES2 Variables:

    int time(time) ;
        time:units = "months since 1979-1-1" ;
        time:long_name = "climatology time" ;
    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:standard_name = "latitude" ;
        lat:units = "degrees_north" ;
        lat:actual_range = -89.5f, 89.5f ;
    float lon(lon) ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_east" ;
    double gw(lat) ;
        gw:long_name = "latitude weight" ;
    float SOLIN(time, lat, lon) ;
        SOLIN:NASA_variable_name = "swinc" ;
        SOLIN:units = "W m-2" ;
        SOLIN:long_name = "TOA solar incidence" ;
        SOLIN:_FillValue = 1.e+20f ;
    float FLUT(time, lat, lon) ;
        FLUT:NASA_variable_name = "lwup" ;
        FLUT:units = "W m-2" ;
        FLUT:long_name = "TOA upward LW flux" ;
        FLUT:_FillValue = 1.e+20f ;
    float FLUTC(time, lat, lon) ;
        FLUTC:NASA_variable_name = "lwupclr" ;
        FLUTC:units = "W m-2" ;
        FLUTC:long_name = "TOA clearsky upward LW flux" ;
        FLUTC:_FillValue = 1.e+20f ;
    float LWCF(time, lat, lon) ;
        LWCF:NASA_variable_name = "lwcre" ;
        LWCF:units = "W m-2" ;
        LWCF:long_name = "TOA LW cloud forcing" ;
        LWCF:_FillValue = 1.e+20f ;
    float SWCF(time, lat, lon) ;
        SWCF:NASA_variable_name = "swcre" ;
        SWCF:units = "W m-2" ;
        SWCF:long_name = "TOA SW cloud forcing" ;
        SWCF:_FillValue = 1.e+20f ;
    float RESTOA(time, lat, lon) ;
        RESTOA:NASA_variable_name = "net" ;
        RESTOA:units = "W m-2" ;
        RESTOA:long_name = "residual energy at TOA" ;
        RESTOA:_FillValue = 1.e+20f ;
    float FSNTOAC(time, lat, lon) ;
        FSNTOAC:NCAR_derived = "swinc-swupclr" ;
        FSNTOAC:units = "W m-2" ;
        FSNTOAC:long_name = "TOA clearsky net SW flux" ;
        FSNTOAC:_FillValue = 1.e+20f ;
    float FSNTOA(time, lat, lon) ;
        FSNTOA:NCAR_derived = "swinc - swup" ;
        FSNTOA:units = "W m-2" ;
        FSNTOA:long_name = "net solar flux at TOA" ;
        FSNTOA:_FillValue = 1.e+20f ;
    float ALBEDO(time, lat, lon) ;
        ALBEDO:NCAR_derived = "swup/swinc" ;
        ALBEDO:units = "W m-2" ;
        ALBEDO:long_name = "TOA albedo" ;
        ALBEDO:_FillValue = 1.e+20f ;
    float ALBEDOC(time, lat, lon) ;
        ALBEDOC:NCAR_derived = "swupclr/swinc" ;
        ALBEDOC:units = "W m-2" ;
        ALBEDOC:long_name = "TOA clearsky albedo" ;
        ALBEDOC:_FillValue = 1.e+20f ;

Back to top

ECMWF Variables

    float OMEGA(time, lev1, lat, lon) ;
        OMEGA:units = "mb/day" ;
        OMEGA:long_name = "vertical pressure velocity" ;
        OMEGA:_FillValue = -999.f ;
    float ORO(time, lat, lon) ;
        ORO:units = "(0) ocean, (1) land, (2) seaice" ;
        ORO:long_name = "orography from CCM3.11 AMIP" ;
        ORO:_FillValue = -999.f ;
    float PREH2O(time, lat, lon) ;
        PREH2O:missing_value = -999.f ;
        PREH2O:units = "mm" ;
        PREH2O:long_name = "precipitable water" ;
        PREH2O:_FillValue = -999.f ;
    float PS(time, lat, lon) ;
        PS:missing_value = -999.f ;
        PS:units = "millibars" ;
        PS:long_name = "surface pressure" ;
        PS:_FillValue = -999.f ;
    float SHUM(time, lev2, lat, lon) ;
        SHUM:units = "g/kg" ;
        SHUM:long_name = "specific humidity" ;
        SHUM:_FillValue = -999.f ;
    float T(time, lev, lat, lon) ;
        T:units = "K" ;
        T:long_name = "temperature" ;
        T:_FillValue = -999.f ;
    float U(time, lev, lat, lon) ;
        U:units = "m/s" ;
        U:long_name = "zonal wind" ;
        U:_FillValue = -999.f ;
    float V(time, lev, lat, lon) ;
        V:units = "m/s" ;
        V:long_name = "meridional wind" ;
        V:_FillValue = -999.f ;
    float WIND_MAG(time, lat, lon) ;
        WIND_MAG:units = "m/s" ;
        WIND_MAG:long_name = "magnitude of wind at 850 mb" ;
        WIND_MAG:_FillValue = -999.f ;
    float Z3(time, lev, lat, lon) ;
        Z3:units = "m" ;
        Z3:long_name = "geopotential height" ;
        Z3:_FillValue = -999.f ;
    float gw(lat) ;
        gw:long_name = "gaussian weights" ;
        gw:units = "dimension_less" ;
        gw:_FillValue = -999.f ;
    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
        lat:_FillValue = -999.f ;
    float lev(lev) ;
        lev:units = "millibars" ;
        lev:long_name = "pressure levels" ;
        lev:_FillValue = -999.f ;
    float lev1(lev1) ;
        lev1:units = "millibars" ;
        lev1:long_name = "pressure levels" ;
        lev1:_FillValue = -999.f ;
    float lev2(lev2) ;
        lev2:units = "millibars" ;
        lev2:long_name = "pressure levels" ;
        lev2:_FillValue = -999.f ;
    float lon(lon) ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_east" ;
        lon:_FillValue = -999.f ;
    int time(time) ;
        time:units = "months" ;
        time:long_name = "months since Jan 1979" ;
        time:_FillValue = -999 ;
    float EP(time, lat, lon) ;
        EP:source = "ECMWF ERA15 from climate analysis section" ;
        EP:units = "mm/day" ;
        EP:long_name = "evaporation-precipitation" ;
        EP:_FillValue = -999.f ;
    float RELHUM(time, lev2, lat, lon) ;
        RELHUM:_FillValue = -999.f ;
        RELHUM:long_name = "relative humidity" ;
        RELHUM:units = "percent" ;
    float FLDS(time, lat, lon) ;
        FLDS:missing_value = -999.f ;
        FLDS:source = "ERA-15 years 1985-1988" ;
        FLDS:units = "W m^-2" ;
        FLDS:long_name = "LW downwelling surface flux" ;
        FLDS:_FillValue = -999.f ;
    float FSDS(time, lat, lon) ;
        FSDS:missing_value = -999.f ;
        FSDS:source = "ERA-15 years 1985-1988" ;
        FSDS:units = "W m^-2" ;
        FSDS:long_name = "SW downwelling surface flux" ;
        FSDS:_FillValue = -999.f ;
    float QFLX(time, lat, lon) ;
        QFLX:units = "mm/day" ;
        QFLX:long_name = "surface evaporation" ;
        QFLX:source = "ERA-15 monthly climatology 1979-1993" ;
        QFLX:_FillValue = 1.e+36f ;
        QFLX:missing_value = 1.e+36f ;
    float LHFLX(time, lat, lon) ;
        LHFLX:units = "W/m~S~2~N~" ;
        LHFLX:long_name = "surface latent heat flux" ;
        LHFLX:source = "ERA-15 monthly climatology 1979-1993" ;
        LHFLX:_FillValue = 1.e+36f ;
        LHFLX:missing_value = 1.e+36f ;

Back to top

HadISST Variables

    double lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
    double lon(lon) ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_east" ;
    double gw(lat) ;
        gw:long_name = "gauss weights" ;
    float SST(time, lat, lon) ;
        SST:_FillValue = -999.f ;
        SST:long_name = "Sea surface temperature" ;
        SST:units = "C" ;
        SST:comment = "Monthly Mean SST" ;
        SST:source = "HadISST OIv.2 climatology" ;
    int time(time) ;
        time:_FillValue = -999 ;
        time:long_name = "time" ;
    float ICEFRAC(time, lat, lon) ;
        ICEFRAC:_FillValue = -999.f ;
        ICEFRAC:long_name = "Sea surface temperature" ;
        ICEFRAC:units = "C" ;
        ICEFRAC:comment = "Monthly Mean Seaice Concentration" ;
        ICEFRAC:source = "HadISST OIv.2 climatology" ;

Back to top

HadISST_PD Variables

    float SST(lat, lon) ;
        SST:time = 116.5 ;
        SST:_FillValue = 1.e+20f ;
    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
    float lon(lon) ;
        lon:units = "degrees_east" ;
        lon:long_name = "longitude" ;
    float ICEFRAC(lat, lon) ;
        ICEFRAC:time = 116.5 ;
        ICEFRAC:_FillValue = 1.e+20f ;
    float gw(lat) ;
        gw:long_name = "gaussian weights" ;
        gw:units = "none" ;
        gw:info = "NCL: generated via latRegWgt" ;

Back to top

HadISST_PI Variables

    float SST(lat, lon) ;
        SST:time = 116.5 ;
        SST:_FillValue = 1.e+20f ;
    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
    float lon(lon) ;
        lon:units = "degrees_east" ;
        lon:long_name = "longitude" ;
    float ICEFRAC(lat, lon) ;
        ICEFRAC:time = 116.5 ;
        ICEFRAC:_FillValue = 1.e+20f ;
    float gw(lat) ;
        gw:long_name = "gaussian weights" ;
        gw:units = "none" ;
        gw:info = "NCL: generated via latRegWgt" ;

Back to top

ISCCP Variables

    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
    float lon(lon) ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_east" ;
    float gw(lat) ;
        gw:long_name = "gaussian_weights" ;
        gw:units = "dimensionless" ;
    float MEANTAU(time, lat, lon) ;
        MEANTAU:daytime = "d variable: defined for local daytime: undefined at night" ;
        MEANTAU:long_name = "Mean cloud TAU" ;
        MEANTAU:units = "" ;
        MEANTAU:comment = "TAU: Mean cloud optical thickness" ;
        MEANTAU:missing_value = -1000.f ;
        MEANTAU:_FillValue = -1000.f ;
    double time(time) ;
        time:long_name = "time" ;
        time:units = "yyyymmddhh" ;
        time:comment = "hh=99 means monthly mean; in this case, dd will refer to the mid day of month" ;
    float MEANPTOP(time, lat, lon) ;
        MEANPTOP:daytime = "d variable: defined for local daytime: undefined at night" ;
        MEANPTOP:long_name = "Mean cloud pressure" ;
        MEANPTOP:units = "mb" ;
        MEANPTOP:comment = "PC: Mean cloud top pressure" ;
        MEANPTOP:missing_value = -1000.f ;
        MEANPTOP:_FillValue = -1000.f ;
    float MEANTTOP(time, lat, lon) ;
        MEANTTOP:daytime = "d variable: defined for local daytime: undefined at night" ;
        MEANTTOP:long_name = "Mean cloud temperature" ;
        MEANTTOP:units = "K" ;
        MEANTTOP:comment = "TC: Mean cloud top temperature" ;
        MEANTTOP:missing_value = -1000.f ;
        MEANTTOP:_FillValue = -1000.f ;
    float CLDTOT(time, lat, lon) ;
        CLDTOT:missing_value = -1000.f ;
        CLDTOT:comment = "CA: Cloud amount" ;
        CLDTOT:units = "%" ;
        CLDTOT:long_name = "Mean cloud amount" ;
        CLDTOT:lonFlip = "longitude coordinate variable has been reordered via lonFlip" ;
        CLDTOT:_FillValue = -1000.f ;
    float CLDHGH(time, lat, lon) ;
        CLDHGH:long_name = "Mean high cloud amount" ;
        CLDHGH:units = "%" ;
        CLDHGH:comment = "IR cloud type" ;
        CLDHGH:missing_value = -1000.f ;
        CLDHGH:_FillValue = -1000.f ;
    float CLDMED(time, lat, lon) ;
        CLDMED:long_name = "Mean middle cloud amount" ;
        CLDMED:units = "%" ;
        CLDMED:comment = "IR cloud type" ;
        CLDMED:missing_value = -1000.f ;
        CLDMED:_FillValue = -1000.f ;
    float CLDLOW(time, lat, lon) ;
        CLDLOW:long_name = "Mean low cloud amount" ;
        CLDLOW:units = "%" ;
        CLDLOW:comment = "IR cloud type" ;
        CLDLOW:missing_value = -1000.f ;
        CLDLOW:_FillValue = -1000.f ;
    float CLDLOW_VISIR(time, lat, lon) ;
        CLDLOW_VISIR:_FillValue = -1000.f ;
        CLDLOW_VISIR:missing_value = -1000.f ;
        CLDLOW_VISIR:comment = "VIS/IR/NIR LOW cloud type (vis-adjusted TC)" ;
        CLDLOW_VISIR:units = "%" ;
        CLDLOW_VISIR:long_name = "Mean low cloud amount (VIS/IR/NIR)" ;
        CLDLOW_VISIR:daytime = "d variable: defined for local daytime: undefined at night" ;
    float CLDMED_VISIR(time, lat, lon) ;
        CLDMED_VISIR:_FillValue = -1000.f ;
        CLDMED_VISIR:missing_value = -1000.f ;
        CLDMED_VISIR:comment = "VIS/IR/NIR MIDDLE cloud type (VIS-adjusted TC)" ;
        CLDMED_VISIR:units = "%" ;
        CLDMED_VISIR:long_name = "Mean middle cloud amount (VIS/IR/NIR)" ;
        CLDMED_VISIR:daytime = "d variable: defined for local daytime: undefined at night" ;
    float CLDHGH_VISIR(time, lat, lon) ;
        CLDHGH_VISIR:_FillValue = -1000.f ;
        CLDHGH_VISIR:missing_value = -1000.f ;
        CLDHGH_VISIR:comment = "VIS/IR/NIR HIGH cloud type (VIS-adjusted TC)" ;
        CLDHGH_VISIR:units = "%" ;
        CLDHGH_VISIR:long_name = "Mean high cloud amount (VIS/IR/NIR)" ;
        CLDHGH_VISIR:daytime = "d variable: defined for local daytime: undefined at night" ;
    float CLDTOT_VISIR(time, lat, lon) ;
        CLDTOT_VISIR:daytime = "d variable: defined for local daytime: undefined at night" ;
        CLDTOT_VISIR:long_name = "Mean total cloud amount (VIS/IR/NIR)" ;
        CLDTOT_VISIR:units = "%" ;
        CLDTOT_VISIR:comment = "VIS/IR/NIR LOW cloud type (vis-adjusted TC)" ;
        CLDTOT_VISIR:missing_value = -1000.f ;
        CLDTOT_VISIR:_FillValue = -1000.f ;

Back to top

MODIS

Plain ol' MODIS

    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
    float lon(lon) ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_east" ;
    float wgt(lat) ;
        wgt:units = "dimensionless" ;
        wgt:long_name = "normalized cosine weights" ;
    float MEANTTOP(time, lat, lon) ;
        MEANTTOP:missing_value = -9999.f ;
        MEANTTOP:long_name = "Cloud Top Temperature (Day)" ;
        MEANTTOP:units = "K" ;
        MEANTTOP:_FillValue = -9999.f ;
    int time(time) ;
    float MEANPTOP(time, lat, lon) ;
        MEANPTOP:missing_value = -9999.f ;
        MEANPTOP:long_name = "Cloud Top Pressure (Day)" ;
        MEANPTOP:units = "hPa" ;
        MEANPTOP:_FillValue = -9999.f ;
    float MEANTAU(time, lat, lon) ;
        MEANTAU:missing_value = -9999.f ;
        MEANTAU:long_name = "Cloud Optical Thickness (Day)" ;
        MEANTAU:units = "none" ;
        MEANTAU:_FillValue = -9999.f ;
    float TCLDAREA(time, lat, lon) ;
        TCLDAREA:missing_value = -9999.f ;
        TCLDAREA:long_name = "Total Cloud Area (Day)" ;
        TCLDAREA:units = "percent" ;
        TCLDAREA:_FillValue = -9999.f ;
    float PREH2O(time, lat, lon) ;
        PREH2O:missing_value = -9999.f ;
        PREH2O:long_name = "Total Precipitable Water" ;
        PREH2O:units = "mm" ;
        PREH2O:_FillValue = -9999.f ;
    float TGCLDLWP(time, lat, lon) ;
        TGCLDLWP:missing_value = -9999.f ;
        TGCLDLWP:long_name = "Water Path (Liquid)" ;
        TGCLDLWP:units = "g/m^2" ;
        TGCLDLWP:_FillValue = -9999.f ;

MODISCOSP

    double gw(lat) ;
        gw:long_name = "normalized cosine weights" ;
        gw:units = "dimensionless" ;
    float CLMODIS(time, modis_prs, modis_tau, lat, lon) ;
        CLMODIS:missing_value = -999.f ;
        CLMODIS:_FillValue = -999.f ;
        CLMODIS:long_name = "MODIS histogram of cloud occurrence" ;
        CLMODIS:units = "percent" ;
    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:valid_range = -90.f, 90.f ;
        lat:standard_name = "latitude" ;
        lat:axis = "Y" ;
        lat:units = "degrees_north" ;
    float lon(lon) ;
        lon:axis = "X" ;
        lon:long_name = "longitude" ;
        lon:standard_name = "longitude" ;
        lon:units = "degrees_east" ;
        lon:valid_range = -180.f, 180.f ;
    float modis_prs(modis_prs) ;
        modis_prs:bounds = "modis_prs_bnds" ;
        modis_prs:long_name = "cloud top pressure" ;
        modis_prs:units = "hPa" ;
    float modis_prs_bnds(modis_prs, bnds) ;
    float modis_tau(modis_tau) ;
        modis_tau:bounds = "modis_tau_bnds" ;
        modis_tau:long_name = "cloud optical thickness" ;
        modis_tau:units = "unitless" ;
    float modis_tau_bnds(modis_tau, bnds) ;
    float CLDTHN_MODIS(time, lat, lon) ;
        CLDTHN_MODIS:missing_value = -999.f ;
        CLDTHN_MODIS:_FillValue = -999.f ;
        CLDTHN_MODIS:long_name = "MODIS optically thin cloud" ;
        CLDTHN_MODIS:units = "percent" ;
    float CLDINT_MODIS(time, lat, lon) ;
        CLDINT_MODIS:missing_value = -999.f ;
        CLDINT_MODIS:_FillValue = -999.f ;
        CLDINT_MODIS:long_name = "MODIS optically intermediate cloud" ;
        CLDINT_MODIS:units = "percent" ;
    float CLDTHICK_MODIS(time, lat, lon) ;
        CLDTHICK_MODIS:missing_value = -999.f ;
        CLDTHICK_MODIS:_FillValue = -999.f ;
        CLDTHICK_MODIS:long_name = "MODIS optically thick cloud" ;
        CLDTHICK_MODIS:units = "percent" ;
    float CLDTOT_MODIS(time, lat, lon) ;
        CLDTOT_MODIS:missing_value = -999.f ;
        CLDTOT_MODIS:_FillValue = -999.f ;
        CLDTOT_MODIS:long_name = "MODIS total cloud amount from ctp-tau" ;
        CLDTOT_MODIS:units = "percent" ;
    float CLDLOW_MODIS(time, lat, lon) ;
        CLDLOW_MODIS:missing_value = -999.f ;
        CLDLOW_MODIS:_FillValue = -999.f ;
        CLDLOW_MODIS:long_name = "MODIS low-topped cloud amount from ctp-tau" ;
        CLDLOW_MODIS:units = "percent" ;
    float CLDMED_MODIS(time, lat, lon) ;
        CLDMED_MODIS:missing_value = -999.f ;
        CLDMED_MODIS:_FillValue = -999.f ;
        CLDMED_MODIS:long_name = "MODIS mid-topped cloud amount from ctp-tau" ;
        CLDMED_MODIS:units = "percent" ;
    float CLDHGH_MODIS(time, lat, lon) ;
        CLDHGH_MODIS:missing_value = -999.f ;
        CLDHGH_MODIS:_FillValue = -999.f ;
        CLDHGH_MODIS:long_name = "MODIS high-topped cloud amount from ctp-tau" ;
        CLDHGH_MODIS:units = "percent" ;
    float CLDTOT_MODIS_MASK(time, lat, lon) ;
        CLDTOT_MODIS_MASK:missing_value = -999.f ;
        CLDTOT_MODIS_MASK:_FillValue = -999.f ;
        CLDTOT_MODIS_MASK:long_name = "MODIS total cloud amount from cloud mask" ;
        CLDTOT_MODIS_MASK:units = "percent" ;
    float CLDLOW_MODIS_MASK(time, lat, lon) ;
        CLDLOW_MODIS_MASK:missing_value = -999.f ;
        CLDLOW_MODIS_MASK:_FillValue = -999.f ;
        CLDLOW_MODIS_MASK:long_name = "MODIS low-topped cloud amount from cloud mask" ;
        CLDLOW_MODIS_MASK:units = "percent" ;
    float CLDMED_MODIS_MASK(time, lat, lon) ;
        CLDMED_MODIS_MASK:missing_value = -999.f ;
        CLDMED_MODIS_MASK:_FillValue = -999.f ;
        CLDMED_MODIS_MASK:long_name = "MODIS mid-topped cloud amount from cloud mask" ;
        CLDMED_MODIS_MASK:units = "percent" ;
    float CLDHGH_MODIS_MASK(time, lat, lon) ;
        CLDHGH_MODIS_MASK:missing_value = -999.f ;
        CLDHGH_MODIS_MASK:_FillValue = -999.f ;
        CLDHGH_MODIS_MASK:long_name = "MODIS high-topped cloud amount from cloud mask" ;
        CLDHGH_MODIS_MASK:units = "percent" ;
    float CLWMODIS(time, lat, lon) ;
        CLWMODIS:missing_value = -999.f ;
        CLWMODIS:_FillValue = -999.f ;
        CLWMODIS:long_name = "MODIS liquid cloud amount" ;
        CLWMODIS:units = "percent" ;
    float CLIMODIS(time, lat, lon) ;
        CLIMODIS:missing_value = -999.f ;
        CLIMODIS:_FillValue = -999.f ;
        CLIMODIS:long_name = "MODIS ice cloud amount" ;
        CLIMODIS:units = "percent" ;
    float LWPMODIS(time, lat, lon) ;
        LWPMODIS:missing_value = -999.f ;
        LWPMODIS:_FillValue = -999.f ;
        LWPMODIS:long_name = "MODIS liquid water path" ;
        LWPMODIS:units = "g/m^2" ;
    float IWPMODIS(time, lat, lon) ;
        IWPMODIS:missing_value = -999.f ;
        IWPMODIS:_FillValue = -999.f ;
        IWPMODIS:long_name = "MODIS ice water path" ;
        IWPMODIS:units = "g/m^2" ;
    float PCTMODIS(time, lat, lon) ;
        PCTMODIS:missing_value = -999.f ;
        PCTMODIS:_FillValue = -999.f ;
        PCTMODIS:long_name = "MODIS mean cloud top pressure" ;
        PCTMODIS:units = "hPa" ;
    float REFFCLWMODIS(time, lat, lon) ;
        REFFCLWMODIS:missing_value = -999.f ;
        REFFCLWMODIS:_FillValue = -999.f ;
        REFFCLWMODIS:long_name = "MODIS effective liquid particle size" ;
        REFFCLWMODIS:units = "microns" ;
    float REFFCLIMODIS(time, lat, lon) ;
        REFFCLIMODIS:missing_value = -999.f ;
        REFFCLIMODIS:_FillValue = -999.f ;
        REFFCLIMODIS:long_name = "MODIS effective ice particle size" ;
        REFFCLIMODIS:units = "microns" ;
    float TAUTLOGMODIS(time, lat, lon) ;
        TAUTLOGMODIS:missing_value = -999.f ;
        TAUTLOGMODIS:_FillValue = -999.f ;
        TAUTLOGMODIS:long_name = "MODIS log-weighted total mean optical thickness" ;
        TAUTLOGMODIS:units = "unitless" ;
    float TAUWLOGMODIS(time, lat, lon) ;
        TAUWLOGMODIS:missing_value = -999.f ;
        TAUWLOGMODIS:_FillValue = -999.f ;
        TAUWLOGMODIS:long_name = "MODIS log-weighted liquid mean optical thickness" ;
        TAUWLOGMODIS:units = "unitless" ;
    float TAUILOGMODIS(time, lat, lon) ;
        TAUILOGMODIS:missing_value = -999.f ;
        TAUILOGMODIS:_FillValue = -999.f ;
        TAUILOGMODIS:long_name = "MODIS log-weighted ice mean optical thickness" ;
        TAUILOGMODIS:units = "unitless" ;
    float TAUTMODIS(time, lat, lon) ;
        TAUTMODIS:missing_value = -999.f ;
        TAUTMODIS:_FillValue = -999.f ;
        TAUTMODIS:long_name = "MODIS total mean optical thickness" ;
        TAUTMODIS:units = "unitless" ;
    float TAUWMODIS(time, lat, lon) ;
        TAUWMODIS:missing_value = -999.f ;
        TAUWMODIS:_FillValue = -999.f ;
        TAUWMODIS:long_name = "MODIS liquid mean optical thickness" ;
        TAUWMODIS:units = "unitless" ;
    float TAUIMODIS(time, lat, lon) ;
        TAUIMODIS:missing_value = -999.f ;
        TAUIMODIS:_FillValue = -999.f ;
        TAUIMODIS:long_name = "MODIS ice mean optical thickness" ;
        TAUIMODIS:units = "unitless" ;

MODIS_LAI

    float TLAI(lat, lon) ;
        TLAI:long_name = "total projected leaf area index" ;
        TLAI:units = "none" ;
        TLAI:cell_methods = "time: mean" ;
        TLAI:_FillValue = 1.e+36f ;
        TLAI:missing_value = 1.e+36f ;
    float TSAI(lat, lon) ;
        TSAI:long_name = "total projected stem area index" ;
        TSAI:units = "none" ;
        TSAI:cell_methods = "time: mean" ;
        TSAI:_FillValue = 1.e+36f ;
        TSAI:missing_value = 1.e+36f ;
    float area(lat, lon) ;
        area:long_name = "grid cell areas" ;
        area:units = "km^2" ;
        area:_FillValue = 1.e+36f ;
        area:missing_value = 1.e+36f ;
    int landmask(lat, lon) ;
        landmask:long_name = "land/ocean mask (0.=ocean and 1.=land)" ;
        landmask:_FillValue = -9999 ;
        landmask:missing_value = -9999 ;
    float lat(lat) ;
        lat:long_name = "coordinate latitude" ;
        lat:units = "degrees_north" ;
        lat:_FillValue = 1.e+36f ;
        lat:missing_value = 1.e+36f ;
    float lon(lon) ;
        lon:long_name = "coordinate longitude" ;
        lon:units = "degrees_east" ;
        lon:_FillValue = 1.e+36f ;
        lon:missing_value = 1.e+36f ;
    float time ;
        time:long_name = "time" ;
        time:units = "days since 0001-01-01 00:00:00" ;
        time:calendar = "noleap" ;
        time:bounds = "time_bounds" ;
    double time_bounds(hist_interval) ;
        time_bounds:long_name = "history time interval endpoints" ;

Back to top

NCEP

    float LHFLX(time, lat, lon) ;
        LHFLX:missing_value = -999.f ;
        LHFLX:units = "W m^-2" ;
        LHFLX:long_name = "surface latent heat flux" ;
        LHFLX:_FillValue = 1.e+36f ;
    float OMEGA(time, lev1, lat, lon) ;
        OMEGA:_FillValue = 1.e+36f ;
        OMEGA:long_name = "vertical pressure velocity" ;
        OMEGA:units = "mb/day" ;
        OMEGA:missing_value = -999.f ;
    float PREH2O(time, lat, lon) ;
        PREH2O:missing_value = -999.f ;
        PREH2O:units = "mm" ;
        PREH2O:long_name = "precipitable water" ;
        PREH2O:_FillValue = 1.e+36f ;
    float PS(time, lat, lon) ;
        PS:missing_value = -999.f ;
        PS:units = "millibars" ;
        PS:long_name = "surface pressure" ;
        PS:_FillValue = 1.e+36f ;
    float PSL(time, lat, lon) ;
        PSL:missing_value = -999.f ;
        PSL:units = "millibars" ;
        PSL:long_name = "sea level pressure" ;
        PSL:_FillValue = 1.e+36f ;
    float RELHUM(time, lev2, lat, lon) ;
        RELHUM:missing_value = -999.f ;
        RELHUM:units = "percent" ;
        RELHUM:long_name = "relative humidity" ;
        RELHUM:_FillValue = 1.e+36f ;
    float SHFLX(time, lat, lon) ;
        SHFLX:missing_value = -999.f ;
        SHFLX:units = "W m^-2" ;
        SHFLX:long_name = "surface sensible heat flux" ;
        SHFLX:_FillValue = 1.e+36f ;
    float SHUM(time, lev2, lat, lon) ;
        SHUM:missing_value = -999.f ;
        SHUM:units = "g/kg" ;
        SHUM:long_name = "specific humidity" ;
        SHUM:_FillValue = 1.e+36f ;
    float T(time, lev, lat, lon) ;
        T:missing_value = -999.f ;
        T:units = "K" ;
        T:long_name = "Temperature" ;
        T:_FillValue = 1.e+36f ;
    float TREFHT(time, lat, lon) ;
        TREFHT:missing_value = -999.f ;
        TREFHT:units = "K" ;
        TREFHT:long_name = "temperature at 2 meters" ;
        TREFHT:_FillValue = 1.e+36f ;
    float TS(time, lat, lon) ;
        TS:missing_value = -999.f ;
        TS:units = "K" ;
        TS:long_name = "surface temperature" ;
        TS:_FillValue = 1.e+36f ;
    float U(time, lev, lat, lon) ;
        U:missing_value = -999.f ;
        U:units = "m/s" ;
        U:long_name = "U" ;
        U:_FillValue = 1.e+36f ;
    float V(time, lev, lat, lon) ;
        V:missing_value = -999.f ;
        V:units = "m/s" ;
        V:long_name = "meridional wind" ;
        V:_FillValue = 1.e+36f ;
    float Z3(time, lev, lat, lon) ;
        Z3:missing_value = -999.f ;
        Z3:units = "meters" ;
        Z3:long_name = "geopotential height" ;
        Z3:_FillValue = 1.e+36f ;
    int date(date) ;
        date:long_name = "date as YYYYMM" ;
        date:_FillValue = -999 ;
    float gw(lat) ;
        gw:long_name = "gaussian weights" ;
        gw:units = "dimensionless" ;
    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees north" ;
    float lev(lev) ;
        lev:units = "millibars" ;
        lev:long_name = "pressure levels" ;
        lev:_FillValue = -999.f ;
    float lev1(lev1) ;
        lev1:units = "millibars" ;
        lev1:long_name = "pressure levels" ;
        lev1:_FillValue = -999.f ;
    float lev2(lev2) ;
        lev2:units = "millibars" ;
        lev2:long_name = "pressure levels" ;
        lev2:_FillValue = -999.f ;
    float lon(lon) ;
        lon:units = "degrees east" ;
        lon:long_name = "longitude" ;
    int time(time) ;
        time:long_name = "months since Jan 1979" ;
        time:_FillValue = -999 ;
    float SWCF(time, lat, lon) ;
        SWCF:missing_value = -999.f ;
        SWCF:units = "W/m^2" ;
        SWCF:long_name = "SW cloud forcing" ;
        SWCF:_FillValue = -999.f ;
    float LWCF(time, lat, lon) ;
        LWCF:missing_value = -999.f ;
        LWCF:units = "W/m^2" ;
        LWCF:long_name = "LW cloud forcing" ;
        LWCF:_FillValue = -999.f ;
    float FLUT(time, lat, lon) ;
        FLUT:missing_value = -999.f ;
        FLUT:units = "W/m^2" ;
        FLUT:long_name = "TOA upward LW flux" ;
        FLUT:_FillValue = -999.f ;
    float FSNTOA(time, lat, lon) ;
        FSNTOA:missing_value = -999.f ;
        FSNTOA:units = "W/m^2" ;
        FSNTOA:long_name = "TOA net SW flux" ;
        FSNTOA:_FillValue = -999.f ;
    float FSNTOAC(time, lat, lon) ;
        FSNTOAC:missing_value = -999.f ;
        FSNTOAC:units = "W/m^2" ;
        FSNTOAC:long_name = "TOA net clearsky SW flux" ;
        FSNTOAC:_FillValue = -999.f ;
    float RESTOA(time, lat, lon) ;
        RESTOA:missing_value = -999.f ;
        RESTOA:units = "W/m^2" ;
        RESTOA:long_name = "residual energy at TOA" ;
        RESTOA:_FillValue = -999.f ;

Back to top

PRECL

    float lat(lat) ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
    float lon(lon) ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_east" ;
    float gw(lat) ;
        gw:units = "dimensionless" ;
        gw:long_name = "normalized cosine weights" ;
    float PRECT_LAND(time, lat, lon) ;
        PRECT_LAND:units = "mm/day" ;
        PRECT_LAND:long_name = "precipitation rate" ;
        PRECT_LAND:missing_value = -999.f ;
        PRECT_LAND:_FillValue = -999.f ;
    int time(time) ;

Back to top

WILLMOTT

    float lat(lat) ;
        lat:_FillValue = -999.f ;
        lat:long_name = "latitude" ;
        lat:units = "degrees_north" ;
    float lon(lon) ;
        lon:_FillValue = -999.f ;
        lon:long_name = "longitude" ;
        lon:units = "degrees_east" ;
    float gw(lat) ;
        gw:units = "dimensionless" ;
        gw:long_name = "cosine weights" ;
        gw:_FillValue = -999.f ;
    float TREFHT_LAND(lat, lon) ;
        TREFHT_LAND:source = "Willmott and Matsuura CAI air temperature v3.02" ;
        TREFHT_LAND:units = "K" ;
        TREFHT_LAND:long_name = "2-meter temperature" ;
        TREFHT_LAND:_FillValue = -999.f ;
    float PRECIP_LAND(lat, lon) ;
        PRECIP_LAND:source = "Willmott and Matsuura CAI precipitation v3.02" ;
        PRECIP_LAND:units = "cm" ;
        PRECIP_LAND:long_name = "total precipitation" ;
        PRECIP_LAND:_FillValue = -999.f ;
chaosphere2112 commented 8 years ago

Forgot the model header:

Climate data:

    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) ;
painter1 commented 8 years ago

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.

painter1 commented 8 years ago

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.

painter1 commented 8 years ago

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.

painter1 commented 8 years ago

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.

chaosphere2112 commented 8 years ago

@painter1

Looking at some AMWG output, PRECIP with Willmott & Matsura should be PRECIP_LAND; they describe PRECIP as "Cumulative precipitation (land)".

chaosphere2112 commented 8 years ago

I'll fix it so it has the correct request.

painter1 commented 8 years ago

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.

chaosphere2112 commented 8 years ago

:+1: Awesome, thanks Jeff!