NGEET / fates

repository for the Functionally Assembled Terrestrial Ecosystem Simulator (FATES)
Other
94 stars 91 forks source link

time shift I/O CLM45 #98

Closed xuyi02 closed 7 years ago

xuyi02 commented 8 years ago

Summary of Issue:

CLM45 (BGC, SP and ED modes) inserts two time steps (hourly) ahead at the beginning of the output variables compared with input variables , e.g. FSDS , FLDS and others. If you compare input and output files, you will find this issue.

Expected behavior and actual behavior We expect that the phase of input and output should be consistent. But currently, we have 2 hours time shift in FSDS and FLDS.

Steps to reproduce the problem (should include create_newcase or create_test command along with any user_nl or xml changes)

Key steps in the script to create a new case: (I1PTCLM45BGC is a new compset I created in CLM45)

./create_newcase -case ${CASEROOT} -res CLM_USRDAT -compset I1PTCLM45BGC -mach edison -compiler ${COMPILER}

./xmlchange -file env_build.xml -id CLM_CONFIG_OPTS -val "-phys clm4_5 -bgc bgc"
#./xmlchange -file env_build.xml -id DEBUG -val TRUE
./xmlchange -file env_build.xml -id SUPPORTED_BY -val 'CLM4_5_1_r120 test '
./xmlchange -file env_build.xml -id EXEROOT -val ${CASEROOT}/bld
./xmlchange -file env_build.xml -id CESMSCRATCHROOT -val ${CASEROOT}/SCRATCH

put your running data and forcing data setup for env_run.xml

cat >> user_nl_clm << EOF
fsurdat = '${CESM_inputdir}/lnd/clm2/surfdata_map/surfdata_${CASENAME}_simyr2000.nc'
hist_nhtfrq = -1
hist_mfilt  =24
EOF

What is the changeset ID of the code, and the machine you are using: version: r120 machine: Edison

have you modified the code? If so, it must be committed and available for testing: I created a new compset 'I1PTCLM45BGC ' in CLM45

Screen output or output files showing the error message and context: You can find that there are two more zero at the beginning of output.

Hourly FSDS input at the first day:

 FSDS =
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  2.681946,
  67.15416,
  290.5072,
  501.0724,
  703.8274,
  727.9265,
  751.187,
  778.4371,
  727.5482,
  488.3,
  366.3344,
  170.1183,
  21.89776,
  0,

Hourly FSDS output at the first day:

 FSDS =
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  2.681946,
  67.15416,
  290.5072,
  501.0724,
  703.8274,
  727.9265,
  751.187,
  778.4371,
  727.5482,
  488.3,
  366.3344,
  170.1183 ;
bandre-ucar commented 8 years ago

All of @xuyi563 examples in email and this bug involve custom datasets, compsets, etc.

Trying to recreate a minimal reproducible test case using out of the box data with changeset 57c533c4

./create_test -testname SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45ED.yellowstone_intel.clm-edTest -testid junk-issue98
cd SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45ED.yellowstone_intel.clm-edTest.junk-issue98/
# update user_nl_clm
# hist_nhtfrq = -1
# hist_mfilt  = 24
# add 'FSDS:I' as a history variable output
./SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45ED.yellowstone_intel.clm-edTest.junk-issue98.test_build 
./SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45ED.yellowstone_intel.clm-edTest.junk-issue98.submit

Results are below. The FSDS input and output are different enough that I'm probably not doing something correctly, and can't make more progress without more explicit directions to replicate.

