Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules/Modules)
###############################################################################

# Valid applications and choices
list(APPEND VALID_APPS ATM ATMAERO ATMAQ ATMW ATMWM ATML ATMF LND LND-LM4 S2S S2SL S2SA S2SW S2SWA S2SWL S2SWAL ATM_DS2S ATM_DS2S-PCICE HAFS HAFSW HAFS-MOM6 HAFS-MOM6W HAFS-ALL NG-GODAS CSTLA CSTLPA CSTLAW CSTLPAW CSTLF CSTLFW CSTLR CSTLRW CSTLRC CSTLRCW CSTLS CSTLPS CSTLSW CSTLPSW CSTLP CSTLW CSTL-ALL)
list(APPEND VALID_APPS ATM ATMAERO ATMAQ ATMW ATMWM ATML ATMF LND LND-LM4 S2S S2SL S2SA S2SW S2SWA S2SWL S2SWAL ATM_DS2S ATM_DS2S-PCICE HAFS HAFSW HAFS-MOM6 HAFS-MOM6W HAFS-ALL NG-GODAS CSTLA CSTLC CSTLF CSTLS CSTLSC CSTLSW CSTLR CSTLW CSTL-ALL)
set(APP NONE CACHE BOOL "Application Name")
if(NOT (APP IN_LIST VALID_APPS))
message(FATAL_ERROR "${APP} is not a valid application.\nValid Applications are: ${VALID_APPS}")
Expand Down
18 changes: 11 additions & 7 deletions cmake/configure_apps.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -128,30 +128,34 @@ if(APP MATCHES "^(LND-LM4)$")
set(FMS ON CACHE BOOL "Enable FMS" FORCE)
endif()

if(APP MATCHES "^(CSTLA|CSTLPA|CSTLAW|CSTLPAW|CSTLF|CSTLFW|CSTLR|CSTLRW|CSTLRC|CSTLRCW|CSTLS|CSTLPS|CSTLSW|CSTLPSW|CSTLP|CSTLW|CSTL-ALL)$")
if(APP MATCHES "^(CSTLA|CSTLC|CSTLF|CSTLS|CSTLSC|CSTLSW|CSTLR|CSTLW|CSTL-ALL)$")
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
if(APP MATCHES "^(CSTLA|CSTLPA|CSTLAW|CSTLPAW|CSTL-ALL)$")
if(APP MATCHES "^(CSTLA|CSTL-ALL)$")
set(ADCIRC ON CACHE BOOL "Enable ADCIRC" FORCE)
message("Configuring UFS app in COASTAL with ADCIRC model")
endif()
if(APP MATCHES "^(CSTLF|CSTLFW|CSTL-ALL)$")
if(APP MATCHES "^(CSTLC|CSTL-ALL)$")
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
message("Configuring UFS app in COASTAL with CICE6 model")
endif()
if(APP MATCHES "^(CSTLF|CSTL-ALL)$")
set(FVCOM ON CACHE BOOL "Enable FVCOM" FORCE)
message("Configuring UFS app in COASTAL with FVCOM model")
endif()
if(APP MATCHES "^(CSTLR|CSTLRW|CSTLRC|CSTLRCW|CSTL-ALL)$")
if(APP MATCHES "^(CSTLR|CSTL-ALL)$")
set(ROMS ON CACHE BOOL "Enable ROMS" FORCE)
message("Configuring UFS app in COASTAL with ROMS model")
endif()
if(APP MATCHES "^(CSTLS|CSTLPS|CSTLSW|CSTLPSW|CSTL-ALL)$")
if(APP MATCHES "^(CSTLS|CSTLSC|CSTLSW|CSTL-ALL)$")
set(SCHISM ON CACHE BOOL "Enable SCHISM" FORCE)
message("Configuring UFS app in COASTAL with SCHISM model")
endif()
if(APP MATCHES "^(CSTLP|CSTLPA|CSTLPAW|CSTLPS|CSTLPSW|CSTL-ALL)$")
if(APP MATCHES "^(CSTLP|CSTL-ALL)$")
set(PAHM ON CACHE BOOL "Enable PAHM" FORCE)
message("Configuring UFS app in COASTAL with PAHM model")
endif()
if(APP MATCHES "^(CSTLW|CSTLAW|CSTLPAW|CSTLFW|CSTLSW|CSTLRW|CSTLRCW|CSTLSW|CSTLPSW|CSTL-ALL)$")
if(APP MATCHES "^(CSTLW|CSTL-ALL)$")
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
message("Configuring UFS app in HAFS with Waves mode")
endif()
Expand Down
1 change: 1 addition & 0 deletions tests/default_vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1742,6 +1742,7 @@ export_hafs_docn_cdeps ()
export CMEPS_PIO_ROOT=-99
export DOCN_IN_CONFIGURE=docn_in.IN
export DOCN_STREAM_CONFIGURE=hafs_docn.streams.IN
export EXPORT_ALL=.false.
}

