Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge ctsm1.0.dev113 tag into fates_main_api #1231

Merged
merged 127 commits into from
Jan 11, 2021

Conversation

glemieux
Copy link
Collaborator

@glemieux glemieux commented Dec 18, 2020

Description of changes

This PR brings the fates_main_api branch up to date with ctsm1.0.dev113 tag.

Specific notes

This effort is undertaken with the goal of approaching parity with CTSM master/main so as to eventually create fates api PRs directly to the main branch. Another update will likely follow shortly assuming changes do not unveil any major changes to FATES answers.

Some simple fixes were made in the merge to account for refactoring of CNFireFactoryMod.F90.

Contributors other than yourself, if any: @ekluzek

CTSM Issues Fixed (include github issue #): None

Are answers expected to change (and if so in what way)?

Any User Interface Changes (namelist or namelist defaults changes)? No

Testing performed, if any:
aux_clm suite outputs: Complete
fates suite outputs:

  • using new g17 grid: /glade/u/home/glemieux/scratch/clmed-tests/fma-merge-ctsm1.0.dev113.fates-sci.1.43.2_api.14.2.0-ctsm1.0.dev113-C1e156277-F5534a940
  • using g16 grid for b4b check: /glade/u/home/glemieux/scratch/clmed-tests/fma-merge-ctsm1.0.dev113-g16.fates-sci.1.43.2_api.14.2.0-ctsm1.0.dev113-C1e156277-F5534a940

NOTE: Be sure to check your coding style against the standard
(https://github.com/ESCOMP/ctsm/wiki/CTSM-coding-guidelines) and review
the list of common problems to watch out for
(https://github.com/ESCOMP/CTSM/wiki/List-of-common-problems).

ekluzek and others added 30 commits May 20, 2020 11:37
Add two bioenergy crops (switchgrass and miscanthus)

Main change is from Yanyan Cheng: adding parameters and code for two
bioenergy crops, switchgrass and miscanthus. Along with this, there is a
new potential flux from crop leaves and stems to the crop product pool
at harvest, representing biofuel products; a new pft-specific parameter
controls this flux (biofuel_harvfrac). Currently, the out-of-the-box
surface datasets do not specify any area for these crops, but the new
parameter file will allow them to be present if specified on the surface
dataset or landuse_timeseries file. Note that this is only an option for
CLM5.0, NOT for CLM4.5. (See ESCOMP#884 for
details.)

Also, some minor fixes from Bill Sacks:
- Resolves ESCOMP#203 - Fixes creation of harvest-related variables
  on surface datasets created with the all_veg option - smallville,
  PTCLM, etc. (documented in ESCOMP#1019)
- Resolves ESCOMP#930 - Makes gindex_ocn intent(inout) rather than
  intent(out)
- Resolves ESCOMP#1021 - Changes SSP test to only do symlink if
  needed
Deallocate memory after running init_interp

Many of the pointer arrays in init_interp were not being deallocated
when init_interp finished. This was a particular problem because some of
these arrays were allocated for the full global source grid on each
processor, so the memory use was significant. This tag fixes this issue.

This issue is documented in ESCOMP#1010
and ESCOMP#1032.

Resolves ESCOMP#1032 (Memory isn't deallocated in some of the
init_interp code)
Add LILAC

Add LILAC: The Lightweight Infrastructure for Land-Atmosphere
Coupling. This infrastructure consists of two major pieces:

(1) A lightweight coupling infrastructure built on top of ESMF that
    makes it easier for atmosphere models to call CTSM directly, rather
    than using the hub-and-spoke architecture that is used by CESM.

(2) A set of python-based tools for building CTSM and creating its
    runtime inputs when running in an atmosphere model via
    LILAC. Although these tools are built on top of cime, details of the
    create_newcase / case.setup / case.build process are hidden from the
    user, because many of the aspects of this workflow don't make sense
    in the LILAC context.

So far we have used LILAC to couple CTSM to WRF. There are plans to use
the same infrastructure to couple CTSM to other regional atmosphere
models.

Documentation of LILAC is provided in
https://escomp.github.io/ctsm-docs/versions/master/html/lilac/index.html
(though there are still some missing sections), as well as in various
presentations on the wiki
(https://github.com/ESCOMP/CTSM/wiki/Presentations).

There have been many contributors besides myself to the development,
testing and documentation of LILAC; chief among them being Mariana
Vertenstein, Negin Sobhani, Joe Hamman, Sam Levis, Mike Barlage and Dave
Lawrence.
Add LILAC

Add LILAC: The Lightweight Infrastructure for Land-Atmosphere
Coupling. This infrastructure consists of two major pieces:

(1) A lightweight coupling infrastructure built on top of ESMF that
    makes it easier for atmosphere models to call CTSM directly, rather
    than using the hub-and-spoke architecture that is used by CESM.

(2) A set of python-based tools for building CTSM and creating its
    runtime inputs when running in an atmosphere model via
    LILAC. Although these tools are built on top of cime, details of the
    create_newcase / case.setup / case.build process are hidden from the
    user, because many of the aspects of this workflow don't make sense
    in the LILAC context.

So far we have used LILAC to couple CTSM to WRF. There are plans to use
the same infrastructure to couple CTSM to other regional atmosphere
models.

Documentation of LILAC is provided in
https://escomp.github.io/ctsm-docs/versions/master/html/lilac/index.html
(though there are still some missing sections), as well as in various
presentations on the wiki
(https://github.com/ESCOMP/CTSM/wiki/Presentations).

There have been many contributors besides myself to the development,
testing and documentation of LILAC; chief among them being Mariana
Vertenstein, Negin Sobhani, Joe Hamman, Sam Levis, Mike Barlage and Dave
Lawrence.
Bring in changes from release-clm5.0.31-releas-clm5.0.34 except
for the documentation updates, SSP 2100-2300 extension,
manage_externals update, and externals update.

Changes were brought in using patch, and removing the changes
that were unneeded.
…an apparant change to answers even for cases that dont' run past 2005
   Add new SE (Spectral Element) grids: ne30np4.pg2, ne30np4.pg3, ne30np4, ne60np4, ne120np4, ne120np4.pg2, ne120np4.pg3,
                                        ne0np4CONUS.ne30x8, ne0np4.ARCTIC.ne30x4, ne0np4.ARCTICGRIS.ne30x8
   Add new datasets for them, some new tests, and add support for their creation.

   Also add some new initial condition (IC) files for 1979, 2000, and 2013 for use when coupled to CAM

   The process for picking initial condition files was improved so that there can be more than one year that matches
   and it will do the best to pick the best match. Also added the possibility for 1982 and 2013 simulation years for
   specific grid matches.

  Also update cime to a newer version that supports these new grids. And update CMEPS (and hence add in fox, CDEPS)
  to latest used on the nuopc_dev branch. Testing with nuopc wouldn't work without this update. The cime version updates
  the tables for dry-deposition and changes answers for dry-deposition when it's turned on.
…lated, add f09 and f19 clm5_0_cam6.0 1979 SP finidat files needed for CAM
…for f19 and clm5_0_cam6.0, use st_year for date for finidat file only if a transient simulation
ekluzek and others added 20 commits August 28, 2020 14:09
Update cime so default end year for GSWP3 forcing is 2013 and change prevyr default for vcmax/jmax
I sometimes find myself wanting to check what options I provided to
run_sys_tests after the fact. This change records this information in
the SRCROOT_GIT_STATUS file.
Updates sources of surfacedata and land use time series in tools/contrib
I think this may be important to avoid errors and/or wrong behavior in
some edge cases where we have < 0.5% cover of glacier and/or lake, and
other cases.

See ESCOMP#1118 for detailed thoughts

Resolves ESCOMP#1118
Some bit-for-bit changes needed for the Perturbed Parameter Ensemble work
Some bit-for-bit changes needed for the Perturbed Parameter Ensemble work
@glemieux glemieux changed the title Fma merge ctsm1.0.dev113 Merge ctsm1.0.dev113 tag into fates_main_api Dec 18, 2020
@glemieux
Copy link
Collaborator Author

glemieux commented Dec 18, 2020

All fates suite tests PASS b4b with some exceptions.

The cime tag has been updated to cime5.8.32 resulting in some of the test comparison failures for the NLCOMP check. The other failures appear to be due to updates to the default namelists in commit 5021749 and 6837e11.

This PR pulls in an update to the testlist grids from g16 to g17 via commit aa36c77. I ran the fates test suite with g16 grids to check the comparison against baseline for those testmods that used the g16 grid. All runs pass b4b with the exception of ERS_D_Ld5.f19_g16.I2000Clm50BgcCruGs.cheyenne_intel.clm-default.

@glemieux glemieux added the FATES API update Changes to the FATES version that also REQUIRE an API change in CTSM label Dec 18, 2020
Copy link
Collaborator

@ekluzek ekluzek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@glemieux I don't know of a good way to review this update. The changes are large enough that it's hard to really validate they are right, without my more of less doing the same update and comparing it to yours. So I think I'll just approve it as it is. Unless there's something in particular you'd like us to look at. Or if we can think of another way to verify and update like this.

@glemieux
Copy link
Collaborator Author

@ekluzek the aux_clm test is still chugging along, but so far everything is passing b4b, except the fates versions which is expected. I'm going to run the clm-only test from the fates suite on ctsm1.0.dev113 and compare it against this PR's test run to see if that passes b4b.

The only other thing that might be specifically worth reviewing is the commits I made in 1e15627 clear conflicts.

@glemieux
Copy link
Collaborator Author

glemieux commented Dec 22, 2020

All expected clm_aux tests pass b4b: /glade/u/home/glemieux/scratch/tests_1218-151257ch

The LILACSMOKE test failed, as expected, due to ctsm1.0.dev113 not having 5cd28a0 or 9790450. Bringing in those fixes temporarily results in b4b: /glade/u/home/glemieux/scratch/tests_1222-105303ch

@glemieux glemieux added the PR status: ready PR: this is ready to merge in, with all tests satisfactory and reviews complete label Dec 22, 2020
@glemieux
Copy link
Collaborator Author

glemieux commented Dec 22, 2020

All runs pass b4b with the exception of ERS_D_Ld5.f19_g16.I2000Clm50BgcCruGs.cheyenne_intel.clm-default.

I ran this test on the ctsm1.0.dev113 tag and manually compared with cprnc to the original g17 grid run and the two are b4b. The output files for this comparison has suffix .nc.cprnc.out and are located here:

/glade/u/home/glemieux/scratch/clmed-tests/ctsmpr-1231-clm-default.fates.cheyenne.intel.C8550666a-F3f6749d4/ERS_D_Ld5.f19_g17.I2000Clm50BgcCruGs.cheyenne_intel.clm-default.C.20201222_112417_uqkkbx

@rgknox I think this is ready to integrate.

@rgknox rgknox merged commit a7e020f into ESCOMP:fates_main_api Jan 11, 2021
@glemieux glemieux deleted the fma-merge-ctsm1.0.dev113 branch February 7, 2023 15:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FATES API update Changes to the FATES version that also REQUIRE an API change in CTSM PR status: ready PR: this is ready to merge in, with all tests satisfactory and reviews complete
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants