Skip to content
Merged
Show file tree
Hide file tree
Changes from 142 commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
94b7b26
update default value of PIO_REARR_COMM_MAX_PEND_REQ_COMP2IO
jedwards4b Jun 26, 2020
b14b314
add wind speed field for HAFS app
uturuncoglu Jun 26, 2020
4e7d049
change TFREEZE_SALTWATER_OPTION for MOM6
alperaltuntas Jul 1, 2020
82613c5
change of cice ice temperature to be consistent with nems
Jul 5, 2020
bd2ecee
more changes to be consistent with updates to nems
Jul 5, 2020
70593ad
additional changes needed for consistency with nems as well of cleanu…
Jul 5, 2020
a2b83a2
cleanup of med.F90
Jul 5, 2020
1173f58
addition of more comments for datainitialize sequence
Jul 6, 2020
d84d11e
updated pull request template
Jul 6, 2020
0573b7e
changes requested in the PR
Jul 7, 2020
644ca58
changes requested in PR
Jul 7, 2020
aa668e9
Merge pull request #72 from alperaltuntas/change_tfreeze_saltwater_op…
jedwards4b Jul 7, 2020
9ef8d65
fixed more PR issues
Jul 7, 2020
9376b87
Merge pull request #75 from ESCOMP/mvertens/nems_changes
jedwards4b Jul 7, 2020
72ac794
update verbosity and profiling attributes to match with ESMF requirem…
uturuncoglu Jul 20, 2020
eb20102
fix to use HAFS yaml field dictionary
uturuncoglu Jul 21, 2020
9a75154
make aoflux phase optional, default is still true
uturuncoglu Jul 21, 2020
59ac2c5
clean field exchange file for HAFS app
uturuncoglu Jul 21, 2020
fba6d60
fix for ESMF verbosity attribute
uturuncoglu Jul 21, 2020
2f70edb
do not need custom calculations for HAFS app
uturuncoglu Jul 21, 2020
55f8f98
remove newly added Sa_wspd from CESM field dictionary
uturuncoglu Jul 21, 2020
215cea7
remove newly added Sa_wspd from CESM field dictionary
uturuncoglu Jul 21, 2020
9037506
add HAFS specific field dictionary
uturuncoglu Jul 22, 2020
82712ad
Merge branch 'update_hafs' of https://github.com/ESCOMP/CMEPS into up…
uturuncoglu Jul 22, 2020
130ad41
more fix for CMEPS verbosity and profiling
uturuncoglu Jul 22, 2020
802dd3c
fix for ESMF verbosity and profiling
uturuncoglu Jul 22, 2020
98f365b
Merge branch 'master' into update_hafs
uturuncoglu Jul 24, 2020
c5309aa
put extra control to coupling mode
uturuncoglu Jul 24, 2020
58d78ba
add modify_via_xml to remaining verbosity and profiling variables
uturuncoglu Jul 24, 2020
2a653f3
the debug code is removed
uturuncoglu Jul 24, 2020
96053fb
fix run sequence for HAFS app
uturuncoglu Jul 24, 2020
8277b32
remove nems_orig from conditional
uturuncoglu Jul 27, 2020
be77a06
Merge pull request #81 from ESCOMP/update_hafs
uturuncoglu Jul 28, 2020
d1d06c1
add missing fields to CESM field dictionary to work with ERA5
uturuncoglu Jul 29, 2020
b20e191
fix for FB diagnose using wrong bundle
DeniseWorthen Aug 2, 2020
a914eb9
fix for char initialization
jedwards4b Aug 12, 2020
92ee47c
Merge remote-tracking branch 'escomp/master' into feature/updcmeps
DeniseWorthen Aug 14, 2020
a1f79f6
Merge branch 'bugfix/fbaccum' into feature/updcmeps
DeniseWorthen Aug 14, 2020
593c526
reset if flags for debugging
DeniseWorthen Aug 14, 2020
dd8022c
white space change
DeniseWorthen Aug 14, 2020
d1632af
Update med.F90
DeniseWorthen Aug 14, 2020
cc416c2
minor clode cleanup
DeniseWorthen Aug 14, 2020
46be10e
fix compile error
DeniseWorthen Aug 14, 2020
4346117
remove more chk_err statements after LogWrites
DeniseWorthen Aug 14, 2020
32a11a5
remove more chk_err statements after LogWrites
DeniseWorthen Aug 14, 2020
3e1bde7
Merge pull request #94 from DeniseWorthen/feature/updcmeps
mvertens Aug 15, 2020
7654038
fix pylint issues
jedwards4b Aug 18, 2020
8646008
Fix CPP ESMF_VERSION_MAJOR and ESMF_VERSION_MINOR definitions.
danrosen25 Sep 3, 2020
8793896
Merge pull request #99 from danrosen25/fix/esmfversion
jedwards4b Sep 4, 2020
07d3cab
remove custom merges for rain and snow
DeniseWorthen Sep 12, 2020
51b19ac
new aliases in fd_nems.yaml
DeniseWorthen Sep 13, 2020
f68a3d2
combine fields exchange for nems orig/data; make corresponding
DeniseWorthen Sep 13, 2020
54d8607
remove nems_data prep_ocn; make nems prep_ocn work for all nems modes
DeniseWorthen Sep 13, 2020
1438b9d
fix coupling_mode if statement
DeniseWorthen Sep 14, 2020
83bca27
prep ocn cleanup for datm
DeniseWorthen Sep 14, 2020
a6ece41
more consolidation in fields exchange
DeniseWorthen Sep 15, 2020
af0d961
white space
DeniseWorthen Sep 15, 2020
9c17146
change method to find CIMEROOT
jedwards4b Sep 18, 2020
ff917af
Merge remote-tracking branch 'escomp/master' into feature/prepocn_cle…
DeniseWorthen Sep 21, 2020
887c30e
fix hardcoded paths
jedwards4b Sep 21, 2020
3c79b2c
fix hardcoded paths in buildexe
jedwards4b Sep 21, 2020
32129aa
Merge pull request #103 from DeniseWorthen/feature/prepocn_cleanup
jedwards4b Sep 21, 2020
72fdeec
fix copling mode issue
uturuncoglu Sep 23, 2020
b36a949
support multiple coupling mode for nems
uturuncoglu Sep 23, 2020
01dfe9a
Merge pull request #104 from ESCOMP/fix_coupling_mode
uturuncoglu Sep 25, 2020
3183506
bug fix for creation of ocean and ice fractions on atm mesh
Sep 28, 2020
f69e39c
Create extbuild.yml
jedwards4b Sep 30, 2020
7b43058
cleanup of fix to map fractions
Sep 30, 2020
4ece277
more updates to fix nems problems
Sep 30, 2020
8ecdcc9
more updates for fraction calculation
Oct 1, 2020
e4b0b81
cmake and action without dir changes
jedwards4b Oct 1, 2020
66a6b8f
Merge branch 'master' into add_cmake_and_github_actions
jedwards4b Oct 1, 2020
b7770f4
whitespace error fix
jedwards4b Oct 1, 2020
c2184a6
whitespace error fix
jedwards4b Oct 1, 2020
513959e
fix path
jedwards4b Oct 1, 2020
6962be0
populate pio submodule
jedwards4b Oct 1, 2020
cd9c7b3
add cmake helpers
jedwards4b Oct 1, 2020
31e3c8d
fix error trapping in pylint script
jedwards4b Oct 1, 2020
5bc3f22
fix pylint issue
jedwards4b Oct 1, 2020
afe65f9
try again
jedwards4b Oct 1, 2020
3e858a9
fix whitespace
jedwards4b Oct 1, 2020
9c9eac3
find netcdf.h
jedwards4b Oct 1, 2020
715d7ba
remove python nightly - too extreme
jedwards4b Oct 1, 2020
5c85a24
Merge pull request #109 from jedwards4b/add_cmake_and_github_actions
jedwards4b Oct 1, 2020
b9d6283
Merge branch 'master' into mvertens/bugfix_fractions
jedwards4b Oct 1, 2020
5c79fb2
fix gnu compiler errors
jedwards4b Oct 1, 2020
9965df1
updates to fix rof problem
Oct 1, 2020
f649a03
correct esmf error message
jedwards4b Oct 1, 2020
42a992f
updates needed for nems
Oct 4, 2020
59a108a
updated med_fraction_mod to deal with I2000 bug
Oct 6, 2020
bfc2e9a
fixes to get I compset to work
Oct 6, 2020
c450625
improve error message
jedwards4b Oct 6, 2020
1a5d830
Merge pull request #110 from ESCOMP/mvertens/bugfix_fractions
mvertens Oct 7, 2020
298f84f
addition of water and energy global diagnostics
Jun 10, 2019
861e925
changes to get budgets working
Nov 21, 2019
a74c389
bug fixes and updates for cism
Dec 11, 2019
cf5da28
update of mvertens/newdiags
jedwards4b Aug 5, 2020
9f697d5
budget development
jedwards4b Aug 5, 2020
fb8b42d
remove unused prevtime
jedwards4b Aug 10, 2020
3515c71
add ocn budget for A compset
jedwards4b Sep 21, 2020
91fccdc
budget improvements
jedwards4b Sep 29, 2020
ee63d5c
remove debug print statement
jedwards4b Sep 30, 2020
04cf4d5
add netcdf to required for cmake
jedwards4b Oct 7, 2020
1fec2df
fix netcdf case in cmake
jedwards4b Oct 7, 2020
2b9a741
fix github build
jedwards4b Oct 7, 2020
c9a6b4e
fix github build
jedwards4b Oct 7, 2020
9e59f18
fix github build
jedwards4b Oct 7, 2020
263870e
fix github build
jedwards4b Oct 7, 2020
a9fc73a
fix github build
jedwards4b Oct 7, 2020
6d1ebac
use master med_time_mod, remove shr_sys_abort
jedwards4b Oct 7, 2020
0a28273
remove netcdf requirement from cmake build
jedwards4b Oct 7, 2020
c70410f
clean up wrt master
jedwards4b Oct 7, 2020
88bd1f7
add back mesh_info
jedwards4b Oct 7, 2020
c7cdf6a
add back mesh_info
jedwards4b Oct 7, 2020
9067ce0
more cleanup wrt master
jedwards4b Oct 7, 2020
118db68
fixed problem with stop alarm initialization
Oct 8, 2020
7165848
add B1850 test, list SourceMods dir first in build
jedwards4b Oct 9, 2020
3c1249a
Split esmFldsExchange_hafs_mod.F90 into advertise and initialize phases.
danrosen25 Aug 24, 2020
d390f6c
fix diags for c case
jedwards4b Oct 14, 2020
96684bc
Merge pull request #107 from ESCOMP/jedwards/newdiags
mvertens Oct 15, 2020
1bd8dd5
Merge pull request #114 from hafs-community/feature/hafs
uturuncoglu Oct 16, 2020
cc634da
add med_diag to Makefile
jedwards4b Oct 19, 2020
026a6e7
make diags optional in the config file
jedwards4b Oct 22, 2020
549616a
add error handling
jedwards4b Oct 22, 2020
60b2397
remove set part
jedwards4b Oct 23, 2020
176872c
dont get alarm options unless diags are set
jedwards4b Oct 23, 2020
5c3bd48
makefile fix
jedwards4b Oct 23, 2020
91fd48c
try this instead
jedwards4b Oct 23, 2020
db1869a
add interface
jedwards4b Oct 23, 2020
7d5496c
Merge pull request #117 from jedwards4b/diags_optional_in_configfile
jedwards4b Oct 23, 2020
61c7fde
fixed bug in mapping for flooding to ocn from river
Oct 26, 2020
bc6ced1
bug fixes
Oct 26, 2020
6aa22a1
fixed bug that was just introduced
Oct 27, 2020
a3790d5
remove albedo from the X compset
jedwards4b Oct 27, 2020
674a4d4
Merge remote-tracking branch 'escomp/master' into feature/updcmeps
DeniseWorthen Oct 27, 2020
f932b0d
Merge remote-tracking branch 'JE/remove_alb_xcompset' into feature/up…
DeniseWorthen Oct 27, 2020
89a4cce
Merge remote-tracking branch 'escomp/mvertens/fix_rofflooc' into feat…
DeniseWorthen Oct 27, 2020
ac043a7
removed unneeded commented line
Oct 27, 2020
6934a89
Merge pull request #120 from ESCOMP/mvertens/fix_rofflooc
jedwards4b Oct 28, 2020
dda73e0
Merge pull request #119 from jedwards4b/remove_alb_xcompset
mvertens Oct 28, 2020
5c43e19
Merge remote-tracking branch 'escomp/master' into feature/updcmeps
DeniseWorthen Oct 28, 2020
d3f31cf
remove conflicting cmake files
DeniseWorthen Oct 28, 2020
5e6fcef
update PIO and genf90 to support CDEPS
Oct 7, 2020
2ba14ea
make internal PIO initialization optional for different UFS apps
Oct 7, 2020
c9e4ecb
fix GTPL issue and optional internal PIO initialization
Oct 12, 2020
850ddb8
Merge pull request #121 from ESCOMP/feature/hafs_cdeps_fixed
mvertens Oct 29, 2020
4c23160
performance upgrade - primarily to med_merge_mod - on top of jedwards…
Oct 13, 2020
16962cd
updates to mapping to handle packed field bundles
Oct 14, 2020
237fd0f
major performance boosts for hard-wired packed redist
Oct 15, 2020
a05a7bb
updates to get packed field bundles for other mappings
Oct 18, 2020
2dac7b7
significantly improved the performance of the auto merge
Oct 19, 2020
2b82002
updates to have packed field bundles working in F compsets
Oct 19, 2020
6d0ccb6
fixes for f19_g17 F2000 tests
Oct 20, 2020
c3be8c6
more performance updates
Oct 20, 2020
bca5c05
introduced normalization routine that can also be reused in med_map_p…
Oct 21, 2020
ed7a721
hard-wired max profile for now
Oct 21, 2020
f696f41
updated mapping and med_phases_prep_rof_mod to using the new mapping …
Oct 21, 2020
a1b6b4a
updated med_map_prep_lnd_mod with new interface call for glc->lnd map…
Oct 22, 2020
38a9306
more updates to remove all references to old mapping
Oct 22, 2020
e59e71e
refactored now one normalization is handled
Oct 23, 2020
72ef815
updates to fix BMOM case
Oct 26, 2020
377a4cd
fixed bugs in testing
Oct 26, 2020
3690cb6
merge updates and cleanup of med_methods_mod
Oct 28, 2020
25a31da
undid debug settings that impacted performance
Oct 29, 2020
7540b4a
backed out some subname changes
Oct 29, 2020
c339bdc
made all local arrays initialized to null()
Oct 29, 2020
3d1e7df
removed DEBUG statements
Oct 30, 2020
6126252
Merge branch 'master' of https://github.com/ESCOMP/CMEPS into feature…
DeniseWorthen Oct 30, 2020
f53d4bb
original code failed with rc2 error using gnu compiler
jedwards4b Oct 30, 2020
d093e64
Merge pull request #123 from jedwards4b/gnu_compiler_fix
mvertens Oct 30, 2020
3d30938
updates for refactor of med_map_mod
Oct 31, 2020
e8b4214
added option for uv mapping with cart3d
Nov 1, 2020
dc41eab
cleanup of med_methods_mod
Nov 1, 2020
2268e9a
fixed bug for nems_orig
Nov 2, 2020
73ab226
merge to master resolved a space issue
Nov 2, 2020
14d8f11
Merge pull request #122 from ESCOMP/mvertens/perf
jedwards4b Nov 2, 2020
0d6e96e
Merge remote-tracking branch 'escomp/master' into feature/updcmeps
DeniseWorthen Nov 2, 2020
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
106 changes: 106 additions & 0 deletions .github/workflows/extbuild.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# This is a workflow to compile the cdeps source without cime
name: extbuild

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build-cmeps:
runs-on: ubuntu-latest
env:
CC: mpicc
FC: mpifort
CXX: mpicxx
CPPFLAGS: "-I/usr/include -I/usr/local/include"
# Versions of all dependencies can be updated here
ESMF_VERSION: ESMF_8_1_0_beta_snapshot_31
PNETCDF_VERSION: pnetcdf-1.12.1
NETCDF_FORTRAN_VERSION: v4.5.2
# PIO version is awkward
PIO_VERSION_DIR: pio2_5_2
PIO_VERSION: pio-2.5.2
steps:
- uses: actions/checkout@v2
# Build the ESMF library, if the cache contains a previous build
# it will be used instead
- id: cache-esmf
uses: actions/cache@v2
with:
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
- id: build-ESMF
if: steps.cache-esmf.outputs.cache-hit != 'true'
run: |
wget https://github.com/esmf-org/esmf/archive/${{ env.ESMF_VERSION }}.tar.gz
tar -xzvf ${{ env.ESMF_VERSION }}.tar.gz
pushd esmf-${{ env.ESMF_VERSION }}
export ESMF_DIR=`pwd`
export ESMF_COMM=openmpi
export ESMF_YAMLCPP="internal"
export ESMF_INSTALL_PREFIX=$HOME/ESMF
export ESMF_BOPT=g
make
make install
popd
- id: cache-pnetcdf
uses: actions/cache@v2
with:
path: ~/pnetcdf
key: ${{ runner.os }}-${{ env.PNETCDF_VERSION}}-pnetcdf
- name: pnetcdf build
if: steps.cache-pnetcdf.outputs.cache-hit != 'true'
run: |
wget https://parallel-netcdf.github.io/Release/${{ env.PNETCDF_VERSION }}.tar.gz
tar -xzvf ${{ env.PNETCDF_VERSION }}.tar.gz
ls -l
pushd ${{ env.PNETCDF_VERSION }}
./configure --prefix=$HOME/pnetcdf --enable-shared --disable-cxx
make
make install
popd
- name: Cache netcdf-fortran
id: cache-netcdf-fortran
uses: actions/cache@v2
with:
path: ~/netcdf-fortran
key: ${{ runner.os }}-${{ env.NETCDF_FORTRAN_VERSION }}-netcdf-fortran
- name: netcdf fortran build
if: steps.cache-netcdf-fortran.outputs.cache-hit != 'true'
run: |
wget https://github.com/Unidata/netcdf-fortran/archive/${{ env.NETCDF_FORTRAN_VERSION }}.tar.gz
tar -xzvf ${{ env.NETCDF_FORTRAN_VERSION }}.tar.gz
ls -l
pushd netcdf-fortran-*
./configure --prefix=$HOME/netcdf-fortran
make
make install

