Skip to content

Commit

Permalink
Add S2SA nems.configure template (#1593)
Browse files Browse the repository at this point in the history
* Add S2SA nems.configure template

Most of the configuration was setup to allow S2SA, but there was no
appropriate nems.configure template. A new one was created by
starting with the S2SWA template and removing the wave portions.

Also added two UFSDA scripts that were missing from the git ignore
list.

Fixes #1592

* Update documentation for cycled mode setup

The experiment setup documentation for cycled mode had not been
updated as coupled capability was added. Also added notes to both
the cycled and forecast-only section that ATMW is currently not
working.

* Update setup_expt to recognize more S2S cycled exps

setup_expt would only detect two of the possible S2S options when
staging cycled ICs.

Refs: #1592

* Change path to volcanic aerosol data

The volcanic aerosol data was moved to a new location within the
GOCART emissions directory.

Refs: #1592

* Disable enkf versions of coupled settings

The enkf versions of coupled settings (DO_OCN, etc.) do not work
properly because some settings have already been determined by that
point based on the non-enkf versions of the settings. The enkf
versions are now disabled until there is a solution (see #1692).

Refs: #1593
Refs: #1692

* Fix ocnpost detection for gfs free-forecast

The task list for the free-forecast was checking against a list of
apps that did not include S2SA to determine whether ocnpost is
included. That check is now changed to check on do_ocean rather than
looking at the app directly.

Refs: #1593
  • Loading branch information
WalterKolczynski-NOAA authored Jun 30, 2023
1 parent 279b38d commit 2d31847
Show file tree
Hide file tree
Showing 6 changed files with 145 additions and 9 deletions.
9 changes: 7 additions & 2 deletions docs/source/setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ where:
* ``$APP`` is the target application, one of:

- ATM: atmosphere-only [default]
- ATMW: atm-wave
- ATMA: atm-aerosols
- ATMW: atm-wave (currently non-functional)
- S2S: atm-ocean-ice
- S2SA: atm-ocean-ice-aerosols
- S2SW: atm-ocean-ice-wave
Expand Down Expand Up @@ -150,7 +150,12 @@ where:
* ``$APP`` is the target application, one of:

- ATM: atmosphere-only [default]
- ATMW: atm-wave
- ATMA: atm-aerosols
- ATMW: atm-wave (currently non-functional)
- S2S: atm-ocean-ice
- S2SA: atm-ocean-ice-aerosols
- S2SW: atm-ocean-ice-wave
- S2SWA: atm-ocean-ice-wave-aerosols

* ``$IDATE`` is the initial start date of your run (first cycle CDATE, YYYYMMDDCC)
* ``$EDATE`` is the ending date of your run (YYYYMMDDCC) and is the last cycle that will complete
Expand Down
2 changes: 1 addition & 1 deletion parm/chem/SU2G_instance_SU.rc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ aerosol_monochromatic_optics_file: ExtData/monochromatic/optics_SU.v1_3.nc
nbins: 4

# Volcanic pointwise sources
volcano_srcfilen: ExtData/volcanic/so2_volcanic_emissions_Carns.%y4%m2%d2.rc
volcano_srcfilen: ExtData/nexus/VOLCANO/v2021-09/%y4/%m2/so2_volcanic_emissions_Carns.%y4%m2%d2.rc

# Heights [m] of LTO, CDS and CRS aviation emissions layers
aviation_vertical_layers: 0.0 100.0 9.0e3 10.0e3
Expand Down
11 changes: 7 additions & 4 deletions parm/config/gfs/config.efcs
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@
echo "BEGIN: config.efcs"

# TODO: the _ENKF counterparts need to be defined in config.base
export DO_AERO=${DO_AERO_ENKF:-"NO"}
export DO_OCN=${DO_OCN_ENKF:-"NO"}
export DO_ICE=${DO_ICE_ENKF:-"NO"}
export DO_WAVE=${DO_WAVE_ENKF:-"NO"}
# TODO: Using different values for ensemble doesn't work because
# config.fcst sets a bunch of derived values based on these
# that is not duplicated here. [#1692]
# export DO_AERO=${DO_AERO_ENKF:-"NO"}
# export DO_OCN=${DO_OCN_ENKF:-"NO"}
# export DO_ICE=${DO_ICE_ENKF:-"NO"}
# export DO_WAVE=${DO_WAVE_ENKF:-"NO"}

# TODO: Possibly need OCNRES_ENKF, ICERES_ENKF, WAVRES_ENKF too
if [[ ${DO_OCN} == "YES" ]]; then
Expand Down
128 changes: 128 additions & 0 deletions ush/nems.configure.cpld_aero.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
#############################################
#### NEMS Run-Time Configuration File #####
#############################################

# ESMF #
logKindFlag: @[esmf_logkind]
globalResourceControl: true

# EARTH #
EARTH_component_list: MED ATM CHM OCN ICE
EARTH_attributes::
Verbosity = 0
::

# MED #
MED_model: @[med_model]
MED_petlist_bounds: @[med_petlist_bounds]
MED_omp_num_threads: @[med_omp_num_threads]
::

# ATM #
ATM_model: @[atm_model]
ATM_petlist_bounds: @[atm_petlist_bounds]
ATM_omp_num_threads: @[atm_omp_num_threads]
ATM_attributes::
Verbosity = 0
DumpFields = @[DumpFields]
ProfileMemory = false
OverwriteSlice = true
::

# CHM #
CHM_model: @[chm_model]
CHM_petlist_bounds: @[chm_petlist_bounds]
CHM_omp_num_threads: @[chm_omp_num_threads]
CHM_attributes::
Verbosity = 0
::

# OCN #
OCN_model: @[ocn_model]
OCN_petlist_bounds: @[ocn_petlist_bounds]
OCN_omp_num_threads: @[ocn_omp_num_threads]
OCN_attributes::
Verbosity = 0
DumpFields = @[DumpFields]
ProfileMemory = false
OverwriteSlice = true
mesh_ocn = @[MESH_OCN_ICE]
::

# ICE #
ICE_model: @[ice_model]
ICE_petlist_bounds: @[ice_petlist_bounds]
ICE_omp_num_threads: @[ice_omp_num_threads]
ICE_attributes::
Verbosity = 0
DumpFields = @[DumpFields]
ProfileMemory = false
OverwriteSlice = true
mesh_ice = @[MESH_OCN_ICE]
stop_n = @[RESTART_N]
stop_option = nhours
stop_ymd = -999
::

# CMEPS warm run sequence
runSeq::
@@[coupling_interval_slow_sec]
MED med_phases_prep_ocn_avg
MED -> OCN :remapMethod=redist
OCN
@@[coupling_interval_fast_sec]
MED med_phases_prep_atm
MED med_phases_prep_ice
MED -> ATM :remapMethod=redist
MED -> ICE :remapMethod=redist
ATM phase1
ATM -> CHM
CHM
CHM -> ATM
ATM phase2
ICE
ATM -> MED :remapMethod=redist
MED med_phases_post_atm
ICE -> MED :remapMethod=redist
MED med_phases_post_ice
MED med_phases_prep_ocn_accum
@
OCN -> MED :remapMethod=redist
MED med_phases_post_ocn
MED med_phases_restart_write
@
::

# CMEPS variables

DRIVER_attributes::
::
MED_attributes::
ATM_model = @[atm_model]
ICE_model = @[ice_model]
OCN_model = @[ocn_model]
history_n = 0
history_option = nhours
history_ymd = -999
coupling_mode = @[CPLMODE]
history_tile_atm = @[ATMTILESIZE]
::
ALLCOMP_attributes::
ScalarFieldCount = 2
ScalarFieldIdxGridNX = 1
ScalarFieldIdxGridNY = 2
ScalarFieldName = cpl_scalars
start_type = @[RUNTYPE]
restart_dir = RESTART/
case_name = ufs.cpld
restart_n = @[RESTART_N]
restart_option = nhours
restart_ymd = -999
dbug_flag = @[cap_dbug_flag]
use_coldstart = @[use_coldstart]
use_mommesh = @[use_mommesh]
eps_imesh = @[eps_imesh]
stop_n = @[FHMAX]
stop_option = nhours
stop_ymd = -999
::
2 changes: 1 addition & 1 deletion workflow/applications/gfs_forecast_only.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def get_task_names(self):
if self.do_atm:
tasks += ['post']

if self.model_app in ['S2S', 'S2SW', 'S2SWA', 'NG-GODAS']:
if self.do_ocean:
tasks += ['ocnpost']

if self.do_atm:
Expand Down
2 changes: 1 addition & 1 deletion workflow/setup_expt.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def fill_COMROT_cycled(host, inputs):

do_ocean = do_ice = do_med = False

if inputs.app in ['S2S', 'S2SW']:
if 'S2S' in inputs.app:
do_ocean = do_ice = do_med = True

if inputs.icsdir is None:
Expand Down

0 comments on commit 2d31847

Please sign in to comment.