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