- name: Build PIO
if: steps.cache-PIO.outputs.cache-hit != 'true'
run: |
git submodule init
git submodule update
mkdir build-pio
pushd build-pio
cmake -Wno-dev -DNetCDF_C_LIBRARY=/usr/lib/x86_64-linux-gnu/libnetcdf.so -DNetCDF_C_INCLUDE_DIR=/usr/include -DCMAKE_PREFIX_PATH=/usr -DCMAKE_INSTALL_PREFIX=$HOME/pio -DPIO_HDF5_LOGGING=On -DPIO_USE_MALLOC=On -DPIO_ENABLE_LOGGING=On -DPIO_ENABLE_TIMING=Off -DPIO_ENABLE_TESTS=OFF -DNetCDF_Fortran_PATH=$HOME/netcdf-fortran -DPnetCDF_PATH=$HOME/pnetcdf ../nems/lib/ParallelIO
make VERBOSE=1
make install
popd

- name: Build CMEPS
run: |
export ESMFMKFILE=$HOME/ESMF/lib/libg/Linux.gfortran.64.openmpi.default/esmf.mk
export PIO=$HOME/pio
mkdir build-cmeps
pushd build-cmeps
cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_Fortran_FLAGS="-g -Wall -ffree-form -ffree-line-length-none" ../
make VERBOSE=1
popd
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ install:
python:
- '2.7'
- '3.6'
- '3.8'

