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

Bit-for-bit updates for the CESM2.2.0 release #1079

Merged
merged 27 commits into from
Aug 6, 2020
Merged

Conversation

ekluzek
Copy link
Collaborator

@ekluzek ekluzek commented Jul 14, 2020

Description of changes

Fix some bit-for-bit things needed for the CESM2.2.0 release
Bring changes needed from release-clm5.0.31-34 to trunk. ndep change.
Do some refactoring of Fire class so that it makes sense for FATES to use the base class.

Specific notes

Contributors other than yourself, if any: none

CTSM Issues Fixed (include github issue #):

Fixes #1096 -- failing tests
Fixes #1087
Fixes #1036
Fixes #946
Fixes #983
Fixes #938

Are answers expected to change (and if so in what way)? No (except if you run a HIST compset beyond 2005)

Any User Interface Changes (namelist or namelist defaults changes)?
Better message when ndep file is missing, when running with WACCM turn ignore-warnings on as it's provided

Testing performed, if any: Running regular testing on izumi

ekluzek added 12 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.
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.
@ekluzek ekluzek added priority: high High priority to fix/merge soon, e.g., because it is a problem in important configurations code health improving internal code structure to make easier to maintain (sustainability) tag: simple bfb labels Jul 14, 2020
@ekluzek ekluzek added this to the cesm2.2.0 milestone Jul 14, 2020
@ekluzek ekluzek self-assigned this Jul 14, 2020
…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
… finidat file selection and that hgrid is used in settings for it as well as for use_init_interp, also fix number of tests
…t to the value of res, hence this overwrote the correct value with the wrong one
@ekluzek
Copy link
Collaborator Author

ekluzek commented Aug 3, 2020

I'm finding unexpected problems.

================================================================================
These tests compare different to the baseline

ERI_D_Ld9.f10_f10_musgs.I1850Clm45Bgc.cheyenne_gnu.clm-default
ERP_D_Ld5.f19_g17.IHistClm50SpCru.cheyenne_intel.clm-drydepnomegan
ERP_P36x2_D_Ld10.f10_f10_musgs.IHistClm50SpG.cheyenne_intel.clm-glcMEC_decrease
ERP_P36x2_D_Ld5.f10_f10_musgs.I1850Clm45BgcCru.cheyenne_intel.clm-default
ERP_P36x2_D_Ld5.f10_f10_musgs.I1850Clm45BgcGs.cheyenne_intel.clm-default
ERP_P36x2_D_Ld5.f10_f10_musgs.I1850Clm45Cn.cheyenne_intel.clm-default
SMS.ne30pg2_ne30pg2_mg17.I1850Clm50Sp.cheyenne_intel.clm-clm50cam6LndTuningMode
SMS_Lm37.f10_f10_musgs.I1850Clm50SpG.cheyenne_intel.clm-glcMEC_long

These tests failed

ERP_P36x2_D_Ld5.f10_f10_musgs.I1850Clm45BgcCrop.cheyenne_intel.clm-crop
ERS_D_Ld6.f10_f10_musgs.I1850Clm45BgcCrop.cheyenne_gnu.clm-clm50CMIP6frc
ERS_D_Ld6.f10_f10_musgs.I1850Clm45BgcCrop.cheyenne_intel.clm-clm50CMIP6frc
ERS_Ly5_P72x1.f10_f10_musgs.IHistClm45BgcCrop.cheyenne_intel.clm-cropMonthOutput
SMS.ne0ARCTICGRISne30x8_ne0ARCTICGRISne30x8_mt12.ISSP585Clm50BgcCrop.cheyenne_intel.clm-clm50cam6LndTuningMode
SMS.ne30pg2_ne30pg2_mg17.I2000Clm50BgcCrop.cheyenne_intel.clm-clm50cam6LndTuningMode
SMS_D_Ly6_Mmpi-serial.1x1_smallvilleIA.IHistClm45BgcCropQianGs.cheyenne_intel.clm-cropMonthOutput
SMS_Ld5.f10_f10_musgs.I1850Clm45BgcCrop.cheyenne_gnu.clm-crop

@ekluzek
Copy link
Collaborator Author

ekluzek commented Aug 3, 2020

I think this is just because I need to prepare finidat files for a couple of these resolutions f10, f19, ne30npg2. Having it interpolate to f09 and then interpolate to those could possibly change answers.

@ekluzek
Copy link
Collaborator Author

ekluzek commented Aug 4, 2020

I think these problems are due to having new interpolated IC files. If you have a f19 IC file and interpolate it to f10, but you update f19 IC file, the f10 case will likely have "apparent" answer changes.

In talking with @billsacks and @mvertens we thought a better way to do this would be to include the IC update in the second answer changing tag.

… previous finidat files, since using updated files changes answers for some cases when it gets interpolated another time
@ekluzek
Copy link
Collaborator Author

ekluzek commented Aug 5, 2020

Going back to the previous finidat files removes all of the issues I was seeing. Some of them will crop up again for the next tag though, so I'll still need to find solutions for some of them. But, this keeps this tag from changing answers and moves some simple answer changes to the next tag.

@ekluzek ekluzek merged commit fea8f89 into ESCOMP:master Aug 6, 2020
@ekluzek ekluzek deleted the simb4b branch August 6, 2020 21:36
@samsrabin samsrabin added simple bfb bit-for-bit labels Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bfb bit-for-bit code health improving internal code structure to make easier to maintain (sustainability) priority: high High priority to fix/merge soon, e.g., because it is a problem in important configurations
Projects
None yet
2 participants