Skip to content

Commit

Permalink
Merge clm4_5_8_r180, commit 'df0d891b', into andre-ed-clm-16x
Browse files Browse the repository at this point in the history
  • Loading branch information
bandre-ucar committed Jun 13, 2016
2 parents 2d78566 + df0d891 commit 258d2c6
Show file tree
Hide file tree
Showing 31 changed files with 2,697 additions and 1,747 deletions.
171 changes: 171 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,175 @@
===============================================================
Tag name: clm4_5_8_r180
Originator(s): sacks (Bill Sacks)
Date: Mon Jun 6 06:13:57 MDT 2016
One-line Summary: Refactor dyn_cnbal_patch

Purpose of changes
------------------

There was a lot of duplicated code, as well as almost-but-not-quite-duplicated
code in dyn_cnbal_patch (the code used for updating patch-level BGC variables
when patch weights change). This tag consolidates this duplicated code into some
new shared infrastructure, similar to what is done for column-level variables.

In addition, do not zero states when patch weights go to zero. (I expected this
to change answers for 1-d history files, but it didn't.)

Bugs fixed or introduced
------------------------

Bugs fixed (include bugzilla ID):
- 2317: incorrect handling of isotopes with transient PFTs starting in clm4_5_1_r097


Notes of particular relevance for users
---------------------------------------

Caveats for users (e.g., need to interpolate initial conditions): none

Changes to CLM's user interface (e.g., new/renamed XML or namelist variables): none

Changes made to namelist defaults (e.g., changed parameter values): none

Changes to the datasets (e.g., parameter, surface or initial files): none

Substantial timing or memory changes: small timing increase: about 10% increase
in dyn_cnbal_patch, amounting to a 0.3% increase in total CLM runtime (for both
transient and non-transient runs).


Code reviews and testing
------------------------

Code reviewed by: self

CLM testing:

[PASS means all tests PASS and OK means tests PASS other than expected fails.]

NOTE: testing done on
refactor_seed_calculation_n01_maintain_state_zero_weight_n01_dynlu_conserve_cn3_n03_clm4_5_8_r179;
very minor changes since then tested with
SMS_Ld5_D_P24x1.f10_f10.IRCP45CLM45BGC.hobart_nag.clm-decStart

build-namelist tests:

yellowstone - not run

unit-tests (components/clm/src):

yellowstone - pass

tools-tests (components/clm/test/tools):

yellowstone - not run

PTCLM testing (components/clm/tools/shared/PTCLM/test):

yellowstone - not run

regular tests (aux_clm40, aux_clm45):

yellowstone_intel - ok
yellowstone_pgi - ok
yellowstone_gnu (clm45 only) - ok
hobart_nag - ok

ok means tests pass, expected baseline failures as noted below

CLM tag used for the baseline comparisons: clm4_5_8_r179
CLM40 compared with clm4_5_8_r178 (baselines missing for r179)


Answer changes
--------------

Changes answers relative to baseline:

If a tag changes answers relative to baseline comparison the
following should be filled in (otherwise remove this section):

Summarize any changes to answers, i.e.,
- what code configurations: CLM45 / CLM50 transient and CNDV runs
- what platforms/compilers: all
- nature of change (roundoff; larger than roundoff/same climate; new climate):

Roundoff-level changes

Greater than roundoff-level for transient runs with isotopes, due to fixing
bug 2317

If bitwise differences were observed, how did you show they were no worse
than roundoff?

Created a branch (dynlu_conserve_cn3_oneoff) that was as similar as possible
to the trunk, with just those changes needed to get bit-for-bit behavior with
my new code (e.g., reordering some calculations). Confirmed that my new code
is bit-for-bit with that.

If this tag changes climate describe the run(s) done to evaluate the new
climate (put details of the simulations in the experiment database)
- casename: N/A

URL for LMWG diagnostics output used to validate new climate: N/A


Detailed list of changes
------------------------

List any svn externals directories updated (cime, rtm, cism, etc.): none

List all files eliminated: none

List all files added and what they do:

========= New, shared infrastructure for updating patch-level variables
A components/clm/src/dyn_subgrid/dynPatchStateUpdaterMod.F90
A components/clm/src/dyn_subgrid/test/dynPatchStateUpdater_test/CMakeLists.txt
A components/clm/src/dyn_subgrid/test/dynPatchStateUpdater_test/test_patch_state_updater.pf
A components/clm/src/dyn_subgrid/test/dynPatchStateUpdater_test

========= Extract code common to carbon and nitrogen, for computing seed amounts
A components/clm/src/biogeochem/CNVegComputeSeedMod.F90
A components/clm/src/biogeochem/test/CNVegComputeSeed_test/CMakeLists.txt
A components/clm/src/biogeochem/test/CNVegComputeSeed_test/test_ComputeSeedAmounts.pf
A components/clm/src/biogeochem/test/CNVegComputeSeed_test

========= Define constants for identifying whether we're operating on c12, c13,
c14 or n (used in CNVegComputeSeedMod)
A components/clm/src/biogeochem/CNSpeciesMod.F90

List all existing files that have been modified, and describe the changes:

========= Remove a bunch of code - moved to new infrastructure
M components/clm/src/biogeochem/dynConsBiogeochemMod.F90

========= Make calls to new patch state updater for each necessary variable
M components/clm/src/biogeochem/CNVegCarbonStateType.F90
M components/clm/src/biogeochem/CNVegNitrogenStateType.F90

========= Set up patch state updater
M components/clm/src/dyn_subgrid/dynSubgridDriverMod.F90

========= Other minor changes needed to use the new infrastructure
M components/clm/src/biogeochem/CNVegetationFacade.F90

========= Add some unit tests, and some related unit testing infrastructure
M components/clm/src/biogeochem/test/CMakeLists.txt
M components/clm/src/main/pftconMod.F90
M components/clm/src/biogeochem/CMakeLists.txt
M components/clm/src/dyn_subgrid/CMakeLists.txt
M components/clm/src/dyn_subgrid/test/CMakeLists.txt
M components/clm/src/unit_test_shr/unittestSimpleSubgridSetupsMod.F90

========= Remove a bit of unused code
M components/clm/src/dyn_subgrid/dynColumnStateUpdaterMod.F90

========= Remove a test that has been passing for a while, and one that no longer exists
M components/clm/cime_config/testdefs/ExpectedTestFails.xml

===============================================================
===============================================================
Tag name: clm4_5_8_r179
Originator(s): sacks (Bill Sacks)
Date: Fri May 27 10:39:15 MDT 2016
Expand Down
3 changes: 0 additions & 3 deletions components/clm/cime_config/testdefs/ExpectedTestFails.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,9 @@

<entry bugz="2239" >RUN ERP_Ld5.f09_g16.ICLM45VIC.yellowstone_pgi.clm-vrtlay_interp</entry>
<entry bugz="2233" >RUN ERI_N2_Ld9.f19_g16.ICRUCLM45BGCCROP.yellowstone_intel.clm-default</entry>
<entry bugz="2279" >RUN SMS_D_Lm1_Mmpi-serial.CLM_USRDAT.I1PTCLM45.yellowstone_pgi.clm-USUMB</entry>


<entry bugz="2256" >RUN ERP_Ly5.1x1_numaIA.ICRUCLM50BGCCROP.hobart_nag.clm-monthly</entry>
<entry bugz="2256" >RUN ERP_Ld5_P24x1.f10_f10.I1850CLM45BGC.hobart_nag.clm-default</entry>
<entry bugz="2258" >RUN ERP_Ly5.1x1_numaIA.ICRUCLM50BGCCROP.hobart_nag.clm-clm50BGCCROPmonthly</entry>

<entry>FAIL ERS_D_Ld5.f19_g16.ICLM45ED.yellowstone_pgi.clm-edTest.clm2.h0.nc : test compare clm2.h0 (.base and .rest files)</entry>
<entry>FAIL ERS_D_Ld5.f19_g16.ICLM45ED.yellowstone_pgi.clm-edTest.cpl.hi.nc : test compare cpl.hi (.base and .rest files)</entry>
Expand Down
171 changes: 171 additions & 0 deletions components/clm/doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,175 @@
===============================================================
Tag name: clm4_5_8_r180
Originator(s): sacks (Bill Sacks)
Date: Mon Jun 6 06:13:57 MDT 2016
One-line Summary: Refactor dyn_cnbal_patch

Purpose of changes
------------------

There was a lot of duplicated code, as well as almost-but-not-quite-duplicated
code in dyn_cnbal_patch (the code used for updating patch-level BGC variables
when patch weights change). This tag consolidates this duplicated code into some
new shared infrastructure, similar to what is done for column-level variables.

In addition, do not zero states when patch weights go to zero. (I expected this
to change answers for 1-d history files, but it didn't.)

Bugs fixed or introduced
------------------------

Bugs fixed (include bugzilla ID):
- 2317: incorrect handling of isotopes with transient PFTs starting in clm4_5_1_r097


Notes of particular relevance for users
---------------------------------------

Caveats for users (e.g., need to interpolate initial conditions): none

Changes to CLM's user interface (e.g., new/renamed XML or namelist variables): none

Changes made to namelist defaults (e.g., changed parameter values): none

Changes to the datasets (e.g., parameter, surface or initial files): none

Substantial timing or memory changes: small timing increase: about 10% increase
in dyn_cnbal_patch, amounting to a 0.3% increase in total CLM runtime (for both
transient and non-transient runs).


Code reviews and testing
------------------------

Code reviewed by: self

CLM testing:

[PASS means all tests PASS and OK means tests PASS other than expected fails.]

NOTE: testing done on
refactor_seed_calculation_n01_maintain_state_zero_weight_n01_dynlu_conserve_cn3_n03_clm4_5_8_r179;
very minor changes since then tested with
SMS_Ld5_D_P24x1.f10_f10.IRCP45CLM45BGC.hobart_nag.clm-decStart

build-namelist tests:

yellowstone - not run

unit-tests (components/clm/src):

yellowstone - pass

tools-tests (components/clm/test/tools):

yellowstone - not run

PTCLM testing (components/clm/tools/shared/PTCLM/test):

yellowstone - not run

regular tests (aux_clm40, aux_clm45):

yellowstone_intel - ok
yellowstone_pgi - ok
yellowstone_gnu (clm45 only) - ok
hobart_nag - ok

ok means tests pass, expected baseline failures as noted below

CLM tag used for the baseline comparisons: clm4_5_8_r179
CLM40 compared with clm4_5_8_r178 (baselines missing for r179)


Answer changes
--------------

Changes answers relative to baseline:

If a tag changes answers relative to baseline comparison the
following should be filled in (otherwise remove this section):

Summarize any changes to answers, i.e.,
- what code configurations: CLM45 / CLM50 transient and CNDV runs
- what platforms/compilers: all
- nature of change (roundoff; larger than roundoff/same climate; new climate):

Roundoff-level changes

Greater than roundoff-level for transient runs with isotopes, due to fixing
bug 2317

If bitwise differences were observed, how did you show they were no worse
than roundoff?

Created a branch (dynlu_conserve_cn3_oneoff) that was as similar as possible
to the trunk, with just those changes needed to get bit-for-bit behavior with
my new code (e.g., reordering some calculations). Confirmed that my new code
is bit-for-bit with that.

If this tag changes climate describe the run(s) done to evaluate the new
climate (put details of the simulations in the experiment database)
- casename: N/A

URL for LMWG diagnostics output used to validate new climate: N/A


Detailed list of changes
------------------------

List any svn externals directories updated (cime, rtm, cism, etc.): none

List all files eliminated: none

List all files added and what they do:

========= New, shared infrastructure for updating patch-level variables
A components/clm/src/dyn_subgrid/dynPatchStateUpdaterMod.F90
A components/clm/src/dyn_subgrid/test/dynPatchStateUpdater_test/CMakeLists.txt
A components/clm/src/dyn_subgrid/test/dynPatchStateUpdater_test/test_patch_state_updater.pf
A components/clm/src/dyn_subgrid/test/dynPatchStateUpdater_test

========= Extract code common to carbon and nitrogen, for computing seed amounts
A components/clm/src/biogeochem/CNVegComputeSeedMod.F90
A components/clm/src/biogeochem/test/CNVegComputeSeed_test/CMakeLists.txt
A components/clm/src/biogeochem/test/CNVegComputeSeed_test/test_ComputeSeedAmounts.pf
A components/clm/src/biogeochem/test/CNVegComputeSeed_test

========= Define constants for identifying whether we're operating on c12, c13,
c14 or n (used in CNVegComputeSeedMod)
A components/clm/src/biogeochem/CNSpeciesMod.F90

List all existing files that have been modified, and describe the changes:

========= Remove a bunch of code - moved to new infrastructure
M components/clm/src/biogeochem/dynConsBiogeochemMod.F90

========= Make calls to new patch state updater for each necessary variable
M components/clm/src/biogeochem/CNVegCarbonStateType.F90
M components/clm/src/biogeochem/CNVegNitrogenStateType.F90

========= Set up patch state updater
M components/clm/src/dyn_subgrid/dynSubgridDriverMod.F90

========= Other minor changes needed to use the new infrastructure
M components/clm/src/biogeochem/CNVegetationFacade.F90

========= Add some unit tests, and some related unit testing infrastructure
M components/clm/src/biogeochem/test/CMakeLists.txt
M components/clm/src/main/pftconMod.F90
M components/clm/src/biogeochem/CMakeLists.txt
M components/clm/src/dyn_subgrid/CMakeLists.txt
M components/clm/src/dyn_subgrid/test/CMakeLists.txt
M components/clm/src/unit_test_shr/unittestSimpleSubgridSetupsMod.F90

========= Remove a bit of unused code
M components/clm/src/dyn_subgrid/dynColumnStateUpdaterMod.F90

========= Remove a test that has been passing for a while, and one that no longer exists
M components/clm/cime_config/testdefs/ExpectedTestFails.xml

===============================================================
===============================================================
Tag name: clm4_5_8_r179
Originator(s): sacks (Bill Sacks)
Date: Fri May 27 10:39:15 MDT 2016
Expand Down
1 change: 1 addition & 0 deletions components/clm/doc/ChangeSum
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Tag Who Date Summary
============================================================================================================================
clm4_5_8_r180 sacks 06/06/2016 Refactor dyn_cnbal_patch
clm4_5_8_r179 sacks 05/27/2016 Update column-level BGC state variables with dynamic landunits
clm4_5_8_r178 sacks 04/17/2016 Remove some consistency checks, and merge crop_prog with use_crop in code
clm4_5_8_r177 sacks 04/14/2016 Move CN product pools to gridcell level
Expand Down
2 changes: 1 addition & 1 deletion components/clm/doc/UsersGuide/clm_ug.xml
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ The purpose of this guide is to instruct both the novice and experienced user, a
</para>
</abstract>

<releaseinfo>$URL: https://svn-ccsm-models.cgd.ucar.edu/clm2/trunk_tags/clm4_5_8_r179/components/clm/doc/UsersGuide/clm_ug.xml $</releaseinfo>
<releaseinfo>$URL: https://svn-ccsm-models.cgd.ucar.edu/clm2/trunk_tags/clm4_5_8_r180/components/clm/doc/UsersGuide/clm_ug.xml $</releaseinfo>

<date>&build_date;</date>

Expand Down
2 changes: 2 additions & 0 deletions components/clm/src/biogeochem/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

list(APPEND clm_sources
CNSharedParamsMod.F90
CNSpeciesMod.F90
CNVegComputeSeedMod.F90
SpeciesBaseType.F90
SpeciesIsotopeType.F90
SpeciesNonIsotopeType.F90
Expand Down
Loading

0 comments on commit 258d2c6

Please sign in to comment.