branches:
only:
- master

script: ./tcipylint
script: ./tcipylint
17 changes: 10 additions & 7 deletions cime_config/buildexe
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ build model executable

import sys, os

_CIMEROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..","..","..","..")
_CIMEROOT = os.environ.get("CIMEROOT")
if _CIMEROOT is None:
raise SystemExit("ERROR: must set CIMEROOT environment variable")

sys.path.append(os.path.join(_CIMEROOT, "scripts", "Tools"))

from standard_script_setup import *
Expand All @@ -28,7 +31,6 @@ def _main_func():

with Case(caseroot) as case:
casetools = case.get_value("CASETOOLS")
cimeroot = case.get_value("CIMEROOT")
exeroot = case.get_value("EXEROOT")
gmake = case.get_value("GMAKE")
gmake_j = case.get_value("GMAKE_J")
Expand All @@ -37,7 +39,6 @@ def _main_func():
ocn_model = case.get_value("COMP_OCN")
atm_model = case.get_value("COMP_ATM")
gmake_args = get_standard_makefile_args(case)
blddir = os.path.join(case.get_value("EXEROOT"),"cpl","obj")

# Determine valid components
valid_comps = []
Expand All @@ -50,7 +51,7 @@ def _main_func():
if valid:
valid_comps.append(item)

