diff --git a/.gitmodules b/.gitmodules
index 17d690bff0..7d1a06fa65 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -44,5 +44,5 @@
branch = develop
[submodule "CDEPS"]
path = CDEPS-interface/CDEPS
- url = https://github.com/hafs-community/CDEPS
- branch = emc/develop
+ url = https://github.com/hafs-community/CDEPS.git
+ branch = feature/hafs_couplehycom_cdeps
diff --git a/CDEPS-interface/CDEPS b/CDEPS-interface/CDEPS
index dc5c15ca9b..f60af54e4e 160000
--- a/CDEPS-interface/CDEPS
+++ b/CDEPS-interface/CDEPS
@@ -1 +1 @@
-Subproject commit dc5c15ca9bcb407934c0b7c9ad391d1668d9cbea
+Subproject commit f60af54e4e35623db09290b07406be1b1084e023
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 19f84665c3..ec18d9c1b7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,7 +16,11 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules/Modules)
###############################################################################
# Valid applications and choices
-list(APPEND VALID_APPS ATM ATMW S2S S2SW HAFS HAFSW DATM DATM_NEMS)
+list(APPEND VALID_APPS
+ ATM ATMW
+ S2S S2SW
+ HAFS HAFSW HAFS_DATM HAFS_DOCN
+ DATM DATM_NEMS)
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}")
@@ -134,7 +138,7 @@ if(INLINE_POST)
endif()
# See https://github.com/NOAA-EMC/NCEPLIBS-nemsio/pull/22
-target_link_libraries(nemsio::nemsio INTERFACE w3emc::w3emc_d bacio::bacio_4)
+target_link_libraries(nemsio::nemsio INTERFACE w3nco::w3nco_d w3emc::w3emc_d bacio::bacio_4)
# Configure Python
find_package(Python 3 REQUIRED COMPONENTS Interpreter)
@@ -311,11 +315,17 @@ if(CMEPS)
endif()
if(CDEPS)
- add_dependencies(ufs cdeps::datm)
- list(APPEND _ufs_defs_private CDEPS-interface/CDEPS
- FRONT_CDEPS_DATM=atm_comp_nuopc)
- include_directories(${CMAKE_CURRENT_BINARY_DIR}/CDEPS-interface/CDEPS/datm)
- target_link_libraries(ufs PUBLIC cdeps::datm)
+ add_dependencies(ufs cdeps::datm)
+ list(APPEND _ufs_defs_private CDEPS-interface/CDEPS
+ FRONT_CDEPS_DATM=cdeps_datm_comp)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR}/CDEPS-interface/CDEPS/datm)
+ target_link_libraries(ufs PUBLIC cdeps::datm)
+
+ add_dependencies(ufs cdeps::docn)
+ list(APPEND _ufs_defs_private CDEPS-interface/CDEPS
+ FRONT_CDEPS_DOCN=cdeps_docn_comp)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR}/CDEPS-interface/CDEPS/docn)
+ target_link_libraries(ufs PUBLIC cdeps::docn)
endif()
target_compile_definitions(ufs PRIVATE "${_ufs_defs_private}")
@@ -349,6 +359,13 @@ target_link_libraries(ufs_model PRIVATE ufs
esmf
NetCDF::NetCDF_Fortran)
+if(S2S OR CMEPS OR CDEPS)
+ if(PNETCDF)
+ target_link_libraries (ufs_model PRIVATE ${PNETCDF_LIBRARY_DIRS})
+ target_include_directories(ufs_model PRIVATE ${PNETCDF_INCLUDE_DIRS})
+ endif()
+endif()
+
###############################################################################
### Install
###############################################################################
diff --git a/FV3 b/FV3
index 66e32d752a..93b8f4aef1 160000
--- a/FV3
+++ b/FV3
@@ -1 +1 @@
-Subproject commit 66e32d752a2416e073ec2fb0616117821474e4af
+Subproject commit 93b8f4aef1e71e999f0088fef22b6ae3e873a3c0
diff --git a/HYCOM-interface/hycom_files.cmake b/HYCOM-interface/hycom_files.cmake
index da8d971a05..8480b50f87 100644
--- a/HYCOM-interface/hycom_files.cmake
+++ b/HYCOM-interface/hycom_files.cmake
@@ -66,4 +66,3 @@ list(APPEND _hycom_nuopc_src_files
list(APPEND _hycom_offline_src_files
HYCOM/hycom.F90
)
-
diff --git a/NEMS b/NEMS
index 91710d8a26..145033d95b 160000
--- a/NEMS
+++ b/NEMS
@@ -1 +1 @@
-Subproject commit 91710d8a262cfd2fb843e095b9c0df9ae0b3cab0
+Subproject commit 145033d95bdf194a73c49cd9dc5c98fc4afcae19
diff --git a/cmake/configure_apps.cmake b/cmake/configure_apps.cmake
index 6e4fc67fdd..2d036d8491 100644
--- a/cmake/configure_apps.cmake
+++ b/cmake/configure_apps.cmake
@@ -14,11 +14,11 @@
### Configure Application Components
###############################################################################
if(APP MATCHES "^(ATM|ATMW)$")
- set(FMS ON CACHE BOOL "Enable FMS" FORCE)
- set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
- set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
+ set(FMS ON CACHE BOOL "Enable FMS" FORCE)
+ set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
+ set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
if(APP MATCHES "ATMW")
- set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
+ set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
message("Configuring UFS app in Atmosphere with Waves mode")
else()
message("Configuring UFS app in Atmosphere Only mode")
@@ -26,44 +26,52 @@ if(APP MATCHES "^(ATM|ATMW)$")
endif()
if(APP MATCHES "^(DATM|DATM_NEMS)$")
- set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
- set(FMS ON CACHE BOOL "Enable FMS" FORCE)
- set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
- set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
+ set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
+ set(FMS ON CACHE BOOL "Enable FMS" FORCE)
+ set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
+ set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
if(APP MATCHES "DATM_NEMS")
- set(NEMSdatm ON CACHE BOOL "Enable NEMS DataAtm" FORCE)
+ set(NEMSdatm ON CACHE BOOL "Enable NEMS DataAtm" FORCE)
message("Configuring UFS app in (NEMS) Data Atmosphere mode")
elseif(APP MATCHES "DATM")
- set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
+ set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
message("Configuring UFS app in (CDEPS) Data Atmosphere mode")
endif()
endif()
if(APP MATCHES "^(S2S|S2SW)$")
- set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
- set(FMS ON CACHE BOOL "Enable FMS" FORCE)
- set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
- set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
- set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
- set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
+ set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
+ set(FMS ON CACHE BOOL "Enable FMS" FORCE)
+ set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
+ set(MOM6 ON CACHE BOOL "Enable MOM6" FORCE)
+ set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
+ set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
if(APP MATCHES "S2SW")
- set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
+ set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
message("Configuring UFS app in S2S with Waves mode")
else()
message("Configuring UFS app in S2S mode")
endif()
endif()
-if(APP MATCHES "^(HAFS|HAFSW)$")
- set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
- set(FMS ON CACHE BOOL "Enable FMS" FORCE)
- set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
- set(HYCOM ON CACHE BOOL "Enable HYCOM" FORCE)
- set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
+if(APP MATCHES "^(HAFS|HAFSW|HAFS_DATM|HAFS_DOCN)$")
+ set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
+ if(APP MATCHES "HAFS_DATM")
+ set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
+ message("Configuring UFS app in HAFS with Data Atmosphere mode")
+ else()
+ set(FMS ON CACHE BOOL "Enable FMS" FORCE)
+ set(FV3 ON CACHE BOOL "Enable FV3" FORCE)
+ set(STOCH_PHYS ON CACHE BOOL "Enable Stochastic Physics" FORCE)
+ endif()
+ if(APP MATCHES "HAFS_DOCN")
+ set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
+ message("Configuring UFS app in HAFS with Data Ocean mode")
+ else()
+ set(HYCOM ON CACHE BOOL "Enable HYCOM" FORCE)
+ endif()
if(APP MATCHES "HAFSW")
- set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
+ set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
message("Configuring UFS app in HAFS with Waves mode")
- else()
- message("Configuring UFS app in HAFS mode")
endif()
endif()
diff --git a/tests/cdeps_conf/datm_era5_run.IN b/tests/cdeps_conf/datm_era5_run.IN
deleted file mode 100644
index e69bd83754..0000000000
--- a/tests/cdeps_conf/datm_era5_run.IN
+++ /dev/null
@@ -1,10 +0,0 @@
-if [ -d "input" ]; then
- echo "input/ directory exists ..."
-else
- echo "input/ directory not found. Creating ..."
- mkdir -p input
-fi
-
-cd input
-rsync -arv @[RTPWD]/DATM_ERA5_input_data/. .
-cd -
diff --git a/tests/cdeps_conf/docn_oisst_run.IN b/tests/cdeps_conf/docn_oisst_run.IN
deleted file mode 100644
index d6acbaef2e..0000000000
--- a/tests/cdeps_conf/docn_oisst_run.IN
+++ /dev/null
@@ -1,10 +0,0 @@
-if [ -d "input" ]; then
- echo "input/ directory exists ..."
-else
- echo "input/ directory not found. Creating ..."
- mkdir -p input
-fi
-
-cd input
-rsync -arv @[RTPWD]/DOCN_OISST_input_data/. .
-cd -
diff --git a/tests/compile.sh b/tests/compile.sh
index 211f97a0dd..b944a70b02 100755
--- a/tests/compile.sh
+++ b/tests/compile.sh
@@ -96,6 +96,10 @@ if [[ "${MAKE_OPT}" == *"OPENMP=N"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DOPENMP=OFF"
fi
+if [[ "${MAKE_OPT}" == *"PNETCDF=Y"* ]]; then
+ CMAKE_FLAGS="${CMAKE_FLAGS} -DPNETCDF=Y"
+fi
+
if [[ "${MAKE_OPT}" == *"MULTI_GASES=Y"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DMULTI_GASES=ON"
else
@@ -124,7 +128,7 @@ else
fi
fi
- # Check if suites argument is provided or not
+# Check if suites argument is provided or not
set +ex
TEST=$( echo $MAKE_OPT | grep -e "SUITES=" )
if [[ $? -eq 0 ]]; then
@@ -134,36 +138,47 @@ fi
set -ex
# Valid applications
-if [[ "${MAKE_OPT}" == *"APP=ATM"* ]]; then
+APP_OPT=$( echo $MAKE_OPT | tr " " "\n" | sed -n '/APP/p;/APP/q' )
+echo "APP_OPT = ${APP_OPT}"
+
+if [[ "${APP_OPT}" == "APP=ATM" ]]; then
echo "MAKE_OPT = ${MAKE_OPT}"
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATM"
fi
-if [[ "${MAKE_OPT}" == *"APP=ATMW"* ]]; then
+if [[ "${APP_OPT}" == "APP=ATMW" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=ATMW"
fi
-if [[ "${MAKE_OPT}" == *"APP=S2S"* ]]; then
+if [[ "${APP_OPT}" == "APP=S2S" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2S -DMOM6SOLO=ON"
fi
-if [[ "${MAKE_OPT}" == *"APP=S2SW"* ]]; then
+if [[ "${APP_OPT}" == "APP=S2SW" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=S2SW -DMOM6SOLO=ON"
fi
-if [[ "${MAKE_OPT}" == *"APP=HAFS"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFS" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS"
fi
-if [[ "${MAKE_OPT}" == *"APP=HAFSW"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFSW" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFSW"
fi
-if [[ "${MAKE_OPT}" == *"APP=DATM"* ]]; then
+if [[ "${APP_OPT}" == "APP=HAFS_DATM" ]]; then
+ CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS_DATM"
+fi
+
+if [[ "${APP_OPT}" == "APP=HAFS_DOCN" ]]; then
+ CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=HAFS_DOCN"
+fi
+
+if [[ "${APP_OPT}" == "APP=DATM" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=DATM"
fi
-if [[ "${MAKE_OPT}" == *"APP=DATM_NEMS"* ]]; then
+if [[ "${APP_OPT}" == "APP=DATM_NEMS" ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DAPP=DATM_NEMS"
fi
diff --git a/tests/default_vars.sh b/tests/default_vars.sh
index b9e739469b..6cb5e5212a 100755
--- a/tests/default_vars.sh
+++ b/tests/default_vars.sh
@@ -401,6 +401,7 @@ export FV3=true
export S2S=false
export DATM_NEMS=false
export DATM_CDEPS=false
+export DOCN_CDEPS=false
export THRD=1
export WLCLK=$WLCLK_dflt
export INPES=$INPES_dflt
@@ -734,6 +735,7 @@ export FV3=false
export S2S=false
export DATM_NEMS=true
export DATM_CDEPS=false
+export DOCN_CDEPS=false
export CPLWAV=.F.
export DAYS=1
export FHMAX=24
@@ -945,3 +947,93 @@ export CICE_HIST_AVG='.true.'
export BL_SUFFIX=""
export RT_SUFFIX=""
}
+export_cdeps_datm ()
+{
+export FV3=false
+export CDEPS_DATM=true
+export DATM=false
+export THRD=1
+export WLCLK=$WLCLK_dflt
+export INPES=$INPES_dflt
+export JNPES=$JNPES_dflt
+export TASKS=$TASKS_dflt
+export TPN=$TPN_dflt
+
+export atm_model="datm"
+
+export DATM_CONFIGURE_A="datm_in"
+export DATM_CONFIGURE_B="datm.streams.xml.era5"
+}
+export_cdeps_docn ()
+{
+export CDEPS_DOCN=true
+export THRD=1
+export WLCLK=$WLCLK_dflt
+export INPES=$INPES_dflt
+export JNPES=$JNPES_dflt
+export TASKS=$TASKS_dflt
+export TPN=$TPN_dflt
+
+export ocn_model="docn"
+export ocn_datamode="sstdata"
+
+export DOCN_CONFIGURE_A="docn_in"
+export DOCN_CONFIGURE_B="docn.streams.xml.IN"
+}
+export_cpl_regional ()
+{
+export S2S=false
+export CMEPS=true
+
+# model_configure
+export SYEAR='2019'
+export SMONTH='08'
+export SDAY='29'
+export SHOUR='00'
+export FHMAX=24
+export ENS_NUM=1
+export DT_ATMOS='900'
+export CPL='.true.'
+export RESTART_INTERVAL=0
+export FHROT=0
+export coupling_interval_fast_sec=0
+export QUILTING=.true.
+export WRITE_GROUP=1
+export WRTTASK_PER_GROUP=6
+export OUTPUT_HISTORY=.true.
+export WRITE_DOPOST=.false.
+export NUM_FILES=2
+export FILENAME_BASE="'dyn' 'phy'"
+export OUTPUT_GRID="'regional_latlon'"
+export OUTPUT_FILE="'netcdf'"
+export IDEFLATE=0
+export NBITS=0
+export WRITE_NEMSIOFLIP=.false.
+export WRITE_FSYNCFLAG=.false.
+export NFHOUT=3
+export NFHMAX_HF=-1
+export NFHOUT_HF=3
+export CEN_LON=-62.0
+export CEN_LAT=25.0
+export LON1=-114.5
+export LAT1=-5.0
+export LON2=-9.5
+export LAT2=55.0
+export DLON=0.03
+export DLAT=0.03
+
+# input.nml
+export MERGE_IMPORT=.true.
+
+# nems.configure
+export med_model="nems"
+export CAP_DBUG_FLAG="0"
+export RESTART_N=${FHMAX}
+export CPLMODE="hafs"
+export RUNTYPE="startup"
+export USE_COLDSTART="false"
+
+# timing
+export ESMF_RUNTIME_PROFILE=ON
+export ESMF_RUNTIME_PROFILE_OUTPUT=SUMMARY
+}
diff --git a/tests/fv3_conf/ccpp_regional_natl_run.IN b/tests/fv3_conf/ccpp_regional_natl_run.IN
new file mode 100644
index 0000000000..1c28b9cdce
--- /dev/null
+++ b/tests/fv3_conf/ccpp_regional_natl_run.IN
@@ -0,0 +1,5 @@
+
+rm -rf INPUT RESTART
+mkdir INPUT RESTART
+
+rsync -arv @[RTPWD]/FV3_regional_c192_natl_input_data/. .
diff --git a/tests/fv3_conf/cpld_datm_cdeps_era5.IN b/tests/fv3_conf/cpld_datm_cdeps_era5.IN
new file mode 100644
index 0000000000..5fcf726b11
--- /dev/null
+++ b/tests/fv3_conf/cpld_datm_cdeps_era5.IN
@@ -0,0 +1,10 @@
+if [ -d "input" ]; then
+ echo "datm/ directory exists ..."
+else
+ echo "datm/ directory not found. Creating ..."
+ mkdir -p datm
+fi
+
+cd datm
+rsync -arv @[RTPWD]/DATM_ERA5_input_data/. .
+cd -
diff --git a/tests/fv3_conf/cpld_docn_cdeps_mom6.IN b/tests/fv3_conf/cpld_docn_cdeps_mom6.IN
new file mode 100644
index 0000000000..3cf283d6ab
--- /dev/null
+++ b/tests/fv3_conf/cpld_docn_cdeps_mom6.IN
@@ -0,0 +1,10 @@
+if [ -d "input" ]; then
+ echo "docn/ directory exists ..."
+else
+ echo "docn/ directory not found. Creating ..."
+ mkdir -p docn
+fi
+
+cd docn
+rsync -arv @[RTPWD]/DOCN_MOM6_input_data/. .
+cd -
diff --git a/tests/fv3_conf/cpld_docn_cdeps_oisst.IN b/tests/fv3_conf/cpld_docn_cdeps_oisst.IN
new file mode 100644
index 0000000000..de7a50b63f
--- /dev/null
+++ b/tests/fv3_conf/cpld_docn_cdeps_oisst.IN
@@ -0,0 +1,10 @@
+if [ -d "input" ]; then
+ echo "docn/ directory exists ..."
+else
+ echo "docn/ directory not found. Creating ..."
+ mkdir -p docn
+fi
+
+cd docn
+rsync -arv @[RTPWD]/DOCN_OISST_input_data/. .
+cd -
diff --git a/tests/hycom_conf/hycom_hat10_run.IN b/tests/fv3_conf/hycom_hat10_run.IN
similarity index 100%
rename from tests/hycom_conf/hycom_hat10_run.IN
rename to tests/fv3_conf/hycom_hat10_run.IN
diff --git a/tests/parm/atm_modelio.nml b/tests/parm/atm_modelio.nml
deleted file mode 100755
index 959488b191..0000000000
--- a/tests/parm/atm_modelio.nml
+++ /dev/null
@@ -1,8 +0,0 @@
-&pio_inparm
- pio_netcdf_format = "64bit_offset"
- pio_numiotasks = -99
- pio_rearranger = 1
- pio_root = 1
- pio_stride = 36
- pio_typename = "netcdf"
-/
diff --git a/tests/parm/ccpp_regional_c192_natl.nml.IN b/tests/parm/ccpp_regional_c192_natl.nml.IN
new file mode 100644
index 0000000000..9ff80531e9
--- /dev/null
+++ b/tests/parm/ccpp_regional_c192_natl.nml.IN
@@ -0,0 +1,360 @@
+ &amip_interp_nml
+ interp_oi_sst = .true.
+ use_ncep_sst = .true.
+ use_ncep_ice = .false.
+ no_anom_sst = .false.
+ data_set = 'reynolds_oi'
+ date_out_of_range = 'climo'
+/
+
+ &atmos_model_nml
+ blocksize = 60
+ chksum_debug = .false.
+ dycore_only = .false.
+ fdiag = 3
+ avg_max_length = 3600.
+ fhmax = 24
+ fhout = 3
+ fhmaxhf = 0
+ fhouthf = 3
+ ccpp_suite = '@[CCPP_SUITE]'
+ merge_import = @[MERGE_IMPORT]
+/
+
+&diag_manager_nml
+ prepend_date = .false.
+/
+
+ &fms_io_nml
+ checksum_required = .false.
+ max_files_r = 100,
+ max_files_w = 100,
+/
+
+ &fms_nml
+ clock_grain = 'ROUTINE',
+ domains_stack_size = 12000000,
+ print_memory_usage = .false.
+/
+
+ &fv_grid_nml
+ grid_file = 'INPUT/grid_spec.nc'
+/
+
+ &fv_core_nml
+ layout = @[INPES],@[JNPES]
+ io_layout = 1,1
+ npx = 721
+ npy = 601
+ ntiles = 1
+ npz = 91
+ !grid_type = -1
+ make_nh = .F.
+ fv_debug = .F.
+ range_warn = .T.
+ reset_eta = .F.
+ n_sponge = 24
+ nudge_qv = .F.
+ nudge_dz = .F.
+ tau = 5.
+ rf_cutoff = 50.e2
+ d2_bg_k1 = 0.20
+ d2_bg_k2 = 0.15
+ kord_tm = -11
+ kord_mt = 11
+ kord_wz = 11
+ kord_tr = 11
+ hydrostatic = .F.
+ phys_hydrostatic = .F.
+ use_hydro_pressure = .F.
+ beta = 0.
+ a_imp = 1.
+ p_fac = 0.1
+ k_split = 4
+ n_split = 5
+ nwat = 6
+ na_init = 1
+ d_ext = 0.0
+ dnats = 1
+ fv_sg_adj = 300
+ d2_bg = 0.
+ nord = 2
+ dddmp = 0.1
+ d4_bg = 0.15
+ vtdm4 = 0.04
+ delt_max = 0.008
+ ke_bg = 0.
+ do_vort_damp = .T.
+ external_ic = .T.
+ external_eta = .T.
+ gfs_phil = .false.
+ nggps_ic = .T.
+ mountain = .F.
+ ncep_ic = .F.
+ d_con = 1.0
+ hord_mt = 6
+ hord_vt = 6
+ hord_tm = 6
+ hord_dp = -6
+ hord_tr = 8
+ adjust_dry_mass = .F.
+ consv_te = 0.
+ do_sat_adj = .T.
+ consv_am = .F.
+ fill = .T.
+ dwind_2d = .F.
+ print_freq = 3
+ warm_start = .F.
+ no_dycore = .false.
+ z_tracer = .T.
+ agrid_vel_rst = .true.
+ read_increment = .F.
+ res_latlon_dynamics = "fv3_increment.nc"
+ write_3d_diags = .true.
+
+ do_schmidt = .true.
+ target_lat = 22.0
+ target_lon = -62.0
+ stretch_fac = 1.0001
+ regional = .true.
+ bc_update_interval = 3
+ nrows_blend = 10
+
+ full_zs_filter = .F. !unreleased feature
+ n_zs_filter = 0 ! safety
+ nord_zs_filter = 4
+/
+
+ &surf_map_nml
+ zero_ocean = .F.
+ cd4 = 0.15
+ cd2 = -1
+ n_del2_strong = 0
+ n_del2_weak = 15
+ n_del4 = 2
+ max_slope = 0.4
+ peak_fac = 1.
+/
+
+ &external_ic_nml
+ filtered_terrain = .true.
+ levp = 92
+ gfs_dwinds = .true.
+ checker_tr = .F.
+ nt_checker = 0
+/
+
+ &gfs_physics_nml
+ fhzero = 3.
+ ldiag3d = .false.
+ lradar = .true.
+ avg_max_length = 3600.
+ h2o_phys = .true.
+ fhcyc = 24.
+ use_ufo = .true.
+ pre_rad = .false.
+ ncld = 5
+ imp_physics = 11
+ pdfcld = .false.
+ fhswr = 1800.
+ fhlwr = 1800.
+ ialb = 1
+ iems = 1
+ iaer = 111
+ ico2 = 2
+ isubc_sw = 2
+ isubc_lw = 2
+ isol = 2
+ lwhtr = .true.
+ swhtr = .true.
+ cnvgwd = .false.
+ shal_cnv = .true. !Shallow convection
+ cal_pre = .false.
+ redrag = .true.
+ dspheat = .true.
+ hybedmf = .true.
+ hurr_pbl = .T. ! HWRF moninedmf
+ moninq_fac = -1.0 ! HWRF_moninedmf
+ satmedmf = .false.
+ random_clds = .false.
+ trans_trac = .true.
+ cnvcld = .true.
+ imfshalcnv = 2
+ imfdeepcnv = 2
+ cdmbgwd = 0.88, 0.04
+ sfc_z0_type = 6
+ prslrd0 = 0.
+ ivegsrc = 1
+ isot = 1
+ lsm = 1
+ iopt_dveg = 2
+ iopt_crs = 1
+ iopt_btr = 1
+ iopt_run = 1
+ iopt_sfc = 1
+ iopt_frz = 1
+ iopt_inf = 1
+ iopt_rad = 1
+ iopt_alb = 2
+ iopt_snf = 4
+ iopt_tbot = 2
+ iopt_stc = 1
+ debug = .false.
+ oz_phys = .F.
+ oz_phys_2015 = .T.
+ nst_anl = .true.
+ nstf_name = @[NSTF_NAME]
+ cplflx = @[CPLFLX]
+ cplwav = .false.
+ cplwav2atm = .false.
+ psautco = 0.0008, 0.0005
+ prautco = 0.00015, 0.00015
+ iau_delthrs = 6
+ iaufhrs = 30
+ iau_inc_files = ''
+ iau_drymassfixer = .false.
+ do_deep = .true.
+ lgfdlmprad = .true.
+ effr_in = .true.
+ do_sppt = .F.
+ do_shum = .F.
+ do_skeb = .F.
+ lndp_type = 0
+ n_var_lndp = 0
+ do_ca = .false.
+ ca_sgs = .false.
+ nca = 1
+ ncells = 5
+ nlives = 30
+ nseed = 1000000
+ nfracseed = 0.5
+ nthresh = 0.
+ ca_trigger = .true.
+ ca_entr = .false.
+ ca_closure = .false.
+ ca_global = .false.
+ nca_g = 1
+ ncells_g = 1
+ nlives_g = 100
+ nseed_g = 100
+ ca_smooth = .false.
+ nspinup = 100
+ iseed_ca = 1
+ nsmooth = 1
+ ca_amplitude = 0.5
+/
+
+ &gfdl_cloud_microphysics_nml
+ sedi_transport = .false.
+ do_sedi_heat = .false.
+ rad_snow = .true.
+ rad_graupel = .true.
+ rad_rain = .true.
+ const_vi = .F.
+ const_vs = .F.
+ const_vg = .F.
+ const_vr = .F.
+ vi_max = 1.
+ vs_max = 2.
+ vg_max = 12.
+ vr_max = 12.
+ qi_lim = 1.
+ prog_ccn = .false.
+ do_qa = .true.
+ fast_sat_adj = .true.
+ tau_l2v = 180.
+ tau_v2l = 90.
+ tau_g2v = 900.
+ rthresh = 10.e-6 ! This is a key parameter for cloud water
+ dw_land = 0.16
+ dw_ocean = 0.10
+ ql_gen = 1.0e-3
+ ql_mlt = 1.0e-3
+ qi0_crt = 8.0E-5
+ qs0_crt = 1.0e-3
+ tau_i2s = 1000.
+ c_psaci = 0.05
+ c_pgacs = 0.01
+ rh_inc = 0.30
+ rh_inr = 0.30
+ rh_ins = 0.30
+ ccn_l = 300.
+ ccn_o = 100.
+ c_paut = 0.5
+ c_cracw = 0.8
+ use_ppm = .false.
+ use_ccn = .true.
+ mono_prof = .true.
+ z_slope_liq = .true.
+ z_slope_ice = .true.
+ de_ice = .false.
+ fix_negative = .true.
+ icloud_f = 1
+ mp_time = 90.
+/
+
+ &interpolator_nml
+ interp_method = 'conserve_great_circle'
+/
+
+ &namsfc
+ FNGLAC = "global_glacier.2x2.grb",
+ FNMXIC = "global_maxice.2x2.grb",
+ FNTSFC = "RTGSST.1982.2012.monthly.clim.grb",
+ FNSNOC = "global_snoclim.1.875.grb",
+ FNZORC = "igbp"
+ !FNZORC = "global_zorclim.1x1.grb",
+ FNALBC = "global_snowfree_albedo.bosu.t1534.3072.1536.rg.grb",
+ FNALBC2 = "global_albedo4.1x1.grb",
+ FNAISC = "CFSR.SEAICE.1982.2012.monthly.clim.grb",
+ FNTG3C = "global_tg3clim.2.6x1.5.grb",
+ FNVEGC = "global_vegfrac.0.144.decpercent.grb",
+ FNVETC = "global_vegtype.igbp.t1534.3072.1536.rg.grb",
+ FNSOTC = "global_soiltype.statsgo.t1534.3072.1536.rg.grb",
+ FNSMCC = "global_soilmgldas.t1534.3072.1536.grb",
+ FNMSKH = "seaice_newland.grb",
+ FNTSFA = "",
+ FNACNA = "",
+ FNSNOA = "",
+ FNVMNC = "global_shdmin.0.144x0.144.grb",
+ FNVMXC = "global_shdmax.0.144x0.144.grb",
+ FNSLPC = "global_slope.1x1.grb",
+ FNABSC = "global_mxsnoalb.uariz.t1534.3072.1536.rg.grb",
+ LDEBUG =.true.,
+ FSMCL(2) = 99999
+ FSMCL(3) = 99999
+ FSMCL(4) = 99999
+ FTSFS = 90
+ FAISS = 99999
+ FSNOL = 99999
+ FSICL = 99999
+ FTSFL = 99999
+ FAISL = 99999
+ FVETL = 99999,
+ FSOTL = 99999,
+ FvmnL = 99999,
+ FvmxL = 99999,
+ FSLPL = 99999,
+ FABSL = 99999,
+ FSNOS = 99999,
+ FSICS = 99999,
+/
+&nam_stochy
+/
+&nam_sfcperts
+/
+
+ &cires_ugwp_nml
+ knob_ugwp_solver = 2
+ knob_ugwp_source = 1,1,0,0
+ knob_ugwp_wvspec = 1,25,25,25
+ knob_ugwp_azdir = 2,4,4,4
+ knob_ugwp_stoch = 0,0,0,0
+ knob_ugwp_effac = 1,1,1,1
+ knob_ugwp_doaxyz = 1
+ knob_ugwp_doheat = 1
+ knob_ugwp_dokdis = 1
+ knob_ugwp_ndx4lh = 1
+ knob_ugwp_version = 0
+ launch_level = 25
+/
diff --git a/tests/parm/datm.streams.xml.era5 b/tests/parm/datm.streams.xml.era5
index 2988b289d5..977d612abc 100755
--- a/tests/parm/datm.streams.xml.era5
+++ b/tests/parm/datm.streams.xml.era5
@@ -11,11 +11,11 @@
2019
1900
u:v
- input/TL639_200618_ESMFmesh.nc
+ @[atm_mesh]
null
- input/ERA5.TL639.2019.08.200618_subset.nc
- input/ERA5.TL639.2019.09.200618_subset.nc
+ @[atm_data1]
+ @[atm_data2]
u10 Sa_u
diff --git a/tests/parm/datm_in.era5 b/tests/parm/datm_in.era5
deleted file mode 100755
index 10bad462ff..0000000000
--- a/tests/parm/datm_in.era5
+++ /dev/null
@@ -1,15 +0,0 @@
-&datm_nml
- datamode = "ERA5"
- factorfn_data = "null"
- factorfn_mesh = "null"
- flds_co2 = .false.
- flds_presaero = .false.
- flds_wiso = .false.
- iradsw = 1
- model_createmesh_fromfile = "null"
- model_maskfile = "input/TL639_200618_ESMFmesh.nc"
- model_meshfile = "input/TL639_200618_ESMFmesh.nc"
- nx_global = 1440
- ny_global = 721
- restfilm = "null"
-/
diff --git a/tests/parm/docn.streams.xml.oisst b/tests/parm/docn.streams.xml.IN
similarity index 72%
rename from tests/parm/docn.streams.xml.oisst
rename to tests/parm/docn.streams.xml.IN
index 1799015466..5b22128356 100644
--- a/tests/parm/docn.streams.xml.oisst
+++ b/tests/parm/docn.streams.xml.IN
@@ -7,17 +7,17 @@
single
bilinear
1.5
- 2019
- 2019
+ @[SYEAR]
+ @[SYEAR]
1
null
- input/TX025_201105_ESMFmesh.nc
+ @[ocn_mesh]
null
- input/sst.day.mean.2019.nc
+ @[ocn_data]
- sst So_t
+ @[ocn_data_var] So_t
0
diff --git a/tests/parm/docn_in b/tests/parm/docn_in
new file mode 100644
index 0000000000..188d23539c
--- /dev/null
+++ b/tests/parm/docn_in
@@ -0,0 +1,10 @@
+&docn_nml
+ datamode = "@[ocn_datamode]"
+ model_createmesh_fromfile = "null"
+ model_maskfile = "@[ocn_mesh]"
+ model_meshfile = "@[ocn_mesh]"
+ nx_global = @[ocn_nx_global]
+ ny_global = @[ocn_ny_global]
+ restfilm = "null"
+ sst_constant_value = -1.0
+/
diff --git a/tests/parm/docn_in.oisst b/tests/parm/docn_in.oisst
deleted file mode 100644
index cb158e5b9a..0000000000
--- a/tests/parm/docn_in.oisst
+++ /dev/null
@@ -1,10 +0,0 @@
-&docn_nml
- datamode = "sstdata"
- model_createmesh_fromfile = "null"
- model_maskfile = "input/TX025_201105_ESMFmesh.nc"
- model_meshfile = "input/TX025_201105_ESMFmesh.nc"
- nx_global = 1440
- ny_global = 720
- restfilm = "null"
- sst_constant_value = -1.0
-/
diff --git a/tests/parm/model_configure.cdeps.IN b/tests/parm/model_configure.cdeps.IN
deleted file mode 100755
index e82d8d5e33..0000000000
--- a/tests/parm/model_configure.cdeps.IN
+++ /dev/null
@@ -1,47 +0,0 @@
-print_esmf: .true.
-total_member: 1
-PE_MEMBER01: 240
-start_year: 2019
-start_month: 08
-start_day: 29
-start_hour: 00
-start_minute: 0
-start_second: 0
-nhours_fcst: 126
-RUN_CONTINUE: .false.
-ENS_SPS: .false.
-dt_atmos: 90
-cpl: .true.
-calendar: 'julian'
-memuse_verbose: .false.
-atmos_nthreads: 2
-use_hyper_thread: .false.
-ncores_per_node: 40
-debug_affinity: .true.
-restart_interval: 0
-output_1st_tstep_rst: .false.
-
-quilting: .true.
-write_groups: 1
-write_tasks_per_group: 40
-num_files: 2
-filename_base: 'dyn' 'phy'
-output_file: 'netcdf'
-write_nemsioflip: .false.
-write_fsyncflag: .false.
-
-app_domain: 'regional'
-output_grid: 'regional_latlon'
-cen_lon: -62.0 # central longitude
-cen_lat: 25.0 # central latitude
-lon1: -114.5 # longitude of lower-left
-lat1: -5.0 # latitude of lower-left
-lon2: -9.5 # longitude of upper-right
-lat2: 55.0 # latitude of upper-right
-dlon: 0.03
-dlat: 0.03
-
-nfhout: 3
-nfhmax_hf: -1
-nfhout_hf: 3
-nsout: -1
diff --git a/tests/parm/model_configure_hafsv2.IN b/tests/parm/model_configure_hafsv2.IN
new file mode 100755
index 0000000000..2fbca7c3d7
--- /dev/null
+++ b/tests/parm/model_configure_hafsv2.IN
@@ -0,0 +1,57 @@
+total_member: @[ENS_NUM]
+print_esmf: .true.
+PE_MEMBER01: @[TASKS]
+start_year: @[SYEAR]
+start_month: @[SMONTH]
+start_day: @[SDAY]
+start_hour: @[SHOUR]
+start_minute: 0
+start_second: 0
+nhours_fcst: @[FHMAX]
+RUN_CONTINUE: .false.
+ENS_SPS: .false.
+
+dt_atmos: @[DT_ATMOS]
+calendar: 'julian'
+cpl: @[CPL]
+memuse_verbose: .false.
+atmos_nthreads: @[THRD]
+use_hyper_thread: .false.
+ncores_per_node: @[TPN]
+restart_interval: @[RESTART_INTERVAL]
+fhrot: @[FHROT]
+output_1st_tstep_rst: .false.
+
+quilting: @[QUILTING]
+write_groups: @[WRITE_GROUP]
+write_tasks_per_group: @[WRTTASK_PER_GROUP]
+output_history: @[OUTPUT_HISTORY]
+write_dopost: @[WRITE_DOPOST]
+num_files: @[NUM_FILES]
+filename_base: @[FILENAME_BASE]
+output_grid: @[OUTPUT_GRID]
+output_file: @[OUTPUT_FILE]
+ichunk2d: -1
+jchunk2d: -1
+ichunk3d: -1
+jchunk3d: -1
+kchunk3d: -1
+ideflate: @[IDEFLATE]
+nbits: @[NBITS]
+write_nemsioflip: @[WRITE_NEMSIOFLIP]
+write_fsyncflag: @[WRITE_FSYNCFLAG]
+
+app_domain: 'regional'
+cen_lon: @[CEN_LON] # central longitude
+cen_lat: @[CEN_LAT] # central latitude
+lon1: @[LON1] # longitude of lower-left
+lat1: @[LAT1] # latitude of lower-left
+lon2: @[LON2] # longitude of upper-right
+lat2: @[LAT2] # latitude of upper-right
+dlon: @[DLON]
+dlat: @[DLAT]
+
+nfhout: @[NFHOUT]
+nfhmax_hf: @[NFHMAX_HF]
+nfhout_hf: @[NFHOUT_HF]
+nsout: -1
diff --git a/tests/parm/nems.configure.cpld.hafs.IN b/tests/parm/nems.configure.cpld.hafs.IN
new file mode 100755
index 0000000000..c7e23eafc6
--- /dev/null
+++ b/tests/parm/nems.configure.cpld.hafs.IN
@@ -0,0 +1,133 @@
+##############################################
+##### NEMS Run-Time Configuration File #####
+##############################################
+
+# EARTH #
+EARTH_component_list: MED ATM OCN
+EARTH_attributes::
+ Verbosity = 0
+::
+
+# MED #
+MED_model: @[med_model]
+MED_petlist_bounds: @[med_petlist_bounds]
+::
+
+# ATM #
+ATM_model: @[atm_model]
+ATM_petlist_bounds: @[atm_petlist_bounds]
+ATM_attributes::
+ Verbosity = 1
+ Diagnostic = 0
+::
+
+# OCN #
+OCN_model: @[ocn_model]
+OCN_petlist_bounds: @[ocn_petlist_bounds]
+OCN_attributes::
+ Verbosity = 1
+ Diagnostic = 0
+ cdf_impexp_freq = 3
+ cpl_hour = 0
+ cpl_min = 0
+ cpl_sec = @[coupling_interval_sec]
+ base_dtg = @[SYEAR]@[SMONTH]@[SDAY]@[SHOUR]
+ merge_import = .true.
+ skip_first_import = .true.
+ hycom_arche_output = .false.
+ hyc_esmf_exp_output = .true.
+ hyc_esmf_imp_output = .true.
+ hyc_impexp_file = nems.configure
+ espc_show_impexp_minmax = .true.
+ ocean_start_dtg = @[OCEAN_START_DTG]
+ start_hour = 0
+ start_min = 0
+ start_sec = 0
+ end_hour = @[FHMAX]
+ end_min = 0
+ end_sec = 0
+::
+
+# Run Sequence #
+runSeq::
+@@[coupling_interval_sec]
+ ATM -> MED :remapMethod=redist
+ MED med_phases_post_atm
+ OCN -> MED :remapMethod=redist
+ MED med_phases_post_ocn
+ MED med_phases_prep_atm
+ MED med_phases_prep_ocn_accum
+ MED med_phases_prep_ocn_avg
+ MED -> ATM :remapMethod=redist
+ MED -> OCN :remapMethod=redist
+ ATM
+ OCN
+ MED med_phases_restart_write
+ MED med_phases_history_write
+@
+::
+
+# Other Attributes #
+DRIVER_attributes::
+ start_type = @[RUNTYPE]
+::
+
+MED_attributes::
+ Verbosity = 1
+ Diagnostic = 0
+ ATM_model = @[atm_model]
+ OCN_model = @[ocn_model]
+ case_name = ufs.hafs
+ restart_n = @[RESTART_N]
+ restart_option = nhours
+ restart_ymd = -999
+ history_n = 1
+ history_option = nhours
+ history_ymd = -999
+ coupling_mode = @[CPLMODE]
+ system_type = ufs
+ normalization = none
+ merge_type = copy
+ ScalarFieldCount = 2
+ ScalarFieldIdxGridNX = 1
+ ScalarFieldIdxGridNY = 2
+ ScalarFieldName = cpl_scalars
+::
+
+ALLCOMP_attributes::
+ mediator_read_restart = @[USE_COLDSTART]
+::
+
+ATM_modelio::
+ diro = .
+ logfile = @[atm_model].log
+::
+
+OCN_modelio::
+ diro = .
+ logfile = @[ocn_model].log
+::
+
+MED_modelio::
+ diro = .
+ logfile = @[med_model].log
+::
+
+ocn_export_fields::
+ 'sst' 'sea_surface_temperature' 'K' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'mask' 'So_omask' '1' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+::
+
+ocn_import_fields::
+ 'u10' 'inst_zonal_wind_height10m' 'm_s-1' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'v10' 'inst_merid_wind_height10m' 'm_s-1' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'taux10' 'mean_zonal_moment_flx_atm' 'N_m-2' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'tauy10' 'mean_merid_moment_flx_atm' 'N_m-2' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'airtmp' 'inst_temp_height2m' 'K' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'airhum' 'inst_spec_humid_height2m' 'kg_kg-1' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'prcp' 'mean_prec_rate' 'kg_m-2_s-1' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'swflxd' 'mean_net_sw_flx' 'W_m-2' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'lwflxd' 'mean_net_lw_flx' 'W_m-2' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'mslprs' 'inst_pres_height_surface' 'Pa' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+ 'gt' 'inst_temp_height_surface' 'K' '.TRUE.' 'FLD_REMAP_BILINR' 'FLD_MASK_NNE' '1'
+::
diff --git a/tests/parm/nems.configure.cpld.hafs_datm.IN b/tests/parm/nems.configure.cpld.hafs_datm.IN
new file mode 100755
index 0000000000..b90084d4ed
--- /dev/null
+++ b/tests/parm/nems.configure.cpld.hafs_datm.IN
@@ -0,0 +1,119 @@
+##############################################
+##### NEMS Run-Time Configuration File #####
+##############################################
+
+# EARTH #
+EARTH_component_list: MED ATM OCN
+EARTH_attributes::
+ Verbosity = 0
+::
+
+# MED #
+MED_model: @[med_model]
+MED_petlist_bounds: @[med_petlist_bounds]
+::
+
+# ATM #
+ATM_model: @[atm_model]
+ATM_petlist_bounds: @[atm_petlist_bounds]
+ATM_attributes::
+ Verbosity = low
+ mesh_atm = @[atm_mesh]
+::
+
+# OCN #
+OCN_model: @[ocn_model]
+OCN_petlist_bounds: @[ocn_petlist_bounds]
+OCN_attributes::
+ Verbosity = 1
+ Diagnostic = 0
+ cdf_impexp_freq = 3
+ cpl_hour = 0
+ cpl_min = 0
+ cpl_sec = @[coupling_interval_sec]
+ base_dtg = @[SYEAR]@[SMONTH]@[SDAY]@[SHOUR]
+ merge_import = .true.
+ skip_first_import = .true.
+ hycom_arche_output = .false.
+ hyc_esmf_exp_output = .true.
+ hyc_esmf_imp_output = .true.
+ hyc_impexp_file = dummy_file
+ espc_show_impexp_minmax = .true.
+ ocean_start_dtg = @[OCEAN_START_DTG]
+ start_hour = 0
+ start_min = 0
+ start_sec = 0
+ end_hour = @[FHMAX]
+ end_min = 0
+ end_sec = 0
+::
+
+# Run Sequence #
+runSeq::
+@@[coupling_interval_sec]
+ MED med_phases_prep_ocn_avg
+ MED -> OCN :remapMethod=redist
+ OCN
+ ATM
+ ATM -> MED :remapMethod=redist
+ MED med_phases_post_atm
+ MED med_phases_aofluxes_run
+ MED med_phases_prep_ocn_accum
+ OCN -> MED :remapMethod=redist:ignoreUnmatchedIndices=true
+ MED med_phases_post_ocn
+ MED med_phases_history_write
+ MED med_phases_restart_write
+@
+::
+
+# Other Attributes #
+DRIVER_attributes::
+ mediator_read_restart = @[USE_COLDSTART]
+::
+
+MED_attributes::
+ Verbosity = 1
+ Diagnostic = 0
+ ATM_model = @[atm_model]
+ OCN_model = @[ocn_model]
+ history_n = 1
+ history_option = nhours
+ history_ymd = -999
+ coupling_mode = @[CPLMODE]
+::
+
+ALLCOMP_attributes::
+ start_type = @[RUNTYPE]
+ case_name = ufs.hafs
+ restart_n = @[RESTART_N]
+ restart_option = nhours
+ restart_ymd = -999
+ normalization = none
+ merge_type = copy
+ ScalarFieldCount = 3
+ ScalarFieldIdxGridNX = 1
+ ScalarFieldIdxGridNY = 2
+ ScalarFieldIdxNextSwCday = 3
+ ScalarFieldName = cpl_scalars
+ orb_eccen = 1.e36
+ orb_iyear = 2000
+ orb_iyear_align = 2000
+ orb_mode = fixed_year
+ orb_mvelp = 1.e36
+ orb_obliq = 1.e36
+::
+
+ATM_modelio::
+ diro = .
+ logfile = @[atm_model].log
+::
+
+OCN_modelio::
+ diro = .
+ logfile = @[ocn_model].log
+::
+
+MED_modelio::
+ diro = .
+ logfile = @[med_model].log
+::
diff --git a/tests/parm/nems.configure.cpld.hafs_docn.IN b/tests/parm/nems.configure.cpld.hafs_docn.IN
new file mode 100755
index 0000000000..2a17d9e674
--- /dev/null
+++ b/tests/parm/nems.configure.cpld.hafs_docn.IN
@@ -0,0 +1,99 @@
+##############################################
+##### NEMS Run-Time Configuration File #####
+##############################################
+
+# EARTH #
+EARTH_component_list: MED ATM OCN
+EARTH_attributes::
+ Verbosity = 0
+::
+
+# MED #
+MED_model: @[med_model]
+MED_petlist_bounds: @[med_petlist_bounds]
+::
+
+# ATM #
+ATM_model: @[atm_model]
+ATM_petlist_bounds: @[atm_petlist_bounds]
+ATM_attributes::
+ Verbosity = 1
+ Diagnostic = 0
+::
+
+# OCN #
+OCN_model: @[ocn_model]
+OCN_petlist_bounds: @[ocn_petlist_bounds]
+OCN_attributes::
+ Verbosity = low
+ mesh_ocn = @[ocn_mesh]
+::
+
+# Run Sequence #
+runSeq::
+@@[coupling_interval_sec]
+ MED med_phases_prep_atm
+ MED -> ATM :remapMethod=redist
+ ATM
+ OCN
+ ATM -> MED :remapMethod=redist
+ MED med_phases_post_atm
+ OCN -> MED :remapMethod=redist
+ MED med_phases_post_ocn
+ MED med_phases_restart_write
+ MED med_phases_history_write
+@
+::
+
+# Other Attributes #
+DRIVER_attributes::
+ mediator_read_restart = @[USE_COLDSTART]
+::
+
+MED_attributes::
+ Verbosity = 1
+ Diagnostic = 0
+ ATM_model = @[atm_model]
+ OCN_model = @[ocn_model]
+ history_n = 1
+ history_option = nhours
+ history_ymd = -999
+ coupling_mode = @[CPLMODE]
+ system_type = ufs
+::
+
+ALLCOMP_attributes::
+ start_type = @[RUNTYPE]
+ case_name = ufs.hafs
+ restart_n = @[RESTART_N]
+ restart_option = nhours
+ restart_ymd = -999
+ normalization = none
+ merge_type = copy
+ ScalarFieldCount = 3
+ ScalarFieldIdxGridNX = 1
+ ScalarFieldIdxGridNY = 2
+ ScalarFieldIdxNextSwCday = 3
+ ScalarFieldName = cpl_scalars
+ orb_eccen = 1.e36
+ orb_iyear = 2000
+ orb_iyear_align = 2000
+ orb_mode = fixed_year
+ orb_mvelp = 1.e36
+ orb_obliq = 1.e36
+::
+
+ATM_modelio::
+ diro = .
+ logfile = @[atm_model].log
+::
+
+OCN_modelio::
+ diro = .
+ logfile = @[ocn_model].log
+::
+
+MED_modelio::
+ diro = .
+ logfile = @[med_model].log
+::
diff --git a/tests/parm/nems.configure.datm_era5_docn_oisst.IN b/tests/parm/nems.configure.datm_era5_docn_oisst.IN
deleted file mode 100755
index a4074ebba1..0000000000
--- a/tests/parm/nems.configure.datm_era5_docn_oisst.IN
+++ /dev/null
@@ -1,101 +0,0 @@
-#############################################
-##### NEMS Run-Time Configuration File #####
-##############################################
-
-# EARTH #
-EARTH_component_list: MED ATM OCN
-EARTH_attributes::
- Verbosity = 0
-::
-
-# MED #
-MED_model: @[med_model]
-MED_petlist_bounds: @[med_petlist_bounds]
-::
-
-# ATM #
-ATM_model: @[atm_model]
-ATM_petlist_bounds: @[atm_petlist_bounds]
-ATM_attributes::
- Verbosity = low
- domain_atm = input/domain.lnd.TL639_Atlantic8.200618.nc
- mesh_atm = input/TL639_200618_ESMFmesh.nc
-::
-
-# OCN #
-OCN_model: @[ocn_model]
-OCN_petlist_bounds: @[ocn_petlist_bounds]
-OCN_attributes::
- domain_ocn = input/domain.ocn.tx025.201105.nc
- mesh_ocn = input/TX025_201105_ESMFmesh.nc
-::
-
-# Run Sequence #
-runSeq::
-@@[coupling_interval_sec]
- OCN
- OCN -> MED :remapMethod=redist
- MED med_phases_prep_ocn_map
- ATM
- ATM -> MED :remapMethod=redist
- MED med_phases_history_write
- MED med_phases_restart_write
-@
-::
-
-# Other Attributes #
-DRIVER_attributes::
- mediator_read_restart = @[use_coldstart]
-::
-
-MED_attributes::
- ATM_model = @[atm_model]
- OCN_model = @[ocn_model]
- history_n = 1
- history_option = nhours
- history_ymd = -999
- coupling_mode = @[cplmode]
- atm2ice_fmapname = unset
- atm2ice_smapname = unset
- atm2ice_vmapname = unset
- atm2ocn_fmapname = unset
- atm2ocn_smapname = unset
- atm2ocn_vmapname = unset
- ocn2atm_fmapname = unset
- ocn2atm_smapname = unset
- ice2atm_fmapname = unset
- ice2atm_smapname = unset
-::
-
-ALLCOMP_attributes::
- ATM_model = @[atm_model]
- OCN_model = @[ocn_model]
- ScalarFieldCount = 3
- ScalarFieldIdxGridNX = 1
- ScalarFieldIdxGridNY = 2
- ScalarFieldIdxNextSwCday = 3
- ScalarFieldName = cpl_scalars
- start_type = @[runtype]
- case_name = ufs.hafs
- restart_n = @[restart_n]
- restart_option = nhours
- restart_ymd = -999
- dbug_flag = 0
- use_coldstart = true
- orb_eccen = 1.e36
- orb_iyear = 2000
- orb_iyear_align = 2000
- orb_mode = fixed_year
- orb_mvelp = 1.e36
- orb_obliq = 1.e36
-::
-
-ATM_modelio::
- diro = .
- logfile = atm.log
-::
-
-OCN_modelio::
- diro = .
- logfile = ocn.log
-::
diff --git a/tests/parm/nems.configure.datm_era5_hycom.IN b/tests/parm/nems.configure.datm_era5_hycom.IN
deleted file mode 100755
index c0bb1dd609..0000000000
--- a/tests/parm/nems.configure.datm_era5_hycom.IN
+++ /dev/null
@@ -1,121 +0,0 @@
-#############################################
-##### NEMS Run-Time Configuration File #####
-##############################################
-
-# EARTH #
-EARTH_component_list: MED ATM OCN
-EARTH_attributes::
- Verbosity = 0
-::
-
-# MED #
-MED_model: @[med_model]
-MED_petlist_bounds: @[med_petlist_bounds]
-::
-
-# ATM #
-ATM_model: @[atm_model]
-ATM_petlist_bounds: @[atm_petlist_bounds]
-ATM_attributes::
- Verbosity = low
- domain_atm = input/domain.lnd.TL639_Atlantic8.200618.nc
- mesh_atm = input/TL639_200618_ESMFmesh.nc
-::
-
-# OCN #
-OCN_model: @[ocn_model]
-OCN_petlist_bounds: @[ocn_petlist_bounds]
-OCN_attributes::
- Verbosity = 1
- Diagnostic = 0
- cdf_impexp_freq = 3
- cpl_hour = 0
- cpl_min = 0
- cpl_sec = 360
- base_dtg = 2019082900
- merge_import = .true.
- skip_first_import = .true.
- hycom_arche_output = .true.
- hyc_esmf_exp_output = .true.
- hyc_esmf_imp_output = .true.
- hyc_impexp_file = dummy_file
- espc_show_impexp_minmax = .true.
- ocean_start_dtg = 43340.00000
- start_hour = 0
- start_min = 0
- start_sec = 0
- end_hour = 126
- end_min = 0
- end_sec = 0
-::
-
-# Run Sequence #
-runSeq::
-@@[coupling_interval_sec]
- MED med_phases_prep_ocn_accum_avg
- MED -> OCN :remapMethod=redist
- OCN
- OCN -> MED :remapMethod=redist:ignoreUnmatchedIndices=true
- MED med_phases_prep_ocn_map
- MED med_phases_prep_ocn_merge
- MED med_phases_prep_ocn_accum_fast
- MED med_phases_ocnalb_run
- ATM
- ATM -> MED :remapMethod=redist
- MED med_phases_history_write
- MED med_phases_restart_write
- MED med_phases_profile
-@
-::
-
-# Other Attributes #
-DRIVER_attributes::
- mediator_read_restart = @[use_coldstart]
-::
-
-MED_attributes::
- ATM_model = @[atm_model]
- OCN_model = @[ocn_model]
- history_n = 1
- history_option = nhours
- history_ymd = -999
- coupling_mode = @[cplmode]
- atm2ice_fmapname = unset
- atm2ice_smapname = unset
- atm2ice_vmapname = unset
- atm2ocn_fmapname = unset
- atm2ocn_smapname = unset
- atm2ocn_vmapname = unset
- ocn2atm_fmapname = unset
- ocn2atm_smapname = unset
- ice2atm_fmapname = unset
- ice2atm_smapname = unset
-::
-
-ALLCOMP_attributes::
- ATM_model = @[atm_model]
- OCN_model = @[ocn_model]
- ScalarFieldCount = 3
- ScalarFieldIdxGridNX = 1
- ScalarFieldIdxGridNY = 2
- ScalarFieldIdxNextSwCday = 3
- ScalarFieldName = cpl_scalars
- start_type = @[runtype]
- case_name = ufs.hafs
- restart_n = @[restart_n]
- restart_option = nhours
- restart_ymd = -999
- dbug_flag = 0
- use_coldstart = true
- orb_eccen = 1.e36
- orb_iyear = 2000
- orb_iyear_align = 2000
- orb_mode = fixed_year
- orb_mvelp = 1.e36
- orb_obliq = 1.e36
-::
-
-ATM_modelio::
- diro = .
- logfile = atm.log
-::
diff --git a/tests/parm/nems.configure.hafs.IN b/tests/parm/nems.configure.hafs.IN
new file mode 100644
index 0000000000..b62156cbf0
--- /dev/null
+++ b/tests/parm/nems.configure.hafs.IN
@@ -0,0 +1,17 @@
+ EARTH_component_list: ATM
+
+ ATM_model: fv3
+ ATM_attributes::
+ ::
+
+ runSeq::
+ ATM
+ ::
+
+ DRIVER_attributes::
+ start_type = @[RUNTYPE]
+ ::
+
+ ALLCOMP_attributes::
+ mediator_read_restart = @[USE_COLDSTART]
+ ::
diff --git a/tests/parm/ocn_modelio.nml b/tests/parm/ocn_modelio.nml
deleted file mode 100755
index 959488b191..0000000000
--- a/tests/parm/ocn_modelio.nml
+++ /dev/null
@@ -1,8 +0,0 @@
-&pio_inparm
- pio_netcdf_format = "64bit_offset"
- pio_numiotasks = -99
- pio_rearranger = 1
- pio_root = 1
- pio_stride = 36
- pio_typename = "netcdf"
-/
diff --git a/tests/rt_datm_docn.sh b/tests/rt_datm_docn.sh
deleted file mode 100755
index 796c0e882e..0000000000
--- a/tests/rt_datm_docn.sh
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/bin/bash
-set -eux
-
-source rt_utils.sh
-source atparse.bash
-
-mkdir -p ${RUNDIR}
-cd $RUNDIR
-
-###############################################################################
-# Make configure and run files
-###############################################################################
-
-# FV3 executable:
-cp ${PATHRT}/$FV3X fv3.exe
-
-# modulefile for FV3 prerequisites:
-cp ${PATHRT}/modules.fv3_${COMPILE_NR} modules.fv3
-
-# Get the shell file that loads the "module" command and purges modules:
-cp ${PATHRT}/../NEMS/src/conf/module-setup.sh.inc module-setup.sh
-
-SRCD="${PATHTR}"
-RUND="${RUNDIR}"
-
-atparse < ${PATHRT}/cdeps_conf/${DATM_RUN:-datm_run.IN} > datm_run
-atparse < ${PATHRT}/cdeps_conf/${DOCN_RUN:-docn_run.IN} > docn_run
-
-# Set up the run directory
-source ./datm_run
-source ./docn_run
-
-if [[ $SCHEDULER = 'pbs' ]]; then
- NODES=$(( TASKS / TPN ))
- if (( NODES * TPN < TASKS )); then
- NODES=$(( NODES + 1 ))
- fi
- atparse < $PATHRT/fv3_conf/fv3_qsub.IN > job_card
-elif [[ $SCHEDULER = 'slurm' ]]; then
- NODES=$(( TASKS / TPN ))
- if (( NODES * TPN < TASKS )); then
- NODES=$(( NODES + 1 ))
- fi
- atparse < $PATHRT/fv3_conf/fv3_slurm.IN > job_card
-elif [[ $SCHEDULER = 'lsf' ]]; then
- if (( TASKS < TPN )); then
- TPN=${TASKS}
- fi
- NODES=$(( TASKS / TPN ))
- if (( NODES * TPN < TASKS )); then
- NODES=$(( NODES + 1 ))
- fi
- atparse < $PATHRT/fv3_conf/fv3_bsub.IN > job_card
-fi
-
-# Driver
-atparse < ${PATHTR}/parm/${NEMS_CONFIGURE:-nems.configure} > nems.configure
-atparse < ${PATHTR}/parm/${MODEL_CONFIGURE:-model_configure.cdeps.IN} > model_configure
-
-# CMEPS
-cp ${PATHTR}/parm/fd_nems.yaml fd_nems.yaml
-cp ${PATHTR}/parm/pio_in pio_in
-cp ${PATHTR}/parm/med_modelio.nml med_modelio.nml
-
-# CDEPS, DATM and DOCN
-cp ${PATHTR}/parm/atm_modelio.nml atm_modelio.nml
-cp ${PATHTR}/parm/ocn_modelio.nml ocn_modelio.nml
-atparse < ${PATHTR}/parm/${DATM_CONFIGURE_A:-datm_in} > datm_in
-atparse < ${PATHTR}/parm/${DATM_CONFIGURE_B:-datm.streams.xml} > datm.streams.xml
-atparse < ${PATHTR}/parm/${DOCN_CONFIGURE_A:-docn_in} > docn_in
-atparse < ${PATHTR}/parm/${DOCN_CONFIGURE_B:-docn.streams.xml} > docn.streams.xml
-
-################################################################################
-# Submit test
-################################################################################
-
-if [[ $ROCOTO = 'false' ]]; then
- submit_and_wait job_card
-else
- chmod u+x job_card
- ./job_card
-fi
-
-check_results
-
-################################################################################
-# End test
-################################################################################
-
-exit 0
diff --git a/tests/rt_datm_hycom.sh b/tests/rt_datm_hycom.sh
deleted file mode 100755
index 40d6f8cd38..0000000000
--- a/tests/rt_datm_hycom.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/bash
-set -eux
-
-source rt_utils.sh
-source atparse.bash
-
-mkdir -p ${RUNDIR}
-cd $RUNDIR
-
-###############################################################################
-# Make configure and run files
-###############################################################################
-
-# FV3 executable:
-cp ${PATHRT}/$FV3X fv3.exe
-
-# modulefile for FV3 prerequisites:
-cp ${PATHRT}/modules.fv3_${COMPILE_NR} modules.fv3
-
-# Get the shell file that loads the "module" command and purges modules:
-cp ${PATHRT}/../NEMS/src/conf/module-setup.sh.inc module-setup.sh
-
-SRCD="${PATHTR}"
-RUND="${RUNDIR}"
-
-atparse < ${PATHRT}/hycom_conf/${HYCOM_RUN:-hycom_run.IN} > hycom_run
-atparse < ${PATHRT}/cdeps_conf/${DATM_RUN:-datm_run.IN} > datm_run
-
-# Set up the run directory
-source ./hycom_run
-source ./datm_run
-
-if [[ $SCHEDULER = 'pbs' ]]; then
- NODES=$(( TASKS / TPN ))
- if (( NODES * TPN < TASKS )); then
- NODES=$(( NODES + 1 ))
- fi
- atparse < $PATHRT/fv3_conf/fv3_qsub.IN > job_card
-elif [[ $SCHEDULER = 'slurm' ]]; then
- NODES=$(( TASKS / TPN ))
- if (( NODES * TPN < TASKS )); then
- NODES=$(( NODES + 1 ))
- fi
- atparse < $PATHRT/fv3_conf/fv3_slurm.IN > job_card
-elif [[ $SCHEDULER = 'lsf' ]]; then
- if (( TASKS < TPN )); then
- TPN=${TASKS}
- fi
- NODES=$(( TASKS / TPN ))
- if (( NODES * TPN < TASKS )); then
- NODES=$(( NODES + 1 ))
- fi
- atparse < $PATHRT/fv3_conf/fv3_bsub.IN > job_card
-fi
-
-# Driver
-atparse < ${PATHTR}/parm/${NEMS_CONFIGURE:-nems.configure} > nems.configure
-atparse < ${PATHTR}/parm/${MODEL_CONFIGURE:-model_configure.cdeps.IN} > model_configure
-
-# CMEPS
-cp ${PATHTR}/parm/fd_nems.yaml fd_nems.yaml
-cp ${PATHTR}/parm/pio_in pio_in
-cp ${PATHTR}/parm/med_modelio.nml med_modelio.nml
-
-# CDEPS, DATM only
-cp ${PATHTR}/parm/atm_modelio.nml atm_modelio.nml
-atparse < ${PATHTR}/parm/${DATM_CONFIGURE_A:-datm_in} > datm_in
-atparse < ${PATHTR}/parm/${DATM_CONFIGURE_B:-datm.streams.xml} > datm.streams.xml
-
-################################################################################
-# Submit test
-################################################################################
-
-if [[ $ROCOTO = 'false' ]]; then
- submit_and_wait job_card
-else
- chmod u+x job_card
- ./job_card
-fi
-
-check_results
-
-################################################################################
-# End test
-################################################################################
-
-exit 0
diff --git a/tests/rt_hafs.conf b/tests/rt_hafs.conf
new file mode 100644
index 0000000000..04418f1d53
--- /dev/null
+++ b/tests/rt_hafs.conf
@@ -0,0 +1,26 @@
+###################################################################################################################################################################################
+# Standalone tests #
+###################################################################################################################################################################################
+
+COMPILE | SUITES=HAFS_v0_gfdlmp 32BIT=Y | | fv3 |
+RUN | fv3_ccpp_regional_natl_c192 | | fv3 |
+
+###################################################################################################################################################################################
+# Fully coupled tests #
+###################################################################################################################################################################################
+
+COMPILE | SUITES=HAFS_v0_gfdlmp_nonsst 32BIT=Y HYCOM=Y CMEPS=Y | | fv3 |
+RUN | cpld_regional_natl_c192 | | fv3 |
+
+###################################################################################################################################################################################
+# Data component coupled tests #
+###################################################################################################################################################################################
+
+# data ocean
+COMPILE | SUITES=HAFS_v0_gfdlmp_nonsst 32BIT=Y CDEPS=Y CDEPS_DOCN=Y CMEPS=Y | | fv3 |
+RUN | cpld_regional_natl_c192_docn_mom6 | | fv3 |
+RUN | cpld_regional_natl_c192_docn_oisst | | fv3 |
+
+# data atmosphere
+COMPILE | CDEPS_DATM=Y HYCOM=Y CMEPS=Y CDEPS=Y | | fv3 |
+RUN | datm_era5_hycom | | fv3 |
diff --git a/tests/rt_orion_cpl.conf b/tests/rt_orion_cpl.conf
deleted file mode 100644
index 2d906760af..0000000000
--- a/tests/rt_orion_cpl.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-#######################################################################################################################################################################################
-# CDEPS CMEPS tests #
-#######################################################################################################################################################################################
-COMPILE | CDEPS_DATM=Y HYCOM=Y CMEPS=Y CDEPS=Y | standard | | fv3 |
-RUN | datm_hycom_cmeps | standard | | fv3 |
-COMPILE | CDEPS_DATM=Y CDEPS_DOCN=Y CMEPS=Y CDEPS=Y | standard | | fv3 |
-RUN | datm_docn_cmeps | standard | | fv3 |
diff --git a/tests/run_test.sh b/tests/run_test.sh
index cdeeb8e42f..5bb6347ef7 100755
--- a/tests/run_test.sh
+++ b/tests/run_test.sh
@@ -86,9 +86,15 @@ cp ${PATHRT}/../NEMS/src/conf/module-setup.sh.inc module-setup.sh
SRCD="${PATHTR}"
RUND="${RUNDIR}"
-atparse < ${PATHRT}/fv3_conf/${FV3_RUN:-fv3_run.IN} > fv3_run
+# FV3_RUN could have multiple entry seperated by space
+for i in ${FV3_RUN:-fv3_run.IN}
+do
+ atparse < ${PATHRT}/fv3_conf/${i} >> fv3_run
+done
+if [[ $FV3 = 'true' ]] || [[ $DATM = 'true' ]]; then
atparse < ${PATHRT}/parm/${INPUT_NML:-input.nml.IN} > input.nml
+fi
atparse < ${PATHRT}/parm/${MODEL_CONFIGURE:-model_configure.IN} > model_configure
@@ -114,6 +120,7 @@ if [[ $DATM_NEMS = 'true' ]] || [[ $DATM_CDEPS = 'true' ]] || [[ $S2S = 'true' ]
edit_diag_table < ${PATHRT}/parm/${DIAG_TABLE:-diag_table_template} > diag_table
edit_data_table < ${PATHRT}/parm/data_table_template > data_table
fi
+
if [[ $DATM_NEMS = 'true' ]]; then
cp ${PATHRT}/parm/datm_data_table.IN datm_data_table
fi
diff --git a/tests/tests/cpld_regional_natl_c192 b/tests/tests/cpld_regional_natl_c192
new file mode 100644
index 0000000000..d50259a020
--- /dev/null
+++ b/tests/tests/cpld_regional_natl_c192
@@ -0,0 +1,70 @@
+###############################################################################
+#
+# FV3 CCPP regional c192 test for North Atlantic domain
+#
+###############################################################################
+
+export TEST_DESCR="FV3 CCPP regional c192 for North Atlantic domain coupled with HYCOM"
+
+export CNTL_DIR=cpld_regional_natl_c192
+
+export LIST_FILES=" dynf000.nc \
+ dynf012.nc \
+ dynf024.nc \
+ phyf000.nc \
+ phyf012.nc \
+ phyf024.nc \
+ RESTART/coupler.res \
+ RESTART/fv_core.res.nc \
+ RESTART/fv_core.res.tile1.nc \
+ RESTART/fv_srf_wnd.res.tile1.nc \
+ RESTART/fv_tracer.res.tile1.nc \
+ RESTART/phy_data.nc \
+ RESTART/sfc_data.nc \
+ ufs.hafs.cpl.r.2019-08-30-00000.nc "
+
+export_fv3
+export_cpl_regional
+
+export TASKS=1340
+export WLCLK=30
+export THRD=2
+export CEN_LON=-62.0
+export CEN_LAT=22.0
+export LON1=-116.90
+export LAT1=-14.45
+export LON2=-7.10
+export LAT2=58.45
+export DLON=0.03
+export DLAT=0.03
+export DT_ATMOS=90
+export IDEFLATE=1
+export NFHMAX_HF=-1
+export NFHOUT_HF=3
+export OUTPUT_FILE="'netcdf_parallel' 'netcdf_parallel'"
+export OUTPUT_GRID='regional_latlon'
+export SDAY=29
+export SHOUR=00
+export SMONTH=08
+export SYEAR=2019
+export WRTTASK_PER_GROUP=80
+export CPLFLX=.true.
+export MERGE_IMPORT=.true.
+export NSTF_NAME=0,0,0,0,0
+export CDEPS_DOCN=false
+export OCEAN_START_DTG=43340.00000
+export INPES=40
+export JNPES=30
+
+export atm_model="fv3"
+export ocn_model="hycom"
+export atm_petlist_bounds="0 1279"
+export ocn_petlist_bounds="1280 1339"
+export med_petlist_bounds="1280 1339"
+export coupling_interval_sec=360
+
+export CCPP_SUITE=HAFS_v0_gfdlmp_nonsst
+export INPUT_NML=ccpp_regional_c192_natl.nml.IN
+export MODEL_CONFIGURE=model_configure_hafsv2.IN
+export NEMS_CONFIGURE="nems.configure.cpld.hafs.IN"
+export FV3_RUN="ccpp_regional_natl_run.IN hycom_hat10_run.IN"
diff --git a/tests/tests/cpld_regional_natl_c192_docn_mom6 b/tests/tests/cpld_regional_natl_c192_docn_mom6
new file mode 100644
index 0000000000..ea199c2995
--- /dev/null
+++ b/tests/tests/cpld_regional_natl_c192_docn_mom6
@@ -0,0 +1,78 @@
+###############################################################################
+#
+# FV3 CCPP regional c192 test for North Atlantic domain domain coupled with regional data ocean (MOM6)
+#
+###############################################################################
+
+export TEST_DESCR="FV3 CCPP regional c192 for North Atlantic domain coupled with regional data ocean (MOM6)"
+
+export CNTL_DIR=cpld_regional_natl_c192_docn_mom6
+
+export LIST_FILES=" dynf000.nc \
+ dynf012.nc \
+ dynf024.nc \
+ phyf000.nc \
+ phyf012.nc \
+ phyf024.nc \
+ RESTART/coupler.res \
+ RESTART/fv_core.res.nc \
+ RESTART/fv_core.res.tile1.nc \
+ RESTART/fv_srf_wnd.res.tile1.nc \
+ RESTART/fv_tracer.res.tile1.nc \
+ RESTART/phy_data.nc \
+ RESTART/sfc_data.nc \
+ ufs.hafs.cpl.r.2019-08-30-00000.nc \
+ ufs.hafs.docn.r.2019-08-30-00000.nc "
+
+export_fv3
+export_cpl_regional
+export_cdeps_docn
+
+export TASKS=1340
+export WLCLK=30
+export THRD=2
+export CEN_LON=-62.0
+export CEN_LAT=22.0
+export LON1=-116.90
+export LAT1=-14.45
+export LON2=-7.10
+export LAT2=58.45
+export DLON=0.03
+export DLAT=0.03
+export DT_ATMOS=90
+export IDEFLATE=1
+export NFHMAX_HF=-1
+export NFHOUT_HF=3
+export OUTPUT_FILE="'netcdf_parallel' 'netcdf_parallel'"
+export OUTPUT_GRID='regional_latlon'
+export SDAY=29
+export SHOUR=00
+export SMONTH=08
+export SYEAR=2019
+export WRTTASK_PER_GROUP=80
+export CPLFLX=.true.
+export MERGE_IMPORT=.true.
+export NSTF_NAME=0,0,0,0,0
+export CDEPS_DOCN=true
+export INPES=40
+export JNPES=30
+
+export atm_model="fv3"
+export ocn_model="docn"
+export atm_petlist_bounds="0 1279"
+export ocn_petlist_bounds="1280 1339"
+export med_petlist_bounds="1280 1339"
+export coupling_interval_sec=360
+
+export ocn_mesh="docn/hat10_210129_ESMFmesh_py.nc"
+export ocn_data="docn/hycom_201908_surf_nolev.nc"
+export ocn_data_var="temp"
+export ocn_nx_global=1135
+export ocn_ny_global=633
+
+export FV3_RUN=ccpp_regional_natl_run.IN
+export CCPP_SUITE=HAFS_v0_gfdlmp_nonsst
+export INPUT_NML=ccpp_regional_c192_natl.nml.IN
+export MODEL_CONFIGURE=model_configure_hafsv2.IN
+export NEMS_CONFIGURE="nems.configure.cpld.hafs_docn.IN"
+export FV3_RUN="ccpp_regional_natl_run.IN cpld_docn_cdeps_mom6.IN"
diff --git a/tests/tests/cpld_regional_natl_c192_docn_oisst b/tests/tests/cpld_regional_natl_c192_docn_oisst
new file mode 100644
index 0000000000..7a14602523
--- /dev/null
+++ b/tests/tests/cpld_regional_natl_c192_docn_oisst
@@ -0,0 +1,78 @@
+###############################################################################
+#
+# FV3 CCPP regional c192 test for North Atlantic domain domain coupled with regional data ocean (OISST)
+#
+###############################################################################
+
+export TEST_DESCR="FV3 CCPP regional c192 for North Atlantic domain coupled with regional data ocean (OISST)"
+
+export CNTL_DIR=cpld_regional_natl_c192_docn_oisst
+
+export LIST_FILES=" dynf000.nc \
+ dynf012.nc \
+ dynf024.nc \
+ phyf000.nc \
+ phyf012.nc \
+ phyf024.nc \
+ RESTART/coupler.res \
+ RESTART/fv_core.res.nc \
+ RESTART/fv_core.res.tile1.nc \
+ RESTART/fv_srf_wnd.res.tile1.nc \
+ RESTART/fv_tracer.res.tile1.nc \
+ RESTART/phy_data.nc \
+ RESTART/sfc_data.nc \
+ ufs.hafs.cpl.r.2019-08-30-00000.nc \
+ ufs.hafs.docn.r.2019-08-30-00000.nc "
+
+export_fv3
+export_cpl_regional
+export_cdeps_docn
+
+export TASKS=1340
+export WLCLK=30
+export THRD=2
+export CEN_LON=-62.0
+export CEN_LAT=22.0
+export LON1=-116.90
+export LAT1=-14.45
+export LON2=-7.10
+export LAT2=58.45
+export DLON=0.03
+export DLAT=0.03
+export DT_ATMOS=90
+export IDEFLATE=1
+export NFHMAX_HF=-1
+export NFHOUT_HF=3
+export OUTPUT_FILE="'netcdf_parallel' 'netcdf_parallel'"
+export OUTPUT_GRID='regional_latlon'
+export SDAY=29
+export SHOUR=00
+export SMONTH=08
+export SYEAR=2019
+export WRTTASK_PER_GROUP=80
+export CPLFLX=.true.
+export MERGE_IMPORT=.true.
+export NSTF_NAME=0,0,0,0,0
+export CDEPS_DOCN=true
+export INPES=40
+export JNPES=30
+
+export atm_model="fv3"
+export ocn_model="docn"
+export atm_petlist_bounds="0 1279"
+export ocn_petlist_bounds="1280 1339"
+export med_petlist_bounds="1280 1339"
+export coupling_interval_sec=360
+
+export ocn_mesh="docn/TX025_201215_ESMFmesh_direct.nc"
+export ocn_data="docn/sst.day.mean.2019.nc"
+export ocn_data_var="sst"
+export ocn_nx_global=1440
+export ocn_ny_global=720
+
+export FV3_RUN=ccpp_regional_natl_run.IN
+export CCPP_SUITE=HAFS_v0_gfdlmp_nonsst
+export INPUT_NML=ccpp_regional_c192_natl.nml.IN
+export MODEL_CONFIGURE=model_configure_hafsv2.IN
+export NEMS_CONFIGURE="nems.configure.cpld.hafs_docn.IN"
+export FV3_RUN="ccpp_regional_natl_run.IN cpld_docn_cdeps_oisst.IN"
diff --git a/tests/tests/datm_docn_cmeps b/tests/tests/datm_docn_cmeps
deleted file mode 100644
index d5bde33514..0000000000
--- a/tests/tests/datm_docn_cmeps
+++ /dev/null
@@ -1,56 +0,0 @@
-###############################################################################
-#
-# DATM_HYCOM_CMEPS TEST
-#
-###############################################################################
-
-export TEST_DESCR="Data atmosphere coupled with data ocean"
-
-export CNTL_DIR="datm_docn_cmeps"
-
-export LIST_FILES="ufs.hafs.cpl.hi.2019-08-29-03600.nc \
- ufs.hafs.cpl.hi.2019-08-30-03600.nc \
- ufs.hafs.cpl.hi.2019-08-31-03600.nc \
- ufs.hafs.cpl.hi.2019-09-01-03600.nc \
- ufs.hafs.cpl.hi.2019-09-02-03600.nc \
- ufs.hafs.cpl.hi.2019-09-03-03600.nc"
-
-export TASKS=240
-export TPN=40
-export THRD=1
-export WLCLK=180
-
-# configuration
-export DAYS="2"
-export FHMAX="48"
-export FDIAG="6"
-export SYEAR=2019
-export SMONTH=08
-export SDAY=29
-export INPES=4
-export JNPES=5
-
-# nems.configure
-export NEMS_CONFIGURE="nems.configure.datm_era5_docn_oisst.IN"
-export coupling_interval_sec=1800
-export med_model="nems"
-export med_petlist_bounds="0 119"
-export atm_model="datm"
-export atm_petlist_bounds="0 119"
-export ocn_model="docn"
-export ocn_petlist_bounds="120 239"
-export restart_n=48
-export cplmode="hafs"
-export runtype="startup"
-export use_coldstart="false"
-
-# cdeps
-export DATM_CONFIGURE_A="datm_in.era5"
-export DATM_CONFIGURE_B="datm.streams.xml.era5"
-export DOCN_CONFIGURE_A="docn_in.oisst"
-export DOCN_CONFIGURE_B="docn.streams.xml.oisst"
-
-# run
-export RUN_SCRIPT=rt_datm_docn.sh
-export DATM_RUN=datm_era5_run.IN
-export DOCN_RUN=docn_oisst_run.IN
diff --git a/tests/tests/datm_era5_hycom b/tests/tests/datm_era5_hycom
new file mode 100644
index 0000000000..b910a2efc6
--- /dev/null
+++ b/tests/tests/datm_era5_hycom
@@ -0,0 +1,60 @@
+###############################################################################
+#
+# DATM_HYCOM_CMEPS TEST
+#
+###############################################################################
+
+export TEST_DESCR="Data atmosphere coupled with regional HYCOM"
+
+export CNTL_DIR="datm_era5_hycom"
+
+export LIST_FILES="ufs.hafs.cpl.hi.2019-08-29-03600.nc \
+ ufs.hafs.cpl.hi.2019-08-29-07200.nc \
+ ufs.hafs.cpl.hi.2019-08-29-10800.nc \
+ ufs.hafs.cpl.hi.2019-08-29-14400.nc \
+ ufs.hafs.cpl.hi.2019-08-29-18000.nc \
+ ufs.hafs.cpl.hi.2019-08-29-21600.nc \
+ ufs.hafs.cpl.hi.2019-08-29-25200.nc \
+ ufs.hafs.cpl.hi.2019-08-29-28800.nc \
+ ufs.hafs.cpl.hi.2019-08-29-32400.nc \
+ ufs.hafs.cpl.hi.2019-08-29-36000.nc \
+ ufs.hafs.cpl.hi.2019-08-29-39600.nc \
+ ufs.hafs.cpl.hi.2019-08-29-43200.nc \
+ ufs.hafs.cpl.hi.2019-08-29-46800.nc \
+ ufs.hafs.cpl.hi.2019-08-29-50400.nc \
+ ufs.hafs.cpl.hi.2019-08-29-54000.nc \
+ ufs.hafs.cpl.hi.2019-08-29-57600.nc \
+ ufs.hafs.cpl.hi.2019-08-29-61200.nc \
+ ufs.hafs.cpl.hi.2019-08-29-64800.nc \
+ ufs.hafs.cpl.hi.2019-08-29-68400.nc \
+ ufs.hafs.cpl.hi.2019-08-29-72000.nc \
+ ufs.hafs.cpl.hi.2019-08-29-75600.nc \
+ ufs.hafs.cpl.hi.2019-08-29-79200.nc \
+ ufs.hafs.cpl.hi.2019-08-29-82800.nc \
+ ufs.hafs.cpl.hi.2019-08-30-00000.nc \
+ ufs.hafs.cpl.r.2019-08-30-00000.nc"
+
+export_cdeps_datm
+export_cpl_regional
+
+export TASKS=120
+export WLCLK=30
+export CDEPS_DOCN=false
+export OCEAN_START_DTG=43340.00000
+
+export ocn_model="hycom"
+export med_petlist_bounds="0 59"
+export atm_petlist_bounds="0 59"
+export ocn_petlist_bounds="60 119"
+export coupling_interval_sec=360
+
+export atm_datamode="ERA5"
+export atm_mesh="datm/TL639_200618_ESMFmesh.nc"
+export atm_data1="datm/ERA5.TL639.2019.08.200618_subset.nc"
+export atm_data2="datm/ERA5.TL639.2019.09.200618_subset.nc"
+export atm_nx_global=1440
+export atm_ny_global=721
+
+export MODEL_CONFIGURE="model_configure_hafsv2.IN"
+export NEMS_CONFIGURE="nems.configure.cpld.hafs_datm.IN"
+export FV3_RUN="cpld_datm_cdeps_era5.IN hycom_hat10_run.IN"
diff --git a/tests/tests/datm_hycom_cmeps b/tests/tests/datm_hycom_cmeps
deleted file mode 100644
index 197fa52e28..0000000000
--- a/tests/tests/datm_hycom_cmeps
+++ /dev/null
@@ -1,61 +0,0 @@
-###############################################################################
-#
-# DATM_HYCOM_CMEPS TEST
-#
-###############################################################################
-
-export TEST_DESCR="Data atmosphere coupled with regional HYCOM"
-
-export CNTL_DIR="datm_hycom_cmeps"
-
-export LIST_FILES="ufs.hafs.cpl.hi.2019-08-29-03600.nc \
- ufs.hafs.cpl.hi.2019-08-30-03600.nc \
- ufs.hafs.cpl.hi.2019-08-31-03600.nc \
- ufs.hafs.cpl.hi.2019-09-01-03600.nc \
- ufs.hafs.cpl.hi.2019-09-02-03600.nc \
- ufs.hafs.cpl.hi.2019-09-03-03600.nc"
-
-export TASKS=240
-export TPN=40
-export THRD=1
-export WLCLK=180
-
-# configuration
-export DAYS="2"
-export FHMAX="48"
-export FDIAG="6"
-export SYEAR=2019
-export SMONTH=08
-export SDAY=29
-export INPES=4
-export JNPES=5
-
-# nems.configure
-export NEMS_CONFIGURE="nems.configure.datm_era5_hycom.IN"
-export coupling_interval_sec=1800
-export med_model="nems"
-export med_petlist_bounds="0 119"
-export atm_model="datm"
-export atm_petlist_bounds="0 119"
-export ocn_model="hycom"
-export ocn_petlist_bounds="120 239"
-export restart_n=48
-export cplmode="hafs"
-export runtype="startup"
-export use_coldstart="false"
-
-# cdeps
-export DATM_CONFIGURE_A="datm_in.era5"
-export DATM_CONFIGURE_B="datm.streams.xml.era5"
-
-# hycom
-export HYCOM_CONFIGURE_A="blkdat.input"
-export HYCOM_CONFIGURE_B="patch.input"
-export HYCOM_CONFIGURE_C="ports.input"
-export HYCOM_CONFIGURE_D="hycom_settings"
-export HYCOM_CONFIGURE_E="limits"
-
-# run
-export RUN_SCRIPT=rt_datm_hycom.sh
-export HYCOM_RUN=hycom_hat10_run.IN
-export DATM_RUN=datm_era5_run.IN
diff --git a/tests/tests/fv3_ccpp_regional_natl_c192 b/tests/tests/fv3_ccpp_regional_natl_c192
new file mode 100644
index 0000000000..237aa09bdd
--- /dev/null
+++ b/tests/tests/fv3_ccpp_regional_natl_c192
@@ -0,0 +1,58 @@
+###############################################################################
+#
+# FV3 CCPP regional c192 test for North Atlantic domain
+#
+###############################################################################
+
+export TEST_DESCR="Compare FV3 CCPP regional c192 results for North Atlantic domain with previous trunk version"
+
+export CNTL_DIR=fv3_regional_natl_c192
+
+export LIST_FILES=" dynf000.nc \
+ dynf012.nc \
+ dynf024.nc \
+ phyf000.nc \
+ phyf012.nc \
+ phyf024.nc "
+
+export_fv3
+
+export TASKS=1280
+export WLCLK=30
+export THRD=2
+export CEN_LON=-62.0
+export CEN_LAT=22.0
+export LON1=-116.90
+export LAT1=-14.45
+export LON2=-7.10
+export LAT2=58.45
+export DLON=0.03
+export DLAT=0.03
+export DT_ATMOS=90
+export IDEFLATE=1
+export NFHMAX_HF=-1
+export NFHOUT_HF=3
+export OUTPUT_FILE="'netcdf_parallel' 'netcdf_parallel'"
+export OUTPUT_GRID='regional_latlon'
+export SDAY=29
+export SHOUR=00
+export SMONTH=08
+export SYEAR=2019
+export WRTTASK_PER_GROUP=80
+export CPLFLX=.false.
+export MERGE_IMPORT=.false.
+export NSTF_NAME=2,0,0,0,0
+export INPES=40
+export JNPES=30
+export CMEPS=false
+export RUNTYPE="startup"
+export USE_COLDSTART="false"
+
+export ESMF_RUNTIME_PROFILE=ON
+export ESMF_RUNTIME_PROFILE_OUTPUT=SUMMARY
+
+export CCPP_SUITE=HAFS_v0_gfdlmp
+export INPUT_NML=ccpp_regional_c192_natl.nml.IN
+export NEMS_CONFIGURE="nems.configure.hafs.IN"
+export MODEL_CONFIGURE="model_configure_hafsv2.IN"
+export FV3_RUN=ccpp_regional_natl_run.IN