Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Standalone" WW3 application (WAV_DS2S) and regression test (wav_ds2s_datm_docn_pcice) #2394

Draft
wants to merge 7 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMakeModules/Modules)
###############################################################################

# Valid applications and choices
list(APPEND VALID_APPS ATM ATMAERO ATMAQ ATMW ATMWM ATML ATMF LND S2S S2SA S2SW S2SWA S2SWAL ATM_DS2S ATM_DS2S-PCICE HAFS HAFSW HAFS-MOM6 HAFS-MOM6W HAFS-ALL NG-GODAS)
list(APPEND VALID_APPS ATM ATMAERO ATMAQ ATMW ATMWM ATML ATMF LND S2S S2SA S2SW S2SWA S2SWAL ATM_DS2S ATM_DS2S-PCICE HAFS HAFSW HAFS-MOM6 HAFS-MOM6W HAFS-ALL NG-GODAS WAV_DS2S)
set(APP NONE CACHE BOOL "Application Name")
if(NOT (APP IN_LIST VALID_APPS))
message(FATAL_ERROR "${APP} is not a valid application.\nValid Applications are: ${VALID_APPS}")
Expand Down
8 changes: 8 additions & 0 deletions cmake/configure_apps.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,11 @@ if(APP MATCHES "^(LND)$")
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
set(NOAHMP ON CACHE BOOL "Enable NOAHMP" FORCE)
endif()

if(APP MATCHES "^(WAV_DS2S)$")
set(CMEPS ON CACHE BOOL "Enable CMEPS" FORCE)
set(CDEPS ON CACHE BOOL "Enable CDEPS" FORCE)
set(CICE6 ON CACHE BOOL "Enable CICE6" FORCE)
set(WW3 ON CACHE BOOL "Enable WAVEWATCH III" FORCE)
message("Configuring UFS app in WAV_DS2S with CDEPS data and prescribed ice sea ice mode")
endif()
2 changes: 2 additions & 0 deletions tests/default_vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1159,6 +1159,8 @@ export_ww3() {
export WW3_IC1='F'
export WW3_IC5='F'
export WW3_user_sets_restname="true"
export WW3_user_sets_histname="false"
export WW3_gridded_netcdfout="false"
}