ncdump -v FSDS SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45ED.yellowstone_intel.clm-edTest.junk-issue98.clm2.h0.1993-12-01-00000.nc 
netcdf SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45ED.yellowstone_intel.clm-edTest.junk-issue98.clm2.h0.1993-12-01-00000 {
dimensions:
    lndgrid = 1 ;
    gridcell = 1 ;
    landunit = 4 ;
    column = 16 ;
    pft = 32 ;
    levgrnd = 15 ;
    levurb = 5 ;
    levlak = 10 ;
    numrad = 2 ;
    levsno = 5 ;
    ltype = 9 ;
    nlevcan = 1 ;
    natpft = 17 ;
    string_length = 8 ;
    levdcmp = 15 ;
    levscls = 13 ;
    levscpf = 1014 ;
    hist_interval = 2 ;
    time = UNLIMITED ; // (24 currently)
variables:
    float levgrnd(levgrnd) ;
        levgrnd:long_name = "coordinate soil levels" ;
        levgrnd:units = "m" ;
    float levlak(levlak) ;
        levlak:long_name = "coordinate lake levels" ;
        levlak:units = "m" ;
    float levdcmp(levdcmp) ;
        levdcmp:long_name = "coordinate soil levels" ;
        levdcmp:units = "m" ;
    float levscls(levscls) ;
        levscls:long_name = "diameter size class lower bound" ;
        levscls:units = "cm" ;
    int pft_levscpf(levscpf) ;
        pft_levscpf:long_name = "pft index of the combined pft-size class dimension" ;
        pft_levscpf:units = "-" ;
    int scls_levscpf(levscpf) ;
        scls_levscpf:long_name = "size index of the combined pft-size class dimension" ;
        scls_levscpf:units = "-" ;
    float time(time) ;
        time:long_name = "time" ;
        time:units = "days since 1993-12-01 00:00:00" ;
        time:calendar = "noleap" ;
        time:bounds = "time_bounds" ;
    int mcdate(time) ;
        mcdate:long_name = "current date (YYYYMMDD)" ;
    int mcsec(time) ;
        mcsec:long_name = "current seconds of current date" ;
        mcsec:units = "s" ;
    int mdcur(time) ;
        mdcur:long_name = "current day (from base day)" ;
    int mscur(time) ;
        mscur:long_name = "current seconds of current day" ;
    int nstep(time) ;
        nstep:long_name = "time step" ;
    double time_bounds(time, hist_interval) ;
        time_bounds:long_name = "history time interval endpoints" ;
    char date_written(time, string_length) ;
    char time_written(time, string_length) ;
    float lon(lndgrid) ;
        lon:long_name = "coordinate longitude" ;
        lon:units = "degrees_east" ;
        lon:_FillValue = 1.e+36f ;
        lon:missing_value = 1.e+36f ;
    float lat(lndgrid) ;
        lat:long_name = "coordinate latitude" ;
        lat:units = "degrees_north" ;
        lat:_FillValue = 1.e+36f ;
        lat:missing_value = 1.e+36f ;
    float area(lndgrid) ;
        area:long_name = "grid cell areas" ;
        area:units = "km^2" ;
        area:_FillValue = 1.e+36f ;
        area:missing_value = 1.e+36f ;
    float topo(lndgrid) ;
        topo:long_name = "grid cell topography" ;
        topo:units = "m" ;
        topo:_FillValue = 1.e+36f ;
        topo:missing_value = 1.e+36f ;
    float landfrac(lndgrid) ;
        landfrac:long_name = "land fraction" ;
        landfrac:_FillValue = 1.e+36f ;
        landfrac:missing_value = 1.e+36f ;
    int landmask(lndgrid) ;
        landmask:long_name = "land/ocean mask (0.=ocean and 1.=land)" ;
        landmask:_FillValue = -9999 ;
        landmask:missing_value = -9999 ;
    int pftmask(lndgrid) ;
        pftmask:long_name = "pft real/fake mask (0.=fake and 1.=real)" ;
        pftmask:_FillValue = -9999 ;
        pftmask:missing_value = -9999 ;
    float ZSOI(levgrnd, lndgrid) ;
        ZSOI:long_name = "soil depth" ;
        ZSOI:units = "m" ;
        ZSOI:_FillValue = 1.e+36f ;
        ZSOI:missing_value = 1.e+36f ;
    float DZSOI(levgrnd, lndgrid) ;
        DZSOI:long_name = "soil thickness" ;
        DZSOI:units = "m" ;
        DZSOI:_FillValue = 1.e+36f ;
        DZSOI:missing_value = 1.e+36f ;
    float WATSAT(levgrnd, lndgrid) ;
        WATSAT:long_name = "saturated soil water content (porosity)" ;
        WATSAT:units = "mm3/mm3" ;
        WATSAT:_FillValue = 1.e+36f ;
        WATSAT:missing_value = 1.e+36f ;
    float SUCSAT(levgrnd, lndgrid) ;
        SUCSAT:long_name = "saturated soil matric potential" ;
        SUCSAT:units = "mm" ;
        SUCSAT:_FillValue = 1.e+36f ;
        SUCSAT:missing_value = 1.e+36f ;
    float BSW(levgrnd, lndgrid) ;
        BSW:long_name = "slope of soil water retention curve" ;
        BSW:units = "unitless" ;
        BSW:_FillValue = 1.e+36f ;
        BSW:missing_value = 1.e+36f ;
    float HKSAT(levgrnd, lndgrid) ;
        HKSAT:long_name = "saturated hydraulic conductivity" ;
        HKSAT:units = "unitless" ;
        HKSAT:_FillValue = 1.e+36f ;
        HKSAT:missing_value = 1.e+36f ;
    float ZLAKE(levlak, lndgrid) ;
        ZLAKE:long_name = "lake layer node depth" ;
        ZLAKE:units = "m" ;
        ZLAKE:_FillValue = 1.e+36f ;
        ZLAKE:missing_value = 1.e+36f ;
    float DZLAKE(levlak, lndgrid) ;
        DZLAKE:long_name = "lake layer thickness" ;
        DZLAKE:units = "m" ;
        DZLAKE:_FillValue = 1.e+36f ;
        DZLAKE:missing_value = 1.e+36f ;
    float AREA_PLANT(time, lndgrid) ;
        AREA_PLANT:long_name = "area occupied by all plants" ;
        AREA_PLANT:units = "m2" ;
        AREA_PLANT:cell_methods = "time: mean" ;
        AREA_PLANT:_FillValue = 1.e+36f ;
        AREA_PLANT:missing_value = 1.e+36f ;
    float AREA_TREES(time, lndgrid) ;
        AREA_TREES:long_name = "area occupied by woody plants" ;
        AREA_TREES:units = "m2" ;
        AREA_TREES:cell_methods = "time: mean" ;
        AREA_TREES:_FillValue = 1.e+36f ;
        AREA_TREES:missing_value = 1.e+36f ;
    float BTRAN(time, lndgrid) ;
        BTRAN:long_name = "transpiration beta factor" ;
        BTRAN:units = "unitless" ;
        BTRAN:cell_methods = "time: mean" ;
        BTRAN:_FillValue = 1.e+36f ;
        BTRAN:missing_value = 1.e+36f ;
    float FIRE_AREA(time, lndgrid) ;
        FIRE_AREA:long_name = "spitfire fire area:m2" ;
        FIRE_AREA:units = "fraction" ;
        FIRE_AREA:cell_methods = "time: mean" ;
        FIRE_AREA:_FillValue = 1.e+36f ;
        FIRE_AREA:missing_value = 1.e+36f ;
    float FIRE_INTENSITY(time, lndgrid) ;
        FIRE_INTENSITY:long_name = "spitfire fire intensity: kJ/m/s" ;
        FIRE_INTENSITY:units = "kJ/m/s" ;
        FIRE_INTENSITY:cell_methods = "time: mean" ;
        FIRE_INTENSITY:_FillValue = 1.e+36f ;
        FIRE_INTENSITY:missing_value = 1.e+36f ;
    float FIRE_NESTEROV_INDEX(time, lndgrid) ;
        FIRE_NESTEROV_INDEX:long_name = "nesterov_fire_danger index" ;
        FIRE_NESTEROV_INDEX:units = "none" ;
        FIRE_NESTEROV_INDEX:cell_methods = "time: mean" ;
        FIRE_NESTEROV_INDEX:_FillValue = 1.e+36f ;
        FIRE_NESTEROV_INDEX:missing_value = 1.e+36f ;
    float FIRE_ROS(time, lndgrid) ;
        FIRE_ROS:long_name = "fire rate of spread m/min" ;
        FIRE_ROS:units = "m/min" ;
        FIRE_ROS:cell_methods = "time: mean" ;
        FIRE_ROS:_FillValue = 1.e+36f ;
        FIRE_ROS:missing_value = 1.e+36f ;
    float FIRE_TFC_ROS(time, lndgrid) ;
        FIRE_TFC_ROS:long_name = "total fuel consumed" ;
        FIRE_TFC_ROS:units = "none" ;
        FIRE_TFC_ROS:cell_methods = "time: mean" ;
        FIRE_TFC_ROS:_FillValue = 1.e+36f ;
        FIRE_TFC_ROS:missing_value = 1.e+36f ;
    float FSDS(time, lndgrid) ;
        FSDS:long_name = "atmospheric incident solar radiation" ;
        FSDS:units = "W/m^2" ;
        FSDS:cell_methods = "time: instantaneous" ;
        FSDS:_FillValue = 1.e+36f ;
        FSDS:missing_value = 1.e+36f ;
    float GPP(time, lndgrid) ;
        GPP:long_name = "gross primary production" ;
        GPP:units = "gC/m^2/s" ;
        GPP:cell_methods = "time: mean" ;
        GPP:_FillValue = 1.e+36f ;
        GPP:missing_value = 1.e+36f ;
    float H2OSOI(time, levgrnd, lndgrid) ;
        H2OSOI:long_name = "volumetric soil water (vegetated landunits only)" ;
        H2OSOI:units = "mm3/mm3" ;
        H2OSOI:cell_methods = "time: mean" ;
        H2OSOI:_FillValue = 1.e+36f ;
        H2OSOI:missing_value = 1.e+36f ;
    float LITTER_IN(time, lndgrid) ;
        LITTER_IN:long_name = "Litter flux in leaves" ;
        LITTER_IN:units = "gC m-2 s-1" ;
        LITTER_IN:cell_methods = "time: mean" ;
        LITTER_IN:_FillValue = 1.e+36f ;
        LITTER_IN:missing_value = 1.e+36f ;
    float LITTER_OUT(time, lndgrid) ;
        LITTER_OUT:long_name = "Litter flux out leaves" ;
        LITTER_OUT:units = "gC m-2 s-1" ;
        LITTER_OUT:cell_methods = "time: mean" ;
        LITTER_OUT:_FillValue = 1.e+36f ;
        LITTER_OUT:missing_value = 1.e+36f ;
    float NBP(time, lndgrid) ;
        NBP:long_name = "net biosphere production" ;
        NBP:units = "gC/m^2/s" ;
        NBP:cell_methods = "time: mean" ;
        NBP:_FillValue = 1.e+36f ;
        NBP:missing_value = 1.e+36f ;
    float NEP(time, lndgrid) ;
        NEP:long_name = "net ecosystem production" ;
        NEP:units = "gC/m^2/s" ;
        NEP:cell_methods = "time: mean" ;
        NEP:_FillValue = 1.e+36f ;
        NEP:missing_value = 1.e+36f ;
    float NPP(time, lndgrid) ;
        NPP:long_name = "net primary production" ;
        NPP:units = "gC/m^2/s" ;
        NPP:cell_methods = "time: mean" ;
        NPP:_FillValue = 1.e+36f ;
        NPP:missing_value = 1.e+36f ;
    float PFTbiomass(time, levgrnd, lndgrid) ;
        PFTbiomass:long_name = "total PFT level biomass" ;
        PFTbiomass:units = "gC/m2" ;
        PFTbiomass:cell_methods = "time: mean" ;
        PFTbiomass:_FillValue = 1.e+36f ;
        PFTbiomass:missing_value = 1.e+36f ;
    float PFTleafbiomass(time, levgrnd, lndgrid) ;
        PFTleafbiomass:long_name = "total PFT level leaf biomass" ;
        PFTleafbiomass:units = "gC/m2" ;
        PFTleafbiomass:cell_methods = "time: mean" ;
        PFTleafbiomass:_FillValue = 1.e+36f ;
        PFTleafbiomass:missing_value = 1.e+36f ;
    float SCORCH_HEIGHT(time, lndgrid) ;
        SCORCH_HEIGHT:long_name = "spitfire fire area:m2" ;
        SCORCH_HEIGHT:units = "m" ;
        SCORCH_HEIGHT:cell_methods = "time: mean" ;
        SCORCH_HEIGHT:_FillValue = 1.e+36f ;
        SCORCH_HEIGHT:missing_value = 1.e+36f ;
    float TLAI(time, lndgrid) ;
        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 TOTECOSYSC(time, lndgrid) ;
        TOTECOSYSC:long_name = "total ecosystem carbon" ;
        TOTECOSYSC:units = "gC/m^2" ;
        TOTECOSYSC:cell_methods = "time: mean" ;
        TOTECOSYSC:_FillValue = 1.e+36f ;
        TOTECOSYSC:missing_value = 1.e+36f ;
    float TOTLITC(time, lndgrid) ;
        TOTLITC:long_name = "total litter carbon" ;
        TOTLITC:units = "gC/m^2" ;
        TOTLITC:cell_methods = "time: mean" ;
        TOTLITC:_FillValue = 1.e+36f ;
        TOTLITC:missing_value = 1.e+36f ;
    float TOTSOMC(time, lndgrid) ;
        TOTSOMC:long_name = "total soil organic matter carbon" ;
        TOTSOMC:units = "gC/m^2" ;
        TOTSOMC:cell_methods = "time: mean" ;
        TOTSOMC:_FillValue = 1.e+36f ;
        TOTSOMC:missing_value = 1.e+36f ;
    float T_SCALAR(time, levdcmp, lndgrid) ;
        T_SCALAR:long_name = "temperature inhibition of decomposition" ;
        T_SCALAR:units = "unitless" ;
        T_SCALAR:cell_methods = "time: mean" ;
        T_SCALAR:_FillValue = 1.e+36f ;
        T_SCALAR:missing_value = 1.e+36f ;
    float WIND(time, lndgrid) ;
        WIND:long_name = "atmospheric wind velocity magnitude" ;
        WIND:units = "m/s" ;
        WIND:cell_methods = "time: mean" ;
        WIND:_FillValue = 1.e+36f ;
        WIND:missing_value = 1.e+36f ;
    float fire_fuel_bulkd(time, lndgrid) ;
        fire_fuel_bulkd:long_name = "spitfire fuel bulk density" ;
        fire_fuel_bulkd:units = "m" ;
        fire_fuel_bulkd:cell_methods = "time: mean" ;
        fire_fuel_bulkd:_FillValue = 1.e+36f ;
        fire_fuel_bulkd:missing_value = 1.e+36f ;
    float fire_fuel_mef(time, lndgrid) ;
        fire_fuel_mef:long_name = "spitfire fuel moisture" ;
        fire_fuel_mef:units = "m" ;
        fire_fuel_mef:cell_methods = "time: mean" ;
        fire_fuel_mef:_FillValue = 1.e+36f ;
        fire_fuel_mef:missing_value = 1.e+36f ;
    float fire_fuel_sav(time, lndgrid) ;
        fire_fuel_sav:long_name = "spitfire fuel surface/volume" ;
        fire_fuel_sav:units = "m" ;
        fire_fuel_sav:cell_methods = "time: mean" ;
        fire_fuel_sav:_FillValue = 1.e+36f ;
        fire_fuel_sav:missing_value = 1.e+36f ;

// global attributes:
        :title = "CLM History file information" ;
        :comment = "NOTE: None of the variables are weighted by land fraction!" ;
        :Conventions = "CF-1.0" ;
        :history = "created on 08/10/16 12:40:25" ;
        :source = "Community Land Model CLM4.0" ;
        :hostname = "yellowstone" ;
        :username = "andre" ;
        :version = "" ;
        :revision_id = "$Id: histFileMod.F90 42903 2012-12-21 15:32:10Z muszala $" ;
        :case_title = "UNSET" ;
        :case_id = "SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45ED.yellowstone_intel.clm-edTest.junk-issue98" ;
        :Surface_dataset = "surfdata_1x1_mexicocityMEX_simyr2000_c141219.nc" ;
        :Initial_conditions_dataset = "arbitrary initialization" ;
        :PFT_physiological_constants_dataset = "clm_params_ed.c151027.nc" ;
        :ltype_vegetated_or_bare_soil = 1 ;
        :ltype_crop = 2 ;
        :ltype_landice = 3 ;
        :ltype_landice_multiple_elevation_classes = 4 ;
        :ltype_deep_lake = 5 ;
        :ltype_wetland = 6 ;
        :ltype_urban_tbd = 7 ;
        :ltype_urban_hd = 8 ;
        :ltype_urban_md = 9 ;
data:

 FSDS =
  227.7041,
  227.7041,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  125.9168,
  264.7875,
  379.798,
  463.1113,
  509.0514,
  472.7679,
  440.2086,
  372.3136,
  273.7114 ;
}
$ ncdump -v FSDS /glade/p/cesm/cseg/inputdata/atm/datm7/CLM1PT_data/mexicocityMEX.c080124/clm1pt-1993-12.nc
netcdf clm1pt-1993-12 {
dimensions:
    scalar = 1 ;
    lon = 1 ;
    lat = 1 ;
    time = UNLIMITED ; // (160 currently)
variables:
    float EDGEW(scalar) ;
        EDGEW:long_name = "western edge in atmospheric data" ;
        EDGEW:units = "degrees E" ;
        EDGEW:mode = "time-invariant" ;
        EDGEW:_FillValue = -1.f ;
    float EDGEE(scalar) ;
        EDGEE:long_name = "eastern edge in atmospheric data" ;
        EDGEE:units = "degrees E" ;
        EDGEE:mode = "time-invariant" ;
        EDGEE:_FillValue = -1.f ;
    float EDGES(scalar) ;
        EDGES:long_name = "southern edge in atmospheric data" ;
        EDGES:units = "degrees N" ;
        EDGES:mode = "time-invariant" ;
        EDGES:_FillValue = -1.f ;
    float EDGEN(scalar) ;
        EDGEN:long_name = "northern edge in atmospheric data" ;
        EDGEN:units = "degrees N" ;
        EDGEN:mode = "time-invariant" ;
        EDGEN:_FillValue = -1.f ;
    float LONGXY(lat, lon) ;
        LONGXY:long_name = "longitude" ;
        LONGXY:units = "degrees E" ;
        LONGXY:mode = "time-invariant" ;
        LONGXY:_FillValue = -1.f ;
    float LATIXY(lat, lon) ;
        LATIXY:long_name = "latitude" ;
        LATIXY:units = "degrees N" ;
        LATIXY:mode = "time-invariant" ;
        LATIXY:_FillValue = -1.f ;
    float FLDS(time, lat, lon) ;
        FLDS:long_name = "incident longwave (FLDS)" ;
        FLDS:units = "W/m2" ;
        FLDS:mode = "time-dependent" ;
        FLDS:_FillValue = -1.f ;
    float PRECTmms(time, lat, lon) ;
        PRECTmms:long_name = " precipitation (PRECTmms)" ;
        PRECTmms:units = "mm/s" ;
        PRECTmms:mode = "time-dependent" ;
        PRECTmms:_FillValue = -1.f ;
    float PSRF(time, lat, lon) ;
        PSRF:long_name = "pressure at the lowest atm level (PSRF)" ;
        PSRF:units = "Pa" ;
        PSRF:mode = "time-dependent" ;
        PSRF:_FillValue = -1.f ;
    float FSDS(time, lat, lon) ;
        FSDS:long_name = "incident solar (FSDS)" ;
        FSDS:units = "W/m2" ;
        FSDS:mode = "time-dependent" ;
        FSDS:_FillValue = -1.f ;
    float TBOT(time, lat, lon) ;
        TBOT:long_name = "temperature at the lowest atm level (TBOT)" ;
        TBOT:units = "K" ;
        TBOT:mode = "time-dependent" ;
        TBOT:_FillValue = -1.f ;
    float RH(time, lat, lon) ;
        RH:long_name = "relative humidity at the lowest atm level (RH)" ;
        RH:units = "%" ;
        RH:mode = "time-dependent" ;
        RH:_FillValue = -1.f ;
    float WIND(time, lat, lon) ;
        WIND:long_name = "wind at the lowest atm level (WIND)" ;
        WIND:units = "m/s" ;
        WIND:mode = "time-dependent" ;
        WIND:_FillValue = -1.f ;
    float time(time) ;
        time:long_name = "observation time" ;
        time:units = " days since 1993-12-01 02:00:00" ;
        time:calendar = "noleap" ;
    float FSDSdir(time, lat, lon) ;
        FSDSdir:long_name = "incident solar (FSDS) direct" ;
        FSDSdir:units = "W/m2" ;
        FSDSdir:mode = "time-dependent" ;
    float FSDSdif(time, lat, lon) ;
        FSDSdif:long_name = "incident solar (FSDS) diffuse" ;
        FSDSdif:units = "W/m2" ;
        FSDSdif:mode = "time-dependent" ;
    float ZBOT(time, lat, lon) ;
        ZBOT:long_name = "observational height" ;
        ZBOT:units = "m" ;
        ZBOT:mode = "time-dependent" ;

// global attributes:
        :case_title = "me93_eb.60.formatted:Mexico City atm data at 1-hr resol" ;
        :conventions = "CF-1.0" ;
        :title = "CLM single point datm input data" ;
        :history = "Original data from /fs/cgd/csm/inputdata/lnd/clm2/1pt_atmdata/mexicocityMEX.c051206/1993-12.nc\\n Time coords added by erik, Thu Jan 24 10:51:10 MST 2008" ;
data:

 FSDS =
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  15.21,
  191.21,
  405.47,
  575.02,
  702.41,
  828.58,
  767.78,
  681.83,
  535.82,
  367.52,
  152.09,
  6.7,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  6.93,
  69.88,
  308.6,
  574.11,
  735.59,
  828.86,
  830.96,
  753.37,
  561.6,
  322.01,
  120.6,
  5.84,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  12.08,
  173.12,
  395.44,
  586.85,
  745.91,
  834.89,
  814.23,
  708.43,
  497.34,
  322.82,
  126.1,
  7.43,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  14.97,
  167.76,
  362.09,
  558.19,
  555.16,
  639.92,
  614.99,
  548.56,
  322.56,
  350.43,
  128.15,
  9.89,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  11.63,
  174.05,
  390,
  563.1,
  690.69,
  747.67,
  735.01,
  650.54,
  533.33,
  355.23,
  123.82,
  10.17,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  12.45,
  164.79,
  367.51,
  565.81,
  696.09,
  765.25,
  745.87,
  674.4,
  536.92,
  395.16,
  168.06,
  6.28,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  8.45,
  116.19,
  344.99,
  558.14 ;
}
bishtgautam commented 8 years ago

