date_written
diff --git a/Tools/copy_html b/Tools/copy_html
index 442b1799..d56cd761 100755
--- a/Tools/copy_html
+++ b/Tools/copy_html
@@ -214,7 +214,7 @@ def create_top_level(env, comp):
# make sure top level remote directory exists
try:
- pipe = subprocess.Popen( ["ssh {0}@{1} 'mkdir -p {2}/{3}'".format(env['GLOBAL_WEBLOGIN'],env['GLOBAL_WEBHOST'],env['GLOBAL_REMOTE_WEBDIR'],comp)], shell=True)
+ pipe = subprocess.Popen( ["ssh {0}@{1} 'mkdir -p -m u=rwx,g=rwx,o=rx {2}/{3}'".format(env['GLOBAL_WEBLOGIN'],env['GLOBAL_WEBHOST'],env['GLOBAL_REMOTE_WEBDIR'],comp)], shell=True)
pipe.wait()
except Exception as e:
print('ERROR: unable to create remote directory {0}@{1}:{2}/{3}'.format(env['GLOBAL_WEBLOGIN'],env['GLOBAL_WEBHOST'],env['GLOBAL_REMOTE_WEBDIR'],comp))
diff --git a/lnd_diag/inputFiles/set1_c13.txt b/lnd_diag/inputFiles/set1_c13.txt
index 23a5051b..b59c982c 100755
--- a/lnd_diag/inputFiles/set1_c13.txt
+++ b/lnd_diag/inputFiles/set1_c13.txt
@@ -27,6 +27,7 @@ globalTotlNat C13_DEADCROOTC
globalTotlNat C13_CPOOL
globalTotlNat C13_TOTVEGC
globalTotlNat C13_CWDC
+globalTotlNat C13_CWD_C
globalTotlNat C13_TOTLITC
globalTotlNat C13_TOTSOMC
globalTotlNat C13_TOTECOSYSC
@@ -63,6 +64,7 @@ globalTotlNat C14_DEADCROOTC
globalTotlNat C14_CPOOL
globalTotlNat C14_TOTVEGC
globalTotlNat C14_CWDC
+globalTotlNat C14_CWD_C
globalTotlNat C14_TOTLITC
globalTotlNat C14_TOTSOMC
globalTotlNat C14_TOTECOSYSC
diff --git a/lnd_diag/inputFiles/set1_clm.txt b/lnd_diag/inputFiles/set1_clm.txt
index 26af4d2f..2179723c 100755
--- a/lnd_diag/inputFiles/set1_clm.txt
+++ b/lnd_diag/inputFiles/set1_clm.txt
@@ -43,3 +43,33 @@ globalTotlAnn DSTDEP
globalTotlAnn DSTFLXT
globalTotlAnn OCDEP
globalTotlAnn BCDEP
+globalMeanNat FSDSND
+globalMeanNat FSDSVD
+globalMeanNat FSDSNI
+globalMeanNat FSDSVI
+globalMeanDay RAIN_FROM_ATM
+globalMeanDay SNOW_FROM_ATM
+globalMeanNat FLDS_NOT_DOWNSCALED
+globalMeanNat ZBOT
+globalMeanNat Tair_from_atm
+globalMeanNat Thair_from_atm
+globalMeanNat QBOT_NOT_DOWNSCALED
+globalMeanNat PBOT_NOT_DOWNSCALED
+globalMeanNat Rho_from_atm
+globalMeanNat UWIND
+globalMeanNat VWIND
+globalTotlAnn BCPHIDRY
+globalTotlAnn BCPHODRY
+globalTotlAnn BCPHIWET
+globalTotlAnn OCPHIDRY
+globalTotlAnn OCPHODRY
+globalTotlAnn OCPHIWET
+globalTotlAnn DSTWET1
+globalTotlAnn DSTDRY1
+globalTotlAnn DSTWET2
+globalTotlAnn DSTDRY2
+globalTotlAnn DSTWET3
+globalTotlAnn DSTDRY3
+globalTotlAnn DSTWET4
+globalTotlAnn DSTDRY4
+globalMeanNat ATM_TOPO
diff --git a/lnd_diag/inputFiles/set1_cn.txt b/lnd_diag/inputFiles/set1_cn.txt
index 9f1b513c..afa3faac 100755
--- a/lnd_diag/inputFiles/set1_cn.txt
+++ b/lnd_diag/inputFiles/set1_cn.txt
@@ -45,6 +45,7 @@ globalTotlNat TOTVEGC
globalTotlNat TOTVEGN
globalMeanNat TOTVEGCN
globalTotlNat CWDC
+globalTotlNat CWD_C
globalTotlNat TOTLITC
globalTotlNat TOTLITC_1m
globalTotlNat TOTLITN
diff --git a/lnd_diag/inputFiles/set2_c13.txt b/lnd_diag/inputFiles/set2_c13.txt
index bba72b53..69ca3c96 100755
--- a/lnd_diag/inputFiles/set2_c13.txt
+++ b/lnd_diag/inputFiles/set2_c13.txt
@@ -27,6 +27,7 @@ globalMeanNat0 C13_DEADCROOTC
globalMeanNat0 C13_CPOOL
globalMeanNat0 C13_TOTVEGC
globalMeanNat0 C13_CWDC
+globalMeanNat0 C13_CWD_C
globalMeanNat0 C13_TOTLITC
globalMeanNat0 C13_TOTSOMC
globalMeanNat0 C13_TOTECOSYSC
@@ -61,6 +62,7 @@ globalMeanNat0 C14_DEADCROOTC
globalMeanNat0 C14_CPOOL
globalMeanNat0 C14_TOTVEGC
globalMeanNat0 C14_CWDC
+globalMeanNat0 C14_CWD_C
globalMeanNat0 C14_TOTLITC
globalMeanNat0 C14_TOTSOMC
globalMeanNat0 C14_TOTECOSYSC
diff --git a/lnd_diag/inputFiles/set2_clm.txt b/lnd_diag/inputFiles/set2_clm.txt
index 8febd253..77b726d9 100755
--- a/lnd_diag/inputFiles/set2_clm.txt
+++ b/lnd_diag/inputFiles/set2_clm.txt
@@ -1,11 +1,11 @@
-globalMeanNat1 TSA
-globalMeanDay1 PREC
+globalMeanNat0 TSA
+globalMeanDay0 PREC
globalMeanNat0 ASA
globalMeanNat0 RNET
-globalMeanNat1 LHEAT
+globalMeanNat0 LHEAT
globalMeanDay0 TOTRUNOFF
globalMeanNat0 SNOWDP
-globalMeanDay1 FPSN
+globalMeanDay0 FPSN
globalMeanNat0 FSH
globalMeanNat0 FSH_V
globalMeanNat0 FSH_G
@@ -109,3 +109,29 @@ globalMeanNat0 PCT_TREE_PFT
globalMeanNat0 PCT_GRASS_PFT
globalMeanNat0 PCT_SHRUB_PFT
globalMeanNat0 PCT_CROP_PFT
+globalMeanNat0 ZETA
+globalMeanDay0 RAIN_FROM_ATM
+globalMeanDay0 SNOW_FROM_ATM
+globalMeanNat0 FLDS_NOT_DOWNSCALED
+globalMeanNat0 Tair_from_atm
+globalMeanNat0 Thair_from_atm
+globalMeanNat0 QBOT_NOT_DOWNSCALED
+globalMeanNat0 PBOT_NOT_DOWNSCALED
+globalMeanNat0 Rho_from_atm
+globalMeanNat0 UWIND
+globalMeanNat0 VWIND
+globalMeanDay0 BCPHIDRY
+globalMeanDay0 BCPHODRY
+globalMeanDay0 BCPHIWET
+globalMeanDay0 OCPHIDRY
+globalMeanDay0 OCPHODRY
+globalMeanDay0 OCPHIWET
+globalMeanDay0 DSTWET1
+globalMeanDay0 DSTDRY1
+globalMeanDay0 DSTWET2
+globalMeanDay0 DSTDRY2
+globalMeanDay0 DSTWET3
+globalMeanDay0 DSTDRY3
+globalMeanDay0 DSTWET4
+globalMeanDay0 DSTDRY4
+globalMeanNat0 ATM_TOPO
diff --git a/lnd_diag/inputFiles/set2_cn.txt b/lnd_diag/inputFiles/set2_cn.txt
index 32621535..816d1880 100755
--- a/lnd_diag/inputFiles/set2_cn.txt
+++ b/lnd_diag/inputFiles/set2_cn.txt
@@ -49,6 +49,7 @@ globalMeanNat0 TOTVEGC
globalMeanNat0 TOTVEGN
globalMeanNat0 TOTVEGCN
globalMeanNat0 CWDC
+globalMeanNat0 CWD_C
globalMeanNat0 TOTLITC
globalMeanNat0 TOTLITC_1m
globalMeanNat0 TOTSOMC
@@ -113,3 +114,5 @@ globalMeanDay0 SOILC_LOSS
globalMeanNat0 WOODC
globalMeanDay0 WOODC_ALLOC
globalMeanDay0 WOODC_LOSS
+globalMeanNat1 ALTMAX
+globalMeanDay1 LNFM
diff --git a/lnd_diag/inputFiles/set3_cn_landFlx.txt b/lnd_diag/inputFiles/set3_cn_landFlx.txt
index 6369473d..bec5196c 100755
--- a/lnd_diag/inputFiles/set3_cn_landFlx.txt
+++ b/lnd_diag/inputFiles/set3_cn_landFlx.txt
@@ -5,3 +5,4 @@ globalMeanNat SNOWDP
globalMeanNat LHEAT
globalMeanDay GPP
globalMeanNat TLAI
+globalMeanNat TOTSOILLIQICE
diff --git a/lnd_diag/inputFiles/set3_landFlx.txt b/lnd_diag/inputFiles/set3_landFlx.txt
index 90efeac8..d09426c2 100755
--- a/lnd_diag/inputFiles/set3_landFlx.txt
+++ b/lnd_diag/inputFiles/set3_landFlx.txt
@@ -5,3 +5,4 @@ globalMeanNat SNOWDP
globalMeanNat LHEAT
globalMeanDay FPSN
globalMeanNat TLAI
+globalMeanNat TOTSOILLIQICE
diff --git a/lnd_diag/inputFiles/set5_c13.txt b/lnd_diag/inputFiles/set5_c13.txt
index 23a5051b..b59c982c 100755
--- a/lnd_diag/inputFiles/set5_c13.txt
+++ b/lnd_diag/inputFiles/set5_c13.txt
@@ -27,6 +27,7 @@ globalTotlNat C13_DEADCROOTC
globalTotlNat C13_CPOOL
globalTotlNat C13_TOTVEGC
globalTotlNat C13_CWDC
+globalTotlNat C13_CWD_C
globalTotlNat C13_TOTLITC
globalTotlNat C13_TOTSOMC
globalTotlNat C13_TOTECOSYSC
@@ -63,6 +64,7 @@ globalTotlNat C14_DEADCROOTC
globalTotlNat C14_CPOOL
globalTotlNat C14_TOTVEGC
globalTotlNat C14_CWDC
+globalTotlNat C14_CWD_C
globalTotlNat C14_TOTLITC
globalTotlNat C14_TOTSOMC
globalTotlNat C14_TOTECOSYSC
diff --git a/lnd_diag/inputFiles/set5_cn.txt b/lnd_diag/inputFiles/set5_cn.txt
index 09913012..0aded560 100755
--- a/lnd_diag/inputFiles/set5_cn.txt
+++ b/lnd_diag/inputFiles/set5_cn.txt
@@ -40,6 +40,7 @@ globalTotlNat DEADCROOTC
globalTotlNat CPOOL
globalTotlNat TOTVEGC
globalTotlNat CWDC
+globalTotlNat CWD_C
globalTotlNat TOTLITC
globalTotlNat TOTLITC_1m
globalTotlNat TOTSOMC
diff --git a/lnd_diag/inputFiles/variable_master4.3.ncl b/lnd_diag/inputFiles/variable_master4.3.ncl
index 5fc87deb..3501a2eb 100644
--- a/lnd_diag/inputFiles/variable_master4.3.ncl
+++ b/lnd_diag/inputFiles/variable_master4.3.ncl
@@ -1519,6 +1519,35 @@ begin
info@cn_LevelsDiff = (/-10., -8.0, -6.0, -4.0, -2.0, 0.0, 2.0, 4.0, 6.0, 8.0, 10/)
return(info)
end if
+
+ if (varName .eq. "LNFM") then
+ info@flux=True
+ info@longName="lightning frequency"
+ info@nativeUnits = "counts/km^2/hr"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "counts/y"
+ info@globalTotal_Annual__SF = 24.*365.
+ ; -- global Mean
+ info@globalMean__units = "counts/km^2/hr"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "counts/km^2/y"
+ info@globalMean_Annual__SF = 24.*365.
+ info@globalMean_Daily__units = "counts/km^2/d"
+ info@globalMean_Daily__SF = 24.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.0, 0.03, 0.06, 0.09, 0.12, 0.15, 0.18, 0.21, 0.24/)
+ info@cn_LevelsDiff = (/-0.10, -0.08, -0.06, -0.04, -0.02, 0.0, 0.02, 0.04, 0.06, 0.08, 0.10/)
+ return(info)
+ end if
if (varName .eq. "SR") then
info@flux=True
@@ -2869,6 +2898,35 @@ begin
info@cn_LevelsDiff = (/-1., -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1/)
return(info)
end if
+
+ if (varName .eq. "CWD_C") then
+ info@flux=False
+ info@longName="coarse woody debris carbon"
+ info@nativeUnits = "gC/m^2"
+ ; -- global Total
+ info@globalTotal__units = "PgC"
+ info@globalTotal__SF = grams2Pgrams
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "kgC/m^2"
+ info@globalMean__SF = grams2Kgrams
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/1.0, 2., 3., 4., 5.0, 6.0, 7., 8., 9/)
+ info@cn_LevelsDiff = (/-1., -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1/)
+ return(info)
+ end if
if (varName .eq. "TOTLITC") then
info@flux=False
@@ -5364,6 +5422,35 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "ALTMAX") then
+ info@flux=False
+ info@longName="maximum annual active layer thickness"
+ info@nativeUnits = "m"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "m"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 2., 4./)
+ info@cn_LevelsDiff = (/-0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6/)
+ return(info)
+ end if
+
if (varName .eq. "DEGREE_DAYS") then
info@flux=False
info@longName="Accumulated degree days"
@@ -5424,7 +5511,7 @@ if (varName .eq. "LITTERC_HR") then
if (varName .eq. "CPL_ENERGY_BAL") then
info@flux=True
- info@longName="Coupler Energy Balance (Land Area)"
+ info@longName="Coupler Energy Balance (Global Area)"
info@nativeUnits = "W/m2"
; -- global Total
info@globalTotal__units = "NA"
@@ -7420,6 +7507,34 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "TOTSOILLIQICE") then
+ info@flux=False
+ info@longName="soil moisture storage (liq+ice)"
+ info@nativeUnits = "kg/m^2"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "kg/m^2" ;for mm water equivalent: 1:1 conversion from kg/m2
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = True
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,50.,100.,150.,200.,250.,300.,350.,900./)
+ return(info)
+ end if
+
if (varName .eq. "SOIL_PSI") then
info@flux=False
info@longName="Soil Water Potential"
@@ -7563,9 +7678,9 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "QIRRIG") then
+ if (varName .eq. "QIRRIG_DRIP") then
info@flux=True
- info@longName="water added through irrig"
+ info@longName="water added via drip irrig"
info@nativeUnits = "mm/s"
; -- global Total
info@globalTotal__units = "NA"
@@ -8559,6 +8674,35 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "RAIN_FROM_ATM") then
+ info@flux=True
+ info@longName="atmospheric rain (pre-downscaling)"
+ info@nativeUnits = "mm/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "mm/s"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "mm/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "mm/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,2.,4.,6.,8.,10.,12.,14.,16./)
+ info@cn_LevelsDiff = (/-1.25,-1.,-0.75,-0.5,-0.25,0.,0.25,0.5,0.75,1.,1.25/)
+ return(info)
+ end if
+
if (varName .eq. "SNOW") then
info@flux=True
info@longName="atmospheric snow"
@@ -8588,6 +8732,34 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "SNOW_FROM_ATM") then
+ info@flux=True
+ info@longName="atmospheric snow (pre-downscaling)"
+ info@nativeUnits = "mm/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "mm/s"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "mm/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "mm/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,.5,1.,1.5,2.,2.5,3.,3.5,4./)
+ info@cn_LevelsDiff = (/-1.25,-1.,-0.75,-0.5,-0.25,0.,0.25,0.5,0.75,1.,1.25/)
+ return(info)
+ end if
if (varName .eq. "SNOW_REPARTITIONED") then
info@flux=True
@@ -8674,6 +8846,62 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = (/-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5./)
return(info)
end if
+ if (varName .eq. "UWIND") then
+ info@flux=True
+ info@longName="atmospheric uwind velocity magnitude"
+ info@nativeUnits = "m/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "m/s"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "m/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "m/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,2.,4.,6.,8.,10.,12.,14.,16./)
+ info@cn_LevelsDiff = (/-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5./)
+ return(info)
+ end if
+ if (varName .eq. "VWIND") then
+ info@flux=True
+ info@longName="atmospheric vwind velocity magnitude"
+ info@nativeUnits = "m/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "m/s"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "m/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "m/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,2.,4.,6.,8.,10.,12.,14.,16./)
+ info@cn_LevelsDiff = (/-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5./)
+ return(info)
+ end if
if (varName .eq. "U10") then
info@flux=True
@@ -8762,9 +8990,9 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "PCO2") then
+ if (varName .eq. "PBOT_NOT_DOWNSCALED") then
info@flux=False
- info@longName="partial pressure of CO2"
+ info@longName="atm pressure of bottom layer (pre-downscaling)"
info@nativeUnits = "Pa"
; -- global Total
info@globalTotal__units = "NA"
@@ -8791,17 +9019,17 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "CO2_PPMV") then
+ if (varName .eq. "Rho_from_atm") then
info@flux=False
- info@longName="CO2 concentration"
- info@nativeUnits = "ppmv"
+ info@longName="atmospheric density of bottom layer (pre-downscaling)"
+ info@nativeUnits = "kg/m3"
; -- global Total
info@globalTotal__units = "NA"
info@globalTotal__SF = -999.
info@globalTotal_Annual__units = "NA"
info@globalTotal_Annual__SF = -999.
; -- global Mean
- info@globalMean__units = "ppmv"
+ info@globalMean__units = "kg/m3"
info@globalMean__SF = 1.0
info@globalMean_Annual__units = "NA"
info@globalMean_Annual__SF = -999.
@@ -8809,7 +9037,7 @@ if (varName .eq. "LITTERC_HR") then
info@globalMean_Daily__SF = -999.
; -- Origin
info@model = "CLM"
- info@derivedVariable = True
+ info@derivedVariable = False
info@clampVariable = False
; -- contour intervals
info@cn_Explicit = False
@@ -8820,28 +9048,28 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "TBOT") then
+ if (varName .eq. "PCO2") then
info@flux=False
- info@longName="atmospheric air temperature"
- info@nativeUnits = "K"
+ info@longName="partial pressure of CO2"
+ info@nativeUnits = "Pa"
; -- global Total
info@globalTotal__units = "NA"
info@globalTotal__SF = -999.
info@globalTotal_Annual__units = "NA"
info@globalTotal_Annual__SF = -999.
; -- global Mean
- info@globalMean__units = "K"
+ info@globalMean__units = "Pa"
info@globalMean__SF = 1.0
info@globalMean_Annual__units = "NA"
- info@globalMean_Annual__SF = -999.
+ info@globalMean_Annual__SF = -999.
info@globalMean_Daily__units = "NA"
- info@globalMean_Daily__SF = -999.
- ; -- Origin
- info@model = "CN"
- info@derivedVariable = False
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CLM"
+ info@derivedVariable = False
info@clampVariable = False
; -- contour intervals
- info@cn_Explicit = True
+ info@cn_Explicit = False
info@cn_Min = -999
info@cn_Max = -999
info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
@@ -8849,28 +9077,28 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "THBOT") then
+ if (varName .eq. "CO2_PPMV") then
info@flux=False
- info@longName="atmospheric air potential temperature"
- info@nativeUnits = "K"
+ info@longName="CO2 concentration"
+ info@nativeUnits = "ppmv"
; -- global Total
info@globalTotal__units = "NA"
info@globalTotal__SF = -999.
info@globalTotal_Annual__units = "NA"
info@globalTotal_Annual__SF = -999.
; -- global Mean
- info@globalMean__units = "K"
+ info@globalMean__units = "ppmv"
info@globalMean__SF = 1.0
info@globalMean_Annual__units = "NA"
- info@globalMean_Annual__SF = -999.
+ info@globalMean_Annual__SF = -999.
info@globalMean_Daily__units = "NA"
- info@globalMean_Daily__SF = -999.
- ; -- Origin
- info@model = "CN"
- info@derivedVariable = False
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CLM"
+ info@derivedVariable = True
info@clampVariable = False
; -- contour intervals
- info@cn_Explicit = True
+ info@cn_Explicit = False
info@cn_Min = -999
info@cn_Max = -999
info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
@@ -8878,17 +9106,17 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "TLAKE") then
+ if (varName .eq. "ATM_TOPO") then
info@flux=False
- info@longName="lake temperature"
- info@nativeUnits = "K"
+ info@longName="atmospheric surface height"
+ info@nativeUnits = "m"
; -- global Total
info@globalTotal__units = "NA"
info@globalTotal__SF = -999.
info@globalTotal_Annual__units = "NA"
info@globalTotal_Annual__SF = -999.
; -- global Mean
- info@globalMean__units = "K"
+ info@globalMean__units = "m"
info@globalMean__SF = 1.0
info@globalMean_Annual__units = "NA"
info@globalMean_Annual__SF = -999.
@@ -8902,7 +9130,152 @@ if (varName .eq. "LITTERC_HR") then
info@cn_Explicit = True
info@cn_Min = -999
info@cn_Max = -999
- info@cn_Level0 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "TBOT") then
+ info@flux=False
+ info@longName="atmospheric air temperature"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "Tair_from_atm") then
+ info@flux=False
+ info@longName="atmospheric air temperature (pre-downscaling)"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "THBOT") then
+ info@flux=False
+ info@longName="atmospheric air potential temperature"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "Thair_from_atm") then
+ info@flux=False
+ info@longName="atmospheric air potential temperature (pre-downscaling)"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "TLAKE") then
+ info@flux=False
+ info@longName="lake temperature"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Level0 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
info@cn_Level1 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
info@cn_Level2 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
info@cn_Level3 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
@@ -9012,6 +9385,35 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "QBOT_NOT_DOWNSCALED") then
+ info@flux=False
+ info@longName="atmospheric specific humidity (pre-downscaling)"
+ info@nativeUnits = "kg/kg"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "kg/kg"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,0.002,0.004,0.006,0.008,0.010,0.012,0.014,0.016/)
+ info@cn_LevelsDiff = (/-2.5e-3,-2.0e-3,-1.5e-3,-1.0e-3,-0.5e-3,0.,0.5e-3,1.0e-3,1.5e-3,2.0e-3,2.5e-3/)
+ return(info)
+ end if
+
if (varName .eq. "ZBOT") then
info@flux=False
info@longName="atmospheric reference height"
@@ -9099,6 +9501,35 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "FLDS_NOT_DOWNSCALED") then
+ info@flux=True
+ info@longName="atmospheric longwave radiation (pre-downscaling)"
+ info@nativeUnits = "W/m^2"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "W/m^2"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/100.,150.,200.,250.,300.,350.,400.,450.,500./)
+ info@cn_LevelsDiff = (/-50.,-25.,-10.,-5.,-1.,0.,1.,5.,10.,25.,50./)
+ return(info)
+ end if
+
if (varName .eq. "SOLAR") then
info@flux=True
info@longName="Total Incident Solar Radiation"
@@ -10192,6 +10623,34 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "ZETA") then
+ info@flux=False
+ info@longName="dimensionless stability parameter"
+ info@nativeUnits = "unitless"
+ ; -- global Total
+ info@globalTotal__units = "unitless"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "unitless"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = "...."
+ return(info)
+ end if
+
if (varName .eq. "ZSOI") then
info@flux=False
info@longName="soil depth"
@@ -11051,6 +11510,35 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
+
+ if (varName .eq. "C13_CWD_C") then
+ info@flux=False
+ info@longName="C13 Coarse Woody Debris Carbon"
+ info@nativeUnits = "gC/m^2"
+ ; -- global Total
+ info@globalTotal__units = "per mil v PDB"
+ info@globalTotal__SF = 1.0
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "per mil v PDB"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
if (varName .eq. "C13_DEADCROOTC") then
info@flux=False
@@ -12380,10 +12868,10 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
-
- if (varName .eq. "C14_DEADCROOTC") then
+
+ if (varName .eq. "C14_CWD_C") then
info@flux=False
- info@longName="C14 Dead Coarse Root Carbon"
+ info@longName="C14 Coarse Woody Debris Carbon"
info@nativeUnits = "gC/m^2"
; -- global Total
info@globalTotal__units = "per mil"
@@ -12409,7 +12897,36 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
-
+
+ if (varName .eq. "C14_DEADCROOTC") then
+ info@flux=False
+ info@longName="C14 Dead Coarse Root Carbon"
+ info@nativeUnits = "gC/m^2"
+ ; -- global Total
+ info@globalTotal__units = "per mil"
+ info@globalTotal__SF = 1.0
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "per mil"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+
if (varName .eq. "C14_DEADSTEMC") then
info@flux=False
info@longName="C14 Dead Stem Carbon"
@@ -13623,6 +14140,230 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
+ if (varName .eq. "DSTWET1") then
+ info@flux=True
+ info@longName="dust deposition (wet1) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTDRY1") then
+ info@flux=True
+ info@longName="dust deposition (dry1) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTWET2") then
+ info@flux=True
+ info@longName="dust deposition (wet2) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTDRY2") then
+ info@flux=True
+ info@longName="dust deposition (dry2) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTWET3") then
+ info@flux=True
+ info@longName="dust deposition (wet3) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTDRY3") then
+ info@flux=True
+ info@longName="dust deposition (dry3) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTWET4") then
+ info@flux=True
+ info@longName="dust deposition (wet4) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTDRY4") then
+ info@flux=True
+ info@longName="dust deposition (dry4) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
if (varName .eq. "DSTFLXT") then
info@flux=True
@@ -13681,6 +14422,90 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
+ if (varName .eq. "OCPHIDRY") then
+ info@flux=True
+ info@longName="OC deposition (phidry) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "OCPHODRY") then
+ info@flux=True
+ info@longName="OC deposition (phodry) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "OCPHIWET") then
+ info@flux=True
+ info@longName="OC deposition (phiwet) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
if (varName .eq. "BCDEP") then
info@flux=True
@@ -13710,6 +14535,90 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
+ if (varName .eq. "BCPHIDRY") then
+ info@flux=True
+ info@longName="BC deposition (phidry) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "BCPHODRY") then
+ info@flux=True
+ info@longName="BC deposition (phodry) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "BCPHIWET") then
+ info@flux=True
+ info@longName="BC deposition (phiwet) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
print("no variable info for variable "+ varName)
info = False
diff --git a/lnd_diag/model-obs/set_1.ncl b/lnd_diag/model-obs/set_1.ncl
index 33bc872b..d4599fb3 100755
--- a/lnd_diag/model-obs/set_1.ncl
+++ b/lnd_diag/model-obs/set_1.ncl
@@ -91,6 +91,10 @@ begin
area = in->area
lat = in->lat
lon = in->lon
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ areag = dble2flt(area_global_rectilinear_grid(lat,lon,False))
if(nyrs .ne. dimsizes(time)) then
print(" ")
print(" ")
@@ -178,7 +182,11 @@ begin
; calculate global summation or global total
if (c13Flag(i) .ne. "C13_" .and. c14Flag(i) .ne. "C14_") then
- var_plot = global_values(vars(i),x,area,landfrac,scale_type(i),nyrs,nlev)
+ if (vars(i) .eq. "CPL_ENERGY_BAL") then
+ var_plot = global_values(vars(i),x,areag,landfrac,scale_type(i),nyrs,nlev)
+ else
+ var_plot = global_values(vars(i), x,area,landfrac,scale_type(i),nyrs,nlev)
+ end if
else
var_plot = x ; del13C and del14C vars are globally averaged before the del value is calculated
end if
@@ -266,12 +274,13 @@ begin
res@pmLegendDisplayMode = "Never"
res@vpHeightF = 0.4
res@vpWidthF = 0.8
- if(isfilevar(in,"levsoi")) then
- lev = in->levsoi
- end if
- if(isfilevar(in,"levgrnd")) then
- lev = in->levgrnd
- end if
+; if(isfilevar(in,"levsoi")) then
+; nlev = getfilevardimsizes(in,"levsoi")
+; else
+; if(isfilevar(in,"levgrnd")) then
+; nlev = getfilevardimsizes(in,"levgrnd")
+; end if
+; end if
do k=0,nlev-1
res@tiXAxisOn = False
res@gsnCenterString = "Layer " + (k+1)
diff --git a/lnd_diag/model-obs/set_10.ncl b/lnd_diag/model-obs/set_10.ncl
index 9cbf5682..871517f4 100755
--- a/lnd_diag/model-obs/set_10.ncl
+++ b/lnd_diag/model-obs/set_10.ncl
@@ -125,11 +125,9 @@ begin
nlev = 0
if (isfilevar(in1,"levsoi")) then
- levsoi = in1->levsoi
nlev = getfilevardimsizes(in1,"levsoi")
end if
if (isfilevar(in1,"levgrnd")) then
- levsoi = in1->levgrnd
nlev = getfilevardimsizes(in1,"levgrnd")
end if
if (nlev .eq. 0)
@@ -142,10 +140,11 @@ begin
nlev = 10
end if
- if (isfilevar(in1,"TLAKE") .and. isfilevar(in1,"levlak") ) then
- levlak1 = in1->levlak
- nlevlak1 = getfilevardimsizes(in1,"levlak")
- end if
+ if (isfilevar(in1,"TLAKE") ) then
+ if (isfilevar(in1,"levlak") ) then
+ nlevlak1 = getfilevardimsizes(in1,"levlak")
+ end if
+ end if
lat1 = in1->lat
nlat1 = dimsizes(lat1)
lon1 = in1->lon
@@ -237,7 +236,7 @@ begin
continue
else
; read in observations (if present)
- obsFlag = 0 ; (0 = on; 1 = off)
+ obsFlag = 0 ; (0 = off; 1 = on)
if (isvar("x2") ) then
delete(x2)
end if
@@ -425,7 +424,7 @@ begin
print("processing variable: " + vars(i) )
; process observations if present
- if (obsFlag .eq. 1) ; (0 = on; 1 = off)
+ if (obsFlag .eq. 1) ; (0 = off; 1 = on)
; flip longitudes to -180 to 180 if needed
if (min(x2&lon) .ge. 0 .and. min(x1&lon) .lt. 0) then
x2 = lonFlip(x2)
diff --git a/lnd_diag/model-obs/set_11.ncl b/lnd_diag/model-obs/set_11.ncl
index 802e90e6..1087f1bd 100755
--- a/lnd_diag/model-obs/set_11.ncl
+++ b/lnd_diag/model-obs/set_11.ncl
@@ -125,11 +125,9 @@ begin
nlev = 0
if (isfilevar(in1,"levsoi")) then
- levsoi = in1->levsoi
nlev = getfilevardimsizes(in1,"levsoi")
end if
if (isfilevar(in1,"levgrnd")) then
- levsoi = in1->levgrnd
nlev = getfilevardimsizes(in1,"levgrnd")
end if
if (nlev .eq. 0)
diff --git a/lnd_diag/model-obs/set_2.ncl b/lnd_diag/model-obs/set_2.ncl
index 0efa7b46..50997fab 100755
--- a/lnd_diag/model-obs/set_2.ncl
+++ b/lnd_diag/model-obs/set_2.ncl
@@ -144,11 +144,9 @@ begin
nlev = 0
if (isfilevar(in1,"levsoi")) then
- levsoi = in1->levsoi
nlev = getfilevardimsizes(in1,"levsoi")
end if
if (isfilevar(in1,"levgrnd")) then
- levsoi = in1->levgrnd
nlev = getfilevardimsizes(in1,"levgrnd")
end if
if (nlev .eq. 0)
@@ -499,7 +497,7 @@ begin
; Set contour Levels: Dynamic vs pre-defined contours
;**************************************************************************
; dynContour: 1=dynamic; 0=explicit
- if (info@cn_Explicit .eq. True .and. dynContour(i) .eq. 0 .and. user_defined .eq. 1) then
+ if (info@cn_Explicit .eq. True .and. dynContour(i) .eq. 0 .and. user_defined .eq. True) then
expFlag = True
else
expFlag = False
diff --git a/lnd_diag/model-obs/set_3.ncl b/lnd_diag/model-obs/set_3.ncl
index 84ce97c7..d278507c 100755
--- a/lnd_diag/model-obs/set_3.ncl
+++ b/lnd_diag/model-obs/set_3.ncl
@@ -77,7 +77,7 @@ do p=0,nplots-1
fileName = "set3_landFlx.txt"
end if
plot_name = "landf"
- titstr = new(7,"string")
+ titstr = new(8,"string")
titstr(0) = "2m Air Temperature (~S~o~N~K)"
titstr(1) = "Precipitation (mm day~S~-1~N~)"
titstr(2) = "Runoff (mm day~S~-1~N~)"
@@ -85,6 +85,7 @@ do p=0,nplots-1
titstr(4) = "Latent Heat Flux (W m~S~-2~N~)"
titstr(5) = "Photosynthesis (gC m~S~-2~N~day~S~-1~N~)"
titstr(6) = "Leaf Area Index"
+ titstr(7) = "Soil Moisture Storage - liq+ice (kg m~S~-2~N~)"
end if
if (p .eq. 1) then
fileName = "set3_radFlx.txt"
@@ -372,6 +373,8 @@ do p=0,nplots-1
landmask7 = new((/nvars,nlat7,nlon7/),"float")
area7 = new((/nvars,nlat7,nlon7/),"float")
+ ; No obs for soil moisture storage
+
landmask2!0 = "var"
landmask2&var = vv
landmask2!1 = "lat"
@@ -681,7 +684,7 @@ do p=0,nplots-1
a7 = ptr_lai->area
obsFlag = 1
sFlag(i) = 0
- else
+ else ; This will cover TOTSOILLIQICE (no obs)
obsFlag = 0
sFlag(i) = 0
aFlag(i) = 0
diff --git a/lnd_diag/model-obs/set_5.ncl b/lnd_diag/model-obs/set_5.ncl
index 358d59f6..c38e5efa 100755
--- a/lnd_diag/model-obs/set_5.ncl
+++ b/lnd_diag/model-obs/set_5.ncl
@@ -141,8 +141,14 @@ do p=0,nplots-1
lon1 = in1->lon
nlat1 = dimsizes(lat1)
nlon1 = dimsizes(lon1)
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ area1g = dble2flt(area_global_rectilinear_grid(lat1,lon1,False))
+ area1g = area1g * 1.e6 ; convert from km2 to m2
if (lon1(0) .ge. 0) then
area1 = lonFlip(area1)
+ area1g = lonFlip(area1g)
landfrac1 = lonFlip(landfrac1)
end if
@@ -235,6 +241,7 @@ do p=0,nplots-1
info = var_init(vars(i))
filevar = vars(i)
if(isfilevar(in1,filevar) .and. info@derivedVariable .eq. False)then
+; if(isfilevar(in1,filevar))then
if (c13Flag(i) .eq. "C13_") then
x1 = derive_del13C(vars(i),in1,scale_type(i),nyrs,5)
if(all(ismissing(x1)))then
@@ -249,7 +256,10 @@ do p=0,nplots-1
plot_check(i) = False
end if
else
+ tmp10 = in1->$filevar$
+ printVarSummary(tmp10)
x1 = in1->$filevar$
+ printVarSummary(x1)
end if
end if
delete(filevar)
@@ -263,7 +273,20 @@ do p=0,nplots-1
else
print("variable "+ vars(i)+ " is not a defined variable.")
plot_check(i) = False
- continue
+ if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then
+ x1 = new((/nyrs/),"float")
+ x1!0 ="time"
+ x1&time =time1
+ else
+ x1 = new((/nyrs,nlat1,nlon1/),"float")
+ x1!0 ="time"
+ x1&time =time1
+ x1!1 ="lat"
+ x1&lat = lat1
+ x1!2 ="lon"
+ x1&lon = lon1
+ end if
+; continue
end if
end if
@@ -290,6 +313,7 @@ do p=0,nplots-1
if (vars(i) .eq. "TSA" ) then
tmp = ptr_wm->$vars(i)$
x2 = dim_avg(tmp(lat|:,lon|:,month|:))
+ printVarSummary(x2)
l2 = ptr_wm->datamask
a2 = ptr_wm->weight
obsFlag(i) = 1;
@@ -459,7 +483,9 @@ do p=0,nplots-1
a2 = lonFlip(a2)
l2 = lonFlip(l2)
end if
+ printVarSummary(x2)
array2(i,:,:) = x2 ; Wrapper fcn that copies coord Vars
+ printVarSummary(array2)
landmask2(i,:,:) = l2
area2(i,:,:) = a2
delete(l2)
@@ -668,36 +694,42 @@ do region=startNumber,nreg-1
; NOTE: area units are m2
if (resoln(i) .eq. 2) then
x2 = array2(i,:,:)
+ x2@long_name = "NOTHING"
value2 = regional_values(x2,region,area2(i,:,:),landmask2(i,:,:),scale_type(i),\
regions_file,time1,nTime,compare)
delete(x2)
end if
if (resoln(i) .eq. 3) then
x3 = array3(i,:,:)
+ x3@long_name = "NOTHING"
value2 = regional_values(x3,region,area3(i,:,:),landmask3(i,:,:),scale_type(i),\
regions_file,time1,nTime,compare)
delete(x3)
end if
if (resoln(i) .eq. 4) then
x4 = array4(i,:,:)
+ x4@long_name = "NOTHING"
value2 = regional_values(x4,region,area4(i,:,:),landmask4(i,:,:),scale_type(i),\
regions_file,time1,nTime,compare)
delete(x4)
end if
if (resoln(i) .eq. 5) then
x5 = array5(i,:,:)
+ x5@long_name = "NOTHING"
value2 = regional_values(x5,region,area5(i,:,:),landmask5(i,:,:),scale_type(i),\
regions_file,time1,nTime,compare)
delete(x5)
end if
if (resoln(i) .eq. 6) then
x6 = array6(i,:,:)
+ x6@long_name = "NOTHING"
value2 = regional_values(x6,region,area6(i,:,:),landmask6(i,:,:),scale_type(i),\
regions_file,time1,nTime,compare)
delete(x6)
end if
if (resoln(i) .eq. 7) then
x7 = array7(i,:,:)
+ x7@long_name = "NOTHING"
value2 = regional_values(x7,region,area7(i,:,:),landmask7(i,:,:),scale_type(i),\
regions_file,time1,nTime,compare)
delete(x7)
@@ -710,18 +742,27 @@ do region=startNumber,nreg-1
if (c13Flag(i) .eq. "C13_") then
x1 = array13c1(i)
value1 = x1 ; del13C values are regionally averaged before conversion
+ delete(x1)
else
if (c14Flag(i) .eq. "C14_") then
x1 = array14c1(i)
value1 = x1 ; del14C values are regionally averaged before conversion
+ delete(x1)
else
x1 = array1(i,:,:)
; NOTE: area units are m2
- value1 = regional_values(x1,region,area1,landfrac1,scale_type(i),\
- regions_file,time1,nTime,compare)
+ if (vars(i) .eq. "CPL_ENERGY_BAL") then
+ x1@long_name = "CPL_ENERGY_BAL"
+ value1 = regional_values(x1,region,area1g,landfrac1,scale_type(i),\
+ regions_file,time1,nTime,compare)
+ delete(x1)
+ else
+ value1 = regional_values(x1,region,area1,landfrac1,scale_type(i),\
+ regions_file,time1,nTime,compare)
+ delete(x1)
+ end if
end if
end if
- delete(x1)
else
value1 = -999.
value2 = -999.
diff --git a/lnd_diag/model-obs/set_6.ncl b/lnd_diag/model-obs/set_6.ncl
index a1140fd3..b45650bb 100755
--- a/lnd_diag/model-obs/set_6.ncl
+++ b/lnd_diag/model-obs/set_6.ncl
@@ -279,15 +279,17 @@ print("Now printing plot #" + p)
prefix1 = getenv(name11)
in1 = addfile(ptmpdir + "/" + prefix1 +"ANN_ALL.nc","r")
print ("DEBUG file in1 = "+ptmpdir+"/"+prefix1+"ANN_ALL.nc")
-; Follow logic of set_1 because now both levsoi and levgrnd may be present
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21)
nlev1 = 0
if (isfilevar(in1,"levsoi")) then
nlev1 = getfilevardimsizes(in1,"levsoi")
levsoi1 = in1->levsoi
- end if
- if (isfilevar(in1,"levgrnd")) then
- nlev1 = getfilevardimsizes(in1,"levgrnd")
- levsoi1 = in1->levgrnd
+ else
+ if (isfilevar(in1,"levgrnd")) then
+ nlev1 = getfilevardimsizes(in1,"levgrnd")
+ levsoi1 = in1->levgrnd
+ end if
end if
if (nlev1 .eq. 0)
print("FATAL ERROR: nlev1 = 0")
@@ -476,11 +478,14 @@ if(plot_check.eq.True)then
res@vpHeightF = 0.4
res@vpWidthF = 0.8
res@tiXAxisOn = False
+ ; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+ ; so I'm changing this to an if/else (01/19/21)
if(isfilevar(in1,"levsoi")) then
- lev = in1->levsoi
- end if
- if(isfilevar(in1,"levgrnd")) then
+ lev = in1->levsoi
+ else
+ if (isfilevar(in1,"levgrnd")) then
lev = in1->levgrnd
+ end if
end if
res@tiYAxisString = array1_3@units
do k=0,nlevLimit-1
diff --git a/lnd_diag/model1-model2/set_1.ncl b/lnd_diag/model1-model2/set_1.ncl
index 354ba45a..1c1c5bcf 100755
--- a/lnd_diag/model1-model2/set_1.ncl
+++ b/lnd_diag/model1-model2/set_1.ncl
@@ -116,17 +116,25 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
landfrac1 = in1->landfrac
area1 = in1->area
time1 = in1->time
+ lat1 = in1->lat
+ lon1 = in1->lon
landfrac2 = in2->landfrac
area2 = in2->area
time2 = in2->time
+ lat2 = in2->lat
+ lon2 = in2->lon
nlev1 = 0
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21). This will
+; preferentially use levsoi
if(isfilevar(in1,"levsoi")) then
- nlev1 = getfilevardimsizes(in1,"levsoi")
- levsoi1 = in1->levsoi
- end if
- if (isfilevar(in1,"levgrnd")) then
- nlev1 = getfilevardimsizes(in1,"levgrnd")
- levsoi1 = in1->levgrnd
+ nlev1 = getfilevardimsizes(in1,"levsoi")
+ levsoi1 = in1->levsoi
+ else
+ if (isfilevar(in1,"levgrnd")) then
+ nlev1 = getfilevardimsizes(in1,"levgrnd")
+ levsoi1 = in1->levgrnd
+ end if
end if
if (nlev1 .eq. 0)
print("FATAL ERROR: nlev1 = 0")
@@ -138,13 +146,17 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
nlev1 = 10
end if
nlev2 = 0
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21). This will
+; preferentially use levsoi
if (isfilevar(in2,"levsoi")) then
- nlev2 = getfilevardimsizes(in2,"levsoi")
- levsoi2 = in2->levsoi
- end if
- if (isfilevar(in2,"levgrnd")) then
- nlev2 = getfilevardimsizes(in2,"levgrnd")
- levsoi2 = in2->levgrnd
+ nlev2 = getfilevardimsizes(in2,"levsoi")
+ levsoi2 = in2->levsoi
+ else
+ if (isfilevar(in2,"levgrnd")) then
+ nlev2 = getfilevardimsizes(in2,"levgrnd")
+ levsoi2 = in2->levgrnd
+ end if
end if
if (nlev2 .eq. 0)
print("FATAL ERROR: nlev2 = 0")
@@ -182,6 +194,10 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
in = in1
landfrac = landfrac1
area = area1
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ areag1 = dble2flt(area_global_rectilinear_grid(lat1,lon1,False))
time = time1
nlev = nlev1
levsoi = levsoi1
@@ -189,6 +205,10 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
in = in2
landfrac = landfrac2
area = area2
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ areag2 = dble2flt(area_global_rectilinear_grid(lat2,lon2,False))
time = time2
nlev = nlev2
levsoi = levsoi2
@@ -278,7 +298,15 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
; calculate global summation or global total
if (c13Flag(i) .ne. "C13_" .and. c14Flag(i) .ne. "C14_") then
- var_plot = global_values(vars(i), x,area,landfrac,scale_type(i),yrs(m),nlev)
+ if (vars(i) .eq. "CPL_ENERGY_BAL") then
+ if (m .eq. 0) then
+ var_plot = global_values(vars(i), x,areag1,landfrac,scale_type(i),yrs(m),nlev)
+ else
+ var_plot = global_values(vars(i), x,areag2,landfrac,scale_type(i),yrs(m),nlev)
+ end if
+ else
+ var_plot = global_values(vars(i), x,area,landfrac,scale_type(i),yrs(m),nlev)
+ end if
else
var_plot = x ; del13C and del14C vars are globally averaged before the del value is calculated
end if
@@ -478,11 +506,15 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
res@pmLegendDisplayMode = "NoCreate" ;"Never"
res@vpHeightF = 0.4
res@vpWidthF = 0.8
- if (isfilevar(in, "levsoi")) then
- lev = in->levsoi
- end if
- if (isfilevar(in, "levgrnd")) then
- lev = in->levgrnd
+ ; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+ ; so I'm changing this to an if/else (01/19/21). This will
+ ; preferentially use levsoi
+ if(isfilevar(in1,"levsoi")) then
+ lev = in1->levsoi
+ else
+ if (isfilevar(in1,"levgrnd")) then
+ lev = in1->levgrnd
+ end if
end if
do k=0,nlev-1
res@tiXAxisOn = False
diff --git a/lnd_diag/model1-model2/set_1AnomPlot.ncl b/lnd_diag/model1-model2/set_1AnomPlot.ncl
index 3e6e0e23..1edcb69d 100755
--- a/lnd_diag/model1-model2/set_1AnomPlot.ncl
+++ b/lnd_diag/model1-model2/set_1AnomPlot.ncl
@@ -94,17 +94,24 @@ begin
landfrac1 = in1->landfrac
area1 = in1->area
time1 = in1->time
+ lat1 = in1->lat
+ lon1 = in1->lon
landfrac2 = in2->landfrac
area2 = in2->area
time2 = in2->time
+ lat2 = in2->lat
+ lon2 = in2->lon
nlev1 = 0
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21)
if(isfilevar(in1,"levsoi")) then
- nlev1 = getfilevardimsizes(in1,"levsoi")
- levsoi1 = in1->levsoi
- end if
- if (isfilevar(in1,"levgrnd")) then
- nlev1 = getfilevardimsizes(in1,"levgrnd")
- levsoi1 = in1->levgrnd
+ nlev1 = getfilevardimsizes(in1,"levsoi")
+ levsoi1 = in1->levsoi
+ else
+ if (isfilevar(in1,"levgrnd")) then
+ nlev1 = getfilevardimsizes(in1,"levgrnd")
+ levsoi1 = in1->levgrnd
+ end if
end if
if (nlev1 .eq. 0)
print("FATAL ERROR: nlev1 = 0")
@@ -116,13 +123,16 @@ begin
nlev1 = 10
end if
nlev2 = 0
- if (isfilevar(in2,"levsoi")) then
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21)
+ if(isfilevar(in2,"levsoi")) then
nlev2 = getfilevardimsizes(in2,"levsoi")
levsoi2 = in2->levsoi
- end if
- if (isfilevar(in2,"levgrnd")) then
- nlev2 = getfilevardimsizes(in2,"levgrnd")
- levsoi2 = in2->levgrnd
+ else
+ if (isfilevar(in2,"levgrnd")) then
+ nlev2 = getfilevardimsizes(in2,"levgrnd")
+ levsoi2 = in2->levgrnd
+ end if
end if
if (nlev2 .eq. 0)
print("FATAL ERROR: nlev2 = 0")
@@ -159,6 +169,10 @@ begin
in = in1
landfrac = landfrac1
area = area1
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ areag1 = dble2flt(area_global_rectilinear_grid(lat1,lon1,False))
time = time1
nlev = nlev1
levsoi = levsoi1
@@ -166,6 +180,10 @@ begin
in = in2
landfrac = landfrac2
area = area2
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ areag2 = dble2flt(area_global_rectilinear_grid(lat2,lon2,False))
time = time2
nlev = nlev2
levsoi = levsoi2
@@ -253,7 +271,15 @@ begin
; calculate global summation or global total
if (c13Flag(i) .ne. "C13_" .and. c14Flag(i) .ne. "C14_") then
- var_plot = global_values(vars(i), x,area,landfrac,scale_type(i),yrs(m),nlev)
+ if (vars(i) .eq. "CPL_ENERGY_BAL") then
+ if (m .eq. 0) then
+ var_plot = global_values(vars(i), x,areag1,landfrac,scale_type(i),yrs(m),nlev)
+ else
+ var_plot = global_values(vars(i), x,areag2,landfrac,scale_type(i),yrs(m),nlev)
+ end if
+ else
+ var_plot = global_values(vars(i), x,area,landfrac,scale_type(i),yrs(m),nlev)
+ end if
else
var_plot = x ; del13C and del14C vars are globally averaged before the del value is calculated
end if
@@ -443,11 +469,14 @@ begin
res@pmLegendDisplayMode = "NoCreate" ;"Never"
res@vpHeightF = 0.4
res@vpWidthF = 0.8
+ ; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+ ; so I'm changing this to an if/else (01/19/21)
if (isfilevar(in, "levsoi")) then
lev = in->levsoi
- end if
- if (isfilevar(in, "levgrnd")) then
- lev = in->levgrnd
+ else
+ if (isfilevar(in, "levgrnd")) then
+ lev = in->levgrnd
+ end if
end if
do k=0,nlev-1
res@tiXAxisOn = False
diff --git a/lnd_diag/model1-model2/set_1DiffPlot.ncl b/lnd_diag/model1-model2/set_1DiffPlot.ncl
index cf8a74fa..38ca3e8e 100755
--- a/lnd_diag/model1-model2/set_1DiffPlot.ncl
+++ b/lnd_diag/model1-model2/set_1DiffPlot.ncl
@@ -104,17 +104,24 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
landfrac1 = in1->landfrac
area1 = in1->area
time1 = in1->time
+ lat1 = in1->lat
+ lon1 = in1->lon
landfrac2 = in2->landfrac
area2 = in2->area
time2 = in2->time
+ lat2 = in2->lat
+ lon2 = in2->lon
nlev1 = 0
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21)
if(isfilevar(in1,"levsoi")) then
- nlev1 = getfilevardimsizes(in1,"levsoi")
- levsoi1 = in1->levsoi
- end if
- if(isfilevar(in1,"levgrnd")) then
- nlev1 = getfilevardimsizes(in1,"levgrnd")
- levsoi1 = in1->levgrnd
+ nlev1 = getfilevardimsizes(in1,"levsoi")
+ levsoi1 = in1->levsoi
+ else
+ if (isfilevar(in1,"levgrnd")) then
+ nlev1 = getfilevardimsizes(in1,"levgrnd")
+ levsoi1 = in1->levgrnd
+ end if
end if
if (nlev1 .eq. 0)
print("FATAL ERROR: nlev1 = 0")
@@ -126,13 +133,16 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
nlev1 = 10
end if
nlev2 = 0
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21)
if(isfilevar(in2,"levsoi")) then
- nlev2 = getfilevardimsizes(in2,"levsoi")
- levsoi2 = in2->levsoi
- end if
- if(isfilevar(in2,"levgrnd")) then
- nlev2 = getfilevardimsizes(in2,"levgrnd")
- levsoi2 = in2->levgrnd
+ nlev2 = getfilevardimsizes(in2,"levsoi")
+ levsoi2 = in2->levsoi
+ else
+ if (isfilevar(in2,"levgrnd")) then
+ nlev2 = getfilevardimsizes(in2,"levgrnd")
+ levsoi2 = in2->levgrnd
+ end if
end if
if (nlev2 .eq. 0)
print("FATAL ERROR: nlev2 = 0")
@@ -167,6 +177,10 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
in = in1
landfrac = landfrac1
area = area1
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ areag1 = dble2flt(area_global_rectilinear_grid(lat1,lon1,False))
time = time1
nlev = nlev1
; levsoi = levsoi1 ; nanr 5may11 - causing problems for AdamPhillips. Not sure why
@@ -174,6 +188,10 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
in = in2
landfrac = landfrac2
area = area2
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ areag2 = dble2flt(area_global_rectilinear_grid(lat2,lon2,False))
time = time2
nlev = nlev2
; levsoi = levsoi2 ; nanr 5may11 - causing problems for AdamPhillips. Not sure why
@@ -276,9 +294,17 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
; calculate global summation or global total
if (c13Flag(i) .ne. "C13_" .and. c14Flag(i) .ne. "C14_") then
- var_plot = global_values(vars(i), x,area,landfrac,scale_type(i),yrs(m),nlev)
+ if (vars(i) .eq. "CPL_ENERGY_BAL") then
+ if (m .eq. 0) then
+ var_plot = global_values(vars(i), x,areag1,landfrac,scale_type(i),yrs(m),nlev)
+ else
+ var_plot = global_values(vars(i), x,areag2,landfrac,scale_type(i),yrs(m),nlev)
+ end if
+ else
+ var_plot = global_values(vars(i), x,area,landfrac,scale_type(i),yrs(m),nlev)
+ end if
else
- var_plot = x ; del14C vars are globally averaged before the del value is calculated
+ var_plot = x ; del14C vars are globally averaged before the del value is calculated
end if
rank2 = dimsizes(dimsizes(var_plot))
@@ -440,11 +466,14 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag"))
res@pmLegendDisplayMode = "Never"
res@vpHeightF = 0.4
res@vpWidthF = 0.8
+ ; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+ ; so I'm changing this to an if/else (01/19/21)
if(isfilevar(in,"levsoi")) then
lev = in->levsoi
- end if
- if(isfilevar(in,"levgrnd")) then
- lev = in->levgrnd
+ else
+ if(isfilevar(in,"levgrnd")) then
+ lev = in->levgrnd
+ end if
end if
do k=0,nlev-1
res@tiXAxisOn = False
diff --git a/lnd_diag/model1-model2/set_2.ncl b/lnd_diag/model1-model2/set_2.ncl
index ecb9a7de..5421dd24 100755
--- a/lnd_diag/model1-model2/set_2.ncl
+++ b/lnd_diag/model1-model2/set_2.ncl
@@ -664,7 +664,7 @@ begin
;**************************************************************************
; dynContour: 0=dynamic;1=explicit
- if (info@cn_Explicit .eq. True .and. dynContour(i) .eq. 1 .and. user_defined .eq. 1) then
+ if (info@cn_Explicit .eq. True .and. dynContour(i) .eq. 1 .and. user_defined .eq. True) then
expFlag = True
else
expFlag = False
diff --git a/lnd_diag/model1-model2/set_3.ncl b/lnd_diag/model1-model2/set_3.ncl
index 55f0427d..6e63c3fe 100755
--- a/lnd_diag/model1-model2/set_3.ncl
+++ b/lnd_diag/model1-model2/set_3.ncl
@@ -74,7 +74,7 @@ print("Now printing plot #" + p)
fileName = "set3_landFlx.txt"
end if
plot_name = "landf"
- titstr = new(7,"string")
+ titstr = new(8,"string")
titstr(0) = "2m Air Temperature (~S~o~N~K)"
titstr(1) = "Precipitation (mm day~S~-1~N~)"
titstr(2) = "Runoff (mm day~S~-1~N~)"
@@ -82,6 +82,7 @@ print("Now printing plot #" + p)
titstr(4) = "Latent Heat Flux (W m~S~-2~N~)"
titstr(5) = "Photosynthesis (gC m~S~-2~N~day~S~-1~N~)"
titstr(6) = "Leaf Area Index"
+ titstr(7) = "Soil Moisture Storage - liq+ice (kg m~S~-2~N~)"
end if
if (p .eq. 1) then
fileName = "set3_radFlx.txt"
@@ -220,7 +221,7 @@ print("Now printing plot #" + p)
;----------------------------------------------------------
tmp = stringtocharacter(asciiread(inputdir+"/"+fileName,-1,"string"))
nvars = dimsizes(tmp(:,0))
-print(" p = " + p + " nvars = " + nvars)
+ print(" p = " + p + " nvars = " + nvars)
nplotsPerCol = (nvars+1)/2
scale_type = new(nvars,"string")
vars = new(nvars,"string")
@@ -399,6 +400,8 @@ print(" p = " + p + " nvars = " + nvars)
landmask7 = new((/nvars,nlat7,nlon7/),"float")
area7 = new((/nvars,nlat7,nlon7/),"float")
+ ; No obs for soil moisture storage
+
landmask3!0 = "var"
landmask3&var = vv
landmask3!1 = "lat"
@@ -483,8 +486,10 @@ print(" p = " + p + " nvars = " + nvars)
sFlag = new((/nvars/),"integer")
aFlag = new((/nvars/),"integer")
+ obsFlag = new((/nvars/),"integer")
sFlag = 0
aFlag = 0
+ obsFlag = 0
;**************************
; Variable loop ----------- read both cases of each variable into memeory.
@@ -549,14 +554,14 @@ print(" p = " + p + " nvars = " + nvars)
end if
;read in observations (if present)
- obsFlag = 0 ; (1 = on; 0 = off)
+ obsFlag(i) = 0 ; (1 = on; 0 = off)
if (paleo .ne. "True") then
if (vars(i) .eq. "TSA" ) then
x3 = ptr_wm->$vars(i)$
l3 = ptr_wm->datamask
a3 = ptr_wm->weight
cases(2) = "Willmott-Matsuura(T,P),GRDC(R),USAF/ETAC(S),FLUXNET(LHF,GPP)"
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 0
else
if (vars(i) .eq. "PREC" .and. p .ne. 5) then
@@ -564,14 +569,14 @@ print(" p = " + p + " nvars = " + nvars)
l3 = ptr_wm->datamask
a3 = ptr_wm->weight
cases(2) = "Willmott-Matsuura(T,P),GRDC(R),USAF/ETAC(S),FLUXNET(LHF,GPP)"
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 0
else
if (vars(i) .eq. "TOTRUNOFF" ) then
x3 = ptr_grdc->RUNOFF
l3 = ptr_grdc->datamask
a3 = ptr_grdc->weight
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 0
else
if (vars(i) .eq. "SNOWDP" .and. snowFlag .eq. 1) then
@@ -583,7 +588,7 @@ print(" p = " + p + " nvars = " + nvars)
a3 = ptr_fd->weight
cases(2) = "USAF"
x3@_FillValue = 1e30
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 0
else
if (vars(i) .eq. "FSNO" ) then
@@ -594,7 +599,7 @@ print(" p = " + p + " nvars = " + nvars)
a4 = ptr_scf->weight
cases(2) = "NOAA AVHRR (1967-2003)"
x4@_FillValue = 1e30
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 1
else
if (vars(i) .eq. "H2OSNO" ) then
@@ -604,7 +609,7 @@ print(" p = " + p + " nvars = " + nvars)
a4 = ptr_swe->weight
cases(3) = "CMC (1980-1996)"
x4@_FillValue = 1e30
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 1
else
if (vars(i) .eq. "SNOWDP" .and. snowFlag .eq. 2) then
@@ -617,7 +622,7 @@ print(" p = " + p + " nvars = " + nvars)
a4 = ptr_sd->weight
cases(3) = "CMC (1980-1996)"
x4@_FillValue = 1e30
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 1
else
if (vars(i) .eq. "VBSA") then
@@ -629,7 +634,7 @@ print(" p = " + p + " nvars = " + nvars)
l5 = ptr_alb->LANDFRAC
a5 = ptr_alb->weight
x5@_FillValue = 1e30
- obsFlag = 1;
+ obsFlag(i) = 1;
sFlag(i) = 0;
aFlag(i) = 1;
else
@@ -642,7 +647,7 @@ print(" p = " + p + " nvars = " + nvars)
l5 = ptr_alb->LANDFRAC
a5 = ptr_alb->weight
x5@_FillValue = 1e30
- obsFlag = 1;
+ obsFlag(i) = 1;
sFlag(i) = 0;
aFlag(i) = 1;
else
@@ -655,7 +660,7 @@ print(" p = " + p + " nvars = " + nvars)
l5 = ptr_alb->LANDFRAC
a5 = ptr_alb->weight
x5@_FillValue = 1e30
- obsFlag = 1;
+ obsFlag(i) = 1;
sFlag(i) = 0;
aFlag(i) = 1;
else
@@ -668,7 +673,7 @@ print(" p = " + p + " nvars = " + nvars)
l5 = ptr_alb->LANDFRAC
a5 = ptr_alb->weight
x5@_FillValue = 1e30
- obsFlag = 1;
+ obsFlag(i) = 1;
sFlag(i) = 0;
aFlag(i) = 1;
else
@@ -681,7 +686,7 @@ print(" p = " + p + " nvars = " + nvars)
l5 = ptr_alb->LANDFRAC ; use LANDFRAC and weight from ptr_alb file.
a5 = ptr_alb->weight
x5@_FillValue = 1e30
- obsFlag = 1;
+ obsFlag(i) = 1;
sFlag(i) = 0;
aFlag(i) = 1;
else
@@ -689,24 +694,24 @@ print(" p = " + p + " nvars = " + nvars)
x6 = ptr_lhf->LHF
l6 = ptr_lhf->datamask
a6 = ptr_lhf->area
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 0
else
if ((vars(i) .eq. "FPSN" .and. cn .eq. 0) .or. vars(i) .eq. "GPP") then
x6 = ptr_gpp->GPP
l6 = ptr_gpp->datamask
a6 = ptr_gpp->area
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 0
else
if (vars(i) .eq. "TLAI") then
x7 = ptr_lai->TLAI
l7 = ptr_lai->landmask
a7 = ptr_lai->area
- obsFlag = 1
+ obsFlag(i) = 1
sFlag(i) = 0
- else
- obsFlag = 0
+ else ; This will cover TOTSOILLIQICE (no obs)
+ obsFlag(i) = 0
sFlag(i) = 0
aFlag(i) = 0
end if
@@ -727,15 +732,18 @@ print(" p = " + p + " nvars = " + nvars)
end if ; paleo
if (paleo .eq. "True") then
- obsFlag = 0
+ obsFlag(i) = 0
end if
+; print((/"var: "+vars(i)/))
+; print((/"obsFlag: "+obsFlag(i)/))
+; print((/"vcheck1: "+vcheck1(i)/))
if (vcheck1(i) .eq. True) then
; catch NaNs
x1 = catchNaN(x1)
x1 = scale_var(x1,scale_type(i),info)
- if (obsFlag .eq. 1) then ; process variables with observed data
+ if (obsFlag(i) .eq. 1) then ; process variables with observed data
if (isvar("x3") )
x3 = catchNaN(x3)
x3!0 = "mons"
@@ -961,6 +969,7 @@ if(plot_check.eq.True)then
end if
do region=startRegion,nreg-1
+; print((/"region: "+region/))
; open ps file for plotting
wks = gsn_open_wks(plot_type,wkdir + "set3_" + plot_name + "_" + ps_id(region))
@@ -1123,9 +1132,13 @@ if(plot_check.eq.True)then
; process variables with observed data
- if (obsFlag .eq. 1) then
+; print((/"var: "+vars(i)/))
+; print((/"obsFlag: "+obsFlag(i)/))
+ if (obsFlag(i) .eq. 1) then
data = new((/3,nmons/),"double")
compare = "obs"
+; print((/"sFlag: "+sFlag(i)/))
+; print((/"aFlag: "+aFlag(i)/))
if (sFlag(i) .eq. 1) then ; processing snow vars at 1x1 degree
x4 = array4(i,:,:,:)
var_plot3 = regional_values(x4,region,area4(i,:,:),landmask4(i,:,:),scale_type(i),\
@@ -1138,6 +1151,9 @@ if(plot_check.eq.True)then
regions_file,time1,nmons,compare)
delete(x5)
else
+; print((/vars(i)/))
+ ; OBS are restricted to plot 0 and plots 6 and 7 (as handled by sFlag and aFlag above)
+ if (p .eq. 0) then
x3 = array3(i,:,:,:)
var_plot3 = regional_values(x3,region,area3(i,:,:),landmask3(i,:,:),scale_type(i),\
regions_file,time1,nmons,compare)
@@ -1160,11 +1176,14 @@ if(plot_check.eq.True)then
regions_file,time1,nmons,compare)
delete(x7)
end if
+ end if
+ end if
end if
end if
+ if (p .eq. 0 .or. sFlag(i) .eq. 1 .or. aFlag(i) .eq. 1) then
+ data(2,:) = var_plot3
+ delete(var_plot3)
end if
- data(2,:) = var_plot3
- delete(var_plot3)
else
data = new((/2,nmons/),"double")
end if
@@ -1407,6 +1426,7 @@ end if ; end of plot_check loop
delete(res@xyDashPatterns)
delete(sFlag)
delete(aFlag)
+ delete(obsFlag)
end do ; end p plot loop
diff --git a/lnd_diag/model1-model2/set_5.ncl b/lnd_diag/model1-model2/set_5.ncl
index afdfd878..7cc13b3f 100755
--- a/lnd_diag/model1-model2/set_5.ncl
+++ b/lnd_diag/model1-model2/set_5.ncl
@@ -143,6 +143,11 @@ print("Now printing plot #" + p)
lon1 = in1->lon
nlat1 = dimsizes(lat1)
nlon1 = dimsizes(lon1)
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ area1g = dble2flt(area_global_rectilinear_grid(lat1,lon1,False))
+ area1g = area1g * 1.e6 ; convert from km2 to m2
nyrs2 = getfilevardimsizes(in2,"time")
landfrac2 = in2->landfrac
area2 = in2->area ; read in variable to retain metadata
@@ -152,7 +157,11 @@ print("Now printing plot #" + p)
lon2 = in2->lon
nlat2 = dimsizes(lat2)
nlon2 = dimsizes(lon2)
-
+ ; We only have area for land gridcells and we need area over all gridcells
+ ; to calculate CPL_ENERGY_BAL with respect to global area consistent with
+ ; calculation in the coupler
+ area2g = dble2flt(area_global_rectilinear_grid(lat2,lon2,False))
+ area2g = area2g * 1.e6 ; convert from km2 to m2
if (lon1(0) .lt. 0.) then
fliplon1 = "False" ; history files start at dateline
@@ -168,11 +177,13 @@ print("Now printing plot #" + p)
if (fliplon1 .eq. "True") then
area1 = lonFlip(area1)
+ area1g = lonFlip(area1g)
landfrac1 = lonFlip(landfrac1)
end if
if (fliplon2 .eq. "True") then
area2 = lonFlip(area2)
+ area2g = lonFlip(area2g)
landfrac2 = lonFlip(landfrac2)
end if
@@ -352,10 +363,21 @@ do region=startNumber,nreg-1
x2 = array2(i,:,:)
; NOTE: area units are m2
- value1 = regional_values(x1,region,area1,landfrac1,scale_type(i),\
- regions_file,time1,nTime,compare)
- value2 = regional_values(x2,region,area2,landfrac2,scale_type(i),\
- regions_file,time2,nTime,compare)
+ if (vars(i) .eq. "CPL_ENERGY_BAL") then
+ x1@long_name = "CPL_ENERGY_BAL"
+ x2@long_name = "CPL_ENERGY_BAL"
+ value1 = regional_values(x1,region,area1g,landfrac1,scale_type(i),\
+ regions_file,time1,nTime,compare)
+ value2 = regional_values(x2,region,area2g,landfrac2,scale_type(i),\
+ regions_file,time2,nTime,compare)
+ delete(x1@long_name)
+ delete(x2@long_name)
+ else
+ value1 = regional_values(x1,region,area1,landfrac1,scale_type(i),\
+ regions_file,time1,nTime,compare)
+ value2 = regional_values(x2,region,area2,landfrac2,scale_type(i),\
+ regions_file,time2,nTime,compare)
+ end if
end if
end if
diff --git a/lnd_diag/model1-model2/set_6.ncl b/lnd_diag/model1-model2/set_6.ncl
index 98afa883..d93b3c26 100755
--- a/lnd_diag/model1-model2/set_6.ncl
+++ b/lnd_diag/model1-model2/set_6.ncl
@@ -343,15 +343,17 @@ nplots = 12
prefix(1) = getenv(name22)
in1 = addfile(ptmpdir1+"/"+prefix(0)+"ANN_ALL.nc","r")
in2 = addfile(ptmpdir2+"/"+prefix(1)+"ANN_ALL.nc","r")
-; Follow logic of set_1 because now both levsoi and levgrnd may be present
nlev1 = 0
- if (isfilevar(in1,"levsoi")) then
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21)
+ if(isfilevar(in1,"levsoi")) then
nlev1 = getfilevardimsizes(in1,"levsoi")
levsoi1 = in1->levsoi
- end if
- if (isfilevar(in1,"levgrnd")) then
- nlev1 = getfilevardimsizes(in1,"levgrnd")
- levsoi1 = in1->levgrnd
+ else
+ if (isfilevar(in1,"levgrnd")) then
+ nlev1 = getfilevardimsizes(in1,"levgrnd")
+ levsoi1 = in1->levgrnd
+ end if
end if
if (nlev1 .eq. 0)
print("FATAL ERROR: nlev1 = 0")
@@ -363,13 +365,16 @@ nplots = 12
nlev1 = 10
end if
nlev2 = 0
- if (isfilevar(in2,"levsoi")) then
+; CTSM5.1.dev021 now has both levsoi and levgrnd variables
+; so I'm changing this to an if/else (01/19/21)
+ if(isfilevar(in2,"levsoi")) then
nlev2 = getfilevardimsizes(in2,"levsoi")
levsoi2 = in2->levsoi
- end if
- if (isfilevar(in2,"levgrnd")) then
- nlev2 = getfilevardimsizes(in2,"levgrnd")
- levsoi2 = in2->levgrnd
+ else
+ if (isfilevar(in2,"levgrnd")) then
+ nlev2 = getfilevardimsizes(in2,"levgrnd")
+ levsoi2 = in2->levgrnd
+ end if
end if
if (nlev2 .eq. 0)
print("FATAL ERROR: nlev2 = 0")
@@ -484,6 +489,13 @@ nplots = 12
; check for variables in case 1
info = var_init(vars(i))
vcheck1(i) = True
+ ; Special hack for CWDC to CWD_C change
+; print((/vars(i)/))
+; print((/isfilevar(in1,vars(i))/))
+; print((/.not.(isfilevar(in1,vars(i)))/))
+ if (vars(i) .eq. "CWDC" .and. .not.(isfilevar(in1,vars(i)))) then
+ vars(i) = "CWD_C"
+ end if
if(isfilevar(in1,vars(i)) .and. info@derivedVariable .eq. False)then
x1 = in1->$vars(i)$
@@ -500,6 +512,10 @@ nplots = 12
end if
; check for variables in case 2
vcheck2(i) = True
+ ; Special hack for CWDC to CWD_C change
+ if (vars(i) .eq. "CWDC" .and. .not.(isfilevar(in2,vars(i)))) then
+ vars(i) = "CWD_C"
+ end if
if(isfilevar(in2,vars(i)) .and. info@derivedVariable .eq. False)then
x2 = in2->$vars(i)$
else
diff --git a/lnd_diag/shared/lnd_create_webpage.pl b/lnd_diag/shared/lnd_create_webpage.pl
index 51aedf1b..63720f98 100755
--- a/lnd_diag/shared/lnd_create_webpage.pl
+++ b/lnd_diag/shared/lnd_create_webpage.pl
@@ -152,7 +152,7 @@ sub mainHeader1
{
local($num) = @_;
$num++;
- $path = "\"http://www.cgd.ucar.edu/tss/clm/clm/diagnostics/images/NCAR.gif\"";
+ $path = "\"http://www2.cgd.ucar.edu/tss/clm/clm/diagnostics/images/NCAR.gif\"";
printf fp_main "\n";
printf fp_main "\n";
printf fp_main "LND_DIAG Diagnostic Plots\n";
@@ -169,7 +169,7 @@ sub mainHeader1
printf fp_main "
\n";
printf fp_main "\n";
printf fp_main "
\n";
@@ -234,12 +234,12 @@ sub set_Inactive
sub setHeader
{
- if ($set == 5 || $set == 9) { $path = "\"http://www.cgd.ucar.edu/tss/clm/diagnostics/images/3Dglobe.gif\""; }
+ if ($set == 5) { $path = "\"http://www2.cgd.ucar.edu/tss/clm/diagnostics/images/3Dglobe.gif\""; }
else {
if ($set == 3 | $set == 4) { $sn = "s"; }
else { $sn = "sn";}
- if ( $set == 8) { $path = "\"http://www.cgd.ucar.edu/tss/clm/diagnostics/images/SET".$set.".jpg\""; }
- else { $path = "\"http://www.cgd.ucar.edu/tss/clm/diagnostics/images/SET".$set.$sn.".gif\""; }
+ if ( $set == 8) { $path = "\"http://www2.cgd.ucar.edu/tss/clm/diagnostics/images/SET".$set.".jpg\""; }
+ else { $path = "\"http://www2.cgd.ucar.edu/tss/clm/diagnostics/images/SET".$set.$sn.".gif\""; }
}
# write generalized header
@@ -278,7 +278,7 @@ sub setHeader
sub clickablePlotTypes
{
printf(fp_main "\n");
- @setList = (1,2,3,4,6,7,8,10,11,12);
+ @setList = (1,2,3,4,6,7,8,9,10,11,12);
printf(fp_main "
\n");
printf(fp_main "Click on Plot Type\n");
for $set (@setList)
@@ -288,8 +288,8 @@ sub clickablePlotTypes
## if( @status[$set-1] == "True") {
if( @status[$set-1] eq "True") {
$href = "set".$set."/set".$set.".html";
- if ($set == 8) { $path = "\"http://www.cgd.ucar.edu/tss/clm/diagnostics/images/SET".$set.".jpg\""; }
- else { $path = "\"http://www.cgd.ucar.edu/tss/clm/diagnostics/images/SET".$set.$sn.".gif\""; }
+ if ($set == 8) { $path = "\"http://www2.cgd.ucar.edu/tss/clm/diagnostics/images/SET".$set.".jpg\""; }
+ else { $path = "\"http://www2.cgd.ucar.edu/tss/clm/diagnostics/images/SET".$set.$sn.".gif\""; }
printf(fp_main "\n");
}
}
diff --git a/lnd_diag/shared/lnd_func.ncl b/lnd_diag/shared/lnd_func.ncl
index 8235e530..44c05d06 100755
--- a/lnd_diag/shared/lnd_func.ncl
+++ b/lnd_diag/shared/lnd_func.ncl
@@ -49,7 +49,7 @@ begin
avg_x = new(numyrs,typeof(x)) ; no level
; This variable is calculated per total GLOBAL area, not global LAND area.
; therefore, area1 is not masked by land as it is for the other vars.
- if (varName .eq. "RNET-SENS-LATENT") then
+ if (varName .eq. "RNET-SENS-LATENT" .or. varName .eq. "CPL_ENERGY_BAL") then
if(isvar("area1")) then
delete(area1)
end if
@@ -429,6 +429,23 @@ begin
return(new_var)
end if
+ if(var_name.eq."TOTSOILLIQICE") then
+ soilice = ptr ->SOILICE
+ soilliq = ptr ->SOILLIQ
+ ; SOILICE and SOILLIQ should have same vertical dim so just need to check one
+ if(isfilevardim(ptr,"SOILICE","levsoi")) then
+ new_var = dim_sum(soilice(time|:,lat|:,lon|:,levsoi|:)) + \
+ dim_sum(soilliq(time|:,lat|:,lon|:,levsoi|:))
+ else
+ if(isfilevardim(ptr,"SOILICE","levgrnd")) then
+ new_var = dim_sum(soilice(time|:,lat|:,lon|:,levgrnd|:)) + \
+ dim_sum(soilliq(time|:,lat|:,lon|:,levgrnd|:))
+ end if
+ end if
+ copy_VarCoords(soilice(:,0,:,:),new_var)
+ return(new_var)
+ end if
+
if(var_name.eq."EVAPFRAC" .or. var_name .eq. "LATENT")then
; LHEAT
fctr = ptr ->FCTR
@@ -923,7 +940,15 @@ begin
weights_1n = area
weights_1n = -9999.
if(rank.eq.2)then
- area1 = mask(area, ismissing(x), False)
+ ; The variable CPL_ENERGY_BAL is calculated per total GLOBAL area, not global LAND area.
+ ; therefore, area1 is not masked by land as it is for the other vars.
+ ; We don't have the variable name available in this function so use the long_name
+ printVarSummary(x)
+ if (x@long_name .eq. "CPL_ENERGY_BAL") then
+ area1 = area
+ else
+ area1 = mask(area, ismissing(x), False)
+ end if
fland1 = mask(landfrac, ismissing(x), False)
nmissing = num(isnan_ieee(x) )
end if
@@ -967,8 +992,16 @@ do t = 0,endTime
weights_1n = -9999.
if(rank.eq.2)then
- area1 = mask(area, ismissing(x(:,:)), False)
- fland1 = mask(landfrac, ismissing(x(:,:)), False)
+ ; The variable CPL_ENERGY_BAL is calculated per total GLOBAL area, not global LAND area.
+ ; therefore, area1 and fland1 are not masked by land as it is for the other vars.
+ ; We don't have the variable name available in this function so use the long_name
+ printVarSummary(x)
+ if (x@long_name .eq. "CPL_ENERGY_BAL") then
+ area1 = area
+ else
+ area1 = mask(area, ismissing(x(:,:)), False)
+ fland1 = mask(landfrac, ismissing(x(:,:)), False)
+ end if
end if
if(rank.eq.3)then
area1 = mask(area, ismissing(x(t,:,:)), False)
@@ -984,12 +1017,19 @@ do t = 0,endTime
if (compare .eq. "model") then
; calculate area mean
if(type .eq. "Mean")then ; sets 3, 5 (some) and 6
+ if (x@long_name .eq. "CPL_ENERGY_BAL") then
+ weights_1n ({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}) = \
+ (area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
+ fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))/ \
+ sum(area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))
+ else
weights_1n ({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}) = \
(area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))/ \
sum(area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))
- end if
+ end if
+ end if
; calculate area total
if(type .eq. "Totl")then ; set 5 (some)
weights_1n ({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}) = \
@@ -1004,11 +1044,26 @@ do t = 0,endTime
if (sum(area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})) \
.gt. 0.) then
- weights_1n ({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}) = \
- (area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
- fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))/ \
- sum(area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
- fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))
+ if (isatt(x,"long_name")) then
+ if (x@long_name .eq. "CPL_ENERGY_BAL") then
+ weights_1n ({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}) = \
+ (area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
+ fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))/ \
+ sum(area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))
+ else
+ weights_1n ({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}) = \
+ (area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
+ fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))/ \
+ sum(area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
+ fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))
+ end if
+ else
+ weights_1n ({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}) = \
+ (area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
+ fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))/ \
+ sum(area1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)})* \
+ fland1({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}))
+ end if
else
weights_1n ({box_s(ar):box_n(ar)},{box_w(ar):box_e(ar)}) = 0.
end if
diff --git a/lnd_diag/shared/lnd_lookupTable.pl b/lnd_diag/shared/lnd_lookupTable.pl
index bcc6055d..dbc82b43 100755
--- a/lnd_diag/shared/lnd_lookupTable.pl
+++ b/lnd_diag/shared/lnd_lookupTable.pl
@@ -83,7 +83,7 @@ sub mainHeader1
{
local($num) = @_;
$num++;
- $path = "\"http://www.cgd.ucar.edu/tss/clm/clm/diagnostics/images/NCAR.gif\"";
+ $path = "\"http://www2.cgd.ucar.edu/tss/clm/clm/diagnostics/images/NCAR.gif\"";
printf fp_main "\n";
printf fp_main "
\n";
printf fp_main "LND Variable Definitions\n";
diff --git a/lnd_diag/shared/lnd_statTable.pl b/lnd_diag/shared/lnd_statTable.pl
index bf3ddc51..c0da097e 100755
--- a/lnd_diag/shared/lnd_statTable.pl
+++ b/lnd_diag/shared/lnd_statTable.pl
@@ -60,7 +60,7 @@ sub mainHeader1
{
local($num) = @_;
$num++;
- $path = "\"http://www.cgd.ucar.edu/tss/clm/clm/diagnostics/images/NCAR.gif\"";
+ $path = "\"http://www2.cgd.ucar.edu/tss/clm/clm/diagnostics/images/NCAR.gif\"";
printf fp_main "\n";
printf fp_main "\n";
printf fp_main "LND Variable Definitions\n";
diff --git a/lnd_diag/shared/se2fv_esmf.regrid2file.ncl b/lnd_diag/shared/se2fv_esmf.regrid2file.ncl
index 4bb39d36..ec6067d1 100644
--- a/lnd_diag/shared/se2fv_esmf.regrid2file.ncl
+++ b/lnd_diag/shared/se2fv_esmf.regrid2file.ncl
@@ -48,7 +48,7 @@ begin
var_in_exclude = (/"lat", "lon", "date_written", "time_written", "time_bounds", "area"/)
;---Specify a list of variables on the source SE file that should be directly copied
- var_in_copy = (/"time", "levgrnd", "levlak", "levdcmp", "hist_interval","mscur"/)
+ var_in_copy = (/"time", "levgrnd", "levsoi", "levlak", "levdcmp", "hist_interval","mscur"/)
;---Specify a list of variables to be regridded
var_out = "All_Variables" ; to be regridded
@@ -56,8 +56,10 @@ begin
;---Specify the weights, source and destination file names
WgtFileName = "weights_file_"+SE_file
if (oldres .eq. "SE_NE30") then
- SrcSCRIP = LL_dir+"/SCRIPgrid_ne30np4_nomask_c101123.nc"
- SrcSCRIPFileName = "SCRIPgrid_ne30np4_nomask_c101123_"+RGRD_file
+; SrcSCRIP = LL_dir+"/SCRIPgrid_ne30np4_nomask_c101123.nc"
+; SrcSCRIPFileName = "SCRIPgrid_ne30np4_nomask_c101123_"+RGRD_file
+ SrcSCRIP = "/glade/p/cesmdata/cseg/inputdata/atm/cam/coords/ne30pg3_scrip_170604.nc"
+ SrcSCRIPFileName = "ne30pg3_scrip_170604_"+RGRD_file
else
if (oldres .eq. "SE_NE30_CONUS") then
SrcSCRIP = LL_dir+"/SCRIPgrid_conus_30_x8_nomask_c170111.nc"
@@ -235,7 +237,7 @@ begin
if (rank_in .eq.2 .and. .not.any(var_in(nv).eq.var_in_copy)) then
vdims = getfilevardims(sfile, var_in(nv))
- if (.not.any(vdims.eq."levgrnd") .and. .not.any(vdims.eq."levlak")) then
+ if (.not.any(vdims.eq."levgrnd") .and. .not.any(vdims.eq."levlak") .and. .not.any(vdims.eq."levsoi")) then
filevardef(rgrd_nc, var_in(nv), varvar_types \
, (/ "time", "lat", "lon" /) )
dumAtts = new( 1, varvar_types)
diff --git a/lnd_diag/shared/variable_master4.3.ncl b/lnd_diag/shared/variable_master4.3.ncl
index 5fc87deb..3501a2eb 100644
--- a/lnd_diag/shared/variable_master4.3.ncl
+++ b/lnd_diag/shared/variable_master4.3.ncl
@@ -1519,6 +1519,35 @@ begin
info@cn_LevelsDiff = (/-10., -8.0, -6.0, -4.0, -2.0, 0.0, 2.0, 4.0, 6.0, 8.0, 10/)
return(info)
end if
+
+ if (varName .eq. "LNFM") then
+ info@flux=True
+ info@longName="lightning frequency"
+ info@nativeUnits = "counts/km^2/hr"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "counts/y"
+ info@globalTotal_Annual__SF = 24.*365.
+ ; -- global Mean
+ info@globalMean__units = "counts/km^2/hr"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "counts/km^2/y"
+ info@globalMean_Annual__SF = 24.*365.
+ info@globalMean_Daily__units = "counts/km^2/d"
+ info@globalMean_Daily__SF = 24.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.0, 0.03, 0.06, 0.09, 0.12, 0.15, 0.18, 0.21, 0.24/)
+ info@cn_LevelsDiff = (/-0.10, -0.08, -0.06, -0.04, -0.02, 0.0, 0.02, 0.04, 0.06, 0.08, 0.10/)
+ return(info)
+ end if
if (varName .eq. "SR") then
info@flux=True
@@ -2869,6 +2898,35 @@ begin
info@cn_LevelsDiff = (/-1., -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1/)
return(info)
end if
+
+ if (varName .eq. "CWD_C") then
+ info@flux=False
+ info@longName="coarse woody debris carbon"
+ info@nativeUnits = "gC/m^2"
+ ; -- global Total
+ info@globalTotal__units = "PgC"
+ info@globalTotal__SF = grams2Pgrams
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "kgC/m^2"
+ info@globalMean__SF = grams2Kgrams
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/1.0, 2., 3., 4., 5.0, 6.0, 7., 8., 9/)
+ info@cn_LevelsDiff = (/-1., -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1/)
+ return(info)
+ end if
if (varName .eq. "TOTLITC") then
info@flux=False
@@ -5364,6 +5422,35 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "ALTMAX") then
+ info@flux=False
+ info@longName="maximum annual active layer thickness"
+ info@nativeUnits = "m"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "m"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 2., 4./)
+ info@cn_LevelsDiff = (/-0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6/)
+ return(info)
+ end if
+
if (varName .eq. "DEGREE_DAYS") then
info@flux=False
info@longName="Accumulated degree days"
@@ -5424,7 +5511,7 @@ if (varName .eq. "LITTERC_HR") then
if (varName .eq. "CPL_ENERGY_BAL") then
info@flux=True
- info@longName="Coupler Energy Balance (Land Area)"
+ info@longName="Coupler Energy Balance (Global Area)"
info@nativeUnits = "W/m2"
; -- global Total
info@globalTotal__units = "NA"
@@ -7420,6 +7507,34 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "TOTSOILLIQICE") then
+ info@flux=False
+ info@longName="soil moisture storage (liq+ice)"
+ info@nativeUnits = "kg/m^2"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "kg/m^2" ;for mm water equivalent: 1:1 conversion from kg/m2
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = True
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,50.,100.,150.,200.,250.,300.,350.,900./)
+ return(info)
+ end if
+
if (varName .eq. "SOIL_PSI") then
info@flux=False
info@longName="Soil Water Potential"
@@ -7563,9 +7678,9 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "QIRRIG") then
+ if (varName .eq. "QIRRIG_DRIP") then
info@flux=True
- info@longName="water added through irrig"
+ info@longName="water added via drip irrig"
info@nativeUnits = "mm/s"
; -- global Total
info@globalTotal__units = "NA"
@@ -8559,6 +8674,35 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "RAIN_FROM_ATM") then
+ info@flux=True
+ info@longName="atmospheric rain (pre-downscaling)"
+ info@nativeUnits = "mm/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "mm/s"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "mm/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "mm/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,2.,4.,6.,8.,10.,12.,14.,16./)
+ info@cn_LevelsDiff = (/-1.25,-1.,-0.75,-0.5,-0.25,0.,0.25,0.5,0.75,1.,1.25/)
+ return(info)
+ end if
+
if (varName .eq. "SNOW") then
info@flux=True
info@longName="atmospheric snow"
@@ -8588,6 +8732,34 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "SNOW_FROM_ATM") then
+ info@flux=True
+ info@longName="atmospheric snow (pre-downscaling)"
+ info@nativeUnits = "mm/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "mm/s"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "mm/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "mm/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,.5,1.,1.5,2.,2.5,3.,3.5,4./)
+ info@cn_LevelsDiff = (/-1.25,-1.,-0.75,-0.5,-0.25,0.,0.25,0.5,0.75,1.,1.25/)
+ return(info)
+ end if
if (varName .eq. "SNOW_REPARTITIONED") then
info@flux=True
@@ -8674,6 +8846,62 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = (/-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5./)
return(info)
end if
+ if (varName .eq. "UWIND") then
+ info@flux=True
+ info@longName="atmospheric uwind velocity magnitude"
+ info@nativeUnits = "m/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "m/s"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "m/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "m/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,2.,4.,6.,8.,10.,12.,14.,16./)
+ info@cn_LevelsDiff = (/-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5./)
+ return(info)
+ end if
+ if (varName .eq. "VWIND") then
+ info@flux=True
+ info@longName="atmospheric vwind velocity magnitude"
+ info@nativeUnits = "m/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "m/s"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "m/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "m/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,2.,4.,6.,8.,10.,12.,14.,16./)
+ info@cn_LevelsDiff = (/-5.,-4.,-3.,-2.,-1.,0.,1.,2.,3.,4.,5./)
+ return(info)
+ end if
if (varName .eq. "U10") then
info@flux=True
@@ -8762,9 +8990,9 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "PCO2") then
+ if (varName .eq. "PBOT_NOT_DOWNSCALED") then
info@flux=False
- info@longName="partial pressure of CO2"
+ info@longName="atm pressure of bottom layer (pre-downscaling)"
info@nativeUnits = "Pa"
; -- global Total
info@globalTotal__units = "NA"
@@ -8791,17 +9019,17 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "CO2_PPMV") then
+ if (varName .eq. "Rho_from_atm") then
info@flux=False
- info@longName="CO2 concentration"
- info@nativeUnits = "ppmv"
+ info@longName="atmospheric density of bottom layer (pre-downscaling)"
+ info@nativeUnits = "kg/m3"
; -- global Total
info@globalTotal__units = "NA"
info@globalTotal__SF = -999.
info@globalTotal_Annual__units = "NA"
info@globalTotal_Annual__SF = -999.
; -- global Mean
- info@globalMean__units = "ppmv"
+ info@globalMean__units = "kg/m3"
info@globalMean__SF = 1.0
info@globalMean_Annual__units = "NA"
info@globalMean_Annual__SF = -999.
@@ -8809,7 +9037,7 @@ if (varName .eq. "LITTERC_HR") then
info@globalMean_Daily__SF = -999.
; -- Origin
info@model = "CLM"
- info@derivedVariable = True
+ info@derivedVariable = False
info@clampVariable = False
; -- contour intervals
info@cn_Explicit = False
@@ -8820,28 +9048,28 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "TBOT") then
+ if (varName .eq. "PCO2") then
info@flux=False
- info@longName="atmospheric air temperature"
- info@nativeUnits = "K"
+ info@longName="partial pressure of CO2"
+ info@nativeUnits = "Pa"
; -- global Total
info@globalTotal__units = "NA"
info@globalTotal__SF = -999.
info@globalTotal_Annual__units = "NA"
info@globalTotal_Annual__SF = -999.
; -- global Mean
- info@globalMean__units = "K"
+ info@globalMean__units = "Pa"
info@globalMean__SF = 1.0
info@globalMean_Annual__units = "NA"
- info@globalMean_Annual__SF = -999.
+ info@globalMean_Annual__SF = -999.
info@globalMean_Daily__units = "NA"
- info@globalMean_Daily__SF = -999.
- ; -- Origin
- info@model = "CN"
- info@derivedVariable = False
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CLM"
+ info@derivedVariable = False
info@clampVariable = False
; -- contour intervals
- info@cn_Explicit = True
+ info@cn_Explicit = False
info@cn_Min = -999
info@cn_Max = -999
info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
@@ -8849,28 +9077,28 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "THBOT") then
+ if (varName .eq. "CO2_PPMV") then
info@flux=False
- info@longName="atmospheric air potential temperature"
- info@nativeUnits = "K"
+ info@longName="CO2 concentration"
+ info@nativeUnits = "ppmv"
; -- global Total
info@globalTotal__units = "NA"
info@globalTotal__SF = -999.
info@globalTotal_Annual__units = "NA"
info@globalTotal_Annual__SF = -999.
; -- global Mean
- info@globalMean__units = "K"
+ info@globalMean__units = "ppmv"
info@globalMean__SF = 1.0
info@globalMean_Annual__units = "NA"
- info@globalMean_Annual__SF = -999.
+ info@globalMean_Annual__SF = -999.
info@globalMean_Daily__units = "NA"
- info@globalMean_Daily__SF = -999.
- ; -- Origin
- info@model = "CN"
- info@derivedVariable = False
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CLM"
+ info@derivedVariable = True
info@clampVariable = False
; -- contour intervals
- info@cn_Explicit = True
+ info@cn_Explicit = False
info@cn_Min = -999
info@cn_Max = -999
info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
@@ -8878,17 +9106,17 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
- if (varName .eq. "TLAKE") then
+ if (varName .eq. "ATM_TOPO") then
info@flux=False
- info@longName="lake temperature"
- info@nativeUnits = "K"
+ info@longName="atmospheric surface height"
+ info@nativeUnits = "m"
; -- global Total
info@globalTotal__units = "NA"
info@globalTotal__SF = -999.
info@globalTotal_Annual__units = "NA"
info@globalTotal_Annual__SF = -999.
; -- global Mean
- info@globalMean__units = "K"
+ info@globalMean__units = "m"
info@globalMean__SF = 1.0
info@globalMean_Annual__units = "NA"
info@globalMean_Annual__SF = -999.
@@ -8902,7 +9130,152 @@ if (varName .eq. "LITTERC_HR") then
info@cn_Explicit = True
info@cn_Min = -999
info@cn_Max = -999
- info@cn_Level0 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "TBOT") then
+ info@flux=False
+ info@longName="atmospheric air temperature"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "Tair_from_atm") then
+ info@flux=False
+ info@longName="atmospheric air temperature (pre-downscaling)"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "THBOT") then
+ info@flux=False
+ info@longName="atmospheric air potential temperature"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "Thair_from_atm") then
+ info@flux=False
+ info@longName="atmospheric air potential temperature (pre-downscaling)"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/-50, -40, -30, -20, -10, 0, 10, 20, 30/)
+ info@cn_LevelsDiff = (/-2.5,-2.,-1.5,-1.,-0.5,0.,0.5,1.,1.5,2.,2.5/)
+ return(info)
+ end if
+
+ if (varName .eq. "TLAKE") then
+ info@flux=False
+ info@longName="lake temperature"
+ info@nativeUnits = "K"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "K"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Level0 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
info@cn_Level1 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
info@cn_Level2 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
info@cn_Level3 = (/-10, -5, -1, 0, 1, 5, 10, 15, 20/)
@@ -9012,6 +9385,35 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "QBOT_NOT_DOWNSCALED") then
+ info@flux=False
+ info@longName="atmospheric specific humidity (pre-downscaling)"
+ info@nativeUnits = "kg/kg"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "kg/kg"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/0.,0.002,0.004,0.006,0.008,0.010,0.012,0.014,0.016/)
+ info@cn_LevelsDiff = (/-2.5e-3,-2.0e-3,-1.5e-3,-1.0e-3,-0.5e-3,0.,0.5e-3,1.0e-3,1.5e-3,2.0e-3,2.5e-3/)
+ return(info)
+ end if
+
if (varName .eq. "ZBOT") then
info@flux=False
info@longName="atmospheric reference height"
@@ -9099,6 +9501,35 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "FLDS_NOT_DOWNSCALED") then
+ info@flux=True
+ info@longName="atmospheric longwave radiation (pre-downscaling)"
+ info@nativeUnits = "W/m^2"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "W/m^2"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = (/100.,150.,200.,250.,300.,350.,400.,450.,500./)
+ info@cn_LevelsDiff = (/-50.,-25.,-10.,-5.,-1.,0.,1.,5.,10.,25.,50./)
+ return(info)
+ end if
+
if (varName .eq. "SOLAR") then
info@flux=True
info@longName="Total Incident Solar Radiation"
@@ -10192,6 +10623,34 @@ if (varName .eq. "LITTERC_HR") then
return(info)
end if
+ if (varName .eq. "ZETA") then
+ info@flux=False
+ info@longName="dimensionless stability parameter"
+ info@nativeUnits = "unitless"
+ ; -- global Total
+ info@globalTotal__units = "unitless"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "unitless"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = "...."
+ return(info)
+ end if
+
if (varName .eq. "ZSOI") then
info@flux=False
info@longName="soil depth"
@@ -11051,6 +11510,35 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
+
+ if (varName .eq. "C13_CWD_C") then
+ info@flux=False
+ info@longName="C13 Coarse Woody Debris Carbon"
+ info@nativeUnits = "gC/m^2"
+ ; -- global Total
+ info@globalTotal__units = "per mil v PDB"
+ info@globalTotal__SF = 1.0
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "per mil v PDB"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
if (varName .eq. "C13_DEADCROOTC") then
info@flux=False
@@ -12380,10 +12868,10 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
-
- if (varName .eq. "C14_DEADCROOTC") then
+
+ if (varName .eq. "C14_CWD_C") then
info@flux=False
- info@longName="C14 Dead Coarse Root Carbon"
+ info@longName="C14 Coarse Woody Debris Carbon"
info@nativeUnits = "gC/m^2"
; -- global Total
info@globalTotal__units = "per mil"
@@ -12409,7 +12897,36 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
-
+
+ if (varName .eq. "C14_DEADCROOTC") then
+ info@flux=False
+ info@longName="C14 Dead Coarse Root Carbon"
+ info@nativeUnits = "gC/m^2"
+ ; -- global Total
+ info@globalTotal__units = "per mil"
+ info@globalTotal__SF = 1.0
+ info@globalTotal_Annual__units = "NA"
+ info@globalTotal_Annual__SF = -999.
+ ; -- global Mean
+ info@globalMean__units = "per mil"
+ info@globalMean__SF = 1.0
+ info@globalMean_Annual__units = "NA"
+ info@globalMean_Annual__SF = -999.
+ info@globalMean_Daily__units = "NA"
+ info@globalMean_Daily__SF = -999.
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = False
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+
if (varName .eq. "C14_DEADSTEMC") then
info@flux=False
info@longName="C14 Dead Stem Carbon"
@@ -13623,6 +14140,230 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
+ if (varName .eq. "DSTWET1") then
+ info@flux=True
+ info@longName="dust deposition (wet1) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTDRY1") then
+ info@flux=True
+ info@longName="dust deposition (dry1) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTWET2") then
+ info@flux=True
+ info@longName="dust deposition (wet2) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTDRY2") then
+ info@flux=True
+ info@longName="dust deposition (dry2) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTWET3") then
+ info@flux=True
+ info@longName="dust deposition (wet3) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTDRY3") then
+ info@flux=True
+ info@longName="dust deposition (dry3) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTWET4") then
+ info@flux=True
+ info@longName="dust deposition (wet4) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "DSTDRY4") then
+ info@flux=True
+ info@longName="dust deposition (dry4) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
if (varName .eq. "DSTFLXT") then
info@flux=True
@@ -13681,6 +14422,90 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
+ if (varName .eq. "OCPHIDRY") then
+ info@flux=True
+ info@longName="OC deposition (phidry) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "OCPHODRY") then
+ info@flux=True
+ info@longName="OC deposition (phodry) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "OCPHIWET") then
+ info@flux=True
+ info@longName="OC deposition (phiwet) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
if (varName .eq. "BCDEP") then
info@flux=True
@@ -13710,6 +14535,90 @@ if (varName .eq. "LITTERC_HR") then
info@cn_LevelsDiff = -999
return(info)
end if
+ if (varName .eq. "BCPHIDRY") then
+ info@flux=True
+ info@longName="BC deposition (phidry) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "BCPHODRY") then
+ info@flux=True
+ info@longName="BC deposition (phodry) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
+ if (varName .eq. "BCPHIWET") then
+ info@flux=True
+ info@longName="BC deposition (phiwet) from atmosphere"
+ info@nativeUnits = "kg/m2/s"
+ ; -- global Total
+ info@globalTotal__units = "NA"
+ info@globalTotal__SF = -999.
+ info@globalTotal_Annual__units = "Pg/y"
+ info@globalTotal_Annual__SF = kgrams2Pgrams*secondsInYear
+ ; -- global Mean
+ info@globalMean__units = "kg/m2/s"
+ info@globalMean__SF = -999.
+ info@globalMean_Annual__units = "kg/m2/y"
+ info@globalMean_Annual__SF = secondsInYear
+ info@globalMean_Daily__units = "kg/m2/d"
+ info@globalMean_Daily__SF = secondsInDay
+ ; -- Origin
+ info@model = "CN"
+ info@derivedVariable = False
+ info@clampVariable = True
+ ; -- contour intervals
+ info@cn_Explicit = True
+ info@cn_Min = -999
+ info@cn_Max = -999
+ info@cn_Levels = -999.
+ info@cn_LevelsDiff = -999
+ return(info)
+ end if
print("no variable info for variable "+ varName)
info = False