export_fire_behavior() {
Expand Down
14 changes: 14 additions & 0 deletions tests/fv3_conf/cpld_datm_cdeps_gfs.IN
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -43,4 +51,10 @@ else
cp ../${DEP_RUN}${RT_SUFFIX}/${CICE_RESTART_DIR}/iced.2021-03-22-64800.nc ./INPUT
RFILE="iced.2021-03-22-64800.nc"
ls -1 "./INPUT/"${RFILE}>ice.restart_file

# WAVE restart file
if [[ $CPLWAV == .true. ]]; then
RFILE=ufs.cpld.ww3.r.${RESTART_FILE_SUFFIX_SECS}
cp ../${DEP_RUN}${SUFFIX}/${RFILE} .
fi
fi
5 changes: 4 additions & 1 deletion tests/parm/ufs.configure.s2sw_fast_esmf.IN
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ WAV_attributes::
OverwriteSlice = false
mesh_wav = @[MESH_WAV]
user_sets_restname = @[WW3_user_sets_restname]
user_sets_histname = @[WW3_user_sets_histname]
gridded_netcdfout = @[WW3_gridded_netcdfout]
::

# CMEPS warm run sequence
Expand Down Expand Up @@ -116,11 +118,12 @@ MED_attributes::
ocean_albedo_limit = @[ocean_albedo_limit]
::
ALLCOMP_attributes::
ScalarFieldCount = 3
ScalarFieldCount = 4
ScalarFieldIdxGridNX = 1
ScalarFieldIdxGridNY = 2
ScalarFieldIdxGridNTile = 3
ScalarFieldName = cpl_scalars
ScalarFieldIdxNextSwCday = 4 # required for data atmosphere configurations
start_type = @[RUNTYPE]
restart_dir = @[CMEPS_RESTART_DIR]
case_name = ufs.cpld
Expand Down
3 changes: 3 additions & 0 deletions tests/rt.conf
Original file line number Diff line number Diff line change
Expand Up @@ -426,6 +426,9 @@ RUN | cpld_control_pdlib_p8 | + hera hercules
COMPILE | s2sw_pdlib_debug | gnu | -DAPP=S2SW -DCCPP_SUITES=FV3_GFS_v17_coupled_p8_ugwpv1 -DPDLIB=ON -DDEBUG=ON | + hera hercules | fv3 |
RUN | cpld_debug_pdlib_p8 | + hercules | baseline |

COMPILE | wav_ds2s_datm_docn_pcice | intel | -DAPP=WAV_DS2S -DPDLIB=ON | + hera hercules | fv3 |
RUN | wav_ds2s_datm_docn_pcice | + hera hercules | baseline |

### CDEPS Data Atmosphere test ###
COMPILE | datm_cdeps | gnu | -DAPP=NG-GODAS | + hera hercules | fv3 |
RUN | datm_cdeps_control_cfsr | + hera hercules | baseline |
Expand Down
118 changes: 118 additions & 0 deletions tests/tests/wav_ds2s_datm_docn_pcice
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
#
# wav_ds2s_datm_docn_pcice
#

export TEST_DESCR="Active WW3-CMEPS-DATM-DOCN-PrescribedIceCICE system - C96MX100 unstr WW3 PDLIB"

export CNTL_DIR=wav_ds2s_datm_docn_pcice

export LIST_FILES="RESTART/20210323.060000.coupler.res \
RESTART/iced.2021-03-23-21600.nc \
RESTART/ufs.cpld.cpl.r.2021-03-23-21600.nc \
20210323.060000.out_pnt.ww3 \
20210323.060000.out_grd.ww3 "

export_datm_cdeps

#model configure
export SYEAR=2021
export SMONTH=03
export SDAY=22
export SHOUR=06
export CHOUR=06
export FHMAX=24
export FHROT=0

#initial component exports
export ATMRES=C96
export OCNRES=100
export ICERES=1.00
export NX_GLB=360
export NY_GLB=320
export ATM_compute_tasks=18
export OCN_tasks=12
export ICE_tasks=18
export WAV_tasks=128
export_cice6
export_ww3
export_cmeps

export FV3=false
export S2S=false
export HAFS=false
export AQM=false
export DATM_CDEPS=true
export DOCN_CDEPS=true
export DICE_CDEPS=false
export CICE_PRESCRIBED=true
export med_model=cmeps
export wav_model=ww3
export atm_model=datm
export ocn_model=docn
export ice_model=cice6

export RESTART_N=${FHMAX}
export RESTART_INTERVAL="${RESTART_N} -1"
export OUTPUT_FH='24 -1'

export DATM_SRC=GFS
export FILENAME_BASE=gfs.
export IATM=3072
export JATM=1536
export ATM_NX_GLB=$IATM
export ATM_NY_GLB=$JATM
export ATMRES=${IATM}x${JATM}
export MESH_ATM=${FILENAME_BASE//.}_mesh.nc
export atm_datamode=GFS
export stream_files="INPUT/gfs.202103.nc"

export WW3_DOMAIN=global_270k
export MESH_WAV=mesh.${WW3_DOMAIN}.nc
export WW3_MODDEF=mod_def.exp.${WW3_DOMAIN}
export CPLWAV=.true.
export CPLWAV2ATM=.true.
#waves - ww3_shel.nml.IN
export WW3_RSTDTHR=12
WW3_DT_2_RST="$(printf "%02d" $(( WW3_RSTDTHR*3600 )))"
export WW3_DT_2_RST
export WW3_OUTDTHR=1
WW3_DTFLD="$(printf "%02d" $(( WW3_OUTDTHR*3600 )))"
export WW3_DTFLD
WW3_DTPNT="$(printf "%02d" $(( WW3_OUTDTHR*3600 )))"
export WW3_DTPNT
export WW3_OUTPARS="WND HS FP DP PHS PTP PDIR"
export WW3_CUR='C'
export WW3_ICE='C'
export WW3_IC1='F'
export WW3_IC5='F'
export WW3_user_sets_histname="true"
export WW3_gridded_netcdfout="true" #https://github.com/NOAA-EMC/WW3/pull/780

#CDEPS docn settings
export ocn_datamode=sstdata
#export MESH_OCN=TX025_210327_ESMFmesh_py.nc
#export ocn_data="INPUT/oisst-avhrr-v02r01.202103.nc"
export MESH_OCN=e5.oper.an.mesh.nc
export ocn_data="INPUT/sst_siconc_skt.era5.20210321_20210331.nc"
export ocn_data_var=sst
export ocn_nx_global=1440
export ocn_ny_global=721
export DOCN_IN_CONFIGURE=docn_in.IN
export DOCN_STREAM_CONFIGURE=hafs_docn.streams.IN
export STREAM_OFFSET=0

#rest of CICE ice prescribed settings
export CICE_RUNTYPE=initial
export CICE_ICE_IC=none
export CICE_PRESCRIBED=true
export stream_files_dice=$ocn_data
export MESH_DICE=$MESH_OCN
export eps_imesh=4.0e-1
export CICE_KTHERM=2
export CICE_TFREEZE_OPTION=mushy

#export INPUT_NML=global_control.nml.IN
export MODEL_CONFIGURE=datm_cdeps_configure.IN
export UFS_CONFIGURE=ufs.configure.s2sw_fast_esmf.IN
#export FV3_RUN="cpld_control_run.IN cpld_docn_pcice.IN"
export FV3_RUN="cpld_datm_cdeps_gfs.IN cpld_docn_pcice.IN"