export_hafs_regional ()
Expand Down
16 changes: 16 additions & 0 deletions tests/fv3_conf/coastal_cice_run.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
if [ ! -d "INPUT" ]; then
mkdir INPUT
fi
if [ ! -d "OUTPUT" ]; then
mkdir OUTPUT
fi
if [ ! -d "RESTART" ]; then
mkdir RESTART
fi
if [ ! -d "history" ]; then
mkdir history
fi

cp -r @[INPUTDATA_ROOT]/CICE/$HURR/$CPL_CONF/Grid INPUT/.
cp -r @[INPUTDATA_ROOT]/CICE/$HURR/$CPL_CONF/Boundary INPUT/.
cp @[INPUTDATA_ROOT]/CICE/$HURR/$CPL_CONF/ice_in .
7 changes: 7 additions & 0 deletions tests/fv3_conf/coastal_datm.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
if [ ! -d "INPUT" ]; then
mkdir INPUT
fi

cd INPUT
rsync -arv @[INPUTDATA_ROOT]/DATM_input_data/$HURR/* .
cd -
7 changes: 0 additions & 7 deletions tests/fv3_conf/coastal_datm_atmmesh.IN

This file was deleted.

7 changes: 7 additions & 0 deletions tests/fv3_conf/coastal_docn.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
if [ ! -d "INPUT" ]; then
mkdir INPUT
fi

cd INPUT
rsync -arv @[INPUTDATA_ROOT]/DOCN_input_data/$HURR/* .
cd -
6 changes: 6 additions & 0 deletions tests/fv3_conf/coastal_schism_run.IN
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,9 @@ for IFILE in @[INPUTDATA_ROOT]/SCHISM/$HURR/$CPL_CONF/*.th; do
cp $IFILE .
fi
done

for IFILE in @[INPUTDATA_ROOT]/SCHISM/$HURR/$CPL_CONF/*.nc; do
if [ -f "$IFILE" ]; then
cp $IFILE .
fi
done
21 changes: 18 additions & 3 deletions tests/fv3_conf/coastal_ww3_run.IN
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,25 @@ if [ ! -d "RESTART" ]; then
mkdir RESTART
fi

cp @[INPUTDATA_ROOT]/WW3/$HURR/$CPL_CONF/bound.nc .
cp @[INPUTDATA_ROOT]/WW3/$HURR/$CPL_CONF/inlet.msh .
for IFILE in @[INPUTDATA_ROOT]/WW3/$HURR/$CPL_CONF/*.nc; do
if [ -f "$IFILE" ]; then
cp $IFILE .
fi
done

for IFILE in @[INPUTDATA_ROOT]/WW3/$HURR/$CPL_CONF/*.msh; do
if [ -f "$IFILE" ]; then
cp $IFILE .
fi
done

for IFILE in @[INPUTDATA_ROOT]/WW3/$HURR/$CPL_CONF/*.list; do
if [ -f "$IFILE" ]; then
cp $IFILE .
fi
done

cp @[INPUTDATA_ROOT]/WW3/$HURR/$CPL_CONF/ww3_* .
cp @[INPUTDATA_ROOT]/WW3/$HURR/$CPL_CONF/mesh.shinnecock.cdf5.nc .
cp @[INPUTDATA_ROOT]/WW3/$HURR/$CPL_CONF/mod_def.* .

if [[ $CPL_CONF == 'ww3' ]]; then
Expand Down
31 changes: 31 additions & 0 deletions tests/parm/datm.streams.coastal.multi.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
stream_info: @[FILENAME_BASE]01 @[FILENAME_BASE]02

taxmode01: limit
mapalgo01: @[mapalgo01]
tInterpAlgo01: @[tinterpalgo01]
readMode01: single
dtlimit01: @[dtlimit]
stream_offset01: @[STREAM_OFFSET01]
yearFirst01: @[SYEAR]
yearLast01: @[SYEAR]
yearAlign01: @[SYEAR]
stream_vectors01: @[STREAM_VECTORS]
stream_mesh_file01: "INPUT/@[MESH_ATM]"
stream_lev_dimname01: null
stream_data_files01: @[stream_files01]
stream_data_variables01: @[stream_variables01]

taxmode02: limit
mapalgo02: @[mapalgo02]
tInterpAlgo02: @[tinterpalgo02]
readMode02: single
dtlimit02: @[dtlimit]
stream_offset02: @[STREAM_OFFSET02]
yearFirst02: @[SYEAR]
yearLast02: @[SYEAR]
yearAlign02: @[SYEAR]
stream_vectors02: @[STREAM_VECTORS]
stream_mesh_file02: "INPUT/@[MESH_ATM]"
stream_lev_dimname02: null
stream_data_files02: @[stream_files02]
stream_data_variables02: @[stream_variables02]
15 changes: 15 additions & 0 deletions tests/parm/docn.streams.coastal.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
stream_info: @[FILENAME_BASE]01
taxmode01: @[taxmode]
mapalgo01: @[mapalgo]
tInterpAlgo01: linear
readMode01: single
dtlimit01: @[dtlimit]
stream_offset01: @[STREAM_OFFSET]
yearFirst01: @[SYEAR]
yearLast01: @[SYEAR]
yearAlign01: @[SYEAR]
stream_vectors01: @[STREAM_VECTORS]
stream_mesh_file01: "INPUT/@[MESH_OCN]"
stream_lev_dimname01: null
stream_data_files01: @[stream_files]
stream_data_variables01: @[stream_variables]
1 change: 1 addition & 0 deletions tests/parm/docn_in.IN
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
sst_constant_value = -1.0
skip_restart_read = true
import_data_fields = "none"
export_all = @[EXPORT_ALL]
/
112 changes: 112 additions & 0 deletions tests/parm/ufs.configure.coastal_datm_ocn_cice.IN
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
#############################################
#### NEMS Run-Time Configuration File #####
#############################################

# ESMF #
logKindFlag: ESMF_LOGKIND_MULTI
globalResourceControl: true

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

# MED #
MED_model: @[med_model]
MED_petlist_bounds: @[med_petlist_bounds]
MED_omp_num_threads: @[med_omp_num_threads]
MED_attributes::
ATM_model = @[atm_model]
OCN_model = @[ocn_model]
ICE_model = @[ice_model]
history_n = 1
history_option = nhours
history_ymd = -999
coupling_mode = @[CPLMODE]
::

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

# OCN #
OCN_model: @[ocn_model]
OCN_petlist_bounds: @[ocn_petlist_bounds]
OCN_omp_num_threads: @[ocn_omp_num_threads]
OCN_attributes::
Verbosity = 0
DumpFields = false
ProfileMemory = false
OverwriteSlice = true
meshloc = @[meshloc]
CouplingConfig = @[coupling_config]
write_restart_at_endofrun = .true.
::

# ICE #
ICE_model: @[ice_model]
ICE_petlist_bounds: @[ice_petlist_bounds]
ICE_omp_num_threads: @[ice_omp_num_threads]
ICE_attributes::
Verbosity = 0
DumpFields = false
ProfileMemory = false
OverwriteSlice = true
mesh_ice = @[mesh_ice]
eps_imesh = 5.0e-1
::

# Run Sequence #
runSeq::
@@[coupling_interval_slow_sec]
MED med_phases_prep_atm
MED med_phases_prep_ocn_accum
MED med_phases_prep_ocn_avg
MED med_phases_prep_ice
MED -> ATM :remapMethod=redist
MED -> OCN :remapMethod=redist
MED -> ICE :remapMethod=redist
ATM
OCN
ICE
ATM -> MED :remapMethod=redist
OCN -> MED :remapMethod=redist
ICE -> MED :remapMethod=redist
MED med_phases_post_atm
MED med_phases_post_ocn
MED med_phases_post_ice
MED med_phases_history_write
MED med_phases_restart_write
@
::

ALLCOMP_attributes::
ScalarFieldCount = 3
ScalarFieldIdxGridNX = 1
ScalarFieldIdxGridNY = 2
ScalarFieldIdxNextSwCday = 3
ScalarFieldName = cpl_scalars
start_type = @[RUNTYPE]
restart_dir = RESTART/
case_name = ufs.cpld
restart_n = @[RESTART_N]
restart_option = nhours
restart_ymd = -999
orb_eccen = 1.e36
orb_iyear = 2000
orb_iyear_align = 2000
orb_mode = fixed_year
orb_mvelp = 1.e36
orb_obliq = 1.e36
stop_n = @[FHMAX]
stop_option = nhours
stop_ymd = -999
::
2 changes: 1 addition & 1 deletion tests/parm/ufs.configure.coastal_datm_ocn_wav.IN
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ WAV_attributes::
Verbosity = 0
DumpFields = false
ProfileMemory = false
mesh_wav = mesh.shinnecock.cdf5.nc
mesh_wav = @[wav_mesh]
multigrid = false
user_histname = 'false'
use_historync = 'true'
Expand Down
20 changes: 15 additions & 5 deletions tests/rt_coastal.conf
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,19 @@
COMPILE | atm2adc | intel | -DAPP=CSTLA -DADCIRC_CONFIG=PADCIRC -DCOUPLED=ON | | fv3 |
RUN | coastal_ike_shinnecock_atm2adc | | baseline |

### CICE tests ###
COMPILE | atm2ocn2cice | intel | -DAPP=CSTLC -DCICE_IO=NetCDF | | fv3 |
RUN | coastal_bering_sea_atm2ocn2cice | | baseline |

### FVCOM tests ###
COMPILE | atm2fvc | intel | -DAPP=CSTLF -DCOORDINATE_TYPE=SPHERICAL -DWET_DRY=ON | | fv3 |
RUN | coastal_scituateharbor_atm2fvc | | baseline |

### SCHISM tests ###
#COMPILE | atm2sch | intel | -DAPP=CSTLS -DUSE_ATMOS=ON -DNO_PARMETIS=OFF -DOLDIO=ON -DBUILD_TOOLS=ON | | fv3 |
COMPILE | atm2sch | intel | -DAPP=CSTLS -DUSE_ATMOS=ON -DNO_PARMETIS=OFF -DOLDIO=ON | | fv3 |
RUN | coastal_ike_shinnecock_atm2sch | | baseline |
COMPILE | atm2sch | intel | -DAPP=CSTLS -DUSE_ATMOS=ON -DNO_PARMETIS=OFF -DOLDIO=ON -DBUILD_TOOLS=ON | | fv3 |
RUN | coastal_sandy_duck_atm2sch | | baseline |

#COMPILE | atm2sch2ww3 | intel | -DAPP=CSTLSW -DUSE_ATMOS=ON -DUSE_WW3=ON -DNO_PARMETIS=OFF -DOLDIO=ON -DPDLIB=ON -DBUILD_TOOLS=ON | | fv3 |
COMPILE | atm2sch2ww3 | intel | -DAPP=CSTLSW -DUSE_ATMOS=ON -DUSE_WW3=ON -DNO_PARMETIS=OFF -DOLDIO=ON -DPDLIB=ON | | fv3 |
COMPILE | atm2sch2ww3 | intel | -DAPP=CSTLSW -DUSE_ATMOS=ON -DUSE_WW3=ON -DNO_PARMETIS=OFF -DOLDIO=ON -DPDLIB=ON -DBUILD_TOOLS=ON | | fv3 |
RUN | coastal_ike_shinnecock_atm2sch2ww3 | | baseline |

### ROMS tests ###
Expand All @@ -45,12 +47,20 @@ RUN | coastal_irene_atm2roms | | baseline |
COMPILE | atm2ww3 | intel | -DAPP=CSTLW -DPDLIB=ON -DBUILD_TOOLS=ON | | fv3 |
RUN | coastal_ike_shinnecock_ww3 | | baseline |
RUN | coastal_ike_shinnecock_atm2ww3 | | baseline |
RUN | coastal_sandy_duck_atm2ocn2ww3 | | baseline |

### GNU Tests ###
### SCHISM tests ###
COMPILE | atm2sch | gnu | -DAPP=CSTLS -DUSE_ATMOS=ON -DNO_PARMETIS=OFF -DOLDIO=ON -DBUILD_TOOLS=ON | | fv3 |
RUN | coastal_sandy_duck_atm2sch | | baseline |

COMPILE | atm2sch2ww3 | gnu | -DAPP=CSTLSW -DUSE_ATMOS=ON -DUSE_WW3=ON -DNO_PARMETIS=OFF -DOLDIO=ON -DPDLIB=ON -DBUILD_TOOLS=ON | - frontera | fv3 |
RUN | coastal_ike_shinnecock_atm2sch2ww3 | - frontera | baseline |

### WW3 tests ###
COMPILE | atm2ww3 | gnu | -DAPP=CSTLW -DPDLIB=ON -DBUILD_TOOLS=ON | | fv3 |
RUN | coastal_sandy_duck_atm2ocn2ww3 | | baseline |

### ROMS tests ###
COMPILE | atm2roms | gnu | -DAPP=CSTLR -DMY_CPP_FLAGS=BULK_FLUXES | - frontera | fv3 |
RUN | coastal_irene_atm2roms | - frontera | baseline |
Loading