From e5cf2989159a3c1604222fbd010cf49e8b85196c Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Fri, 7 Jun 2019 10:35:05 -0600 Subject: [PATCH] Add NPUTAKE_FRACTION, fix C13,C14 units, revise C13,C14 calculation --- lnd_diag/inputFiles/set1_c13.txt | 2 + lnd_diag/inputFiles/set1_cn.txt | 1 + lnd_diag/inputFiles/set2_c13.txt | 2 + lnd_diag/inputFiles/set2_cn.txt | 1 + lnd_diag/inputFiles/set5_c13.txt | 2 + lnd_diag/inputFiles/set5_cn.txt | 1 + lnd_diag/inputFiles/set6_cnFlx.txt | 2 +- lnd_diag/inputFiles/variable_master4.3.ncl | 372 ++++++++++++++------- lnd_diag/model-obs/set_1.ncl | 14 +- lnd_diag/model-obs/set_10.ncl | 12 +- lnd_diag/model-obs/set_11.ncl | 12 +- lnd_diag/model-obs/set_2.ncl | 12 +- lnd_diag/model-obs/set_5.ncl | 50 ++- lnd_diag/model-obs/set_6.ncl | 2 +- lnd_diag/model1-model2/set_1.ncl | 13 +- lnd_diag/model1-model2/set_10.ncl | 38 ++- lnd_diag/model1-model2/set_11.ncl | 38 ++- lnd_diag/model1-model2/set_1AnomPlot.ncl | 12 +- lnd_diag/model1-model2/set_1DiffPlot.ncl | 16 +- lnd_diag/model1-model2/set_2.ncl | 39 ++- lnd_diag/model1-model2/set_5.ncl | 57 +++- lnd_diag/model1-model2/set_6.ncl | 2 +- lnd_diag/model1-model2/set_9.ncl | 6 + lnd_diag/shared/lnd_func.ncl | 79 ++++- lnd_diag/shared/variable_master4.3.ncl | 372 ++++++++++++++------- 25 files changed, 806 insertions(+), 351 deletions(-) diff --git a/lnd_diag/inputFiles/set1_c13.txt b/lnd_diag/inputFiles/set1_c13.txt index 3823332e..23a5051b 100755 --- a/lnd_diag/inputFiles/set1_c13.txt +++ b/lnd_diag/inputFiles/set1_c13.txt @@ -1,4 +1,5 @@ globalTotlAnn C13_NEE +globalTotlAnn C13_NBP globalTotlAnn C13_NEP globalTotlAnn C13_GPP globalTotlAnn C13_PSNSUN_TO_CPOOL @@ -34,6 +35,7 @@ globalTotlNat C13_PFT_CTRUNC globalTotlAnn C13_COL_FIRE_CLOSS globalTotlAnn C13_PFT_FIRE_CLOSS globalTotlAnn C14_NEE +globalTotlAnn C14_NBP globalTotlAnn C14_NEP globalTotlAnn C14_GPP globalTotlAnn C14_PSNSUN_TO_CPOOL diff --git a/lnd_diag/inputFiles/set1_cn.txt b/lnd_diag/inputFiles/set1_cn.txt index cc17f619..9f1b513c 100755 --- a/lnd_diag/inputFiles/set1_cn.txt +++ b/lnd_diag/inputFiles/set1_cn.txt @@ -70,6 +70,7 @@ globalTotlAnn NECM globalTotlAnn NFIX globalTotlAnn NRETRANS globalTotlAnn NPP_NUPTAKE +globalMeanNat NUPTAKE_FRACTION globalTotlAnn FFIX_TO_SMINN globalTotlAnn NPP_NFIX globalTotlAnn NPP_NACTIVE diff --git a/lnd_diag/inputFiles/set2_c13.txt b/lnd_diag/inputFiles/set2_c13.txt index 63954a28..bba72b53 100755 --- a/lnd_diag/inputFiles/set2_c13.txt +++ b/lnd_diag/inputFiles/set2_c13.txt @@ -1,4 +1,5 @@ globalMeanDay0 C13_NEE +globalMeanDay0 C13_NBP globalMeanDay0 C13_NEP globalMeanDay0 C13_GPP globalMeanDay0 C13_PSNSUN_TO_CPOOL @@ -32,6 +33,7 @@ globalMeanNat0 C13_TOTECOSYSC globalMeanAnn0 C13_COL_FIRE_CLOSS globalMeanAnn0 C13_PFT_FIRE_CLOSS globalMeanDay0 C14_NEE +globalMeanDay0 C14_NBP globalMeanDay0 C14_NEP globalMeanDay0 C14_GPP globalMeanDay0 C14_PSNSUN_TO_CPOOL diff --git a/lnd_diag/inputFiles/set2_cn.txt b/lnd_diag/inputFiles/set2_cn.txt index 64a64e8b..32621535 100755 --- a/lnd_diag/inputFiles/set2_cn.txt +++ b/lnd_diag/inputFiles/set2_cn.txt @@ -81,6 +81,7 @@ globalMeanAnn0 NECM globalMeanAnn0 NFIX globalMeanAnn0 NRETRANS globalMeanAnn0 NPP_NUPTAKE +globalMeanNat0 NUPTAKE_FRACTION globalMeanAnn0 FFIX_TO_SMINN globalMeanAnn0 NPP_NFIX globalMeanAnn0 NPP_NACTIVE diff --git a/lnd_diag/inputFiles/set5_c13.txt b/lnd_diag/inputFiles/set5_c13.txt index 3823332e..23a5051b 100755 --- a/lnd_diag/inputFiles/set5_c13.txt +++ b/lnd_diag/inputFiles/set5_c13.txt @@ -1,4 +1,5 @@ globalTotlAnn C13_NEE +globalTotlAnn C13_NBP globalTotlAnn C13_NEP globalTotlAnn C13_GPP globalTotlAnn C13_PSNSUN_TO_CPOOL @@ -34,6 +35,7 @@ globalTotlNat C13_PFT_CTRUNC globalTotlAnn C13_COL_FIRE_CLOSS globalTotlAnn C13_PFT_FIRE_CLOSS globalTotlAnn C14_NEE +globalTotlAnn C14_NBP globalTotlAnn C14_NEP globalTotlAnn C14_GPP globalTotlAnn C14_PSNSUN_TO_CPOOL diff --git a/lnd_diag/inputFiles/set5_cn.txt b/lnd_diag/inputFiles/set5_cn.txt index 5e67215f..09913012 100755 --- a/lnd_diag/inputFiles/set5_cn.txt +++ b/lnd_diag/inputFiles/set5_cn.txt @@ -72,6 +72,7 @@ globalTotlAnn NECM globalTotlAnn NFIX globalTotlAnn NRETRANS globalTotlAnn NPP_NUPTAKE +globalMeanNat NUPTAKE_FRACTION globalTotlAnn FFIX_TO_SMINN globalTotlAnn NPP_NFIX globalTotlAnn NPP_NACTIVE diff --git a/lnd_diag/inputFiles/set6_cnFlx.txt b/lnd_diag/inputFiles/set6_cnFlx.txt index b95e8739..45ae2d0d 100755 --- a/lnd_diag/inputFiles/set6_cnFlx.txt +++ b/lnd_diag/inputFiles/set6_cnFlx.txt @@ -7,4 +7,4 @@ globalMeanDay ER globalMeanDay FCH4 globalMeanNat CUE globalMeanDay SMIN_NO3_LEACHED -globalMeanDay SMIN_NO3_RUNOFF +globalMeanNat NUPTAKE_FRACTION diff --git a/lnd_diag/inputFiles/variable_master4.3.ncl b/lnd_diag/inputFiles/variable_master4.3.ncl index 87b1719e..5aedddfb 100644 --- a/lnd_diag/inputFiles/variable_master4.3.ncl +++ b/lnd_diag/inputFiles/variable_master4.3.ncl @@ -482,6 +482,64 @@ begin return(info) end if + if (varName .eq. "NUPTAKE_NPP_FRACTION") then + info@flux=True + info@longName="frac of NPP used in N uptake" + info@nativeUnits = "unitless" + ; -- global Total + info@globalTotal__units = "NA" + info@globalTotal__SF = -999. + info@globalTotal_Annual__units = "unitless" + info@globalTotal_Annual__SF = -999. + ; -- global Mean + info@globalMean__units = "NA" + 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.1,0.2,0.3,0.5,0.6,0.7,0.8,0.9/) + info@cn_LevelsDiff = (/-.5,-.4,-.3,-.2,-.1,0.,.1,.2,.3,.4,.5/) + return(info) + end if + + if (varName .eq. "NUPTAKE_FRACTION") then + info@flux=True + info@longName="NPP_NUPTAKE/(NPP_NUPTAKE+NPP)" + info@nativeUnits = "unitless" + ; -- global Total + info@globalTotal__units = "NA" + info@globalTotal__SF = -999. + info@globalTotal_Annual__units = "unitless" + info@globalTotal_Annual__SF = -999. + ; -- global Mean + info@globalMean__units = "NA" + info@globalMean__SF = 1.0 + info@globalMean_Annual__units = "unitless" + 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.,0.1,0.2,0.3,0.5,0.6,0.7,0.8,0.9/) + info@cn_LevelsDiff = (/-.5,-.4,-.3,-.2,-.1,0.,.1,.2,.3,.4,.5/) + return(info) + end if + if (varName .eq. "NPP_NFIX") then info@flux=True info@longName="Symbiotic BNF uptake used C" @@ -11247,6 +11305,35 @@ if (varName .eq. "LITTERC_HR") then return(info) end if + if (varName .eq. "C13_NBP") then + info@flux=True + info@longName="C13 net biome production, includes fire, landuse and harvest flux" + info@nativeUnits = "gC/m^2/s" + ; -- global Total + info@globalTotal__units = "NA" + info@globalTotal__SF = -999. + info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__SF = 1.0 + ; -- global Mean + info@globalMean__units = "per mil v PDB" + info@globalMean__SF = 1.0 + info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__SF = 1.0 + info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__SF = 1.0 + ; -- 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_NPP") then info@flux=True info@longName="C13 Net Primary Production" @@ -11747,14 +11834,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11776,14 +11863,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11805,14 +11892,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11834,14 +11921,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11863,14 +11950,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11890,12 +11977,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Column-Level Sink for C Truncation" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -11920,14 +12007,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11947,12 +12034,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Temporary Photosynthate C Pool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -11976,12 +12063,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Temporary Photosynthate C Pool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12005,12 +12092,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Coarse Woody Debris Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12034,12 +12121,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Dead Coarse Root Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12063,12 +12150,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Dead Stem Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12092,12 +12179,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Displayed Veg Carbon, Excluding Storage and Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12122,14 +12209,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12149,12 +12236,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Fine Root CC" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12180,14 +12267,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12209,14 +12296,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12238,14 +12325,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12265,12 +12352,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Leaf Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12296,14 +12383,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12323,12 +12410,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Litter Labile C" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12351,12 +12438,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Litter Cellulose C" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12379,12 +12466,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Litter Lignin C" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12407,12 +12494,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Live Coarse Root Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12436,12 +12523,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Live Stem C" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12467,14 +12554,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12496,14 +12583,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12525,14 +12612,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12547,6 +12634,35 @@ if (varName .eq. "LITTERC_HR") then return(info) end if + if (varName .eq. "C14_NBP") then + info@flux=True + info@longName="C14 net biome production, includes fire, landuse and harvest flux" + info@nativeUnits = "gC/m^2/s" + ; -- global Total + info@globalTotal__units = "NA" + info@globalTotal__SF = -999. + info@globalTotal_Annual__units = "per mil" + info@globalTotal_Annual__SF = 1.0 + ; -- global Mean + info@globalMean__units = "per mil" + info@globalMean__SF = 1.0 + info@globalMean_Annual__units = "per mil" + info@globalMean_Annual__SF = 1.0 + info@globalMean_Daily__units = "per mil" + info@globalMean_Daily__SF = 1.0 + ; -- 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_NPP") then info@flux=True info@longName="C14 Net Primary Production" @@ -12554,14 +12670,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12581,12 +12697,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Pft-Level Sink for C Truncation" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12612,14 +12728,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12641,14 +12757,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12668,12 +12784,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Soil Organic Matter C (Fast Pool)" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12697,12 +12813,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Soil Organic Matter C (Medium Pool)" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12726,12 +12842,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Soil Organic Matter C (Slow Pool)" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12755,12 +12871,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Soil Organic Matter C (Slowest Pool)" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12786,14 +12902,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12815,14 +12931,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12842,12 +12958,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Stored Vegetation C, Excluding Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12871,12 +12987,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Totl Litter Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12900,12 +13016,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Total SOM Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12929,12 +13045,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Totl Ecosystem C, Incl Veg But Excl Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12958,12 +13074,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Total Column C, Incl Veg and Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12987,12 +13103,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Totl PFT-Level C, Including Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -13016,12 +13132,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Total Vegetation C, Excluding Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. diff --git a/lnd_diag/model-obs/set_1.ncl b/lnd_diag/model-obs/set_1.ncl index 840ac09a..33bc872b 100755 --- a/lnd_diag/model-obs/set_1.ncl +++ b/lnd_diag/model-obs/set_1.ncl @@ -24,10 +24,12 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) + c14Flag(i) = charactertostring(tmp(i,16:19)) end do ;************************************************* @@ -119,9 +121,13 @@ begin info = var_init(vars(i)) if(isfilevar(in,filevar) .and. info@derivedVariable .eq. False)then if (c13Flag(i) .eq. "C13_") then - x = derive_del13C(vars(i),in,scale_type(i),nyrs,1) + x = derive_del13C(vars(i),in,scale_type(i),nyrs,1) else - x = in->$filevar$ + if (c14Flag(i) .eq. "C14_") then + x = derive_del14C(vars(i),in,scale_type(i),nyrs,1) + else + x = in->$filevar$ + end if end if ;; printVarSummary(x) plot_check = True @@ -171,10 +177,10 @@ begin ; calculate global summation or global total - if (c13Flag(i) .ne. "C13_") then + 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) else - var_plot = x ; del13C vars are globally averaged before the del value is calculated + var_plot = x ; del13C and del14C vars are globally averaged before the del value is calculated end if rank2 = dimsizes(dimsizes(var_plot)) diff --git a/lnd_diag/model-obs/set_10.ncl b/lnd_diag/model-obs/set_10.ncl index cf0e35f0..9cbf5682 100755 --- a/lnd_diag/model-obs/set_10.ncl +++ b/lnd_diag/model-obs/set_10.ncl @@ -38,12 +38,14 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") dynContour = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) dynContour(i) = charactertostring(tmp(i,13)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do delete(tmp) @@ -205,7 +207,11 @@ begin if (c13Flag(i) .eq. "C13_") then x1 = derive_del13C(vars(i),in1,scale_type(i),0,2) else - x1 = in1->$filevar$ + if (c14Flag(i) .eq. "C14_") then + x1 = derive_del14C(vars(i),in1,scale_type(i),0,2) + else + x1 = in1->$filevar$ + end if end if plot_check = True delete(filevar) @@ -515,7 +521,7 @@ begin res@cnLevelSelectionMode = "ExplicitLevels" ; explicit contour levels res@cnLevels = info@cn_Levels ; contour levels else - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations else @@ -727,7 +733,7 @@ begin useMin1 = -2.5*sd ; = mindiff useMax1 = 2.5*sd ; = maxdiff end if - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations end if diff --git a/lnd_diag/model-obs/set_11.ncl b/lnd_diag/model-obs/set_11.ncl index f799f8d1..802e90e6 100755 --- a/lnd_diag/model-obs/set_11.ncl +++ b/lnd_diag/model-obs/set_11.ncl @@ -38,12 +38,14 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") dynContour = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) dynContour(i) = charactertostring(tmp(i,13)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do delete(tmp) @@ -205,7 +207,11 @@ begin if (c13Flag(i) .eq. "C13_") then x1 = derive_del13C(vars(i),in1,scale_type(i),0,2) else - x1 = in1->$filevar$ + if (c14Flag(i) .eq. "C14_") then + x1 = derive_del14C(vars(i),in1,scale_type(i),0,2) + else + x1 = in1->$filevar$ + end if end if plot_check = True delete(filevar) @@ -515,7 +521,7 @@ begin res@cnLevelSelectionMode = "ExplicitLevels" ; explicit contour levels res@cnLevels = info@cn_Levels ; contour levels else - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations else @@ -727,7 +733,7 @@ begin useMin1 = -2.5*sd ; = mindiff useMax1 = 2.5*sd ; = maxdiff end if - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations end if diff --git a/lnd_diag/model-obs/set_2.ncl b/lnd_diag/model-obs/set_2.ncl index 623e50fc..0efa7b46 100755 --- a/lnd_diag/model-obs/set_2.ncl +++ b/lnd_diag/model-obs/set_2.ncl @@ -37,12 +37,14 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") dynContour = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) dynContour(i) = charactertostring(tmp(i,13)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do delete(tmp) @@ -224,7 +226,11 @@ begin if (c13Flag(i) .eq. "C13_") then x1 = derive_del13C(vars(i),in1,scale_type(i),0,2) else - x1 = in1->$filevar$ + if (c14Flag(i) .eq. "C14_") then + x1 = derive_del14C(vars(i),in1,scale_type(i),0,2) + else + x1 = in1->$filevar$ + end if end if plot_check = True delete(filevar) @@ -525,7 +531,7 @@ begin res@cnLevelSelectionMode = "ExplicitLevels" ; explicit contour levels res@cnLevels = info@cn_Levels ; contour levels else - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations else @@ -751,7 +757,7 @@ begin useMin1 = -2.5*sd ; = mindiff useMax1 = 2.5*sd ; = maxdiff end if - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations end if diff --git a/lnd_diag/model-obs/set_5.ncl b/lnd_diag/model-obs/set_5.ncl index a6db0bc8..358d59f6 100755 --- a/lnd_diag/model-obs/set_5.ncl +++ b/lnd_diag/model-obs/set_5.ncl @@ -99,6 +99,7 @@ do p=0,nplots-1 scale_type = new(nvars,"string") vars = new(nvars,"string") c13Flag = new(nvars,"string") + c14Flag = new(nvars,"string") obsFlag = new(nvars,"integer") resoln = new(nvars,"integer") obsFlag = 0 @@ -106,6 +107,7 @@ do p=0,nplots-1 scale_type(i) = charactertostring(tmp(i,0:12)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do delete(tmp) @@ -213,7 +215,7 @@ do p=0,nplots-1 array6 = new((/nvars, nlat6, nlon6/),"double") array7 = new((/nvars, nlat7, nlon7/),"double") array13c1 = new((/nvars/),"double") - array13c2 = new((/nvars/),"double") + array14c1 = new((/nvars/),"double") ; read all variables into memory first and stuff them into two arrays (2 cases) varLabelsR = new(nvars,"string") @@ -234,13 +236,21 @@ do p=0,nplots-1 filevar = vars(i) if(isfilevar(in1,filevar) .and. info@derivedVariable .eq. False)then if (c13Flag(i) .eq. "C13_") then - x1 = derive_del13C(vars(i),in1,scale_type(i),nyrs,5) - if(all(ismissing(x1)))then - print("variable "+ vars(i)+ " values are all missing") - plot_check(i) = False - end if + x1 = derive_del13C(vars(i),in1,scale_type(i),nyrs,5) + if(all(ismissing(x1)))then + print("variable "+ vars(i)+ " values are all missing") + plot_check(i) = False + end if else - x1 = in1->$filevar$ + if (c14Flag(i) .eq. "C14_") then + x1 = derive_del14C(vars(i),in1,scale_type(i),nyrs,5) + if(all(ismissing(x1)))then + print("variable "+ vars(i)+ " values are all missing") + plot_check(i) = False + end if + else + x1 = in1->$filevar$ + end if end if delete(filevar) else @@ -616,7 +626,11 @@ do p=0,nplots-1 if (c13Flag(i) .eq. "C13_") then array13c1(i) = x1 else - array1(i,:,:) = x1 + if (c14Flag(i) .eq. "C14_") then + array14c1(i) = x1 + else + array1(i,:,:) = x1 + end if end if delete(x1) @@ -694,13 +708,18 @@ do region=startNumber,nreg-1 end if compare = "model" if (c13Flag(i) .eq. "C13_") then - x1 = array13c1(i) - value1 = x1 ; del13C values are regionally averaged before conversion + x1 = array13c1(i) + value1 = x1 ; del13C values are regionally averaged before conversion 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 (c14Flag(i) .eq. "C14_") then + x1 = array14c1(i) + value1 = x1 ; del14C values are regionally averaged before conversion + else + x1 = array1(i,:,:) + ; NOTE: area units are m2 + value1 = regional_values(x1,region,area1,landfrac1,scale_type(i),\ + regions_file,time1,nTime,compare) + end if end if delete(x1) else @@ -759,6 +778,7 @@ do region=startNumber,nreg-1 delete(vv) delete(vars) delete(c13Flag) + delete(c14Flag) delete(varLabelsR) delete(varLabelsA) delete(vLongNames) @@ -771,7 +791,7 @@ do region=startNumber,nreg-1 delete(array6) delete(array7) delete(array13c1) - delete(array13c2) + delete(array14c1) delete(scale_type) delete(plot_name) delete(title) diff --git a/lnd_diag/model-obs/set_6.ncl b/lnd_diag/model-obs/set_6.ncl index f253848c..a1140fd3 100755 --- a/lnd_diag/model-obs/set_6.ncl +++ b/lnd_diag/model-obs/set_6.ncl @@ -127,7 +127,7 @@ print("Now printing plot #" + p) titstr(6) = "Gridcell Surface CH4 Flux" titstr(7) = "Carbon Use Efficiency (NPP/GPP)" titstr(8) = "Soil NO3 Pool Loss to Leaching" - titstr(9) = "Soil NO3 Pool Loss to Runoff" + titstr(9) = "NPP_NUPTAKE/(NPP_NUPTAKE+NPP)" else if (casa .eq. 1) then fileName = "set6_casaFlx.txt" diff --git a/lnd_diag/model1-model2/set_1.ncl b/lnd_diag/model1-model2/set_1.ncl index 10fa1f46..089611dc 100755 --- a/lnd_diag/model1-model2/set_1.ncl +++ b/lnd_diag/model1-model2/set_1.ncl @@ -25,10 +25,12 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do ;************************************************* @@ -162,6 +164,7 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag")) ; main loop ;************************************************* do i=0,dimsizes(vars)-1 + print((/vars(i)/)) do m = 0,1 if (m .eq. 0) then useFlag = useCommon1 @@ -209,7 +212,11 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag")) if (c13Flag(i) .eq. "C13_") then x = derive_del13C(vars(i),in,scale_type(i),yrs(m),1) else - x = in->$filevar$ + if (c14Flag(i) .eq. "C14_") then + x = derive_del14C(vars(i),in,scale_type(i),yrs(m),1) + else + x = in->$filevar$ + end if end if plot_check = True delete(filevar) @@ -269,10 +276,10 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag")) cases(m) = cases(m) + " (" + yrs_ave + ")" ; calculate global summation or global total - if (c13Flag(i) .ne. "C13_") then + 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) else - var_plot = x ; del13C vars are globally averaged before the del value is calculated + var_plot = x ; del13C and del14C vars are globally averaged before the del value is calculated end if rank2 = dimsizes(dimsizes(var_plot)) diff --git a/lnd_diag/model1-model2/set_10.ncl b/lnd_diag/model1-model2/set_10.ncl index 72ed10dc..e76e6f9b 100755 --- a/lnd_diag/model1-model2/set_10.ncl +++ b/lnd_diag/model1-model2/set_10.ncl @@ -50,12 +50,14 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") dynContour = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) dynContour(i) = charactertostring(tmp(i,13)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do ;************************************************* @@ -233,11 +235,16 @@ begin x1 = derive_del13C(vars(i),in1, scale_type(i),0,2) x11 = derive_del13C(vars(i),in11,scale_type(i),0,2) else - x1 = in1 ->$filevar$ - x11 = in11->$filevar$ - plot_check_1 = True - plot_check_11 = True - delete(filevar) + if (c14Flag(i) .eq. "C14_") then + x1 = derive_del14C(vars(i),in1, scale_type(i),0,2) + x11 = derive_del14C(vars(i),in11,scale_type(i),0,2) + else + x1 = in1 ->$filevar$ + x11 = in11->$filevar$ + plot_check_1 = True + plot_check_11 = True + delete(filevar) + end if end if else if (info@derivedVariable .eq. True) then @@ -269,11 +276,16 @@ begin x2 = derive_del13C(vars(i),in2, scale_type(i),0,2) x22 = derive_del13C(vars(i),in22,scale_type(i),0,2) else - x2 = in2 ->$filevar$ - x22 = in22->$filevar$ - plot_check_2 = True - plot_check_22 = True - delete(filevar) + if (c14Flag(i) .eq. "C14_") then + x2 = derive_del14C(vars(i),in2, scale_type(i),0,2) + x22 = derive_del14C(vars(i),in22,scale_type(i),0,2) + else + x2 = in2 ->$filevar$ + x22 = in22->$filevar$ + plot_check_2 = True + plot_check_22 = True + delete(filevar) + end if end if else if (info@derivedVariable .eq. True) then @@ -464,6 +476,8 @@ begin if (x1@units .eq. "K") then x1 = x1 - 273.15 ; convert K to C x2 = x2 - 273.15 ; convert K to C +; x1 = x1 - 273.15 ; convert K to C +; x2 = x2 - 273.15 ; convert K to C end if ; catch NaNs @@ -664,7 +678,7 @@ begin res@cnLevelSelectionMode = "ExplicitLevels" ; explicit contour levels res@cnLevels = info@cn_Levels ; contour levels else - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin12 = -40 ; hardcode boundaries to expectations useMax12 = 0 ; hardcode boundaries to expectations else @@ -957,7 +971,7 @@ begin useMax1 = 2.5*sd ; = maxdiff end if - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations end if diff --git a/lnd_diag/model1-model2/set_11.ncl b/lnd_diag/model1-model2/set_11.ncl index 9368aa6e..2178fc54 100755 --- a/lnd_diag/model1-model2/set_11.ncl +++ b/lnd_diag/model1-model2/set_11.ncl @@ -50,12 +50,14 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") dynContour = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) dynContour(i) = charactertostring(tmp(i,13)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do ;************************************************* @@ -233,11 +235,16 @@ begin x1 = derive_del13C(vars(i),in1, scale_type(i),0,2) x11 = derive_del13C(vars(i),in11,scale_type(i),0,2) else - x1 = in1 ->$filevar$ - x11 = in11->$filevar$ - plot_check_1 = True - plot_check_11 = True - delete(filevar) + if (c14Flag(i) .eq. "C14_") then + x1 = derive_del14C(vars(i),in1, scale_type(i),0,2) + x11 = derive_del14C(vars(i),in11,scale_type(i),0,2) + else + x1 = in1 ->$filevar$ + x11 = in11->$filevar$ + plot_check_1 = True + plot_check_11 = True + delete(filevar) + end if end if else if (info@derivedVariable .eq. True) then @@ -269,11 +276,16 @@ begin x2 = derive_del13C(vars(i),in2, scale_type(i),0,2) x22 = derive_del13C(vars(i),in22,scale_type(i),0,2) else - x2 = in2 ->$filevar$ - x22 = in22->$filevar$ - plot_check_2 = True - plot_check_22 = True - delete(filevar) + if (c14Flag(i) .eq. "C14_") then + x2 = derive_del14C(vars(i),in2, scale_type(i),0,2) + x22 = derive_del14C(vars(i),in22,scale_type(i),0,2) + else + x2 = in2 ->$filevar$ + x22 = in22->$filevar$ + plot_check_2 = True + plot_check_22 = True + delete(filevar) + end if end if else if (info@derivedVariable .eq. True) then @@ -464,6 +476,8 @@ begin if (x1@units .eq. "K") then x1 = x1 - 273.15 ; convert K to C x2 = x2 - 273.15 ; convert K to C +; x1 = x1 - 273.15 ; convert K to C +; x2 = x2 - 273.15 ; convert K to C end if ; catch NaNs @@ -664,7 +678,7 @@ begin res@cnLevelSelectionMode = "ExplicitLevels" ; explicit contour levels res@cnLevels = info@cn_Levels ; contour levels else - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin12 = -40 ; hardcode boundaries to expectations useMax12 = 0 ; hardcode boundaries to expectations else @@ -957,7 +971,7 @@ begin useMax1 = 2.5*sd ; = maxdiff end if - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations end if diff --git a/lnd_diag/model1-model2/set_1AnomPlot.ncl b/lnd_diag/model1-model2/set_1AnomPlot.ncl index e912b7e2..3e6e0e23 100755 --- a/lnd_diag/model1-model2/set_1AnomPlot.ncl +++ b/lnd_diag/model1-model2/set_1AnomPlot.ncl @@ -27,10 +27,12 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do ;************************************************* @@ -186,7 +188,11 @@ begin if (c13Flag(i) .eq. "C13_") then x = derive_del13C(vars(i),in,scale_type(i),yrs(m),1) else - x = in->$filevar$ + if (c14Flag(i) .eq. "C14_") then + x = derive_del14C(vars(i),in,scale_type(i),yrs(m),1) + else + x = in->$filevar$ + end if end if plot_check = True delete(filevar) @@ -246,10 +252,10 @@ begin cases(m) = cases(m) + " (" + yrs_ave + ")" ; calculate global summation or global total - if (c13Flag(i) .ne. "C13_") then + 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) else - var_plot = x ; del13C vars are globally averaged before the del value is calculated + var_plot = x ; del13C and del14C vars are globally averaged before the del value is calculated end if rank2 = dimsizes(dimsizes(var_plot)) diff --git a/lnd_diag/model1-model2/set_1DiffPlot.ncl b/lnd_diag/model1-model2/set_1DiffPlot.ncl index 3fa3ff8f..cf8a74fa 100755 --- a/lnd_diag/model1-model2/set_1DiffPlot.ncl +++ b/lnd_diag/model1-model2/set_1DiffPlot.ncl @@ -23,10 +23,12 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) + c14Flag(i) = charactertostring(tmp(i,16:19)) end do delete(tmp) @@ -183,7 +185,11 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag")) if (c13Flag(i) .eq. "C13_") then tmp = derive_del13C(vars(i),in,scale_type(i),yrs(m),1) else + if (c14Flag(i) .eq. "C14_") then + tmp = derive_del14C(vars(i),in,scale_type(i),yrs(m),1) + else tmp = in->$filevar$ + end if end if plot_check = True delete(filevar) @@ -237,14 +243,14 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag")) else rank1 = 3 if (m .eq. 0) then - if (c13Flag(i) .eq. "C13_") then ; data is already globally averaged + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then ; data is already globally averaged x = tmp(m1:mm1) else - x = tmp(m1:mm1,:,:) + x = tmp(m1:mm1,:,:) end if end if if (m .eq. 1) then - if (c13Flag(i) .eq. "C13_") then ; data is already globally averaged + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then ; data is already globally averaged x = tmp(m2:mm2) else x = tmp(m2:mm2,:,:) @@ -269,10 +275,10 @@ trendsFlag = stringtointeger(getenv("trends_match_Flag")) legendLabel = " "+cases(0) + " - " + cases(1) ; calculate global summation or global total - if (c13Flag(i) .ne. "C13_") then + 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) else - var_plot = x ; del13C 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)) diff --git a/lnd_diag/model1-model2/set_2.ncl b/lnd_diag/model1-model2/set_2.ncl index 0d7473cd..ecb9a7de 100755 --- a/lnd_diag/model1-model2/set_2.ncl +++ b/lnd_diag/model1-model2/set_2.ncl @@ -50,12 +50,14 @@ begin scale_type = new(nvar,"string") vars = new(nvar,"string") c13Flag = new(nvar,"string") + c14Flag = new(nvar,"string") dynContour = new(nvar,"string") do i=0,nvar-1 scale_type(i) = charactertostring(tmp(i,0:12)) dynContour(i) = charactertostring(tmp(i,13)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do ;************************************************* @@ -253,11 +255,16 @@ begin x1 = derive_del13C(vars(i),in1, scale_type(i),0,2) x11 = derive_del13C(vars(i),in11,scale_type(i),0,2) else - x1 = in1 ->$filevar$ - x11 = in11->$filevar$ - plot_check_1 = True - plot_check_11 = True - delete(filevar) + if (c14Flag(i) .eq. "C14_") then + x1 = derive_del14C(vars(i),in1, scale_type(i),0,2) + x11 = derive_del14C(vars(i),in11,scale_type(i),0,2) + else + x1 = in1 ->$filevar$ + x11 = in11->$filevar$ + plot_check_1 = True + plot_check_11 = True + delete(filevar) + end if end if else if (info@derivedVariable .eq. True) then @@ -289,11 +296,16 @@ begin x2 = derive_del13C(vars(i),in2, scale_type(i),0,2) x22 = derive_del13C(vars(i),in22,scale_type(i),0,2) else - x2 = in2 ->$filevar$ - x22 = in22->$filevar$ - plot_check_2 = True - plot_check_22 = True - delete(filevar) + if (c14Flag(i) .eq. "C14_") then + x2 = derive_del14C(vars(i),in2, scale_type(i),0,2) + x22 = derive_del14C(vars(i),in22,scale_type(i),0,2) + else + x2 = in2 ->$filevar$ + x22 = in22->$filevar$ + plot_check_2 = True + plot_check_22 = True + delete(filevar) + end if end if else if (info@derivedVariable .eq. True) then @@ -315,6 +327,7 @@ begin if (vars(i) .eq. "TSA" ) then x3 = ptr_wm->$vars(i)$ x3 = x3 - 273.15 ; convert K to C +; x3 = x3 - 273.15 ; convert K to C k2c = True lon3 = ptr_wm->lon lat3 = ptr_wm->lat @@ -466,6 +479,8 @@ begin if (x1@units .eq. "K") then x1 = x1 - 273.15 ; convert K to C x2 = x2 - 273.15 ; convert K to C +; x1 = x1 - 273.15 ; convert K to C +; x2 = x2 - 273.15 ; convert K to C end if ; catch NaNs @@ -673,7 +688,7 @@ begin res@cnLevelSelectionMode = "ExplicitLevels" ; explicit contour levels res@cnLevels = info@cn_Levels ; contour levels else - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin12 = -40 ; hardcode boundaries to expectations useMax12 = 0 ; hardcode boundaries to expectations else @@ -981,7 +996,7 @@ begin useMax1 = 2.5*sd ; = maxdiff end if - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then useMin1 = -40 ; hardcode boundaries to expectations useMax1 = 0 ; hardcode boundaries to expectations end if diff --git a/lnd_diag/model1-model2/set_5.ncl b/lnd_diag/model1-model2/set_5.ncl index fd981542..afdfd878 100755 --- a/lnd_diag/model1-model2/set_5.ncl +++ b/lnd_diag/model1-model2/set_5.ncl @@ -93,10 +93,12 @@ print("Now printing plot #" + p) scale_type = new(nvars,"string") vars = new(nvars,"string") c13Flag = new(nvars,"string") + c14Flag = new(nvars,"string") do i=0,nvars-1 scale_type(i) = charactertostring(tmp(i,0:12)) vars(i) = charactertostring(tmp(i,16:)) c13Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix + c14Flag(i) = charactertostring(tmp(i,16:19)) ; derived variable prefix end do delete(tmp) @@ -182,6 +184,8 @@ print("Now printing plot #" + p) array2 = new((/nvars, nlat2, nlon2/),"float") array13c1 = new((/nvars/),"float") array13c2 = new((/nvars/),"float") + array14c1 = new((/nvars/),"float") + array14c2 = new((/nvars/),"float") ; read all variables into memory first and stuff them into two arrays (2 cases) varLabelsA = new(nvars,"string") @@ -197,9 +201,13 @@ print("Now printing plot #" + p) filevar = vars(i) if(isfilevar(in1,filevar))then if (c13Flag(i) .eq. "C13_") then - x1 = derive_del13C(vars(i),in1,scale_type(i),nyrs1,5) + x1 = derive_del13C(vars(i),in1,scale_type(i),nyrs1,5) else - x1 = in1->$filevar$ + if (c14Flag(i) .eq. "C14_") then + x1 = derive_del14C(vars(i),in1,scale_type(i),nyrs1,5) + else + x1 = in1->$filevar$ + end if end if else if (info@derivedVariable .eq. True) then @@ -209,7 +217,7 @@ print("Now printing plot #" + p) end if else print("Case 1 variable "+ vars(i)+ " is not a defined variable.") - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then x1 = new((/nyrs1/),"float") x1!0 ="time" x1&time =time1 @@ -229,9 +237,13 @@ print("Now printing plot #" + p) filevar = vars(i) if(isfilevar(in2,filevar))then if (c13Flag(i) .eq. "C13_") then - x2 = derive_del13C(vars(i),in2,scale_type(i),nyrs2,5) + x2 = derive_del13C(vars(i),in2,scale_type(i),nyrs2,5) else + if (c14Flag(i) .eq. "C14_") then + x2 = derive_del14C(vars(i),in2,scale_type(i),nyrs2,5) + else x2 = in2->$filevar$ + end if end if else if (info@derivedVariable .eq. True) then @@ -241,7 +253,7 @@ print("Now printing plot #" + p) end if else print("Case 2 variable "+ vars(i)+ " is not a defined variable.") - if (c13Flag(i) .eq. "C13_") then + if (c13Flag(i) .eq. "C13_" .or. c14Flag(i) .eq. "C14_") then x2 = new((/nyrs2/),"float") x2!0 ="time" x2&time =time2 @@ -284,8 +296,13 @@ print("Now printing plot #" + p) array13c1(i) = x1 array13c2(i) = x2 else - array1(i,:,:) = x1 - array2(i,:,:) = x2 + if (c14Flag(i) .eq. "C14_") then + array14c1(i) = x1 + array14c2(i) = x2 + else + array1(i,:,:) = x1 + array2(i,:,:) = x2 + end if end if delete(x1) @@ -325,14 +342,21 @@ do region=startNumber,nreg-1 value1 = x1 ; del13C values are regionally averaged before conversion value2 = x2 else - x1 = array1(i,:,:) - 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 (c14Flag(i) .eq. "C14_") then + x1 = array14c1(i) + x2 = array14c2(i) + value1 = x1 ; del14C values are regionally averaged before conversion + value2 = x2 + else + x1 = array1(i,:,:) + 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) + end if end if ; load up a big array to work with Keith's existing print fcn @@ -373,6 +397,7 @@ end do ; end of region loop delete(vars) delete(c13Flag) + delete(c14Flag) delete(varLabelsR) delete(varLabelsA) delete(varUnits) @@ -381,6 +406,8 @@ end do ; end of region loop delete(array2) delete(array13c1) delete(array13c2) + delete(array14c1) + delete(array14c2) delete(scale_type) delete(plot_name) delete(title) diff --git a/lnd_diag/model1-model2/set_6.ncl b/lnd_diag/model1-model2/set_6.ncl index 6bf587df..98afa883 100755 --- a/lnd_diag/model1-model2/set_6.ncl +++ b/lnd_diag/model1-model2/set_6.ncl @@ -165,7 +165,7 @@ nplots = 12 titstr(6) = "Gridcell Surface CH4 Flux" titstr(7) = "Carbon Use Efficiency (NPP/GPP)" titstr(8) = "Soil NO3 Pool Loss to Leaching" - titstr(9) = "Soil NO3 Pool Loss to Runoff" + titstr(9) = "NPP_NUPTAKE/(NPP_NUPTAKE+NPP)" else if (casa .eq. 1) then fileName = "set6_casaFlx.txt" diff --git a/lnd_diag/model1-model2/set_9.ncl b/lnd_diag/model1-model2/set_9.ncl index 50d1d557..93eba051 100755 --- a/lnd_diag/model1-model2/set_9.ncl +++ b/lnd_diag/model1-model2/set_9.ncl @@ -308,6 +308,8 @@ begin if (vars(i) .eq. "TSA") then x1 = x1-273.15 x2 = x2-273.15 +; x1 = x1-273.15 +; x2 = x2-273.15 end if if (vars(i) .eq. "PREC") then x1 = x1*86400 @@ -467,6 +469,10 @@ begin x2 = x2-273.15 x11 = x11-273.15 x22 = x22-273.15 +; x1 = x1-273.15 +; x2 = x2-273.15 +; x11 = x11-273.15 +; x22 = x22-273.15 end if if (vars(i) .eq. "PREC") then x1 = x1*86400 diff --git a/lnd_diag/shared/lnd_func.ncl b/lnd_diag/shared/lnd_func.ncl index 2c969620..843d5bf2 100755 --- a/lnd_diag/shared/lnd_func.ncl +++ b/lnd_diag/shared/lnd_func.ncl @@ -503,6 +503,19 @@ begin return(var) end if + if(var_name.eq."NUPTAKE_FRACTION")then + npp = ptr ->NPP + npp_nuptake = ptr ->NPP_NUPTAKE + + var = npp ; trick to retain meta data + nuptake_npp = npp_nuptake + npp + if (any(nuptake_npp .eq. 0)) then ; set zeros to _FillValue + nuptake_npp = mask(nuptake_npp,(nuptake_npp .eq. 0),False) + end if + var = npp_nuptake/nuptake_npp + return(var) + end if + if(var_name.eq."BTRAN")then if (isfilevar(ptr,"BTRANMN")) then var = ptr ->BTRANMN @@ -1288,15 +1301,77 @@ begin ctot = mask(ctot,(ctot .eq. 0),False) end if var = ctot ; trick to retain meta data + ; Use C13/C ratio of 0.01112 + ; This value is slightly different from the value of the PDB standard + ; given in Stenstrom et al. (2011) "A guide to radiocarbon units and + ; calculations": 0.0112372. However, wikipedia states that this value is + ; incorrect as a result of a sign error in the interconversion between standards. + ; It gives a value of 0.01118 (doesn't agree with the value used below either). + ; So, not sure where this value came from. It was originally put into the diagnostics + ; package by Peter Thornton var = ( ((c13/ctot) / 0.01112) - 1.) * 1000. ; NOTE: del13C : valid range = -40 to 0 per mil PDB - ; values outside this range are considered spurious and set to missing. - if (var_name .eq. "C13_NEP" .or. var_name .eq. "C13_NEE") then + ; values outside the following range are considered spurious and set to missing. + if (var_name .eq. "C13_NEP" .or. var_name .eq. "C13_NEE" .or. var_name .eq. "C13_NBP") then var = mask(var,(var .lt. -40 .or. var .gt. 0),False) end if return(var) end ;************************************************************************************************* +undef("derive_del14C") +function derive_del14C(var_name:string,ptr:file,scale_type:string,nyrs:integer,set:integer) +; derive various variables +local nlev,landfrac,area,c14,ic14,ctot,ictot,ctotName,c14Name +begin + tmp = stringtochar(var_name) + ctotName = charactertostring(tmp(4:)) + c14Name = charactertostring(tmp) + if(isfilevar(ptr,c14Name) .and. isfilevar(ptr,ctotName))then + ictot = ptr->$ctotName$ + ic14 = ptr->$c14Name$ + else + print("variable "+ var_name+ " is not a defined variable") + ; if derived variable is not found, return an array of missing values. + var = new(1,"float") + return(var) + end if + + landfrac = ptr->landfrac + area = ptr->area + if (set .eq. 1 .or. set .eq. 5) then + if(isfilevar(ptr,"levsoi")) then + nlev = getfilevardimsizes(ptr,"levsoi") + end if + if(isfilevar(ptr,"levgrnd")) then + nlev = getfilevardimsizes(ptr,"levgrnd") + end if + c14 = global_values(var_name, ic14, area,landfrac,scale_type,nyrs,nlev) + ctot = global_values(var_name, ictot,area,landfrac,scale_type,nyrs,nlev) + if (set .eq. 5) then + c14 = avg(c14) ; average over time period + ctot = avg(ctot) ; average over time period + end if + else + ctot = ictot + c14 = ic14 + end if + + if (any(ctot .eq. 0)) then ; set zeros to _FillValue + ctot = mask(ctot,(ctot .eq. 0),False) + end if + var = ctot ; trick to retain meta data +; ; Use standard C14/C ratio, Rs, of 1.176e-12 (Karlen et al., 1968) +; var = ( ((c14/ctot) / (1.176e-12)) - 1.) * 1000. +; ; Use C14/C ratio specified in CLM5 of 1.0e-12 (Koven et al., 2013) + var = ( ((c14/ctot) / (1.0e-12)) - 1.) * 1000. + ; NOTE: del14C : valid range = ? to ? per mil + ; values outside the following range are considered spurious and set to missing. +; if (var_name .eq. "C14_NEP" .or. var_name .eq. "C14_NEE" .or. var_name .eq. "C14_NBP") then +; var = mask(var,(var .lt. -40 .or. var .gt. 0),False) +; end if + return(var) +end +;************************************************************************************************* undef("catchNaN") function catchNaN(x) diff --git a/lnd_diag/shared/variable_master4.3.ncl b/lnd_diag/shared/variable_master4.3.ncl index 87b1719e..5aedddfb 100644 --- a/lnd_diag/shared/variable_master4.3.ncl +++ b/lnd_diag/shared/variable_master4.3.ncl @@ -482,6 +482,64 @@ begin return(info) end if + if (varName .eq. "NUPTAKE_NPP_FRACTION") then + info@flux=True + info@longName="frac of NPP used in N uptake" + info@nativeUnits = "unitless" + ; -- global Total + info@globalTotal__units = "NA" + info@globalTotal__SF = -999. + info@globalTotal_Annual__units = "unitless" + info@globalTotal_Annual__SF = -999. + ; -- global Mean + info@globalMean__units = "NA" + 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.1,0.2,0.3,0.5,0.6,0.7,0.8,0.9/) + info@cn_LevelsDiff = (/-.5,-.4,-.3,-.2,-.1,0.,.1,.2,.3,.4,.5/) + return(info) + end if + + if (varName .eq. "NUPTAKE_FRACTION") then + info@flux=True + info@longName="NPP_NUPTAKE/(NPP_NUPTAKE+NPP)" + info@nativeUnits = "unitless" + ; -- global Total + info@globalTotal__units = "NA" + info@globalTotal__SF = -999. + info@globalTotal_Annual__units = "unitless" + info@globalTotal_Annual__SF = -999. + ; -- global Mean + info@globalMean__units = "NA" + info@globalMean__SF = 1.0 + info@globalMean_Annual__units = "unitless" + 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.,0.1,0.2,0.3,0.5,0.6,0.7,0.8,0.9/) + info@cn_LevelsDiff = (/-.5,-.4,-.3,-.2,-.1,0.,.1,.2,.3,.4,.5/) + return(info) + end if + if (varName .eq. "NPP_NFIX") then info@flux=True info@longName="Symbiotic BNF uptake used C" @@ -11247,6 +11305,35 @@ if (varName .eq. "LITTERC_HR") then return(info) end if + if (varName .eq. "C13_NBP") then + info@flux=True + info@longName="C13 net biome production, includes fire, landuse and harvest flux" + info@nativeUnits = "gC/m^2/s" + ; -- global Total + info@globalTotal__units = "NA" + info@globalTotal__SF = -999. + info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__SF = 1.0 + ; -- global Mean + info@globalMean__units = "per mil v PDB" + info@globalMean__SF = 1.0 + info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__SF = 1.0 + info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__SF = 1.0 + ; -- 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_NPP") then info@flux=True info@longName="C13 Net Primary Production" @@ -11747,14 +11834,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11776,14 +11863,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11805,14 +11892,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11834,14 +11921,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11863,14 +11950,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11890,12 +11977,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Column-Level Sink for C Truncation" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -11920,14 +12007,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -11947,12 +12034,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Temporary Photosynthate C Pool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -11976,12 +12063,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Temporary Photosynthate C Pool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12005,12 +12092,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Coarse Woody Debris Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12034,12 +12121,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Dead Coarse Root Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12063,12 +12150,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Dead Stem Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12092,12 +12179,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Displayed Veg Carbon, Excluding Storage and Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12122,14 +12209,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12149,12 +12236,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Fine Root CC" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12180,14 +12267,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12209,14 +12296,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12238,14 +12325,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12265,12 +12352,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Leaf Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12296,14 +12383,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12323,12 +12410,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Litter Labile C" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12351,12 +12438,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Litter Cellulose C" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12379,12 +12466,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Litter Lignin C" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12407,12 +12494,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Live Coarse Root Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12436,12 +12523,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Live Stem C" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12467,14 +12554,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12496,14 +12583,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12525,14 +12612,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12547,6 +12634,35 @@ if (varName .eq. "LITTERC_HR") then return(info) end if + if (varName .eq. "C14_NBP") then + info@flux=True + info@longName="C14 net biome production, includes fire, landuse and harvest flux" + info@nativeUnits = "gC/m^2/s" + ; -- global Total + info@globalTotal__units = "NA" + info@globalTotal__SF = -999. + info@globalTotal_Annual__units = "per mil" + info@globalTotal_Annual__SF = 1.0 + ; -- global Mean + info@globalMean__units = "per mil" + info@globalMean__SF = 1.0 + info@globalMean_Annual__units = "per mil" + info@globalMean_Annual__SF = 1.0 + info@globalMean_Daily__units = "per mil" + info@globalMean_Daily__SF = 1.0 + ; -- 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_NPP") then info@flux=True info@longName="C14 Net Primary Production" @@ -12554,14 +12670,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12581,12 +12697,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Pft-Level Sink for C Truncation" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12612,14 +12728,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12641,14 +12757,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12668,12 +12784,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Soil Organic Matter C (Fast Pool)" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12697,12 +12813,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Soil Organic Matter C (Medium Pool)" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12726,12 +12842,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Soil Organic Matter C (Slow Pool)" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12755,12 +12871,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Soil Organic Matter C (Slowest Pool)" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12786,14 +12902,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12815,14 +12931,14 @@ if (varName .eq. "LITTERC_HR") then ; -- global Total info@globalTotal__units = "NA" info@globalTotal__SF = -999. - info@globalTotal_Annual__units = "per mil v PDB" + info@globalTotal_Annual__units = "per mil" info@globalTotal_Annual__SF = 1.0 ; -- global Mean - info@globalMean__units = "per mil v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 - info@globalMean_Annual__units = "per mil v PDB" + info@globalMean_Annual__units = "per mil" info@globalMean_Annual__SF = 1.0 - info@globalMean_Daily__units = "per mil v PDB" + info@globalMean_Daily__units = "per mil" info@globalMean_Daily__SF = 1.0 ; -- Origin info@model = "CN" @@ -12842,12 +12958,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Stored Vegetation C, Excluding Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12871,12 +12987,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Totl Litter Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12900,12 +13016,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Total SOM Carbon" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12929,12 +13045,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Totl Ecosystem C, Incl Veg But Excl Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12958,12 +13074,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Total Column C, Incl Veg and Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -12987,12 +13103,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Totl PFT-Level C, Including Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999. @@ -13016,12 +13132,12 @@ if (varName .eq. "LITTERC_HR") then info@longName="C14 Total Vegetation C, Excluding Cpool" info@nativeUnits = "gC/m^2" ; -- global Total - info@globalTotal__units = "per mil v PDB" + 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 v PDB" + info@globalMean__units = "per mil" info@globalMean__SF = 1.0 info@globalMean_Annual__units = "NA" info@globalMean_Annual__SF = -999.