Do note that for a given timestep, DATM reads meteorological data corresponding the present and previous timestep. One can verify this by looking at the atm.log. file and notice that the end of timeseries dataset is read first. In the case of 1x1_mexicocityMEX, I expect the data corresponding to time = 160 of clm1pt-1993-12.nc is read first following by data corresponding to time = 1 of clm1pt-1993-12.nc.

xuyi02 commented 8 years ago

Hi Gautam,

You are right ! DATM reads meteorological data corresponding the present and previous timestep. I check I/O and that is true. Moreover, it seems that DATM read the last timestep twice at the beginning of model running, which causes the extra two timesteps in the output. But it is strange that DATM reads twice for the last timestep. Could you please verify it ?

Thanks

bishtgautam commented 8 years ago

What is the temporal resolution of your custom meteorological data (30min, 1hour, etc)?

xuyi02 commented 8 years ago

It is 1hour

bishtgautam commented 8 years ago

Hmm...I'm out of ideas why DATM is reading netcdf file twice for an hourly dataset. You will probably have to dig into DATM code to figure this out.

xuyi02 commented 8 years ago

Thanks Gautam! I will dig into the code.

xuyi02 commented 8 years ago

Hi Ben,

I think you almost replicate the issue, although your I/O are different. But it is clear that your output have two extra duplicate FSDS at the beginning of output as follows. They come from the last time step in the input file as Gautam also mentioned that. If you check atm log file , you will find the issue.

FSDS = 227.7041, 227.7041, . . . .

huangmy commented 8 years ago

@bandre-ucar @bishtgautam does this have anything to do with the taxmode we are using? We currently use "cycle". Thanks.

bandre-ucar commented 8 years ago

I reran a variant of the mexico city ED test above with pure clm-sp from clm4_5_11_r188.

./create_test -testname SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45.yellowstone_intel.clm-default -testid junk-issue98-r188
cd SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45.yellowstone_intel.clm-default.junk-issue98-r188/
 vim env_batch.xml 
# shortent run time to get through the queue faster
 vim user_nl_clm
# hist_nhtfrq = -1
# hist_mfilt  = 24
# add 'FSDS:I' as a history
 ./case.test_build 
 ./case.submit 

Results below.

Given:

I believe this is the expected behavior for datm/clm. If someone can create a small test problem that demonstrates the issue in a cleaner way with default clm compsets and data I'll be happy to pursue it with upstream clm.