datamodel_in_compset = False
datamodel_in_compset = False
for comp in comp_classes:
dcompname = "d"+comp.lower()
if dcompname in case.get_value("COMP_{}".format(comp)):
Expand Down Expand Up @@ -81,10 +82,12 @@ def _main_func():
os.makedirs(bld_root)

with open(os.path.join(bld_root,'Filepath'), 'w') as out:
if not skip_mediator:
out.write(os.path.join(cimeroot, "src", "drivers", "nuopc", "mediator") + "\n")
cmeps_dir = os.path.join(os.path.dirname(__file__), os.pardir)
# SourceMods dir needs to be first listed
out.write(os.path.join(caseroot, "SourceMods", "src.drv") + "\n")
out.write(os.path.join(cimeroot, "src", "drivers", "nuopc", "drivers", "cime") + "\n")
if not skip_mediator:
out.write(os.path.join(cmeps_dir, "mediator") + "\n")
out.write(os.path.join(cmeps_dir, "drivers", "cime") + "\n")

# build model executable
makefile = os.path.join(casetools, "Makefile")
Expand Down
16 changes: 8 additions & 8 deletions cime_config/buildnml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
"""
import os, sys

_CIMEROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..","..","..","..")
_CIMEROOT = os.environ.get("CIMEROOT")
if _CIMEROOT is None:
raise SystemExit("ERROR: must set CIMEROOT environment variable")

sys.path.append(os.path.join(_CIMEROOT, "scripts", "Tools"))

import shutil, glob, itertools
Expand Down Expand Up @@ -237,7 +240,7 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
valid_comps.append(item)

# Determine if there are any data components in the compset
datamodel_in_compset = False
datamodel_in_compset = False
comp_classes = case.get_values("COMP_CLASSES")
for comp in comp_classes:
dcompname = "d"+comp.lower()
Expand All @@ -248,14 +251,12 @@ def _create_drv_namelists(case, infile, confdir, nmlgen, files):
# driver rpointer file if there is only one non-stub component then skip mediator
if len(valid_comps) == 2 and not datamodel_in_compset:
# skip the mediator if there is a prognostic component and all other components are stub
skip_mediator = True
valid_comps.remove("CPL")
nmlgen.set_value('mediator_present', value='.false.')
nmlgen.set_value("drv_restart_pointer", value="none")
nmlgen.set_value("component_list", value=" ".join(valid_comps))
else:
# do not skip mediator if there is a data component but all other components are stub
skip_mediator = False
nmlgen.set_value("drv_restart_pointer", value="rpointer.cpl")
valid_comps_string = " ".join(valid_comps)
nmlgen.set_value("component_list", value=valid_comps_string.replace("CPL","MED"))
Expand Down Expand Up @@ -392,7 +393,7 @@ def _create_runseq(case, coupling_times, valid_comps):
comp_lnd = case.get_value("COMP_LND")
comp_ocn = case.get_value("COMP_OCN")

sys.path.append(os.path.join(_CIMEROOT, "src", "drivers", "nuopc", "cime_config", "runseq"))
sys.path.append(os.path.join(os.path.dirname(__file__), "runseq"))

if (comp_ice == "cice" and comp_atm == 'datm' and comp_ocn == "docn"):
from runseq_D import gen_runseq
Expand Down Expand Up @@ -564,14 +565,13 @@ def buildnml(case, caseroot, component):
shutil.copy(filename, rundir)

# copy fd_cesm.yaml to rundir
cimeroot = case.get_value("CIMEROOT")
fd_dir = os.path.join(cimeroot, "src","drivers","nuopc","mediator")
fd_dir = os.path.join(os.path.dirname(__file__),os.pardir,"mediator")
coupling_mode = case.get_value('COUPLING_MODE')
if coupling_mode == 'cesm':
filename = os.path.join(fd_dir,"fd_cesm.yaml")
elif coupling_mode == 'hafs':
filename = os.path.join(fd_dir,"fd_hafs.yaml")
elif coupling_mode == 'nems':
elif 'nems' in coupling_mode:
filename = os.path.join(fd_dir,"fd_nems.yaml")
else:
expect(False, "coupling mode currently only supports cesm, hafs and nems")
Expand Down
10 changes: 5 additions & 5 deletions cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

<entry id="COUPLING_MODE">
<type>char</type>
<valid_values>cesm,nems_orig_active,nems_orig_data,nems_frac,hafs</valid_values>
<valid_values>cesm,nems_orig,nems_orig_data,nems_frac,hafs</valid_values>
<default_value>cesm</default_value>
<group>run_coupling</group>
<file>env_run.xml</file>
Expand Down Expand Up @@ -987,9 +987,9 @@
<file>env_run.xml</file>
<desc>
Determines what ESMF log files (if any) are generated when
USE_ESMF_LIB is TRUE.
USE_ESMF_LIB is TRUE.
ESMF_LOGKIND_SINGLE: Use a single log file, combining messages from
all of the PETs. Not supported on some platforms.
all of the PETs. Not supported on some platforms.
ESMF_LOGKIND_MULTI: Use multiple log files -- one per PET.
ESMF_LOGKIND_NONE: Do not issue messages to a log file.
By default, no ESMF log files are generated.
Expand Down Expand Up @@ -2018,7 +2018,7 @@
<desc>pio rearranger communication max pending requests (io2comp) :
-2 implies that CIME internally calculates the value ( = 64),
-1 implies no bound on max pending requests
0 implies that MPI_ALLTOALL will be used
0 implies that MPI_ALLTOALL will be used
</desc>
</entry>

Expand Down Expand Up @@ -2600,7 +2600,7 @@
</entry>

<!-- ===================================================================== -->
<!-- write ESMF PET log files even without an error -->
<!-- Include the AOFLUX calculation for this compset -->
<!-- ===================================================================== -->

<entry id="ADD_AOFLUX_TO_RUNSEQ">
Expand Down
22 changes: 18 additions & 4 deletions cime_config/runseq/runseq_general.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ def gen_runseq(case, coupling_times):
rundir = case.get_value("RUNDIR")
caseroot = case.get_value("CASEROOT")
cpl_seq_option = case.get_value('CPL_SEQ_OPTION')
cpl_add_aoflux = case.get_value('ADD_AOFLUX_TO_RUNSEQ')
coupling_mode = case.get_value('COUPLING_MODE')
diag_mode = case.get_value('BUDGETS')
xcompset = case.get_value("COMP_ATM") == 'xatm'
cpl_add_aoflux = not xcompset and case.get_value('ADD_AOFLUX_TO_RUNSEQ')

# It is assumed that if a component will be run it will send information to the mediator
# so the flags run_xxx and xxx_to_med are redundant
Expand All @@ -33,6 +35,7 @@ def gen_runseq(case, coupling_times):
run_rof, med_to_rof, rof_cpl_time = driver_config['rof']
run_wav, med_to_wav, wav_cpl_time = driver_config['wav']


# Note: assume that atm_cpl_dt, lnd_cpl_dt, ice_cpl_dt and wav_cpl_dt are the same

if lnd_cpl_time != atm_cpl_time:
Expand Down Expand Up @@ -88,11 +91,12 @@ def gen_runseq(case, coupling_times):
runseq.add_action("MED med_phases_aofluxes_run" , run_ocn and run_atm and (med_to_ocn or med_to_atm))
runseq.add_action("MED med_phases_prep_ocn_merge" , med_to_ocn)
runseq.add_action("MED med_phases_prep_ocn_accum_fast" , med_to_ocn)
runseq.add_action("MED med_phases_ocnalb_run" , run_ocn and run_atm and (med_to_ocn or med_to_atm))
runseq.add_action("MED med_phases_ocnalb_run" , (run_ocn and run_atm and (med_to_ocn or med_to_atm)) and not xcompset)
runseq.add_action("MED med_phases_prep_lnd" , med_to_lnd)
runseq.add_action("MED -> LND :remapMethod=redist" , med_to_lnd)
runseq.add_action("MED med_phases_prep_ice" , med_to_ice)
runseq.add_action("MED -> ICE :remapMethod=redist" , med_to_ice)
runseq.add_action("MED med_phases_diag_ice_med2ice" , run_ice and diag_mode)
runseq.add_action("MED med_phases_prep_wav" , med_to_wav)
runseq.add_action("MED -> WAV :remapMethod=redist" , med_to_wav)
runseq.add_action("MED med_phases_prep_rof_avg" , med_to_rof and not rof_outer_loop)
Expand All @@ -114,10 +118,13 @@ def gen_runseq(case, coupling_times):
runseq.add_action("MED med_phases_aofluxes_run" , run_ocn and run_atm)
runseq.add_action("MED med_phases_prep_ocn_merge" , med_to_ocn)
runseq.add_action("MED med_phases_prep_ocn_accum_fast" , med_to_ocn)
runseq.add_action("MED med_phases_ocnalb_run" , run_ocn and run_atm)
runseq.add_action("MED med_phases_ocnalb_run" , (run_ocn and run_atm) and not xcompset)
runseq.add_action("MED med_phases_diag_ocn" , run_ocn and diag_mode and not ocn_outer_loop)
runseq.add_action("LND -> MED :remapMethod=redist" , run_lnd)
runseq.add_action("ICE -> MED :remapMethod=redist" , run_ice)
runseq.add_action("MED med_phases_diag_ice_ice2med" , run_ice and diag_mode)
runseq.add_action("MED med_fraction_set" , run_ice)

runseq.add_action("MED med_phases_prep_rof_accum" , med_to_rof)
runseq.add_action("MED med_phases_prep_glc_accum" , med_to_glc)
runseq.add_action("MED med_phases_prep_atm" , med_to_atm)
Expand All @@ -126,17 +133,24 @@ def gen_runseq(case, coupling_times):
runseq.add_action("ATM -> MED :remapMethod=redist" , run_atm)
runseq.add_action("WAV -> MED :remapMethod=redist" , run_wav)
runseq.add_action("ROF -> MED :remapMethod=redist" , run_rof and not rof_outer_loop)

runseq.add_action("MED med_phases_diag_atm" , run_atm and diag_mode)
runseq.add_action("MED med_phases_diag_lnd" , run_lnd and diag_mode)
runseq.add_action("MED med_phases_diag_rof" , run_rof and diag_mode)
runseq.add_action("MED med_phases_diag_glc" , run_glc and diag_mode)
runseq.add_action("MED med_phases_diag_accum" , diag_mode)
runseq.add_action("MED med_phases_diag_print" , diag_mode)
#------------------
runseq.leave_time_loop(inner_loop)
#------------------

runseq.add_action("OCN" , run_ocn and ocn_outer_loop)

if coupling_mode == 'hafs':
runseq.add_action("OCN -> MED :remapMethod=redist:ignoreUnmatchedIndices=true" , run_ocn and ocn_outer_loop)
else:
runseq.add_action("OCN -> MED :remapMethod=redist" , run_ocn and ocn_outer_loop)


#------------------
runseq.leave_time_loop(ocn_outer_loop)
#------------------
Expand Down
20 changes: 14 additions & 6 deletions cime_config/testdefs/testlist_drv.xml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,14 @@
<option name="wallclock"> 00:40:00 </option>
</options>
</test>
<test compset="B1850" grid="f19_g16" name="ERR_Vnuopc_Ld5" testmods="allactive/nuopc_cap_io">
<machines>
<machine name="cheyenne" compiler="intel" category="nuopc"/>
</machines>
<options>
<option name="wallclock"> 00:40:00 </option>
</options>
</test>
<test compset="BMOM" grid="f19_g16" name="ERR_Vnuopc_Ld5" testmods="allactive/nuopc_cap_io">
<machines>
<machine name="cheyenne" compiler="intel" category="nuopc"/>
Expand Down Expand Up @@ -464,18 +472,18 @@
<test name="SMS_D_Ly1_Vnuopc" grid="f09_g17_gl4" compset="T1850G">
<machines>
<machine name="cheyenne" compiler="intel" category="nuopc">
<options>
<option name="wallclock">0:20</option>
</options>
<options>
<option name="wallclock">0:20</option>
</options>
</machine>
</machines>
</test>
<test name="ERS_Ly3_Vnuopc" grid="f09_g17_gl4" compset="T1850G">
<machines>
<machine name="cheyenne" compiler="intel" category="nuopc">
<options>
<option name="wallclock">0:20</option>
</options>
<options>
<option name="wallclock">0:20</option>
</options>
</machine>
</machines>
</test>
Expand Down
Loading