From d7114d0752d5462ab97dd8c43c423da86f9ecaef Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Mon, 29 Oct 2018 09:42:46 -0600 Subject: [PATCH 1/6] Add history fields for vertically-resolved sums of SOIL1C, SOIL2C, SOIL3C for C12, C13, and C14 --- .../SoilBiogeochemCarbonStateType.F90 | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/soilbiogeochem/SoilBiogeochemCarbonStateType.F90 b/src/soilbiogeochem/SoilBiogeochemCarbonStateType.F90 index 9b1f288f63..64da935dea 100644 --- a/src/soilbiogeochem/SoilBiogeochemCarbonStateType.F90 +++ b/src/soilbiogeochem/SoilBiogeochemCarbonStateType.F90 @@ -25,6 +25,7 @@ module SoilBiogeochemCarbonStateType ! all c pools involved in decomposition real(r8), pointer :: decomp_cpools_vr_col (:,:,:) ! (gC/m3) vertically-resolved decomposing (litter, cwd, soil) c pools + real(r8), pointer :: decomp_soil_vr_col(:,:) ! (gC/m3) vertically-resolved decomposing total soil c pool real(r8), pointer :: ctrunc_vr_col (:,:) ! (gC/m3) vertically-resolved column-level sink for C truncation ! summary (diagnostic) state variables, not involved in mass balance @@ -102,6 +103,8 @@ subroutine InitAllocate(this, bounds) allocate(this%decomp_cpools_vr_col(begc:endc,1:nlevdecomp_full,1:ndecomp_pools)) this%decomp_cpools_vr_col(:,:,:)= nan + allocate(this%decomp_soil_vr_col(begc:endc,1:nlevdecomp_full)) + this%decomp_soil_vr_col(:,:)= nan allocate(this%ctrunc_col (begc :endc)) ; this%ctrunc_col (:) = nan if ( .not. use_fates ) then @@ -145,6 +148,13 @@ subroutine InitHistory(this, bounds, carbon_type) if (carbon_type == 'c12') then + if ( nlevdecomp_full > 1 ) then + this%decomp_soil_vr_col(begc:endc,:) = spval + call hist_addfld2d (fname='SOILC_vr', units='gC/m^3', type2d='levsoi', & + avgflag='A', long_name='SOIL C (vertically resolved)', & + ptr_col=this%decomp_soil_vr_col) + end if + this%decomp_cpools_col(begc:endc,:) = spval do l = 1, ndecomp_pools if ( nlevdecomp_full > 1 ) then @@ -217,6 +227,13 @@ subroutine InitHistory(this, bounds, carbon_type) if ( carbon_type == 'c13' ) then + if ( nlevdecomp_full > 1 ) then + this%decomp_soil_vr_col(begc:endc,:) = spval + call hist_addfld2d (fname='C13_SOILC_vr', units='gC13/m^3', type2d='levsoi', & + avgflag='A', long_name='C13 SOIL C (vertically resolved)', & + ptr_col=this%decomp_soil_vr_col, default='inactive') + end if + this%decomp_cpools_vr_col(begc:endc,:,:) = spval do l = 1, ndecomp_pools if ( nlevdecomp_full > 1 ) then @@ -279,6 +296,13 @@ subroutine InitHistory(this, bounds, carbon_type) if ( carbon_type == 'c14' ) then + if ( nlevdecomp_full > 1 ) then + this%decomp_soil_vr_col(begc:endc,:) = spval + call hist_addfld2d (fname='C14_SOILC_vr', units='gC14/m^3', type2d='levsoi', & + avgflag='A', long_name='C14 SOIL C (vertically resolved)', & + ptr_col=this%decomp_soil_vr_col) + end if + this%decomp_cpools_vr_col(begc:endc,:,:) = spval do l = 1, ndecomp_pools if ( nlevdecomp_full > 1 ) then @@ -780,6 +804,9 @@ subroutine Summary(this, bounds, num_allc, filter_allc) integer :: c,j,k,l ! indices integer :: fc ! filter indices real(r8) :: maxdepth ! depth to integrate soil variables + integer :: i_soil1 ! ndecomp_pools index for SOIL1 + integer :: i_soil2 ! ndecomp_pools index for SOIL2 + integer :: i_soil3 ! ndecomp_pools index for SOIL3 !----------------------------------------------------------------------- ! vertically integrate each of the decomposing C pools @@ -832,6 +859,32 @@ subroutine Summary(this, bounds, num_allc, filter_allc) endif + ! Find ndecomp_pools indices for SOIL1, SOIL2, and SOIL3 and add together to + ! produce vertically-resolved decomposing total soil c pool + do l = 1, ndecomp_pools + if ( nlevdecomp_full > 1 ) then + if (trim(decomp_cascade_con%decomp_pool_name_history(l)) == "SOIL1") then + i_soil1 = l + end if + if (trim(decomp_cascade_con%decomp_pool_name_history(l)) == "SOIL2") then + i_soil2 = l + end if + if (trim(decomp_cascade_con%decomp_pool_name_history(l)) == "SOIL3") then + i_soil3 = l + end if + end if + end do + if ( nlevdecomp_full > 1 ) then + do j = 1, nlevdecomp + do fc = 1,num_allc + c = filter_allc(fc) + this%decomp_soil_vr_col(c,j) = this%decomp_cpools_vr_col(c,j,i_soil1) + & + this%decomp_cpools_vr_col(c,j,i_soil2) + & + this%decomp_cpools_vr_col(c,j,i_soil3) + end do + end do + end if + ! truncation carbon do fc = 1,num_allc c = filter_allc(fc) From 6d560e47890ec1b045063e5818dea3140a97511c Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Wed, 31 Oct 2018 08:48:49 -0600 Subject: [PATCH 2/6] Rewrote to be more general using decomp_cascade_con%is_soil. Added SOILN_vr (sum of SOIL1N_vr, SOIL2N_vr, SOIL3N_vr). Adjusted cime_config/usermods_dirs variables. --- .../cmip6_carbon_isotopes/user_nl_clm | 4 +- .../usermods_dirs/output_bgc/user_nl_clm | 4 +- .../SoilBiogeochemCarbonStateType.F90 | 54 ++++++++----------- .../SoilBiogeochemNitrogenStateType.F90 | 32 +++++++++++ 4 files changed, 60 insertions(+), 34 deletions(-) diff --git a/cime_config/usermods_dirs/_includes/cmip6_carbon_isotopes/user_nl_clm b/cime_config/usermods_dirs/_includes/cmip6_carbon_isotopes/user_nl_clm index e7c6fbf7e8..4afeb952ee 100644 --- a/cime_config/usermods_dirs/_includes/cmip6_carbon_isotopes/user_nl_clm +++ b/cime_config/usermods_dirs/_includes/cmip6_carbon_isotopes/user_nl_clm @@ -7,6 +7,8 @@ use_c14 = .true. use_c13_timeseries = .true. use_c14_bombspike = .true. +! h0 stream (monthly average, gridcell-level) +hist_fexcl1 += 'C14_SOILC_vr' ! h3 stream (yearly average, gridcell-level) -hist_fincl4 += 'C14_SOIL1C_vr', 'C14_SOIL2C_vr', 'C14_SOIL3C_vr' +hist_fincl4 += 'C14_SOILC_vr' diff --git a/cime_config/usermods_dirs/output_bgc/user_nl_clm b/cime_config/usermods_dirs/output_bgc/user_nl_clm index c97c282ff6..de136ad4b4 100644 --- a/cime_config/usermods_dirs/output_bgc/user_nl_clm +++ b/cime_config/usermods_dirs/output_bgc/user_nl_clm @@ -3,7 +3,7 @@ !---------------------------------------------------------------------------------- ! h0 stream (monthly average, gridcell-level) -hist_fexcl1 += 'SOIL1C_vr', 'SOIL1N_vr', 'SOIL2C_vr', 'SOIL2N_vr', 'SOIL3C_vr', 'SOIL3N_vr', 'CWDC_vr', 'LITR1C_vr', 'LITR2C_vr', 'LITR3C_vr', 'LITR1N_vr', 'LITR2N_vr', 'LITR3N_vr', 'CWDN_vr', 'SMIN_NO3_vr', 'CONC_O2_UNSAT', 'CONC_O2_SAT','SMIN_NH4_vr','SMINN_vr' +hist_fexcl1 += 'SOIL1C_vr', 'SOIL1N_vr', 'SOIL2C_vr', 'SOIL2N_vr', 'SOIL3C_vr', 'SOIL3N_vr', 'SOILC_vr','SOILN_vr', 'CWDC_vr', 'LITR1C_vr', 'LITR2C_vr', 'LITR3C_vr', 'LITR1N_vr', 'LITR2N_vr', 'LITR3N_vr', 'CWDN_vr', 'SMIN_NO3_vr', 'CONC_O2_UNSAT', 'CONC_O2_SAT','SMIN_NH4_vr','SMINN_vr' hist_fincl1 += 'LEAFC_TO_LITTER', 'FROOTC_TO_LITTER','LITR1C_TO_SOIL1C','LITR1N_TO_SOIL1N','LITR2C_TO_SOIL1C', 'LITR2N_TO_SOIL1N','LITR3C_TO_SOIL2C','LITR3N_TO_SOIL2N','DWT_WOOD_PRODUCTC_GAIN_PATCH' ! h1 stream (monthly average, finest sub-grid) @@ -14,7 +14,7 @@ hist_fincl2 += 'GPP', 'NPP', 'AGNPP', 'TOTVEGC', 'NPP_NUPTAKE', 'AR', 'HR', 'HTO hist_fincl3 += 'GPP', 'NPP', 'AR', 'HR', 'DWT_CONV_CFLUX_PATCH', 'WOOD_HARVESTC', 'DWT_WOOD_PRODUCTC_GAIN_PATCH', 'SLASH_HARVESTC', 'COL_FIRE_CLOSS', 'DWT_SLASH_CFLUX', 'FROOTC:I', 'HTOP' ! h3 stream (yearly average, gridcell-level) -hist_fincl4 += 'SOIL1C_vr', 'SOIL1N_vr', 'SOIL2C_vr', 'SOIL2N_vr', 'SOIL3C_vr', 'SOIL3N_vr', 'CWDC_vr', 'LITR1C_vr', 'LITR2C_vr', 'LITR3C_vr', 'LITR1N_vr', 'LITR2N_vr', 'LITR3N_vr','CWDN_vr', 'TOTLITC:I', 'TOT_WOODPRODC:I', 'TOTSOMC:I','TOTVEGC:I' +hist_fincl4 += 'SOILC_vr', 'SOILN_vr', 'CWDC_vr', 'LITR1C_vr', 'LITR2C_vr', 'LITR3C_vr', 'LITR1N_vr', 'LITR2N_vr', 'LITR3N_vr','CWDN_vr', 'TOTLITC:I', 'TOT_WOODPRODC:I', 'TOTSOMC:I','TOTVEGC:I' ! h4 stream (yearly average, landunit-level) hist_fincl5 += 'TOTSOMC:I', 'TOTSOMC_1m:I', 'TOTECOSYSC:I', 'TOTVEGC:I', 'WOODC:I', 'TOTLITC:I', 'LIVECROOTC:I', 'DEADCROOTC:I', 'FROOTC:I' diff --git a/src/soilbiogeochem/SoilBiogeochemCarbonStateType.F90 b/src/soilbiogeochem/SoilBiogeochemCarbonStateType.F90 index 64da935dea..1c2fdd01bc 100644 --- a/src/soilbiogeochem/SoilBiogeochemCarbonStateType.F90 +++ b/src/soilbiogeochem/SoilBiogeochemCarbonStateType.F90 @@ -25,7 +25,7 @@ module SoilBiogeochemCarbonStateType ! all c pools involved in decomposition real(r8), pointer :: decomp_cpools_vr_col (:,:,:) ! (gC/m3) vertically-resolved decomposing (litter, cwd, soil) c pools - real(r8), pointer :: decomp_soil_vr_col(:,:) ! (gC/m3) vertically-resolved decomposing total soil c pool + real(r8), pointer :: decomp_soilc_vr_col (:,:) ! (gC/m3) vertically-resolved decomposing total soil c pool real(r8), pointer :: ctrunc_vr_col (:,:) ! (gC/m3) vertically-resolved column-level sink for C truncation ! summary (diagnostic) state variables, not involved in mass balance @@ -103,8 +103,8 @@ subroutine InitAllocate(this, bounds) allocate(this%decomp_cpools_vr_col(begc:endc,1:nlevdecomp_full,1:ndecomp_pools)) this%decomp_cpools_vr_col(:,:,:)= nan - allocate(this%decomp_soil_vr_col(begc:endc,1:nlevdecomp_full)) - this%decomp_soil_vr_col(:,:)= nan + allocate(this%decomp_soilc_vr_col(begc:endc,1:nlevdecomp_full)) + this%decomp_soilc_vr_col(:,:)= nan allocate(this%ctrunc_col (begc :endc)) ; this%ctrunc_col (:) = nan if ( .not. use_fates ) then @@ -149,10 +149,10 @@ subroutine InitHistory(this, bounds, carbon_type) if (carbon_type == 'c12') then if ( nlevdecomp_full > 1 ) then - this%decomp_soil_vr_col(begc:endc,:) = spval + this%decomp_soilc_vr_col(begc:endc,:) = spval call hist_addfld2d (fname='SOILC_vr', units='gC/m^3', type2d='levsoi', & avgflag='A', long_name='SOIL C (vertically resolved)', & - ptr_col=this%decomp_soil_vr_col) + ptr_col=this%decomp_soilc_vr_col) end if this%decomp_cpools_col(begc:endc,:) = spval @@ -228,10 +228,10 @@ subroutine InitHistory(this, bounds, carbon_type) if ( carbon_type == 'c13' ) then if ( nlevdecomp_full > 1 ) then - this%decomp_soil_vr_col(begc:endc,:) = spval + this%decomp_soilc_vr_col(begc:endc,:) = spval call hist_addfld2d (fname='C13_SOILC_vr', units='gC13/m^3', type2d='levsoi', & avgflag='A', long_name='C13 SOIL C (vertically resolved)', & - ptr_col=this%decomp_soil_vr_col, default='inactive') + ptr_col=this%decomp_soilc_vr_col, default='inactive') end if this%decomp_cpools_vr_col(begc:endc,:,:) = spval @@ -297,10 +297,10 @@ subroutine InitHistory(this, bounds, carbon_type) if ( carbon_type == 'c14' ) then if ( nlevdecomp_full > 1 ) then - this%decomp_soil_vr_col(begc:endc,:) = spval + this%decomp_soilc_vr_col(begc:endc,:) = spval call hist_addfld2d (fname='C14_SOILC_vr', units='gC14/m^3', type2d='levsoi', & avgflag='A', long_name='C14 SOIL C (vertically resolved)', & - ptr_col=this%decomp_soil_vr_col) + ptr_col=this%decomp_soilc_vr_col) end if this%decomp_cpools_vr_col(begc:endc,:,:) = spval @@ -804,9 +804,6 @@ subroutine Summary(this, bounds, num_allc, filter_allc) integer :: c,j,k,l ! indices integer :: fc ! filter indices real(r8) :: maxdepth ! depth to integrate soil variables - integer :: i_soil1 ! ndecomp_pools index for SOIL1 - integer :: i_soil2 ! ndecomp_pools index for SOIL2 - integer :: i_soil3 ! ndecomp_pools index for SOIL3 !----------------------------------------------------------------------- ! vertically integrate each of the decomposing C pools @@ -859,30 +856,25 @@ subroutine Summary(this, bounds, num_allc, filter_allc) endif - ! Find ndecomp_pools indices for SOIL1, SOIL2, and SOIL3 and add together to - ! produce vertically-resolved decomposing total soil c pool - do l = 1, ndecomp_pools - if ( nlevdecomp_full > 1 ) then - if (trim(decomp_cascade_con%decomp_pool_name_history(l)) == "SOIL1") then - i_soil1 = l - end if - if (trim(decomp_cascade_con%decomp_pool_name_history(l)) == "SOIL2") then - i_soil2 = l - end if - if (trim(decomp_cascade_con%decomp_pool_name_history(l)) == "SOIL3") then - i_soil3 = l - end if - end if - end do + ! Add soil carbon pools together to produce vertically-resolved decomposing total soil c pool if ( nlevdecomp_full > 1 ) then do j = 1, nlevdecomp do fc = 1,num_allc c = filter_allc(fc) - this%decomp_soil_vr_col(c,j) = this%decomp_cpools_vr_col(c,j,i_soil1) + & - this%decomp_cpools_vr_col(c,j,i_soil2) + & - this%decomp_cpools_vr_col(c,j,i_soil3) + this%decomp_soilc_vr_col(c,j) = 0._r8 end do - end do + end do + do l = 1, ndecomp_pools + if ( decomp_cascade_con%is_soil(l) ) then + do j = 1, nlevdecomp + do fc = 1,num_allc + c = filter_allc(fc) + this%decomp_soilc_vr_col(c,j) = this%decomp_soilc_vr_col(c,j) + & + this%decomp_cpools_vr_col(c,j,l) + end do + end do + end if + end do end if ! truncation carbon diff --git a/src/soilbiogeochem/SoilBiogeochemNitrogenStateType.F90 b/src/soilbiogeochem/SoilBiogeochemNitrogenStateType.F90 index ca09e63624..7b045785e0 100644 --- a/src/soilbiogeochem/SoilBiogeochemNitrogenStateType.F90 +++ b/src/soilbiogeochem/SoilBiogeochemNitrogenStateType.F90 @@ -27,6 +27,8 @@ module SoilBiogeochemNitrogenStateType type, public :: soilbiogeochem_nitrogenstate_type real(r8), pointer :: decomp_npools_vr_col (:,:,:) ! col (gN/m3) vertically-resolved decomposing (litter, cwd, soil) N pools + real(r8), pointer :: decomp_soiln_vr_col (:,:) ! col (gN/m3) vertically-resolved decomposing total soil N pool + real(r8), pointer :: sminn_vr_col (:,:) ! col (gN/m3) vertically-resolved soil mineral N real(r8), pointer :: ntrunc_vr_col (:,:) ! col (gN/m3) vertically-resolved column-level sink for N truncation @@ -128,6 +130,8 @@ subroutine InitAllocate(this, bounds) allocate(this%decomp_npools_vr_col(begc:endc,1:nlevdecomp_full,1:ndecomp_pools)); this%decomp_npools_vr_col(:,:,:)= nan + allocate(this%decomp_soiln_vr_col(begc:endc,1:nlevdecomp_full)) + this%decomp_soiln_vr_col(:,:)= nan end subroutine InitAllocate @@ -160,6 +164,13 @@ subroutine InitHistory(this, bounds) begc = bounds%begc; endc = bounds%endc + if ( nlevdecomp_full > 1 ) then + this%decomp_soiln_vr_col(begc:endc,:) = spval + call hist_addfld2d (fname='SOILN_vr', units='gN/m^3', type2d='levdcmp', & + avgflag='A', long_name='SOIL N (vertically resolved)', & + ptr_col=this%decomp_soiln_vr_col) + end if + if ( nlevdecomp_full > 1 ) then this%decomp_npools_vr_col(begc:endc,:,:) = spval this%decomp_npools_1m_col(begc:endc,:) = spval @@ -801,6 +812,27 @@ subroutine Summary(this, bounds, num_allc, filter_allc) endif end do end do + + ! Add soil nitrogen pools together to produce vertically-resolved decomposing total soil N pool + if ( nlevdecomp_full > 1 ) then + do j = 1, nlevdecomp + do fc = 1,num_allc + c = filter_allc(fc) + this%decomp_soiln_vr_col(c,j) = 0._r8 + end do + end do + do l = 1, ndecomp_pools + if ( decomp_cascade_con%is_soil(l) ) then + do j = 1, nlevdecomp + do fc = 1,num_allc + c = filter_allc(fc) + this%decomp_soiln_vr_col(c,j) = this%decomp_soiln_vr_col(c,j) + & + this%decomp_npools_vr_col(c,j,l) + end do + end do + end if + end do + end if ! total litter nitrogen to 1 meter (TOTLITN_1m) do fc = 1,num_allc From 3ef3512f556feb561f30d2510b5ec1b3d01c91e0 Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Fri, 18 Jan 2019 14:21:07 -0700 Subject: [PATCH 3/6] Output cpl hist files in SSP test Fixes ESCOMP/ctsm#61 --- cime_config/config_tests.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cime_config/config_tests.xml b/cime_config/config_tests.xml index 33f8b4a692..3453d55be0 100644 --- a/cime_config/config_tests.xml +++ b/cime_config/config_tests.xml @@ -57,12 +57,15 @@ SSP smoke CLM spinup test (only valid for CLM compsets with CLM45) - smoke CLM spinup test (only valid for CLM45 or CLM50 compsets) + smoke CLM spinup test 1 ndays startup 4 FALSE + FALSE + $STOP_OPTION + $STOP_N From 80119044f2681431416cc279a3de2c2d18fd6e6f Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Fri, 18 Jan 2019 14:50:53 -0700 Subject: [PATCH 4/6] Remove FATES-related commented-out code in OzoneMod This has been moved to https://github.com/ESCOMP/ctsm/issues/618 --- src/biogeophys/OzoneMod.F90 | 60 ++++++++++--------------------------- 1 file changed, 15 insertions(+), 45 deletions(-) diff --git a/src/biogeophys/OzoneMod.F90 b/src/biogeophys/OzoneMod.F90 index 29b94fa34f..78bf64a8fe 100644 --- a/src/biogeophys/OzoneMod.F90 +++ b/src/biogeophys/OzoneMod.F90 @@ -361,51 +361,21 @@ subroutine CalcOzoneStress(this, bounds, num_exposedvegp, filter_exposedvegp, & p = filter_exposedvegp(fp) c = patch%column(p) -! if (.not.patch%is_fates(p)) then ! When FATES coexists with other vegetation, - ! or when it has an ozone compatible module, this - ! logic will likely come into play - - ! Ozone stress for shaded leaves - call CalcOzoneStressOnePoint( & - forc_ozone=forc_ozone, forc_pbot=forc_pbot(c), forc_th=forc_th(c), & - rs=rssha(p), rb=rb(p), ram=ram(p), & - tlai=tlai(p), tlai_old=tlai_old(p), pft_type=patch%itype(p), & - o3uptake=o3uptakesha(p), o3coefv=o3coefvsha(p), o3coefg=o3coefgsha(p)) - - ! Ozone stress for sunlit leaves - call CalcOzoneStressOnePoint( & - forc_ozone=forc_ozone, forc_pbot=forc_pbot(c), forc_th=forc_th(c), & - rs=rssun(p), rb=rb(p), ram=ram(p), & - tlai=tlai(p), tlai_old=tlai_old(p), pft_type=patch%itype(p), & - o3uptake=o3uptakesun(p), o3coefv=o3coefvsun(p), o3coefg=o3coefgsun(p)) - - tlai_old(p) = tlai(p) - -! else -! ! FATES is fundamentlaly incompatible with this type of patch-level -! ! association with plant functional type, so for the time -! ! being, fates patches will just push these values to invalid -! o3uptakesha(p) = spval -! o3coefvsha(p) = spval -! o3coefgsha(p) = spval -! o3uptakesun(p) = spval -! o3coefvsun(p) = spval -! o3coefgsun(p) = spval -! -! end if - -! else -! ! FATES is fundamentlaly incompatible with this type of patch-level -! ! association with plant functional type, so for the time -! ! being, fates patches will just push these values to invalid -! o3uptakesha(p) = spval -! o3coefvsha(p) = spval -! o3coefgsha(p) = spval -! o3uptakesun(p) = spval -! o3coefvsun(p) = spval -! o3coefgsun(p) = spval -! -! end if + ! Ozone stress for shaded leaves + call CalcOzoneStressOnePoint( & + forc_ozone=forc_ozone, forc_pbot=forc_pbot(c), forc_th=forc_th(c), & + rs=rssha(p), rb=rb(p), ram=ram(p), & + tlai=tlai(p), tlai_old=tlai_old(p), pft_type=patch%itype(p), & + o3uptake=o3uptakesha(p), o3coefv=o3coefvsha(p), o3coefg=o3coefgsha(p)) + + ! Ozone stress for sunlit leaves + call CalcOzoneStressOnePoint( & + forc_ozone=forc_ozone, forc_pbot=forc_pbot(c), forc_th=forc_th(c), & + rs=rssun(p), rb=rb(p), ram=ram(p), & + tlai=tlai(p), tlai_old=tlai_old(p), pft_type=patch%itype(p), & + o3uptake=o3uptakesun(p), o3coefv=o3coefvsun(p), o3coefg=o3coefgsun(p)) + + tlai_old(p) = tlai(p) end do From 3558384f172d9190422abfb79473d2d857e1f848 Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Fri, 18 Jan 2019 15:16:43 -0700 Subject: [PATCH 5/6] Re-add note that SSP is only valid for clm45/clm50 --- cime_config/config_tests.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cime_config/config_tests.xml b/cime_config/config_tests.xml index 3453d55be0..fb04cfb692 100644 --- a/cime_config/config_tests.xml +++ b/cime_config/config_tests.xml @@ -57,7 +57,7 @@ SSP smoke CLM spinup test (only valid for CLM compsets with CLM45) - smoke CLM spinup test + smoke CLM spinup test (only valid for CLM45 or CLM50 compsets) 1 ndays startup From e4054b4535b15f608835bc671e303ec48150169d Mon Sep 17 00:00:00 2001 From: Bill Sacks Date: Wed, 23 Jan 2019 11:03:31 -0700 Subject: [PATCH 6/6] Update ChangeLog --- doc/ChangeLog | 106 ++++++++++++++++++++++++++++++++++ doc/ChangeSum | 2 + doc/release-clm5.0.ChangeLog | 109 +++++++++++++++++++++++++++++++++++ 3 files changed, 217 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index 8870afa69e..52fef26586 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,110 @@ =============================================================== +Tag name: ctsm1.0.dev025 +Originator(s): Keith Oleson, Bill Sacks +Date: Wed Jan 23 10:48:01 MST 2019 +One-line Summary: History fields for vertically-resolved sums of soil C and N, and minor fixes + +Purpose of changes +------------------ + +Main change is from Keith Oleson: Add history fields for +vertically-resolved sums of SOIL1C, SOIL2C, and SOIL3C for C12, C13, +C14, and similarly for N. New fields are SOILC_vr, C13_SOILC_vr, and +C14_SOILC_vr, and SOILN_vr. For runs that use the output_bgc usermods, +including cmip6 runs, we no longer output 'SOIL1C_vr', 'SOIL1N_vr', +'SOIL2C_vr', 'SOIL2N_vr', 'SOIL3C_vr', 'SOIL3N_vr'; instead we output +'SOILC_vr', 'SOILN_vr', and similarly for C isotopes. + +Also minor fixes: +- Output cpl hist files in SSP test (resolves ESCOMP/ctsm#61) +- Remove FATES-related commented-out code in OzoneMod (this has been + moved to https://github.com/ESCOMP/ctsm/issues/618) +- Minor tweak to run_sys_tests + +Bugs fixed or introduced +------------------------ + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#61 + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? +(Details of any changes will be given in the "Answer changes" section below.) + + [Put an [X] in the box for any configuration with significant answer changes.] + +[ ] clm5_0 + +[ ] clm4_5 + +Notes of particular relevance for users +--------------------------------------- + +Caveats for users (e.g., need to interpolate initial conditions): none + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): none + +Changes made to namelist defaults (e.g., changed parameter values): +- For runs that use the output_bgc usermods, including cmip6 runs, we no + longer output 'SOIL1C_vr', 'SOIL1N_vr', 'SOIL2C_vr', 'SOIL2N_vr', + 'SOIL3C_vr', 'SOIL3N_vr'; instead we output 'SOILC_vr', 'SOILN_vr', + and similarly for C isotopes. + +Changes to the datasets (e.g., parameter, surface or initial files): none + +Substantial timing or memory changes: none + +Notes of particular relevance for developers: (including Code reviews and testing) +--------------------------------------------- +NOTE: Be sure to review the steps in ../CTSMMasterChecklist as well as the coding style in the Developers Guide + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): none + +Changes to tests or testing: none + +Code reviewed by: Bill Sacks; Erik Kluzek reviewed the changes to the SSP test + + +CTSM testing: + + build-namelist tests: + + cheyenne - not run + + tools-tests (test/tools): + + cheyenne - not run + + PTCLM testing (tools/shared/PTCLM/test): + + cheyenne - not run + + regular tests (aux_clm): + + cheyenne ---- pass + hobart ------ pass + +CTSM tag used for the baseline comparisons: ctsm1.0.dev024 + + +Answer changes +-------------- + +Changes answers relative to baseline: NO + + +Detailed list of changes +------------------------ + +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): none + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/551 + +=============================================================== +=============================================================== Tag name: ctsm1.0.dev015 Originator(s): sacks (Bill Sacks) Date: Sun Oct 28 14:29:30 MDT 2018 diff --git a/doc/ChangeSum b/doc/ChangeSum index 9bb694f080..9fc609ebbb 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,7 @@ Tag Who Date Summary ============================================================================================================================ +release-clm5.0.17 sacks 01/23/2019 History fields for vertically-resolved sums of soil C and N, and minor fixes + ctsm1.0.dev025 sacks 01/23/2019 History fields for vertically-resolved sums of soil C and N, and minor fixes release-clm5.0.16 erik 01/15/2019 PtVg and ssp_rcp future scenario options and Antarctica wetlands fix to mksurfdata, and option to dribble crop harvest XSMRPOOL flux to atmosphere release-clm5.0.15 sacks 12/06/2018 Option for rain-to-snow to immediately run off in some regions release-clm5.0.14 erik 11/29/2018 Update cime and fix surface dataset for f05 1850 non-crop case diff --git a/doc/release-clm5.0.ChangeLog b/doc/release-clm5.0.ChangeLog index 783713ad60..d9004d3c81 100644 --- a/doc/release-clm5.0.ChangeLog +++ b/doc/release-clm5.0.ChangeLog @@ -1,4 +1,113 @@ =============================================================== +Tag name: release-clm5.0.17 +Originator(s): Keith Oleson, Bill Sacks +Date: Wed Jan 23 11:03:22 MST 2019 +One-line Summary: History fields for vertically-resolved sums of soil C and N, and minor fixes + +Purpose of this version: +------------------------ + +Main change is from Keith Oleson: Add history fields for +vertically-resolved sums of SOIL1C, SOIL2C, and SOIL3C for C12, C13, +C14, and similarly for N. New fields are SOILC_vr, C13_SOILC_vr, and +C14_SOILC_vr, and SOILN_vr. For runs that use the output_bgc usermods, +including cmip6 runs, we no longer output 'SOIL1C_vr', 'SOIL1N_vr', +'SOIL2C_vr', 'SOIL2N_vr', 'SOIL3C_vr', 'SOIL3N_vr'; instead we output +'SOILC_vr', 'SOILN_vr', and similarly for C isotopes. + +Also minor fixes: +- Output cpl hist files in SSP test (resolves ESCOMP/ctsm#61) +- Remove FATES-related commented-out code in OzoneMod (this has been + moved to https://github.com/ESCOMP/ctsm/issues/618) +- Minor tweak to run_sys_tests + + +CTSM Master Tag This Corresponds To: ctsm1.0.dev025 + +Summary of changes: +------------------- + +Issues fixed (include CTSM Issue #): +- Resolves ESCOMP/ctsm#61 + +Science changes since: release-clm5.0.16 + None + +Software changes since: release-clm5.0.16 + See above + +Changes to User Interface since: release-clm5.0.16 + None + +Testing: +-------- + + build-namelist tests: + + cheyenne - not run + + unit-tests (components/clm/src): + + cheyenne - pass + hobart --- not run + + tools-tests (components/clm/test/tools): + + cheyenne - not run + hobart --- not run + + PTCLM testing (components/clm/tools/shared/PTCLM/test): + + cheyenne - not run + hobart --- not run + + regular tests (aux_clm): + + cheyenne_intel ---- pass + cheyenne_gnu ------ pass + hobart_nag -------- pass + hobart_pgi -------- pass + hobart_intel ------ pass + + regular tests (prealpha): + + cheyenne_intel - not run + cheyenne_gnu --- not run + hobart_nag ----- not run + + regular tests (prebeta): + + cheyenne_intel - not run + cheyenne_gnu --- not run + hobart_nag ----- not run + +Summary of Answer changes: +------------------------- + +Baseline version for comparison: release-clm5.0.16 + +Changes answers relative to baseline: NO + + +Detailed list of changes: +------------------------ + +Externals being used: + + cism: release-cesm2.0.04 + rtm: release-cesm2.0.02 + mosart: release-cesm2.0.03 + cime: cime_cesm2_1_rel_06 + FATES: fates_s1.8.1_a3.0.0 + PTCLM: PTCLM2_180611 + +CTSM Tag versions pulled over from master development branch: ctsm1.0.dev025 + +Pull Requests that document the changes (include PR ids): +https://github.com/ESCOMP/ctsm/pull/551 + +=============================================================== +=============================================================== Tag name: release-clm5.0.16 Originator(s): erik (Erik Kluzek) Date: Tue Jan 15 15:13:43 MST 2019