diff --git a/tests/default_vars.sh b/tests/default_vars.sh index 9730a4ac8c..64ece1d2c5 100644 --- a/tests/default_vars.sh +++ b/tests/default_vars.sh @@ -89,6 +89,8 @@ export OCN_tasks_cdeps_025=120 export ICE_tasks_cdeps_025=48 + export WAV_tasks_cdeps=120 + export INPES_aqm=33 export JNPES_aqm=8 @@ -1025,13 +1027,13 @@ export_ugwpv1() { exit 1 ;; esac - + if [[ ${DO_GSL_DRAG_SS} = .true. ]]; then export CDMBGWD=${CDMBGWD_GSL}; fi if [[ ${SEDI_SEMI} = .true. ]]; then export DT_ATMOS=$((DT_ATMOS/2)); fi export DT_INNER=${DT_ATMOS} } - + # Defaults for the CICE6 model namelist, mx100 export_cice6() { diff --git a/tests/fv3_conf/cpld_datm_cdeps.IN b/tests/fv3_conf/cpld_datm_cdeps.IN index fa6fda2bd6..b4580054ce 100644 --- a/tests/fv3_conf/cpld_datm_cdeps.IN +++ b/tests/fv3_conf/cpld_datm_cdeps.IN @@ -21,6 +21,14 @@ cp @[INPUTDATA_ROOT]/CICE_FIX/@[OCNRES]/grid_cice_NEMS_mx@[OCNRES].nc . cp @[INPUTDATA_ROOT]/CICE_FIX/@[OCNRES]/kmtu_cice_NEMS_mx@[OCNRES].nc . cp @[INPUTDATA_ROOT]/CICE_FIX/@[OCNRES]/mesh.mx@[OCNRES].nc . +# WW3 fix/input +if [[ $CPLWAV == .true. ]]; then + cp @[INPUTDATA_ROOT_WW3]/@[WW3_MODDEF] mod_def.ww3 + if [[ ${WW3_DOMAIN:0:2} != mx ]]; then + cp @[INPUTDATA_ROOT_WW3]/@[MESH_WAV] . + fi +fi + if [ $WARM_START = .false. ]; then # cold start if [[ $OCNRES == '025' ]]; then diff --git a/tests/parm/ufs.configure.datm_s2sw_cdeps.IN b/tests/parm/ufs.configure.datm_s2sw_cdeps.IN new file mode 100644 index 0000000000..4394455fb4 --- /dev/null +++ b/tests/parm/ufs.configure.datm_s2sw_cdeps.IN @@ -0,0 +1,156 @@ +############################################# +#### UFS Run-Time Configuration File ###### +############################################# + +# ESMF # +logKindFlag: @[esmf_logkind] +globalResourceControl: false + +# EARTH # +EARTH_component_list: MED ATM OCN ICE WAV +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 = 0 + DumpFields = false + mesh_atm = @[MESH_ATM] + diro = "." + logfile = atm.log + stop_n = 24 + stop_option = nhours + stop_ymd = -999 + write_restart_at_endofrun = .true. +:: + +# OCN # +OCN_model: @[ocn_model] +OCN_petlist_bounds: @[ocn_petlist_bounds] +OCN_attributes:: + Verbosity = 0 + DumpFields = false + ProfileMemory = false + OverwriteSlice = true + mesh_ocn = @[MESH_OCN] + use_coldstart = @[use_coldstart] + use_mommesh = @[use_mommesh] +:: + +# ICE # +ICE_model: @[ice_model] +ICE_petlist_bounds: @[ice_petlist_bounds] +ICE_attributes:: + Verbosity = 0 + DumpFields = false + ProfileMemory = false + OverwriteSlice = true + mesh_ice = @[MESH_ICE] + eps_imesh = @[eps_imesh] + stop_n = @[RESTART_N] + stop_option = nhours + stop_ymd = -999 +:: + +# WAV # +WAV_model: @[wav_model] +WAV_petlist_bounds: @[wav_petlist_bounds] +WAV_attributes:: + Verbosity = 0 + OverwriteSlice = false + mesh_wav = @[MESH_WAV] + user_histname = @[WW3_user_histname] + use_historync = @[WW3_historync] + use_restartnc = @[WW3_restartnc] + restart_from_binary = @[WW3_restart_from_binary] + pio_typename = @[WW3_PIO_FORMAT] + pio_numiotasks = @[WW3_PIO_IOTASKS] + pio_stride = @[WW3_PIO_STRIDE] + pio_rearranger = @[WW3_PIO_REARR] + pio_root = @[WW3_PIO_ROOT] +:: + +# CMEPS concurrent warm run sequence +runSeq:: +@@[coupling_interval_slow_sec] + MED med_phases_prep_wav_avg + MED med_phases_prep_ocn_avg + MED -> WAV :remapMethod=redist + MED -> OCN :remapMethod=redist + WAV + OCN + @@[coupling_interval_fast_sec] + MED med_phases_prep_atm + MED med_phases_prep_ice + MED -> ATM :remapMethod=redist + MED -> ICE :remapMethod=redist + ATM + ICE + ATM -> MED :remapMethod=redist + MED med_phases_post_atm + ICE -> MED :remapMethod=redist + MED med_phases_post_ice + MED med_phases_ocnalb_run + MED med_phases_prep_ocn_accum + MED med_phases_prep_wav_accum + @ + OCN -> MED :remapMethod=redist + WAV -> MED :remapMethod=redist + MED med_phases_post_ocn + MED med_phases_post_wav + MED med_phases_restart_write +@ +:: + +# CMEPS variables + +DRIVER_attributes:: +:: + +MED_attributes:: + Verbosity = 0 + dbug_flag = 0 + ATM_model = @[atm_model] + ICE_model = @[ice_model] + OCN_model = @[ocn_model] + WAV_model = @[wav_model] + coupling_mode = ufs.nfrac.aoflux + pio_rearranger = @[pio_rearranger] +:: + +ALLCOMP_attributes:: + ScalarFieldCount = 3 + ScalarFieldIdxGridNX = 1 + ScalarFieldIdxGridNY = 2 + ScalarFieldIdxNextSwCday = 3 + ScalarFieldName = cpl_scalars + start_type = @[RUNTYPE] + restart_dir = @[CMEPS_RESTART_DIR] + case_name = datm.gefs + restart_n = @[RESTART_N] + restart_option = nhours + restart_ymd = -999 + write_restart_at_endofrun = @[WRITE_ENDOFRUN_RESTART] + dbug_flag = @[cap_dbug_flag] + coldair_outbreak_mod = .false. + flds_wiso = .false. + flux_convergence = @[flux_convergence] + flux_max_iteration = @[flux_iteration] + ocn_surface_flux_scheme = @[flux_scheme] + orb_eccen = 1.e36 + orb_iyear = 2000 + orb_iyear_align = 2000 + orb_mode = fixed_year + orb_mvelp = 1.e36 + orb_obliq = 1.e36 + stop_n = @[FHMAX] + stop_option = nhours + stop_ymd = -999 +:: diff --git a/tests/rt.ds2sw b/tests/rt.ds2sw new file mode 100644 index 0000000000..143f4787fd --- /dev/null +++ b/tests/rt.ds2sw @@ -0,0 +1,3 @@ +### CDEPS Data Atmosphere tests with OCN+ICE+WAV ### +COMPILE | datm_s2sw | intel | -DAPP=DATM-S2SW | - wcoss2 | fv3 | +RUN | datm_s2sw_gfsv17 | - wcoss2 | baseline | diff --git a/tests/tests/datm_s2sw_gfsv17 b/tests/tests/datm_s2sw_gfsv17 new file mode 100644 index 0000000000..004163efb7 --- /dev/null +++ b/tests/tests/datm_s2sw_gfsv17 @@ -0,0 +1,75 @@ +# +# DATM_CDEPS_MOM6_CICE_CMEPS_GEFS test +# + +export TEST_DESCR="DATM_CDEPS-MOM6-CICE-WW3-CMEPS_GEFS - 1/4deg ocean+ice + unstructured WW3 " + +export CNTL_DIR=datm_s2sw_gfsv17 + +export LIST_FILES="RESTART/20111001.120000.MOM.res.nc \ + RESTART/20111001.120000.MOM.res_1.nc \ + RESTART/20111001.120000.MOM.res_2.nc \ + RESTART/20111001.120000.MOM.res_3.nc \ + RESTART/iced.2011-10-01-43200.nc \ + RESTART/DATM_GEFS_NEW.cpl.r.2011-10-01-43200.nc" + +export_datm_cdeps +export_ww3 +export atm_datamode=GEFS +export DAYS=1.0 +export FHMAX=24 +export RESTART_N=${FHMAX} +export DT_DYNAM_MOM6=900 +export DT_THERM_MOM6=1800 + +export IATM=1536 +export JATM=768 +export ATM_NX_GLB=$IATM +export ATM_NY_GLB=$JATM +export ATMRES=${IATM}x${JATM} +export DATM_SRC=GEFS_NEW +export FILEBASE_DATM=gefs +export MESH_ATM=${FILEBASE_DATM}_mesh.nc +export stream_files="INPUT/${FILEBASE_DATM}.201110.nc" +export STREAM_OFFSET=-21600 + +ATM_compute_tasks=${ATM_compute_tasks_cdeps_025} +OCN_tasks=${OCN_tasks_cdeps_025} +ICE_tasks=${ICE_tasks_cdeps_025} +WAV_tasks=${WAV_tasks_cdeps} + +# ocn/ice resolution +export OCNRES=025 +export ICERES=0.25 +export NX_GLB=1440 +export NY_GLB=1080 +export CICE_NPROC=48 +export np2=`expr $CICE_NPROC / 2` +export CICE_BLCKX=`expr $NX_GLB / $np2` +export CICE_BLCKY=`expr $NY_GLB / 2` +export CICE_DIAGFREQ=`expr $((FHMAX-$FHROT)) \* 3600 / $DT_CICE` + +# resolution dependent files +export MOM6_INPUT=MOM_input_${OCNRES}.IN +export MESH_ICE=mesh.mx${OCNRES}.nc +export MESH_OCN=mesh.mx${OCNRES}.nc +export CICE_GRID=grid_cice_NEMS_mx${OCNRES}.nc +export CICE_MASK=kmtu_cice_NEMS_mx${OCNRES}.nc +export MOM6_CHLCLIM='"seawifs-clim-1997-2010.1440x1080.v20180328.nc"' +export MOM6_RIVER_RUNOFF=True +export MOM6_FRUNOFF=runoff.daitren.clim.1440x1080.v20180328.nc +export MOM6_RESTART_SETTING=r + +# waves +export MOM6_USE_LI2016=True +export MOM6_USE_WAVES=True +export WW3_DOMAIN=global_270k +export MESH_WAV=mesh.${WW3_DOMAIN}.nc +export WW3_MODDEF=mod_def.exp.${WW3_DOMAIN} +# slow loop +export WW3_RSTFLDS="ice" + +# used only in cpld_datm_cdeps.IN +export CPLWAV=.true. +export FV3_RUN=cpld_datm_cdeps.IN +export UFS_CONFIGURE=ufs.configure.datm_s2sw_cdeps.IN \ No newline at end of file