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

Update CMEPS #51

Merged
merged 82 commits into from
Jul 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
6e43394
addition of tests to testlist_drv.xml for cime testlists
Mar 25, 2021
4517aea
Merge remote-tracking branch 'origin/master' into mvertens/new_cesmtests
Mar 28, 2021
19a4f9c
bug fix for co2_ppmv for C1850ECO
Mar 28, 2021
ac59e2e
Merge pull request #173 from mvertens/mvertens/new_cesmtests
mvertens Mar 29, 2021
b58b78e
incorporation of ocean precipitation factor and bug fixes
Feb 19, 2021
be4ca24
minor cleanup updates
Feb 25, 2021
67d02d7
backed out changes in namelist_definition_drv.xml
Mar 29, 2021
09b453f
updates for precipitation factors from pop
Mar 29, 2021
a33c34e
changes to get precipation factors from pop and scale rain and snow b…
Mar 29, 2021
abd3ef2
turned debug flag back to 0
Mar 30, 2021
d49d38b
Merge pull request #174 from mvertens/feature/ocn_precip_factors
mvertens Mar 30, 2021
6dad8e4
enable esmf aware threading
jedwards4b Dec 1, 2020
9df8c11
allow esmf aware threading
jedwards4b Dec 4, 2020
c3a25fa
dont use SetVM unless nthrds > 1
jedwards4b Dec 7, 2020
432d8ad
fix issues with cpp macros
jedwards4b Dec 7, 2020
906a483
always use vm for all components if threaded
jedwards4b Dec 14, 2020
eb62213
latest changes
jedwards4b Jan 13, 2021
1eb6e6c
always use setvm
jedwards4b Jan 20, 2021
564dd00
minor changes
jedwards4b Feb 11, 2021
1245983
add ESMF_AWARE_THREADING
jedwards4b Mar 26, 2021
9e88547
drv_threading variable not used
jedwards4b Mar 29, 2021
c12465b
enable esmf aware threading
jedwards4b Dec 1, 2020
7ed4140
allow esmf aware threading
jedwards4b Dec 4, 2020
22a8bd8
latest changes
jedwards4b Jan 13, 2021
ab7c14c
always use setvm
jedwards4b Jan 20, 2021
03bd49f
minor changes
jedwards4b Feb 11, 2021
4ced2ca
add ESMF_AWARE_THREADING
jedwards4b Mar 26, 2021
6f460c7
add a test
jedwards4b Apr 5, 2021
8c91c62
update workflow file
jedwards4b Apr 6, 2021
448a81c
Merge pull request #144 from jedwards4b/fix_avgdt_add_nthreads_to_gcomp
jedwards4b Apr 6, 2021
b4a304f
fix setting of scol_spval for single column functionality
Apr 21, 2021
75b8d75
Merge pull request #176 from mvertens/bugfix/single_column
jedwards4b Apr 21, 2021
d1a0af2
some corrections to the med diag calculations
jedwards4b Apr 27, 2021
ae76bae
fix for gnu
jedwards4b Apr 27, 2021
c0c2001
Merge pull request #177 from jedwards4b/med_diag_corrections
jedwards4b Apr 28, 2021
a2e8091
fixes for multiple ice sheets to be greater than 1
Apr 28, 2021
f8b5e1b
Merge tag 'v0.11.0' into feature/multiple_icesheet_update
Apr 28, 2021
89ba500
fixed compile bug
May 1, 2021
1c2af56
write diags to a seperate file
jedwards4b May 4, 2021
9c48146
update pr template
jedwards4b May 4, 2021
3700e71
fixes to land ice runoff in budget table
May 5, 2021
bb7c520
Merge pull request #178 from jedwards4b/diags_out_file
jedwards4b May 5, 2021
81e1418
Merge pull request #180 from mvertens/feature/fix_lnd_ice_runoff
mvertens May 6, 2021
cec9ed1
update to use annotated tags and cmeps prefix
jedwards4b May 6, 2021
56fbcac
Merge pull request #181 from jedwards4b/make_tags_annotated
jedwards4b May 6, 2021
a203f5e
bump version
jedwards4b May 6, 2021
a0e90a2
Merge pull request #182 from jedwards4b/make_tags_annotated2
jedwards4b May 6, 2021
13e347a
Merge pull request #185 from ESCOMP/feature/multiple_icesheet_update
jedwards4b May 7, 2021
ea047bb
use nexttime rather than currtime to trigger budget output
May 9, 2021
d227909
fixed issue in PR
May 10, 2021
cf0d47b
Merge pull request #189 from mvertens/feature/fix_budget_output
jedwards4b May 11, 2021
275b1a4
fix initial diag counter
jedwards4b May 11, 2021
d865106
add support for stop_option date
jedwards4b May 14, 2021
26da4e3
Merge remote-tracking branch 'jedwards/diag_counter_fix' into feature…
May 16, 2021
801724f
updated run sequence to fix diag problem for wmelt
May 16, 2021
75a5051
Remove unneeded glc_nx and glc_ny drv namelist variables
billsacks May 4, 2021
cb3425b
Remove unused mapping file variables
billsacks May 27, 2021
f5a4123
fixes for memory leak
Jun 1, 2021
94c5881
Merge remote-tracking branch 'escomp/master' into feature/escompPR
DeniseWorthen Jun 1, 2021
924b466
remove debug print statement
jedwards4b Jun 1, 2021
e67f3de
Merge pull request #195 from mvertens/feature/validation_fixes
jedwards4b Jun 1, 2021
c21623b
remove the version ifdef and add the CASE_HASH variable
jedwards4b Jun 2, 2021
0a9702c
fix uninitialized values for AccumCnts
DeniseWorthen Jun 2, 2021
d7c6346
Merge branch 'bugfix/initAccumCnts' into feature/escompPR
DeniseWorthen Jun 3, 2021
d480ecc
Fix namelist variables that weren't being set
billsacks Jun 4, 2021
4214425
Merge pull request #200 from jedwards4b/remove_esmf_version_ifdef
jedwards4b Jun 4, 2021
656198e
Merge pull request #199 from billsacks/glc_multigrids
mvertens Jun 8, 2021
e479157
it turns out that the mpi module does not support functions in the on…
jedwards4b Jun 8, 2021
d9960bd
Merge pull request #201 from billsacks/fix_missing_nml_defaults
jedwards4b Jun 10, 2021
4736b97
Merge pull request #202 from jedwards4b/correct_mpi_use
jedwards4b Jun 10, 2021
b5b67e4
Merge pull request #193 from jedwards4b/add_stop_option_date
jedwards4b Jun 10, 2021
c08337f
Merge pull request #198 from DeniseWorthen/feature/escompPR
jedwards4b Jun 10, 2021
c95b935
validation bug fixes
Jun 11, 2021
94964bf
Merge remote-tracking branch 'escomp/master' into feature/updcmeps
DeniseWorthen Jun 11, 2021
1d84704
Merge tag 'cmeps0.13.10' into feature/validation_bugfixes
Jun 14, 2021
d5b8246
removed extraneous do loop
Jun 14, 2021
65045d2
change this from INFO to ERROR
jedwards4b Jun 15, 2021
307d2be
Merge pull request #205 from mvertens/feature/validation_bugfixes
jedwards4b Jun 15, 2021
11bcd20
esmf aware threading now works with esmf 8.2.0b10 or newer
jedwards4b Jun 17, 2021
bce1ecd
move the version check to buildnml for faster feedback to user
jedwards4b Jun 17, 2021
0b2fa2f
Merge pull request #207 from jedwards4b/esmf_aware_threading_fixes
jedwards4b Jun 17, 2021
cc6f2b9
Merge remote-tracking branch 'escomp/master' into feature/updcmeps
DeniseWorthen Jun 24, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ CMEPS Issues Fixed (include github issue #):
Are changes expected to change answers?
- [ ] bit for bit
- [ ] different at roundoff level
- [ ] more substantial
- [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
- [ ] Yes
Expand Down Expand Up @@ -42,7 +42,7 @@ Testing performed if application target is UFS-HAFS:
Hashes used for testing:
- [ ] CESM:
- repository to check out: https://github.com/ESCOMP/CESM.git
- branch: nuopc_dev
- branch:
- hash:
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
- repository to check out:
Expand Down
17 changes: 8 additions & 9 deletions .github/workflows/bumpversion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: '0'
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.26.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WITH_V: true
DEFAULT_BUMP: minor
RELEASE_BRANCHES: master
DRY_RUN: False
id: tag_version
uses: mathieudutour/github-tag-action@v5.5
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
create_annotated_tag: true
default_bump: patch
dry_run: false
tag_prefix: cmeps
4 changes: 3 additions & 1 deletion .github/workflows/extbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ jobs:
path: ~/ESMF
key: ${{ runner.os }}-${{ env.ESMF_VERSION }}-ESMF
- id: load-env
run: sudo apt-get install gfortran wget openmpi-bin netcdf-bin libopenmpi-dev libnetcdf-dev
run: |
sudo apt-get update
sudo apt-get install gfortran wget openmpi-bin netcdf-bin libopenmpi-dev libnetcdf-dev
- id: build-ESMF
if: steps.cache-esmf.outputs.cache-hit != 'true'
run: |
Expand Down
8 changes: 8 additions & 0 deletions cime_config/buildexe
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ def _main_func():
ocn_model = case.get_value("COMP_OCN")
atm_model = case.get_value("COMP_ATM")
gmake_args = get_standard_makefile_args(case)
esmf_aware_threading = case.get_value("ESMF_AWARE_THREADING")

# Determine valid components
valid_comps = []
Expand Down Expand Up @@ -73,6 +74,8 @@ def _main_func():
gmake_args += " {}_PRESENT=FALSE".format(comp)
if skip_mediator:
gmake_args += " MED_PRESENT=FALSE"
if esmf_aware_threading:
gmake_args += " USER_CPPDEFS=-DESMF_AWARE_THREADING"

gmake_args += " IAC_PRESENT=FALSE"
expect((num_esp is None) or (int(num_esp) == 1), "ESP component restricted to one instance")
Expand All @@ -93,6 +96,11 @@ def _main_func():
makefile = os.path.join(casetools, "Makefile")
exename = os.path.join(exeroot, cime_model + ".exe")

# always rebuild file esm.F90 this is because cpp macros in that file may have changed
esm = os.path.join(bld_root,"esm.o")
if os.path.isfile(esm):
os.remove(esm)

# always relink
if os.path.isfile(exename):
os.remove(exename)
Expand Down
18 changes: 18 additions & 0 deletions cime_config/buildnml
Original file line number Diff line number Diff line change
Expand Up @@ -516,6 +516,24 @@ def buildnml(case, caseroot, component):
if component != "drv":
raise AttributeError

# Do a check here of ESMF VERSION, requires 8.1.0 or newer (8.2.0 or newer for esmf_aware_threading)
esmf_aware_threading = case.get_value("ESMF_AWARE_THREADING")
esmfmkfile = os.getenv("ESMFMKFILE")
expect(esmfmkfile and os.path.isfile(esmfmkfile),"ESMFMKFILE not found {}".format(esmfmkfile))
with open(esmfmkfile, 'r') as f:
major = None
minor = None
for line in f.readlines():
if 'ESMF_VERSION' in line:
major = line[-2] if 'MAJOR' in line else major
minor = line[-2] if 'MINOR' in line else minor
logger.debug("ESMF version major {} minor {}".format(major,minor))
expect(int(major) >=8,"ESMF version should be 8.1 or newer")
if esmf_aware_threading:
expect(int(minor) >= 2, "ESMF version should be 8.2.0 or newer when using ESMF_AWARE_THREADING")
else:
expect(int(minor) >= 1, "ESMF version should be 8.1.0 or newer")

confdir = os.path.join(case.get_value("CASEBUILD"), "cplconf")
if not os.path.isdir(confdir):
os.makedirs(confdir)
Expand Down
53 changes: 19 additions & 34 deletions cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,13 @@
<desc>username of user who created case</desc>
</entry>

<entry id="CASE_HASH">
<type>char</type>
<group>case_desc</group>
<file>env_case.xml</file>
<desc>Unique identifier for case</desc>
</entry>

<!-- ===================================================================== -->
<!-- definitions runtimes -->
<!-- ===================================================================== -->
Expand Down Expand Up @@ -798,6 +805,15 @@
<desc>TRUE implies that at least one of the components is built threaded (DO NOT EDIT)</desc>
</entry>

<entry id="ESMF_AWARE_THREADING">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
<default_value>FALSE</default_value>
<group>mach_pes</group>
<file>env_mach_pes.xml</file>
<desc>TRUE indicates that the ESMF Aware threading method is used</desc>
</entry>

<entry id="USE_PETSC">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
Expand Down Expand Up @@ -1183,14 +1199,16 @@
<desc>glacier (glc) grid - DO NOT EDIT (for experts only)</desc>
</entry>

<!-- GLC_NX and GLC_NY are only needed by xglc. These variables do not
accommodate multiple ice sheet grids, but that's okay for now,
since xglc currently only runs on a single ice sheet grid.-->
<entry id="GLC_NX">
<type>integer</type>
<default_value>0</default_value>
<group>build_grid</group>
<file>env_build.xml</file>
<desc>number of glc cells in i direction - DO NOT EDIT (for experts only)</desc>
</entry>

<entry id="GLC_NY">
<type>integer</type>
<default_value>0</default_value>
Expand All @@ -1199,7 +1217,6 @@
<desc>number of glc cells in j direction - DO NOT EDIT (for experts only)</desc>
</entry>


<entry id="WAV_GRID">
<type>char</type>
<default_value>UNSET</default_value>
Expand Down Expand Up @@ -1423,22 +1440,6 @@
<desc>lnd2atm state mapping file</desc>
</entry>

<entry id="LND2GLC_FMAPNAME">
<type>char</type>
<default_value>idmap</default_value>
<group>run_domain</group>
<file>env_run.xml</file>
<desc>lnd2glc flux mapping file</desc>
</entry>

<entry id="LND2GLC_SMAPNAME">
<type>char</type>
<default_value>idmap</default_value>
<group>run_domain</group>
<file>env_run.xml</file>
<desc>lnd2glc state mapping file</desc>
</entry>

<entry id="LND2ROF_FMAPNAME">
<type>char</type>
<default_value>idmap</default_value>
Expand Down Expand Up @@ -1479,22 +1480,6 @@
<desc>rof2ocn runoff mapping file</desc>
</entry>

<entry id="GLC2LND_FMAPNAME">
<type>char</type>
<default_value>idmap</default_value>
<group>run_domain</group>
<file>env_run.xml</file>
<desc>glc2lnd flux mapping file</desc>
</entry>

<entry id="GLC2LND_SMAPNAME">
<type>char</type>
<default_value>idmap</default_value>
<group>run_domain</group>
<file>env_run.xml</file>
<desc>glc2lnd state mapping file</desc>
</entry>

<entry id="GLC2ICE_RMAPNAME">
<type>char</type>
<default_value>idmap</default_value>
Expand Down
15 changes: 3 additions & 12 deletions cime_config/config_component_cesm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,6 @@
<desc>run DOI</desc>
</entry>

<entry id="DRV_THREADING">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
<default_value>FALSE</default_value>
<group>run_flags</group>
<file>env_run.xml</file>
<desc>Turns on component varying thread control in the driver.
Used to set the driver namelist variable "drv_threading".</desc>
</entry>

<entry id="SAVE_TIMING">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
Expand Down Expand Up @@ -499,7 +489,8 @@
<default_value>284.7</default_value>
<values match="last">
<value compset="^2000">367.0</value>
<value compset="DATM.*POP2%ECO">284.7</value>
<value compset="DATM.*_POP2%[^_]*ECO">284.317</value>
<value compset="DATM.*_POP2%[^_]*ECOCESM20">284.7</value>
</values>
<group>run_co2</group>
<file>env_run.xml</file>
Expand Down Expand Up @@ -540,7 +531,7 @@
<values match="last">
<value compset="_CLM.+CISM\d">TRUE</value>
<!-- Turn on two-way coupling for TG compsets - even though there are no
feedbacks for a TG compset, this will give us additional diagnostics -->
feedbacks for a TG compset, this will give us additional diagnostics -->
<value compset="_DLND.+CISM\d">TRUE</value>
</values>
<group>run_glc</group>
Expand Down
10 changes: 0 additions & 10 deletions cime_config/config_component_ufs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,6 @@
<desc>run DOI</desc>
</entry>

<entry id="DRV_THREADING">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
<default_value>FALSE</default_value>
<group>run_flags</group>
<file>env_run.xml</file>
<desc>Turns on component varying thread control in the driver.
Used to set the driver namelist variable "drv_threading".</desc>
</entry>

<entry id="SAVE_TIMING">
<type>logical</type>
<valid_values>TRUE,FALSE</valid_values>
Expand Down
Loading