$ ncdump -v FSDS SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45.yello
wstone_intel.clm-default.junk-issue98-r188.clm2.h0.1993-12-01-00000.nc 
netcdf SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45.yellowstone_intel.clm-default.junk-issue98-r188.clm2.h0.1993-12-01-00000 {
dimensions:
    lndgrid = 1 ;
    gridcell = 1 ;
    landunit = 4 ;
    column = 16 ;
    pft = 32 ;
    levgrnd = 15 ;
    levurb = 5 ;
    levlak = 10 ;
    numrad = 2 ;
    levsno = 5 ;
    ltype = 9 ;
    nlevcan = 1 ;
    nvegwcs = 4 ;
    natpft = 17 ;
    string_length = 8 ;
    scale_type_string_length = 32 ;
    levdcmp = 1 ;
    hist_interval = 2 ;
    time = UNLIMITED ; // (24 currently)
variables:
    float levgrnd(levgrnd) ;
        levgrnd:long_name = "coordinate soil levels" ;
        levgrnd:units = "m" ;
    float levlak(levlak) ;
        levlak:long_name = "coordinate lake levels" ;
        levlak:units = "m" ;
    float levdcmp(levdcmp) ;
        levdcmp:long_name = "coordinate soil levels" ;
        levdcmp:units = "m" ;
    float time(time) ;
        time:long_name = "time" ;
        time:units = "days since 1993-12-01 00:00:00" ;
        time:calendar = "noleap" ;
        time:bounds = "time_bounds" ;
    int mcdate(time) ;
        mcdate:long_name = "current date (YYYYMMDD)" ;
    int mcsec(time) ;
        mcsec:long_name = "current seconds of current date" ;
        mcsec:units = "s" ;
    int mdcur(time) ;
        mdcur:long_name = "current day (from base day)" ;
    int mscur(time) ;
        mscur:long_name = "current seconds of current day" ;
    int nstep(time) ;
        nstep:long_name = "time step" ;
    double time_bounds(time, hist_interval) ;
        time_bounds:long_name = "history time interval endpoints" ;
    char date_written(time, string_length) ;
    char time_written(time, string_length) ;
    float lon(lndgrid) ;
        lon:long_name = "coordinate longitude" ;
        lon:units = "degrees_east" ;
        lon:_FillValue = 1.e+36f ;
        lon:missing_value = 1.e+36f ;
    float lat(lndgrid) ;
        lat:long_name = "coordinate latitude" ;
        lat:units = "degrees_north" ;
        lat:_FillValue = 1.e+36f ;
        lat:missing_value = 1.e+36f ;
    float area(lndgrid) ;
        area:long_name = "grid cell areas" ;
        area:units = "km^2" ;
        area:_FillValue = 1.e+36f ;
        area:missing_value = 1.e+36f ;
    float landfrac(lndgrid) ;
        landfrac:long_name = "land fraction" ;
        landfrac:_FillValue = 1.e+36f ;
        landfrac:missing_value = 1.e+36f ;
    int landmask(lndgrid) ;
        landmask:long_name = "land/ocean mask (0.=ocean and 1.=land)" ;
        landmask:_FillValue = -9999 ;
        landmask:missing_value = -9999 ;
    int pftmask(lndgrid) ;
        pftmask:long_name = "pft real/fake mask (0.=fake and 1.=real)" ;
        pftmask:_FillValue = -9999 ;
        pftmask:missing_value = -9999 ;
    int nbedrock(lndgrid) ;
        nbedrock:long_name = "index of shallowest bedrock layer" ;
        nbedrock:_FillValue = -9999 ;
        nbedrock:missing_value = -9999 ;
    float ZSOI(levgrnd, lndgrid) ;
        ZSOI:long_name = "soil depth" ;
        ZSOI:units = "m" ;
        ZSOI:_FillValue = 1.e+36f ;
        ZSOI:missing_value = 1.e+36f ;
    float DZSOI(levgrnd, lndgrid) ;
        DZSOI:long_name = "soil thickness" ;
        DZSOI:units = "m" ;
        DZSOI:_FillValue = 1.e+36f ;
        DZSOI:missing_value = 1.e+36f ;
    float WATSAT(levgrnd, lndgrid) ;
        WATSAT:long_name = "saturated soil water content (porosity)" ;
        WATSAT:units = "mm3/mm3" ;
        WATSAT:_FillValue = 1.e+36f ;
        WATSAT:missing_value = 1.e+36f ;
    float SUCSAT(levgrnd, lndgrid) ;
        SUCSAT:long_name = "saturated soil matric potential" ;
        SUCSAT:units = "mm" ;
        SUCSAT:_FillValue = 1.e+36f ;
        SUCSAT:missing_value = 1.e+36f ;
    float BSW(levgrnd, lndgrid) ;
        BSW:long_name = "slope of soil water retention curve" ;
        BSW:units = "unitless" ;
        BSW:_FillValue = 1.e+36f ;
        BSW:missing_value = 1.e+36f ;
    float HKSAT(levgrnd, lndgrid) ;
        HKSAT:long_name = "saturated hydraulic conductivity" ;
        HKSAT:units = "unitless" ;
        HKSAT:_FillValue = 1.e+36f ;
        HKSAT:missing_value = 1.e+36f ;
    float ZLAKE(levlak, lndgrid) ;
        ZLAKE:long_name = "lake layer node depth" ;
        ZLAKE:units = "m" ;
        ZLAKE:_FillValue = 1.e+36f ;
        ZLAKE:missing_value = 1.e+36f ;
    float DZLAKE(levlak, lndgrid) ;
        DZLAKE:long_name = "lake layer thickness" ;
        DZLAKE:units = "m" ;
        DZLAKE:_FillValue = 1.e+36f ;
        DZLAKE:missing_value = 1.e+36f ;
    float ATM_TOPO(time, lndgrid) ;
        ATM_TOPO:long_name = "atmospheric surface height" ;
        ATM_TOPO:units = "m" ;
        ATM_TOPO:cell_methods = "time: mean" ;
        ATM_TOPO:_FillValue = 1.e+36f ;
        ATM_TOPO:missing_value = 1.e+36f ;
    float BCDEP(time, lndgrid) ;
        BCDEP:long_name = "total BC deposition (dry+wet) from atmosphere" ;
        BCDEP:units = "kg/m^2/s" ;
        BCDEP:cell_methods = "time: mean" ;
        BCDEP:_FillValue = 1.e+36f ;
        BCDEP:missing_value = 1.e+36f ;
    float BTRAN(time, lndgrid) ;
        BTRAN:long_name = "transpiration beta factor" ;
        BTRAN:units = "unitless" ;
        BTRAN:cell_methods = "time: mean" ;
        BTRAN:_FillValue = 1.e+36f ;
        BTRAN:missing_value = 1.e+36f ;
    float BUILDHEAT(time, lndgrid) ;
        BUILDHEAT:long_name = "heat flux from urban building interior to walls and roof" ;
        BUILDHEAT:units = "W/m^2" ;
        BUILDHEAT:cell_methods = "time: mean" ;
        BUILDHEAT:_FillValue = 1.e+36f ;
        BUILDHEAT:missing_value = 1.e+36f ;
    float CROOTFR(time, levgrnd, lndgrid) ;
        CROOTFR:long_name = "fraction of roots for carbon in each soil layer" ;
        CROOTFR:units = "proportion" ;
        CROOTFR:cell_methods = "time: mean" ;
        CROOTFR:_FillValue = 1.e+36f ;
        CROOTFR:missing_value = 1.e+36f ;
    float DSL(time, lndgrid) ;
        DSL:long_name = "dry surface layer thickness" ;
        DSL:units = "mm" ;
        DSL:cell_methods = "time: mean" ;
        DSL:_FillValue = 1.e+36f ;
        DSL:missing_value = 1.e+36f ;
    float DSTDEP(time, lndgrid) ;
        DSTDEP:long_name = "total dust deposition (dry+wet) from atmosphere" ;
        DSTDEP:units = "kg/m^2/s" ;
        DSTDEP:cell_methods = "time: mean" ;
        DSTDEP:_FillValue = 1.e+36f ;
        DSTDEP:missing_value = 1.e+36f ;
    float DSTFLXT(time, lndgrid) ;
        DSTFLXT:long_name = "total surface dust emission" ;
        DSTFLXT:units = "kg/m2/s" ;
        DSTFLXT:cell_methods = "time: mean" ;
        DSTFLXT:_FillValue = 1.e+36f ;
        DSTFLXT:missing_value = 1.e+36f ;
    float EFLX_DYNBAL(time, lndgrid) ;
        EFLX_DYNBAL:long_name = "dynamic land cover change conversion energy flux" ;
        EFLX_DYNBAL:units = "W/m^2" ;
        EFLX_DYNBAL:cell_methods = "time: mean" ;
        EFLX_DYNBAL:_FillValue = 1.e+36f ;
        EFLX_DYNBAL:missing_value = 1.e+36f ;
    float EFLX_GRND_LAKE(time, lndgrid) ;
        EFLX_GRND_LAKE:long_name = "net heat flux into lake/snow surface, excluding light transmission" ;
        EFLX_GRND_LAKE:units = "W/m^2" ;
        EFLX_GRND_LAKE:cell_methods = "time: mean" ;
        EFLX_GRND_LAKE:_FillValue = 1.e+36f ;
        EFLX_GRND_LAKE:missing_value = 1.e+36f ;
    float EFLX_LH_TOT(time, lndgrid) ;
        EFLX_LH_TOT:long_name = "total latent heat flux [+ to atm]" ;
        EFLX_LH_TOT:units = "W/m^2" ;
        EFLX_LH_TOT:cell_methods = "time: mean" ;
        EFLX_LH_TOT:_FillValue = 1.e+36f ;
        EFLX_LH_TOT:missing_value = 1.e+36f ;
    float EFLX_LH_TOT_R(time, lndgrid) ;
        EFLX_LH_TOT_R:long_name = "Rural total evaporation" ;
        EFLX_LH_TOT_R:units = "W/m^2" ;
        EFLX_LH_TOT_R:cell_methods = "time: mean" ;
        EFLX_LH_TOT_R:_FillValue = 1.e+36f ;
        EFLX_LH_TOT_R:missing_value = 1.e+36f ;
    float EFLX_LH_TOT_U(time, lndgrid) ;
        EFLX_LH_TOT_U:long_name = "Urban total evaporation" ;
        EFLX_LH_TOT_U:units = "W/m^2" ;
        EFLX_LH_TOT_U:cell_methods = "time: mean" ;
        EFLX_LH_TOT_U:_FillValue = 1.e+36f ;
        EFLX_LH_TOT_U:missing_value = 1.e+36f ;
    float ELAI(time, lndgrid) ;
        ELAI:long_name = "exposed one-sided leaf area index" ;
        ELAI:units = "m^2/m^2" ;
        ELAI:cell_methods = "time: mean" ;
        ELAI:_FillValue = 1.e+36f ;
        ELAI:missing_value = 1.e+36f ;
    float ERRH2O(time, lndgrid) ;
        ERRH2O:long_name = "total water conservation error" ;
        ERRH2O:units = "mm" ;
        ERRH2O:cell_methods = "time: mean" ;
        ERRH2O:_FillValue = 1.e+36f ;
        ERRH2O:missing_value = 1.e+36f ;
    float ERRH2OSNO(time, lndgrid) ;
        ERRH2OSNO:long_name = "imbalance in snow depth (liquid water)" ;
        ERRH2OSNO:units = "mm" ;
        ERRH2OSNO:cell_methods = "time: mean" ;
        ERRH2OSNO:_FillValue = 1.e+36f ;
        ERRH2OSNO:missing_value = 1.e+36f ;
    float ERRSEB(time, lndgrid) ;
        ERRSEB:long_name = "surface energy conservation error" ;
        ERRSEB:units = "W/m^2" ;
        ERRSEB:cell_methods = "time: mean" ;
        ERRSEB:_FillValue = 1.e+36f ;
        ERRSEB:missing_value = 1.e+36f ;
    float ERRSOI(time, lndgrid) ;
        ERRSOI:long_name = "soil/lake energy conservation error" ;
        ERRSOI:units = "W/m^2" ;
        ERRSOI:cell_methods = "time: mean" ;
        ERRSOI:_FillValue = 1.e+36f ;
        ERRSOI:missing_value = 1.e+36f ;
    float ERRSOL(time, lndgrid) ;
        ERRSOL:long_name = "solar radiation conservation error" ;
        ERRSOL:units = "W/m^2" ;
        ERRSOL:cell_methods = "time: mean" ;
        ERRSOL:_FillValue = 1.e+36f ;
        ERRSOL:missing_value = 1.e+36f ;
    float ESAI(time, lndgrid) ;
        ESAI:long_name = "exposed one-sided stem area index" ;
        ESAI:units = "m^2/m^2" ;
        ESAI:cell_methods = "time: mean" ;
        ESAI:_FillValue = 1.e+36f ;
        ESAI:missing_value = 1.e+36f ;
    float FCEV(time, lndgrid) ;
        FCEV:long_name = "canopy evaporation" ;
        FCEV:units = "W/m^2" ;
        FCEV:cell_methods = "time: mean" ;
        FCEV:_FillValue = 1.e+36f ;
        FCEV:missing_value = 1.e+36f ;
    float FCOV(time, lndgrid) ;
        FCOV:long_name = "fractional impermeable area" ;
        FCOV:units = "unitless" ;
        FCOV:cell_methods = "time: mean" ;
        FCOV:_FillValue = 1.e+36f ;
        FCOV:missing_value = 1.e+36f ;
    float FCTR(time, lndgrid) ;
        FCTR:long_name = "canopy transpiration" ;
        FCTR:units = "W/m^2" ;
        FCTR:cell_methods = "time: mean" ;
        FCTR:_FillValue = 1.e+36f ;
        FCTR:missing_value = 1.e+36f ;
    float FGEV(time, lndgrid) ;
        FGEV:long_name = "ground evaporation" ;
        FGEV:units = "W/m^2" ;
        FGEV:cell_methods = "time: mean" ;
        FGEV:_FillValue = 1.e+36f ;
        FGEV:missing_value = 1.e+36f ;
    float FGR(time, lndgrid) ;
        FGR:long_name = "heat flux into soil/snow including snow melt and lake / snow light transmission" ;
        FGR:units = "W/m^2" ;
        FGR:cell_methods = "time: mean" ;
        FGR:_FillValue = 1.e+36f ;
        FGR:missing_value = 1.e+36f ;
    float FGR12(time, lndgrid) ;
        FGR12:long_name = "heat flux between soil layers 1 and 2" ;
        FGR12:units = "W/m^2" ;
        FGR12:cell_methods = "time: mean" ;
        FGR12:_FillValue = 1.e+36f ;
        FGR12:missing_value = 1.e+36f ;
    float FGR_R(time, lndgrid) ;
        FGR_R:long_name = "Rural heat flux into soil/snow including snow melt and snow light transmission" ;
        FGR_R:units = "W/m^2" ;
        FGR_R:cell_methods = "time: mean" ;
        FGR_R:_FillValue = 1.e+36f ;
        FGR_R:missing_value = 1.e+36f ;
    float FGR_U(time, lndgrid) ;
        FGR_U:long_name = "Urban heat flux into soil/snow including snow melt" ;
        FGR_U:units = "W/m^2" ;
        FGR_U:cell_methods = "time: mean" ;
        FGR_U:_FillValue = 1.e+36f ;
        FGR_U:missing_value = 1.e+36f ;
    float FH2OSFC(time, lndgrid) ;
        FH2OSFC:long_name = "fraction of ground covered by surface water" ;
        FH2OSFC:units = "unitless" ;
        FH2OSFC:cell_methods = "time: mean" ;
        FH2OSFC:_FillValue = 1.e+36f ;
        FH2OSFC:missing_value = 1.e+36f ;
    float FIRA(time, lndgrid) ;
        FIRA:long_name = "net infrared (longwave) radiation" ;
        FIRA:units = "W/m^2" ;
        FIRA:cell_methods = "time: mean" ;
        FIRA:_FillValue = 1.e+36f ;
        FIRA:missing_value = 1.e+36f ;
    float FIRA_R(time, lndgrid) ;
        FIRA_R:long_name = "Rural net infrared (longwave) radiation" ;
        FIRA_R:units = "W/m^2" ;
        FIRA_R:cell_methods = "time: mean" ;
        FIRA_R:_FillValue = 1.e+36f ;
        FIRA_R:missing_value = 1.e+36f ;
    float FIRA_U(time, lndgrid) ;
        FIRA_U:long_name = "Urban net infrared (longwave) radiation" ;
        FIRA_U:units = "W/m^2" ;
        FIRA_U:cell_methods = "time: mean" ;
        FIRA_U:_FillValue = 1.e+36f ;
        FIRA_U:missing_value = 1.e+36f ;
    float FIRE(time, lndgrid) ;
        FIRE:long_name = "emitted infrared (longwave) radiation" ;
        FIRE:units = "W/m^2" ;
        FIRE:cell_methods = "time: mean" ;
        FIRE:_FillValue = 1.e+36f ;
        FIRE:missing_value = 1.e+36f ;
    float FIRE_R(time, lndgrid) ;
        FIRE_R:long_name = "Rural emitted infrared (longwave) radiation" ;
        FIRE_R:units = "W/m^2" ;
        FIRE_R:cell_methods = "time: mean" ;
        FIRE_R:_FillValue = 1.e+36f ;
        FIRE_R:missing_value = 1.e+36f ;
    float FIRE_U(time, lndgrid) ;
        FIRE_U:long_name = "Urban emitted infrared (longwave) radiation" ;
        FIRE_U:units = "W/m^2" ;
        FIRE_U:cell_methods = "time: mean" ;
        FIRE_U:_FillValue = 1.e+36f ;
        FIRE_U:missing_value = 1.e+36f ;
    float FLDS(time, lndgrid) ;
        FLDS:long_name = "atmospheric longwave radiation" ;
        FLDS:units = "W/m^2" ;
        FLDS:cell_methods = "time: mean" ;
        FLDS:_FillValue = 1.e+36f ;
        FLDS:missing_value = 1.e+36f ;
    float FPSN(time, lndgrid) ;
        FPSN:long_name = "photosynthesis" ;
        FPSN:units = "umol/m2s" ;
        FPSN:cell_methods = "time: mean" ;
        FPSN:_FillValue = 1.e+36f ;
        FPSN:missing_value = 1.e+36f ;
    float FPSN_WC(time, lndgrid) ;
        FPSN_WC:long_name = "Rubisco-limited photosynthesis" ;
        FPSN_WC:units = "umol/m2s" ;
        FPSN_WC:cell_methods = "time: mean" ;
        FPSN_WC:_FillValue = 1.e+36f ;
        FPSN_WC:missing_value = 1.e+36f ;
    float FPSN_WJ(time, lndgrid) ;
        FPSN_WJ:long_name = "RuBP-limited photosynthesis" ;
        FPSN_WJ:units = "umol/m2s" ;
        FPSN_WJ:cell_methods = "time: mean" ;
        FPSN_WJ:_FillValue = 1.e+36f ;
        FPSN_WJ:missing_value = 1.e+36f ;
    float FPSN_WP(time, lndgrid) ;
        FPSN_WP:long_name = "Product-limited photosynthesis" ;
        FPSN_WP:units = "umol/m2s" ;
        FPSN_WP:cell_methods = "time: mean" ;
        FPSN_WP:_FillValue = 1.e+36f ;
        FPSN_WP:missing_value = 1.e+36f ;
    float FROST_TABLE(time, lndgrid) ;
        FROST_TABLE:long_name = "frost table depth (vegetated landunits only)" ;
        FROST_TABLE:units = "m" ;
        FROST_TABLE:cell_methods = "time: mean" ;
        FROST_TABLE:_FillValue = 1.e+36f ;
        FROST_TABLE:missing_value = 1.e+36f ;
    float FSA(time, lndgrid) ;
        FSA:long_name = "absorbed solar radiation" ;
        FSA:units = "W/m^2" ;
        FSA:cell_methods = "time: mean" ;
        FSA:_FillValue = 1.e+36f ;
        FSA:missing_value = 1.e+36f ;
    float FSAT(time, lndgrid) ;
        FSAT:long_name = "fractional area with water table at surface" ;
        FSAT:units = "unitless" ;
        FSAT:cell_methods = "time: mean" ;
        FSAT:_FillValue = 1.e+36f ;
        FSAT:missing_value = 1.e+36f ;
    float FSA_R(time, lndgrid) ;
        FSA_R:long_name = "Rural absorbed solar radiation" ;
        FSA_R:units = "W/m^2" ;
        FSA_R:cell_methods = "time: mean" ;
        FSA_R:_FillValue = 1.e+36f ;
        FSA_R:missing_value = 1.e+36f ;
    float FSA_U(time, lndgrid) ;
        FSA_U:long_name = "Urban absorbed solar radiation" ;
        FSA_U:units = "W/m^2" ;
        FSA_U:cell_methods = "time: mean" ;
        FSA_U:_FillValue = 1.e+36f ;
        FSA_U:missing_value = 1.e+36f ;
    float FSDS(time, lndgrid) ;
        FSDS:long_name = "atmospheric incident solar radiation" ;
        FSDS:units = "W/m^2" ;
        FSDS:cell_methods = "time: instantaneous" ;
        FSDS:_FillValue = 1.e+36f ;
        FSDS:missing_value = 1.e+36f ;
    float FSDSND(time, lndgrid) ;
        FSDSND:long_name = "direct nir incident solar radiation" ;
        FSDSND:units = "W/m^2" ;
        FSDSND:cell_methods = "time: mean" ;
        FSDSND:_FillValue = 1.e+36f ;
        FSDSND:missing_value = 1.e+36f ;
    float FSDSNDLN(time, lndgrid) ;
        FSDSNDLN:long_name = "direct nir incident solar radiation at local noon" ;
        FSDSNDLN:units = "W/m^2" ;
        FSDSNDLN:cell_methods = "time: mean" ;
        FSDSNDLN:_FillValue = 1.e+36f ;
        FSDSNDLN:missing_value = 1.e+36f ;
    float FSDSNI(time, lndgrid) ;
        FSDSNI:long_name = "diffuse nir incident solar radiation" ;
        FSDSNI:units = "W/m^2" ;
        FSDSNI:cell_methods = "time: mean" ;
        FSDSNI:_FillValue = 1.e+36f ;
        FSDSNI:missing_value = 1.e+36f ;
    float FSDSVD(time, lndgrid) ;
        FSDSVD:long_name = "direct vis incident solar radiation" ;
        FSDSVD:units = "W/m^2" ;
        FSDSVD:cell_methods = "time: mean" ;
        FSDSVD:_FillValue = 1.e+36f ;
        FSDSVD:missing_value = 1.e+36f ;
    float FSDSVDLN(time, lndgrid) ;
        FSDSVDLN:long_name = "direct vis incident solar radiation at local noon" ;
        FSDSVDLN:units = "W/m^2" ;
        FSDSVDLN:cell_methods = "time: mean" ;
        FSDSVDLN:_FillValue = 1.e+36f ;
        FSDSVDLN:missing_value = 1.e+36f ;
    float FSDSVI(time, lndgrid) ;
        FSDSVI:long_name = "diffuse vis incident solar radiation" ;
        FSDSVI:units = "W/m^2" ;
        FSDSVI:cell_methods = "time: mean" ;
        FSDSVI:_FillValue = 1.e+36f ;
        FSDSVI:missing_value = 1.e+36f ;
    float FSDSVILN(time, lndgrid) ;
        FSDSVILN:long_name = "diffuse vis incident solar radiation at local noon" ;
        FSDSVILN:units = "W/m^2" ;
        FSDSVILN:cell_methods = "time: mean" ;
        FSDSVILN:_FillValue = 1.e+36f ;
        FSDSVILN:missing_value = 1.e+36f ;
    float FSH(time, lndgrid) ;
        FSH:long_name = "sensible heat not including correction for land use change and rain/snow conversion" ;
        FSH:units = "W/m^2" ;
        FSH:cell_methods = "time: mean" ;
        FSH:_FillValue = 1.e+36f ;
        FSH:missing_value = 1.e+36f ;
    float FSH_G(time, lndgrid) ;
        FSH_G:long_name = "sensible heat from ground" ;
        FSH_G:units = "W/m^2" ;
        FSH_G:cell_methods = "time: mean" ;
        FSH_G:_FillValue = 1.e+36f ;
        FSH_G:missing_value = 1.e+36f ;
    float FSH_PRECIP_CONVERSION(time, lndgrid) ;
        FSH_PRECIP_CONVERSION:long_name = "Sensible heat flux from conversion of rain/snow atm forcing" ;
        FSH_PRECIP_CONVERSION:units = "W/m^2" ;
        FSH_PRECIP_CONVERSION:cell_methods = "time: mean" ;
        FSH_PRECIP_CONVERSION:_FillValue = 1.e+36f ;
        FSH_PRECIP_CONVERSION:missing_value = 1.e+36f ;
    float FSH_R(time, lndgrid) ;
        FSH_R:long_name = "Rural sensible heat" ;
        FSH_R:units = "W/m^2" ;
        FSH_R:cell_methods = "time: mean" ;
        FSH_R:_FillValue = 1.e+36f ;
        FSH_R:missing_value = 1.e+36f ;
    float FSH_TO_COUPLER(time, lndgrid) ;
        FSH_TO_COUPLER:long_name = "sensible heat sent to coupler (includes corrections for land use change and rain/snow conversion)" ;
        FSH_TO_COUPLER:units = "W/m^2" ;
        FSH_TO_COUPLER:cell_methods = "time: mean" ;
        FSH_TO_COUPLER:_FillValue = 1.e+36f ;
        FSH_TO_COUPLER:missing_value = 1.e+36f ;
    float FSH_U(time, lndgrid) ;
        FSH_U:long_name = "Urban sensible heat" ;
        FSH_U:units = "W/m^2" ;
        FSH_U:cell_methods = "time: mean" ;
        FSH_U:_FillValue = 1.e+36f ;
        FSH_U:missing_value = 1.e+36f ;
    float FSH_V(time, lndgrid) ;
        FSH_V:long_name = "sensible heat from veg" ;
        FSH_V:units = "W/m^2" ;
        FSH_V:cell_methods = "time: mean" ;
        FSH_V:_FillValue = 1.e+36f ;
        FSH_V:missing_value = 1.e+36f ;
    float FSM(time, lndgrid) ;
        FSM:long_name = "snow melt heat flux" ;
        FSM:units = "W/m^2" ;
        FSM:cell_methods = "time: mean" ;
        FSM:_FillValue = 1.e+36f ;
        FSM:missing_value = 1.e+36f ;
    float FSM_R(time, lndgrid) ;
        FSM_R:long_name = "Rural snow melt heat flux" ;
        FSM_R:units = "W/m^2" ;
        FSM_R:cell_methods = "time: mean" ;
        FSM_R:_FillValue = 1.e+36f ;
        FSM_R:missing_value = 1.e+36f ;
    float FSM_U(time, lndgrid) ;
        FSM_U:long_name = "Urban snow melt heat flux" ;
        FSM_U:units = "W/m^2" ;
        FSM_U:cell_methods = "time: mean" ;
        FSM_U:_FillValue = 1.e+36f ;
        FSM_U:missing_value = 1.e+36f ;
    float FSNO(time, lndgrid) ;
        FSNO:long_name = "fraction of ground covered by snow" ;
        FSNO:units = "unitless" ;
        FSNO:cell_methods = "time: mean" ;
        FSNO:_FillValue = 1.e+36f ;
        FSNO:missing_value = 1.e+36f ;
    float FSNO_EFF(time, lndgrid) ;
        FSNO_EFF:long_name = "effective fraction of ground covered by snow" ;
        FSNO_EFF:units = "unitless" ;
        FSNO_EFF:cell_methods = "time: mean" ;
        FSNO_EFF:_FillValue = 1.e+36f ;
        FSNO_EFF:missing_value = 1.e+36f ;
    float FSR(time, lndgrid) ;
        FSR:long_name = "reflected solar radiation" ;
        FSR:units = "W/m^2" ;
        FSR:cell_methods = "time: mean" ;
        FSR:_FillValue = 1.e+36f ;
        FSR:missing_value = 1.e+36f ;
    float FSRND(time, lndgrid) ;
        FSRND:long_name = "direct nir reflected solar radiation" ;
        FSRND:units = "W/m^2" ;
        FSRND:cell_methods = "time: mean" ;
        FSRND:_FillValue = 1.e+36f ;
        FSRND:missing_value = 1.e+36f ;
    float FSRNDLN(time, lndgrid) ;
        FSRNDLN:long_name = "direct nir reflected solar radiation at local noon" ;
        FSRNDLN:units = "W/m^2" ;
        FSRNDLN:cell_methods = "time: mean" ;
        FSRNDLN:_FillValue = 1.e+36f ;
        FSRNDLN:missing_value = 1.e+36f ;
    float FSRNI(time, lndgrid) ;
        FSRNI:long_name = "diffuse nir reflected solar radiation" ;
        FSRNI:units = "W/m^2" ;
        FSRNI:cell_methods = "time: mean" ;
        FSRNI:_FillValue = 1.e+36f ;
        FSRNI:missing_value = 1.e+36f ;
    float FSRVD(time, lndgrid) ;
        FSRVD:long_name = "direct vis reflected solar radiation" ;
        FSRVD:units = "W/m^2" ;
        FSRVD:cell_methods = "time: mean" ;
        FSRVD:_FillValue = 1.e+36f ;
        FSRVD:missing_value = 1.e+36f ;
    float FSRVDLN(time, lndgrid) ;
        FSRVDLN:long_name = "direct vis reflected solar radiation at local noon" ;
        FSRVDLN:units = "W/m^2" ;
        FSRVDLN:cell_methods = "time: mean" ;
        FSRVDLN:_FillValue = 1.e+36f ;
        FSRVDLN:missing_value = 1.e+36f ;
    float FSRVI(time, lndgrid) ;
        FSRVI:long_name = "diffuse vis reflected solar radiation" ;
        FSRVI:units = "W/m^2" ;
        FSRVI:cell_methods = "time: mean" ;
        FSRVI:_FillValue = 1.e+36f ;
        FSRVI:missing_value = 1.e+36f ;
    float GCCANOPY(time, lndgrid) ;
        GCCANOPY:long_name = "Canopy Conductance: mmol m-2 s-1" ;
        GCCANOPY:units = "none" ;
        GCCANOPY:cell_methods = "time: mean" ;
        GCCANOPY:_FillValue = 1.e+36f ;
        GCCANOPY:missing_value = 1.e+36f ;
    float GC_HEAT1(time, lndgrid) ;
        GC_HEAT1:long_name = "initial gridcell total heat content" ;
        GC_HEAT1:units = "J/m^2" ;
        GC_HEAT1:cell_methods = "time: mean" ;
        GC_HEAT1:_FillValue = 1.e+36f ;
        GC_HEAT1:missing_value = 1.e+36f ;
    float GC_ICE1(time, lndgrid) ;
        GC_ICE1:long_name = "initial gridcell total ice content" ;
        GC_ICE1:units = "mm" ;
        GC_ICE1:cell_methods = "time: mean" ;
        GC_ICE1:_FillValue = 1.e+36f ;
        GC_ICE1:missing_value = 1.e+36f ;
    float GC_LIQ1(time, lndgrid) ;
        GC_LIQ1:long_name = "initial gridcell total liq content" ;
        GC_LIQ1:units = "mm" ;
        GC_LIQ1:cell_methods = "time: mean" ;
        GC_LIQ1:_FillValue = 1.e+36f ;
        GC_LIQ1:missing_value = 1.e+36f ;
    float H2OCAN(time, lndgrid) ;
        H2OCAN:long_name = "intercepted water" ;
        H2OCAN:units = "mm" ;
        H2OCAN:cell_methods = "time: mean" ;
        H2OCAN:_FillValue = 1.e+36f ;
        H2OCAN:missing_value = 1.e+36f ;
    float H2OSFC(time, lndgrid) ;
        H2OSFC:long_name = "surface water depth" ;
        H2OSFC:units = "mm" ;
        H2OSFC:cell_methods = "time: mean" ;
        H2OSFC:_FillValue = 1.e+36f ;
        H2OSFC:missing_value = 1.e+36f ;
    float H2OSNO(time, lndgrid) ;
        H2OSNO:long_name = "snow depth (liquid water)" ;
        H2OSNO:units = "mm" ;
        H2OSNO:cell_methods = "time: mean" ;
        H2OSNO:_FillValue = 1.e+36f ;
        H2OSNO:missing_value = 1.e+36f ;
    float H2OSNO_TOP(time, lndgrid) ;
        H2OSNO_TOP:long_name = "mass of snow in top snow layer" ;
        H2OSNO_TOP:units = "kg/m2" ;
        H2OSNO_TOP:cell_methods = "time: mean" ;
        H2OSNO_TOP:_FillValue = 1.e+36f ;
        H2OSNO_TOP:missing_value = 1.e+36f ;
    float H2OSOI(time, levgrnd, lndgrid) ;
        H2OSOI:long_name = "volumetric soil water (vegetated landunits only)" ;
        H2OSOI:units = "mm3/mm3" ;
        H2OSOI:cell_methods = "time: mean" ;
        H2OSOI:_FillValue = 1.e+36f ;
        H2OSOI:missing_value = 1.e+36f ;
    float HC(time, lndgrid) ;
        HC:long_name = "heat content of soil/snow/lake" ;
        HC:units = "MJ/m2" ;
        HC:cell_methods = "time: mean" ;
        HC:_FillValue = 1.e+36f ;
        HC:missing_value = 1.e+36f ;
    float HCSOI(time, lndgrid) ;
        HCSOI:long_name = "soil heat content" ;
        HCSOI:units = "MJ/m2" ;
        HCSOI:cell_methods = "time: mean" ;
        HCSOI:_FillValue = 1.e+36f ;
        HCSOI:missing_value = 1.e+36f ;
    float HEAT_FROM_AC(time, lndgrid) ;
        HEAT_FROM_AC:long_name = "sensible heat flux put into canyon due to heat removed from air conditioning" ;
        HEAT_FROM_AC:units = "W/m^2" ;
        HEAT_FROM_AC:cell_methods = "time: mean" ;
        HEAT_FROM_AC:_FillValue = 1.e+36f ;
        HEAT_FROM_AC:missing_value = 1.e+36f ;
    float INT_SNOW(time, lndgrid) ;
        INT_SNOW:long_name = "accumulated swe (vegetated landunits only)" ;
        INT_SNOW:units = "mm" ;
        INT_SNOW:cell_methods = "time: mean" ;
        INT_SNOW:_FillValue = 1.e+36f ;
        INT_SNOW:missing_value = 1.e+36f ;
    float LAISHA(time, lndgrid) ;
        LAISHA:long_name = "shaded projected leaf area index" ;
        LAISHA:units = "none" ;
        LAISHA:cell_methods = "time: mean" ;
        LAISHA:_FillValue = 1.e+36f ;
        LAISHA:missing_value = 1.e+36f ;
    float LAISUN(time, lndgrid) ;
        LAISUN:long_name = "sunlit projected leaf area index" ;
        LAISUN:units = "none" ;
        LAISUN:cell_methods = "time: mean" ;
        LAISUN:_FillValue = 1.e+36f ;
        LAISUN:missing_value = 1.e+36f ;
    float LAKEICEFRAC(time, levlak, lndgrid) ;
        LAKEICEFRAC:long_name = "lake layer ice mass fraction" ;
        LAKEICEFRAC:units = "unitless" ;
        LAKEICEFRAC:cell_methods = "time: mean" ;
        LAKEICEFRAC:_FillValue = 1.e+36f ;
        LAKEICEFRAC:missing_value = 1.e+36f ;
    float LAKEICETHICK(time, lndgrid) ;
        LAKEICETHICK:long_name = "thickness of lake ice (including physical expansion on freezing)" ;
        LAKEICETHICK:units = "m" ;
        LAKEICETHICK:cell_methods = "time: mean" ;
        LAKEICETHICK:_FillValue = 1.e+36f ;
        LAKEICETHICK:missing_value = 1.e+36f ;
    float LIQCAN(time, lndgrid) ;
        LIQCAN:long_name = "intercepted liquid water" ;
        LIQCAN:units = "mm" ;
        LIQCAN:cell_methods = "time: mean" ;
        LIQCAN:_FillValue = 1.e+36f ;
        LIQCAN:missing_value = 1.e+36f ;
    float OCDEP(time, lndgrid) ;
        OCDEP:long_name = "total OC deposition (dry+wet) from atmosphere" ;
        OCDEP:units = "kg/m^2/s" ;
        OCDEP:cell_methods = "time: mean" ;
        OCDEP:_FillValue = 1.e+36f ;
        OCDEP:missing_value = 1.e+36f ;
    float PARVEGLN(time, lndgrid) ;
        PARVEGLN:long_name = "absorbed par by vegetation at local noon" ;
        PARVEGLN:units = "W/m^2" ;
        PARVEGLN:cell_methods = "time: mean" ;
        PARVEGLN:_FillValue = 1.e+36f ;
        PARVEGLN:missing_value = 1.e+36f ;
    float PBOT(time, lndgrid) ;
        PBOT:long_name = "atmospheric pressure" ;
        PBOT:units = "Pa" ;
        PBOT:cell_methods = "time: mean" ;
        PBOT:_FillValue = 1.e+36f ;
        PBOT:missing_value = 1.e+36f ;
    float PCO2(time, lndgrid) ;
        PCO2:long_name = "atmospheric partial pressure of CO2" ;
        PCO2:units = "Pa" ;
        PCO2:cell_methods = "time: mean" ;
        PCO2:_FillValue = 1.e+36f ;
        PCO2:missing_value = 1.e+36f ;
    float PCT_LANDUNIT(time, ltype, lndgrid) ;
        PCT_LANDUNIT:long_name = "% of each landunit on grid cell" ;
        PCT_LANDUNIT:units = "%" ;
        PCT_LANDUNIT:cell_methods = "time: mean" ;
        PCT_LANDUNIT:_FillValue = 1.e+36f ;
        PCT_LANDUNIT:missing_value = 1.e+36f ;
    float PCT_NAT_PFT(time, natpft, lndgrid) ;
        PCT_NAT_PFT:long_name = "% of each PFT on the natural vegetation (i.e., soil) landunit" ;
        PCT_NAT_PFT:units = "%" ;
        PCT_NAT_PFT:cell_methods = "time: mean" ;
        PCT_NAT_PFT:_FillValue = 1.e+36f ;
        PCT_NAT_PFT:missing_value = 1.e+36f ;
    float Q2M(time, lndgrid) ;
        Q2M:long_name = "2m specific humidity" ;
        Q2M:units = "kg/kg" ;
        Q2M:cell_methods = "time: mean" ;
        Q2M:_FillValue = 1.e+36f ;
        Q2M:missing_value = 1.e+36f ;
    float QBOT(time, lndgrid) ;
        QBOT:long_name = "atmospheric specific humidity" ;
        QBOT:units = "kg/kg" ;
        QBOT:cell_methods = "time: mean" ;
        QBOT:_FillValue = 1.e+36f ;
        QBOT:missing_value = 1.e+36f ;
    float QCHARGE(time, lndgrid) ;
        QCHARGE:long_name = "aquifer recharge rate (vegetated landunits only)" ;
        QCHARGE:units = "mm/s" ;
        QCHARGE:cell_methods = "time: mean" ;
        QCHARGE:_FillValue = 1.e+36f ;
        QCHARGE:missing_value = 1.e+36f ;
    float QDRAI(time, lndgrid) ;
        QDRAI:long_name = "sub-surface drainage" ;
        QDRAI:units = "mm/s" ;
        QDRAI:cell_methods = "time: mean" ;
        QDRAI:_FillValue = 1.e+36f ;
        QDRAI:missing_value = 1.e+36f ;
    float QDRAI_PERCH(time, lndgrid) ;
        QDRAI_PERCH:long_name = "perched wt drainage" ;
        QDRAI_PERCH:units = "mm/s" ;
        QDRAI_PERCH:cell_methods = "time: mean" ;
        QDRAI_PERCH:_FillValue = 1.e+36f ;
        QDRAI_PERCH:missing_value = 1.e+36f ;
    float QDRAI_XS(time, lndgrid) ;
        QDRAI_XS:long_name = "saturation excess drainage" ;
        QDRAI_XS:units = "mm/s" ;
        QDRAI_XS:cell_methods = "time: mean" ;
        QDRAI_XS:_FillValue = 1.e+36f ;
        QDRAI_XS:missing_value = 1.e+36f ;
    float QDRIP(time, lndgrid) ;
        QDRIP:long_name = "throughfall" ;
        QDRIP:units = "mm/s" ;
        QDRIP:cell_methods = "time: mean" ;
        QDRIP:_FillValue = 1.e+36f ;
        QDRIP:missing_value = 1.e+36f ;
    float QFLOOD(time, lndgrid) ;
        QFLOOD:long_name = "runoff from river flooding" ;
        QFLOOD:units = "mm/s" ;
        QFLOOD:cell_methods = "time: mean" ;
        QFLOOD:_FillValue = 1.e+36f ;
        QFLOOD:missing_value = 1.e+36f ;
    float QFLX_ICE_DYNBAL(time, lndgrid) ;
        QFLX_ICE_DYNBAL:long_name = "ice dynamic land cover change conversion runoff flux" ;
        QFLX_ICE_DYNBAL:units = "mm/s" ;
        QFLX_ICE_DYNBAL:cell_methods = "time: mean" ;
        QFLX_ICE_DYNBAL:_FillValue = 1.e+36f ;
        QFLX_ICE_DYNBAL:missing_value = 1.e+36f ;
    float QFLX_LIQ_DYNBAL(time, lndgrid) ;
        QFLX_LIQ_DYNBAL:long_name = "liq dynamic land cover change conversion runoff flux" ;
        QFLX_LIQ_DYNBAL:units = "mm/s" ;
        QFLX_LIQ_DYNBAL:cell_methods = "time: mean" ;
        QFLX_LIQ_DYNBAL:_FillValue = 1.e+36f ;
        QFLX_LIQ_DYNBAL:missing_value = 1.e+36f ;
    float QFLX_SNOW_DRAIN(time, lndgrid) ;
        QFLX_SNOW_DRAIN:long_name = "drainage from snow pack" ;
        QFLX_SNOW_DRAIN:units = "mm/s" ;
        QFLX_SNOW_DRAIN:cell_methods = "time: mean" ;
        QFLX_SNOW_DRAIN:_FillValue = 1.e+36f ;
        QFLX_SNOW_DRAIN:missing_value = 1.e+36f ;
    float QH2OSFC(time, lndgrid) ;
        QH2OSFC:long_name = "surface water runoff" ;
        QH2OSFC:units = "mm/s" ;
        QH2OSFC:cell_methods = "time: mean" ;
        QH2OSFC:_FillValue = 1.e+36f ;
        QH2OSFC:missing_value = 1.e+36f ;
    float QINFL(time, lndgrid) ;
        QINFL:long_name = "infiltration" ;
        QINFL:units = "mm/s" ;
        QINFL:cell_methods = "time: mean" ;
        QINFL:_FillValue = 1.e+36f ;
        QINFL:missing_value = 1.e+36f ;
    float QINTR(time, lndgrid) ;
        QINTR:long_name = "interception" ;
        QINTR:units = "mm/s" ;
        QINTR:cell_methods = "time: mean" ;
        QINTR:_FillValue = 1.e+36f ;
        QINTR:missing_value = 1.e+36f ;
    float QIRRIG(time, lndgrid) ;
        QIRRIG:long_name = "water added through irrigation" ;
        QIRRIG:units = "mm/s" ;
        QIRRIG:cell_methods = "time: mean" ;
        QIRRIG:_FillValue = 1.e+36f ;
        QIRRIG:missing_value = 1.e+36f ;
    float QOVER(time, lndgrid) ;
        QOVER:long_name = "surface runoff" ;
        QOVER:units = "mm/s" ;
        QOVER:cell_methods = "time: mean" ;
        QOVER:_FillValue = 1.e+36f ;
        QOVER:missing_value = 1.e+36f ;
    float QRGWL(time, lndgrid) ;
        QRGWL:long_name = "surface runoff at glaciers (liquid only), wetlands, lakes" ;
        QRGWL:units = "mm/s" ;
        QRGWL:cell_methods = "time: mean" ;
        QRGWL:_FillValue = 1.e+36f ;
        QRGWL:missing_value = 1.e+36f ;
    float QRUNOFF(time, lndgrid) ;
        QRUNOFF:long_name = "total liquid runoff (does not include QSNWCPICE) not including correction for land use change" ;
        QRUNOFF:units = "mm/s" ;
        QRUNOFF:cell_methods = "time: mean" ;
        QRUNOFF:_FillValue = 1.e+36f ;
        QRUNOFF:missing_value = 1.e+36f ;
    float QRUNOFF_ICE_TO_COUPLER(time, lndgrid) ;
        QRUNOFF_ICE_TO_COUPLER:long_name = "total ice runoff sent to coupler (includes corrections for land use change)" ;
        QRUNOFF_ICE_TO_COUPLER:units = "mm/s" ;
        QRUNOFF_ICE_TO_COUPLER:cell_methods = "time: mean" ;
        QRUNOFF_ICE_TO_COUPLER:_FillValue = 1.e+36f ;
        QRUNOFF_ICE_TO_COUPLER:missing_value = 1.e+36f ;
    float QRUNOFF_R(time, lndgrid) ;
        QRUNOFF_R:long_name = "Rural total runoff" ;
        QRUNOFF_R:units = "mm/s" ;
        QRUNOFF_R:cell_methods = "time: mean" ;
        QRUNOFF_R:_FillValue = 1.e+36f ;
        QRUNOFF_R:missing_value = 1.e+36f ;
    float QRUNOFF_TO_COUPLER(time, lndgrid) ;
        QRUNOFF_TO_COUPLER:long_name = "total liquid runoff sent to coupler (does not include QSNWCPICE) (includes corrections for land use change)" ;
        QRUNOFF_TO_COUPLER:units = "mm/s" ;
        QRUNOFF_TO_COUPLER:cell_methods = "time: mean" ;
        QRUNOFF_TO_COUPLER:_FillValue = 1.e+36f ;
        QRUNOFF_TO_COUPLER:missing_value = 1.e+36f ;
    float QRUNOFF_U(time, lndgrid) ;
        QRUNOFF_U:long_name = "Urban total runoff" ;
        QRUNOFF_U:units = "mm/s" ;
        QRUNOFF_U:cell_methods = "time: mean" ;
        QRUNOFF_U:_FillValue = 1.e+36f ;
        QRUNOFF_U:missing_value = 1.e+36f ;
    float QSNOFRZ(time, lndgrid) ;
        QSNOFRZ:long_name = "column-integrated snow freezing rate" ;
        QSNOFRZ:units = "kg/m2/s" ;
        QSNOFRZ:cell_methods = "time: mean" ;
        QSNOFRZ:_FillValue = 1.e+36f ;
        QSNOFRZ:missing_value = 1.e+36f ;
    float QSNOMELT(time, lndgrid) ;
        QSNOMELT:long_name = "snow melt" ;
        QSNOMELT:units = "mm/s" ;
        QSNOMELT:cell_methods = "time: mean" ;
        QSNOMELT:_FillValue = 1.e+36f ;
        QSNOMELT:missing_value = 1.e+36f ;
    float QSNOTEMPUNLOAD(time, lndgrid) ;
        QSNOTEMPUNLOAD:long_name = "canopy snow temp unloading" ;
        QSNOTEMPUNLOAD:units = "mm/s" ;
        QSNOTEMPUNLOAD:cell_methods = "time: mean" ;
        QSNOTEMPUNLOAD:_FillValue = 1.e+36f ;
        QSNOTEMPUNLOAD:missing_value = 1.e+36f ;
    float QSNOWINDUNLOAD(time, lndgrid) ;
        QSNOWINDUNLOAD:long_name = "canopy snow wind unloading" ;
        QSNOWINDUNLOAD:units = "mm/s" ;
        QSNOWINDUNLOAD:cell_methods = "time: mean" ;
        QSNOWINDUNLOAD:_FillValue = 1.e+36f ;
        QSNOWINDUNLOAD:missing_value = 1.e+36f ;
    float QSNWCPICE(time, lndgrid) ;
        QSNWCPICE:long_name = "excess solid h2o due to snow capping not including correction for land use change" ;
        QSNWCPICE:units = "mm H2O/s" ;
        QSNWCPICE:cell_methods = "time: mean" ;
        QSNWCPICE:_FillValue = 1.e+36f ;
        QSNWCPICE:missing_value = 1.e+36f ;
    float QSNWCPLIQ(time, lndgrid) ;
        QSNWCPLIQ:long_name = "excess liquid h2o due to snow capping not including correction for land use change" ;
        QSNWCPLIQ:units = "mm H2O/s" ;
        QSNWCPLIQ:cell_methods = "time: mean" ;
        QSNWCPLIQ:_FillValue = 1.e+36f ;
        QSNWCPLIQ:missing_value = 1.e+36f ;
    float QSOIL(time, lndgrid) ;
        QSOIL:long_name = "Ground evaporation (soil/snow evaporation + soil/snow sublimation - dew)" ;
        QSOIL:units = "mm/s" ;
        QSOIL:cell_methods = "time: mean" ;
        QSOIL:_FillValue = 1.e+36f ;
        QSOIL:missing_value = 1.e+36f ;
    float QVEGE(time, lndgrid) ;
        QVEGE:long_name = "canopy evaporation" ;
        QVEGE:units = "mm/s" ;
        QVEGE:cell_methods = "time: mean" ;
        QVEGE:_FillValue = 1.e+36f ;
        QVEGE:missing_value = 1.e+36f ;
    float QVEGT(time, lndgrid) ;
        QVEGT:long_name = "canopy transpiration" ;
        QVEGT:units = "mm/s" ;
        QVEGT:cell_methods = "time: mean" ;
        QVEGT:_FillValue = 1.e+36f ;
        QVEGT:missing_value = 1.e+36f ;
    float RAIN(time, lndgrid) ;
        RAIN:long_name = "atmospheric rain" ;
        RAIN:units = "mm/s" ;
        RAIN:cell_methods = "time: mean" ;
        RAIN:_FillValue = 1.e+36f ;
        RAIN:missing_value = 1.e+36f ;
    float RAIN_REPARTITIONED(time, lndgrid) ;
        RAIN_REPARTITIONED:long_name = "atmospheric rain, after rain/snow repartitioning based on temperature" ;
        RAIN_REPARTITIONED:units = "mm/s" ;
        RAIN_REPARTITIONED:cell_methods = "time: mean" ;
        RAIN_REPARTITIONED:_FillValue = 1.e+36f ;
        RAIN_REPARTITIONED:missing_value = 1.e+36f ;
    float RH2M(time, lndgrid) ;
        RH2M:long_name = "2m relative humidity" ;
        RH2M:units = "%" ;
        RH2M:cell_methods = "time: mean" ;
        RH2M:_FillValue = 1.e+36f ;
        RH2M:missing_value = 1.e+36f ;
    float RH2M_R(time, lndgrid) ;
        RH2M_R:long_name = "Rural 2m specific humidity" ;
        RH2M_R:units = "%" ;
        RH2M_R:cell_methods = "time: mean" ;
        RH2M_R:_FillValue = 1.e+36f ;
        RH2M_R:missing_value = 1.e+36f ;
    float RH2M_U(time, lndgrid) ;
        RH2M_U:long_name = "Urban 2m relative humidity" ;
        RH2M_U:units = "%" ;
        RH2M_U:cell_methods = "time: mean" ;
        RH2M_U:_FillValue = 1.e+36f ;
        RH2M_U:missing_value = 1.e+36f ;
    float ROOTFR(time, levgrnd, lndgrid) ;
        ROOTFR:long_name = "fraction of roots for water in each soil layer" ;
        ROOTFR:units = "proportion" ;
        ROOTFR:cell_methods = "time: mean" ;
        ROOTFR:_FillValue = 1.e+36f ;
        ROOTFR:missing_value = 1.e+36f ;
    float RSCANOPY(time, lndgrid) ;
        RSCANOPY:long_name = "canopy resistance" ;
        RSCANOPY:units = " s m-1" ;
        RSCANOPY:cell_methods = "time: mean" ;
        RSCANOPY:_FillValue = 1.e+36f ;
        RSCANOPY:missing_value = 1.e+36f ;
    float SABG(time, lndgrid) ;
        SABG:long_name = "solar rad absorbed by ground" ;
        SABG:units = "W/m^2" ;
        SABG:cell_methods = "time: mean" ;
        SABG:_FillValue = 1.e+36f ;
        SABG:missing_value = 1.e+36f ;
    float SABG_PEN(time, lndgrid) ;
        SABG_PEN:long_name = "Rural solar rad penetrating top soil or snow layer" ;
        SABG_PEN:units = "watt/m^2" ;
        SABG_PEN:cell_methods = "time: mean" ;
        SABG_PEN:_FillValue = 1.e+36f ;
        SABG_PEN:missing_value = 1.e+36f ;
    float SABV(time, lndgrid) ;
        SABV:long_name = "solar rad absorbed by veg" ;
        SABV:units = "W/m^2" ;
        SABV:cell_methods = "time: mean" ;
        SABV:_FillValue = 1.e+36f ;
        SABV:missing_value = 1.e+36f ;
    float SMP(time, levgrnd, lndgrid) ;
        SMP:long_name = "soil matric potential (vegetated landunits only)" ;
        SMP:units = "mm" ;
        SMP:cell_methods = "time: mean" ;
        SMP:_FillValue = 1.e+36f ;
        SMP:missing_value = 1.e+36f ;
    float SNOBCMCL(time, lndgrid) ;
        SNOBCMCL:long_name = "mass of BC in snow column" ;
        SNOBCMCL:units = "kg/m2" ;
        SNOBCMCL:cell_methods = "time: mean" ;
        SNOBCMCL:_FillValue = 1.e+36f ;
        SNOBCMCL:missing_value = 1.e+36f ;
    float SNOBCMSL(time, lndgrid) ;
        SNOBCMSL:long_name = "mass of BC in top snow layer" ;
        SNOBCMSL:units = "kg/m2" ;
        SNOBCMSL:cell_methods = "time: mean" ;
        SNOBCMSL:_FillValue = 1.e+36f ;
        SNOBCMSL:missing_value = 1.e+36f ;
    float SNOCAN(time, lndgrid) ;
        SNOCAN:long_name = "intercepted snow" ;
        SNOCAN:units = "mm" ;
        SNOCAN:cell_methods = "time: mean" ;
        SNOCAN:_FillValue = 1.e+36f ;
        SNOCAN:missing_value = 1.e+36f ;
    float SNODSTMCL(time, lndgrid) ;
        SNODSTMCL:long_name = "mass of dust in snow column" ;
        SNODSTMCL:units = "kg/m2" ;
        SNODSTMCL:cell_methods = "time: mean" ;
        SNODSTMCL:_FillValue = 1.e+36f ;
        SNODSTMCL:missing_value = 1.e+36f ;
    float SNODSTMSL(time, lndgrid) ;
        SNODSTMSL:long_name = "mass of dust in top snow layer" ;
        SNODSTMSL:units = "kg/m2" ;
        SNODSTMSL:cell_methods = "time: mean" ;
        SNODSTMSL:_FillValue = 1.e+36f ;
        SNODSTMSL:missing_value = 1.e+36f ;
    float SNOINTABS(time, lndgrid) ;
        SNOINTABS:long_name = "Percent of incoming solar absorbed by lower snow layers" ;
        SNOINTABS:units = "%" ;
        SNOINTABS:cell_methods = "time: mean" ;
        SNOINTABS:_FillValue = 1.e+36f ;
        SNOINTABS:missing_value = 1.e+36f ;
    float SNOOCMCL(time, lndgrid) ;
        SNOOCMCL:long_name = "mass of OC in snow column" ;
        SNOOCMCL:units = "kg/m2" ;
        SNOOCMCL:cell_methods = "time: mean" ;
        SNOOCMCL:_FillValue = 1.e+36f ;
        SNOOCMCL:missing_value = 1.e+36f ;
    float SNOOCMSL(time, lndgrid) ;
        SNOOCMSL:long_name = "mass of OC in top snow layer" ;
        SNOOCMSL:units = "kg/m2" ;
        SNOOCMSL:cell_methods = "time: mean" ;
        SNOOCMSL:_FillValue = 1.e+36f ;
        SNOOCMSL:missing_value = 1.e+36f ;
    float SNOUNLOAD(time, lndgrid) ;
        SNOUNLOAD:long_name = "Canopy snow unloading" ;
        SNOUNLOAD:units = "mm" ;
        SNOUNLOAD:cell_methods = "time: mean" ;
        SNOUNLOAD:_FillValue = 1.e+36f ;
        SNOUNLOAD:missing_value = 1.e+36f ;
    float SNOW(time, lndgrid) ;
        SNOW:long_name = "atmospheric snow" ;
        SNOW:units = "mm/s" ;
        SNOW:cell_methods = "time: mean" ;
        SNOW:_FillValue = 1.e+36f ;
        SNOW:missing_value = 1.e+36f ;
    float SNOWDP(time, lndgrid) ;
        SNOWDP:long_name = "gridcell mean snow height" ;
        SNOWDP:units = "m" ;
        SNOWDP:cell_methods = "time: mean" ;
        SNOWDP:_FillValue = 1.e+36f ;
        SNOWDP:missing_value = 1.e+36f ;
    float SNOWICE(time, lndgrid) ;
        SNOWICE:long_name = "snow ice" ;
        SNOWICE:units = "kg/m2" ;
        SNOWICE:cell_methods = "time: mean" ;
        SNOWICE:_FillValue = 1.e+36f ;
        SNOWICE:missing_value = 1.e+36f ;
    float SNOWLIQ(time, lndgrid) ;
        SNOWLIQ:long_name = "snow liquid water" ;
        SNOWLIQ:units = "kg/m2" ;
        SNOWLIQ:cell_methods = "time: mean" ;
        SNOWLIQ:_FillValue = 1.e+36f ;
        SNOWLIQ:missing_value = 1.e+36f ;
    float SNOW_DEPTH(time, lndgrid) ;
        SNOW_DEPTH:long_name = "snow height of snow covered area" ;
        SNOW_DEPTH:units = "m" ;
        SNOW_DEPTH:cell_methods = "time: mean" ;
        SNOW_DEPTH:_FillValue = 1.e+36f ;
        SNOW_DEPTH:missing_value = 1.e+36f ;
    float SNOW_REPARTITIONED(time, lndgrid) ;
        SNOW_REPARTITIONED:long_name = "atmospheric snow, after rain/snow repartitioning based on temperature" ;
        SNOW_REPARTITIONED:units = "mm/s" ;
        SNOW_REPARTITIONED:cell_methods = "time: mean" ;
        SNOW_REPARTITIONED:_FillValue = 1.e+36f ;
        SNOW_REPARTITIONED:missing_value = 1.e+36f ;
    float SNOW_SINKS(time, lndgrid) ;
        SNOW_SINKS:long_name = "snow sinks (liquid water)" ;
        SNOW_SINKS:units = "mm/s" ;
        SNOW_SINKS:cell_methods = "time: mean" ;
        SNOW_SINKS:_FillValue = 1.e+36f ;
        SNOW_SINKS:missing_value = 1.e+36f ;
    float SNOW_SOURCES(time, lndgrid) ;
        SNOW_SOURCES:long_name = "snow sources (liquid water)" ;
        SNOW_SOURCES:units = "mm/s" ;
        SNOW_SOURCES:cell_methods = "time: mean" ;
        SNOW_SOURCES:_FillValue = 1.e+36f ;
        SNOW_SOURCES:missing_value = 1.e+36f ;
    float SOILICE(time, levgrnd, lndgrid) ;
        SOILICE:long_name = "soil ice (vegetated landunits only)" ;
        SOILICE:units = "kg/m2" ;
        SOILICE:cell_methods = "time: mean" ;
        SOILICE:_FillValue = 1.e+36f ;
        SOILICE:missing_value = 1.e+36f ;
    float SOILLIQ(time, levgrnd, lndgrid) ;
        SOILLIQ:long_name = "soil liquid water (vegetated landunits only)" ;
        SOILLIQ:units = "kg/m2" ;
        SOILLIQ:cell_methods = "time: mean" ;
        SOILLIQ:_FillValue = 1.e+36f ;
        SOILLIQ:missing_value = 1.e+36f ;
    float SOILRESIS(time, lndgrid) ;
        SOILRESIS:long_name = "soil resistance to evaporation" ;
        SOILRESIS:units = "s/m" ;
        SOILRESIS:cell_methods = "time: mean" ;
        SOILRESIS:_FillValue = 1.e+36f ;
        SOILRESIS:missing_value = 1.e+36f ;
    float SOILWATER_10CM(time, lndgrid) ;
        SOILWATER_10CM:long_name = "soil liquid water + ice in top 10cm of soil (veg landunits only)" ;
        SOILWATER_10CM:units = "kg/m2" ;
        SOILWATER_10CM:cell_methods = "time: mean" ;
        SOILWATER_10CM:_FillValue = 1.e+36f ;
        SOILWATER_10CM:missing_value = 1.e+36f ;
    float SoilAlpha(time, lndgrid) ;
        SoilAlpha:long_name = "factor limiting ground evap" ;
        SoilAlpha:units = "unitless" ;
        SoilAlpha:cell_methods = "time: mean" ;
        SoilAlpha:_FillValue = 1.e+36f ;
        SoilAlpha:missing_value = 1.e+36f ;
    float SoilAlpha_U(time, lndgrid) ;
        SoilAlpha_U:long_name = "urban factor limiting ground evap" ;
        SoilAlpha_U:units = "unitless" ;
        SoilAlpha_U:cell_methods = "time: mean" ;
        SoilAlpha_U:_FillValue = 1.e+36f ;
        SoilAlpha_U:missing_value = 1.e+36f ;
    float TAUX(time, lndgrid) ;
        TAUX:long_name = "zonal surface stress" ;
        TAUX:units = "kg/m/s^2" ;
        TAUX:cell_methods = "time: mean" ;
        TAUX:_FillValue = 1.e+36f ;
        TAUX:missing_value = 1.e+36f ;
    float TAUY(time, lndgrid) ;
        TAUY:long_name = "meridional surface stress" ;
        TAUY:units = "kg/m/s^2" ;
        TAUY:cell_methods = "time: mean" ;
        TAUY:_FillValue = 1.e+36f ;
        TAUY:missing_value = 1.e+36f ;
    float TBOT(time, lndgrid) ;
        TBOT:long_name = "atmospheric air temperature" ;
        TBOT:units = "K" ;
        TBOT:cell_methods = "time: mean" ;
        TBOT:_FillValue = 1.e+36f ;
        TBOT:missing_value = 1.e+36f ;
    float TBUILD(time, lndgrid) ;
        TBUILD:long_name = "internal urban building temperature" ;
        TBUILD:units = "K" ;
        TBUILD:cell_methods = "time: mean" ;
        TBUILD:_FillValue = 1.e+36f ;
        TBUILD:missing_value = 1.e+36f ;
    float TG(time, lndgrid) ;
        TG:long_name = "ground temperature" ;
        TG:units = "K" ;
        TG:cell_methods = "time: mean" ;
        TG:_FillValue = 1.e+36f ;
        TG:missing_value = 1.e+36f ;
    float TG_R(time, lndgrid) ;
        TG_R:long_name = "Rural ground temperature" ;
        TG_R:units = "K" ;
        TG_R:cell_methods = "time: mean" ;
        TG_R:_FillValue = 1.e+36f ;
        TG_R:missing_value = 1.e+36f ;
    float TG_U(time, lndgrid) ;
        TG_U:long_name = "Urban ground temperature" ;
        TG_U:units = "K" ;
        TG_U:cell_methods = "time: mean" ;
        TG_U:_FillValue = 1.e+36f ;
        TG_U:missing_value = 1.e+36f ;
    float TH2OSFC(time, lndgrid) ;
        TH2OSFC:long_name = "surface water temperature" ;
        TH2OSFC:units = "K" ;
        TH2OSFC:cell_methods = "time: mean" ;
        TH2OSFC:_FillValue = 1.e+36f ;
        TH2OSFC:missing_value = 1.e+36f ;
    float THBOT(time, lndgrid) ;
        THBOT:long_name = "atmospheric air potential temperature" ;
        THBOT:units = "K" ;
        THBOT:cell_methods = "time: mean" ;
        THBOT:_FillValue = 1.e+36f ;
        THBOT:missing_value = 1.e+36f ;
    float TKE1(time, lndgrid) ;
        TKE1:long_name = "top lake level eddy thermal conductivity" ;
        TKE1:units = "W/(mK)" ;
        TKE1:cell_methods = "time: mean" ;
        TKE1:_FillValue = 1.e+36f ;
        TKE1:missing_value = 1.e+36f ;
    float TLAI(time, lndgrid) ;
        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 TLAKE(time, levlak, lndgrid) ;
        TLAKE:long_name = "lake temperature" ;
        TLAKE:units = "K" ;
        TLAKE:cell_methods = "time: mean" ;
        TLAKE:_FillValue = 1.e+36f ;
        TLAKE:missing_value = 1.e+36f ;
    float TREFMNAV(time, lndgrid) ;
        TREFMNAV:long_name = "daily minimum of average 2-m temperature" ;
        TREFMNAV:units = "K" ;
        TREFMNAV:cell_methods = "time: mean" ;
        TREFMNAV:_FillValue = 1.e+36f ;
        TREFMNAV:missing_value = 1.e+36f ;
    float TREFMNAV_R(time, lndgrid) ;
        TREFMNAV_R:long_name = "Rural daily minimum of average 2-m temperature" ;
        TREFMNAV_R:units = "K" ;
        TREFMNAV_R:cell_methods = "time: mean" ;
        TREFMNAV_R:_FillValue = 1.e+36f ;
        TREFMNAV_R:missing_value = 1.e+36f ;
    float TREFMNAV_U(time, lndgrid) ;
        TREFMNAV_U:long_name = "Urban daily minimum of average 2-m temperature" ;
        TREFMNAV_U:units = "K" ;
        TREFMNAV_U:cell_methods = "time: mean" ;
        TREFMNAV_U:_FillValue = 1.e+36f ;
        TREFMNAV_U:missing_value = 1.e+36f ;
    float TREFMXAV(time, lndgrid) ;
        TREFMXAV:long_name = "daily maximum of average 2-m temperature" ;
        TREFMXAV:units = "K" ;
        TREFMXAV:cell_methods = "time: mean" ;
        TREFMXAV:_FillValue = 1.e+36f ;
        TREFMXAV:missing_value = 1.e+36f ;
    float TREFMXAV_R(time, lndgrid) ;
        TREFMXAV_R:long_name = "Rural daily maximum of average 2-m temperature" ;
        TREFMXAV_R:units = "K" ;
        TREFMXAV_R:cell_methods = "time: mean" ;
        TREFMXAV_R:_FillValue = 1.e+36f ;
        TREFMXAV_R:missing_value = 1.e+36f ;
    float TREFMXAV_U(time, lndgrid) ;
        TREFMXAV_U:long_name = "Urban daily maximum of average 2-m temperature" ;
        TREFMXAV_U:units = "K" ;
        TREFMXAV_U:cell_methods = "time: mean" ;
        TREFMXAV_U:_FillValue = 1.e+36f ;
        TREFMXAV_U:missing_value = 1.e+36f ;
    float TSA(time, lndgrid) ;
        TSA:long_name = "2m air temperature" ;
        TSA:units = "K" ;
        TSA:cell_methods = "time: mean" ;
        TSA:_FillValue = 1.e+36f ;
        TSA:missing_value = 1.e+36f ;
    float TSAI(time, lndgrid) ;
        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 TSA_R(time, lndgrid) ;
        TSA_R:long_name = "Rural 2m air temperature" ;
        TSA_R:units = "K" ;
        TSA_R:cell_methods = "time: mean" ;
        TSA_R:_FillValue = 1.e+36f ;
        TSA_R:missing_value = 1.e+36f ;
    float TSA_U(time, lndgrid) ;
        TSA_U:long_name = "Urban 2m air temperature" ;
        TSA_U:units = "K" ;
        TSA_U:cell_methods = "time: mean" ;
        TSA_U:_FillValue = 1.e+36f ;
        TSA_U:missing_value = 1.e+36f ;
    float TSOI(time, levgrnd, lndgrid) ;
        TSOI:long_name = "soil temperature (vegetated landunits only)" ;
        TSOI:units = "K" ;
        TSOI:cell_methods = "time: mean" ;
        TSOI:_FillValue = 1.e+36f ;
        TSOI:missing_value = 1.e+36f ;
    float TSOI_10CM(time, lndgrid) ;
        TSOI_10CM:long_name = "soil temperature in top 10cm of soil" ;
        TSOI_10CM:units = "K" ;
        TSOI_10CM:cell_methods = "time: mean" ;
        TSOI_10CM:_FillValue = 1.e+36f ;
        TSOI_10CM:missing_value = 1.e+36f ;
    float TSOI_ICE(time, levgrnd, lndgrid) ;
        TSOI_ICE:long_name = "soil temperature (ice landunits only)" ;
        TSOI_ICE:units = "K" ;
        TSOI_ICE:cell_methods = "time: mean" ;
        TSOI_ICE:_FillValue = 1.e+36f ;
        TSOI_ICE:missing_value = 1.e+36f ;
    float TV(time, lndgrid) ;
        TV:long_name = "vegetation temperature" ;
        TV:units = "K" ;
        TV:cell_methods = "time: mean" ;
        TV:_FillValue = 1.e+36f ;
        TV:missing_value = 1.e+36f ;
    float TWS(time, lndgrid) ;
        TWS:long_name = "total water storage" ;
        TWS:units = "mm" ;
        TWS:cell_methods = "time: mean" ;
        TWS:_FillValue = 1.e+36f ;
        TWS:missing_value = 1.e+36f ;
    float U10(time, lndgrid) ;
        U10:long_name = "10-m wind" ;
        U10:units = "m/s" ;
        U10:cell_methods = "time: mean" ;
        U10:_FillValue = 1.e+36f ;
        U10:missing_value = 1.e+36f ;
    float URBAN_AC(time, lndgrid) ;
        URBAN_AC:long_name = "urban air conditioning flux" ;
        URBAN_AC:units = "W/m^2" ;
        URBAN_AC:cell_methods = "time: mean" ;
        URBAN_AC:_FillValue = 1.e+36f ;
        URBAN_AC:missing_value = 1.e+36f ;
    float URBAN_HEAT(time, lndgrid) ;
        URBAN_HEAT:long_name = "urban heating flux" ;
        URBAN_HEAT:units = "W/m^2" ;
        URBAN_HEAT:cell_methods = "time: mean" ;
        URBAN_HEAT:_FillValue = 1.e+36f ;
        URBAN_HEAT:missing_value = 1.e+36f ;
    float VOLR(time, lndgrid) ;
        VOLR:long_name = "river channel total water storage" ;
        VOLR:units = "m3" ;
        VOLR:cell_methods = "time: mean" ;
        VOLR:_FillValue = 1.e+36f ;
        VOLR:missing_value = 1.e+36f ;
    float VOLRMCH(time, lndgrid) ;
        VOLRMCH:long_name = "river channel main channel water storage" ;
        VOLRMCH:units = "m3" ;
        VOLRMCH:cell_methods = "time: mean" ;
        VOLRMCH:_FillValue = 1.e+36f ;
        VOLRMCH:missing_value = 1.e+36f ;
    float WA(time, lndgrid) ;
        WA:long_name = "water in the unconfined aquifer (vegetated landunits only)" ;
        WA:units = "mm" ;
        WA:cell_methods = "time: mean" ;
        WA:_FillValue = 1.e+36f ;
        WA:missing_value = 1.e+36f ;
    float WASTEHEAT(time, lndgrid) ;
        WASTEHEAT:long_name = "sensible heat flux from heating/cooling sources of urban waste heat" ;
        WASTEHEAT:units = "W/m^2" ;
        WASTEHEAT:cell_methods = "time: mean" ;
        WASTEHEAT:_FillValue = 1.e+36f ;
        WASTEHEAT:missing_value = 1.e+36f ;
    float WIND(time, lndgrid) ;
        WIND:long_name = "atmospheric wind velocity magnitude" ;
        WIND:units = "m/s" ;
        WIND:cell_methods = "time: mean" ;
        WIND:_FillValue = 1.e+36f ;
        WIND:missing_value = 1.e+36f ;
    float ZBOT(time, lndgrid) ;
        ZBOT:long_name = "atmospheric reference height" ;
        ZBOT:units = "m" ;
        ZBOT:cell_methods = "time: mean" ;
        ZBOT:_FillValue = 1.e+36f ;
        ZBOT:missing_value = 1.e+36f ;
    float ZWT(time, lndgrid) ;
        ZWT:long_name = "water table depth (vegetated landunits only)" ;
        ZWT:units = "m" ;
        ZWT:cell_methods = "time: mean" ;
        ZWT:_FillValue = 1.e+36f ;
        ZWT:missing_value = 1.e+36f ;
    float ZWT_PERCH(time, lndgrid) ;
        ZWT_PERCH:long_name = "perched water table depth (vegetated landunits only)" ;
        ZWT_PERCH:units = "m" ;
        ZWT_PERCH:cell_methods = "time: mean" ;
        ZWT_PERCH:_FillValue = 1.e+36f ;
        ZWT_PERCH:missing_value = 1.e+36f ;

// global attributes:
        :title = "CLM History file information" ;
        :comment = "NOTE: None of the variables are weighted by land fraction!" ;
        :Conventions = "CF-1.0" ;
        :history = "created on 08/11/16 10:14:26" ;
        :source = "Community Land Model CLM4.0" ;
        :hostname = "yellowstone" ;
        :username = "andre" ;
        :version = "unknown" ;
        :revision_id = "$Id: histFileMod.F90 42903 2012-12-21 15:32:10Z muszala $" ;
        :case_title = "UNSET" ;
        :case_id = "SMS_D_Mmpi-serial_Ld5.1x1_mexicocityMEX.ICLM45.yellowstone_intel.clm-default.junk-issue98-r188" ;
        :Surface_dataset = "surfdata_1x1_mexicocityMEX_16pfts_simyr2000_c160127.nc" ;
        :Initial_conditions_dataset = "arbitrary initialization" ;
        :PFT_physiological_constants_dataset = "clm_params.c160713.nc" ;
        :ltype_vegetated_or_bare_soil = 1 ;
        :ltype_crop = 2 ;
        :ltype_landice = 3 ;
        :ltype_landice_multiple_elevation_classes = 4 ;
        :ltype_deep_lake = 5 ;
        :ltype_wetland = 6 ;
        :ltype_urban_tbd = 7 ;
        :ltype_urban_hd = 8 ;
        :ltype_urban_md = 9 ;
        :ctype_vegetated_or_bare_soil = 1 ;
        :ctype_crop = 2 ;
        :ctype_crop_noncompete = "2*100+m, m=cft_lb,cft_ub" ;
        :ctype_landice = 3 ;
        :ctype_landice_multiple_elevation_classes = "4*100+m, m=1,glcnec" ;
        :ctype_deep_lake = 5 ;
        :ctype_wetland = 6 ;
        :ctype_urban_roof = 71 ;
        :ctype_urban_sunwall = 72 ;
        :ctype_urban_shadewall = 73 ;
        :ctype_urban_impervious_road = 74 ;
        :ctype_urban_pervious_road = 75 ;
data:

 FSDS =
  227.7041,
  227.7041,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  0,
  125.9168,
  264.7875,
  379.798,
  463.1113,
  509.0514,
  472.7679,
  440.2086,
  372.3136,
  273.7114 ;
}
bandre-ucar commented 8 years ago

@mvertens and/or @ekluzek can you comment on whether this issue is expected behavior for datm or something that needs to be investigated further?

mvertens commented 8 years ago

Erik - could you please look into this.

On Fri, Aug 12, 2016 at 9:42 AM, Ben Andre notifications@github.com wrote:

@mvertens https://github.com/mvertens and/or @ekluzek https://github.com/ekluzek can you comment on whether this issue is expected behavior for datm or something that needs to be investigated further?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NGEET/ed-clm/issues/98#issuecomment-239481425, or mute the thread https://github.com/notifications/unsubscribe-auth/AHlxEySRXN2w4iAbFA6zc7eoeRmzTfFiks5qfJRJgaJpZM4JgafG .

rgknox commented 7 years ago

@xuyi02 and I just chatted offline, and agreed this is issue can be closed