Skip to content

Commit

Permalink
Update WW3 for PIO/netCDF restarts (ufs-community#2445)
Browse files Browse the repository at this point in the history
* UFSWM - add PIO settings to WAV attributes in ufs.configure templates
* UFSWM - update ww3_shel.nml to allow for the ice field to be written to the restart file when required (i.e, waves in the slow loop)
* UFSWM - add WW3 restart files to comparison lists
  * WW3 - Add netCDF PIO capability for restarts and run-time history
  • Loading branch information
DeniseWorthen authored Nov 14, 2024
1 parent 29c2703 commit 6b0f516
Show file tree
Hide file tree
Showing 58 changed files with 2,128 additions and 1,852 deletions.
2 changes: 1 addition & 1 deletion tests/bl_date.conf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export BL_DATE=20241031
export BL_DATE=20241112
37 changes: 30 additions & 7 deletions tests/default_vars.sh
Original file line number Diff line number Diff line change
Expand Up @@ -742,7 +742,7 @@ export CDMBWD_c768='4.0,0.15,1.0,1.0'
# set default
export CDMBWD=${CDMBWD_c96}

if [[ ${default_dt_atmos} = 1 ]]; then
if [[ ${default_dt_atmos} = 1 ]]; then
export DT_INNER=${DT_INNER_c96}
else
export DT_INNER=${DT_ATMOS}
Expand Down Expand Up @@ -1013,7 +1013,7 @@ export WW3_IC5='F'
export WW3_MULTIGRID=true
export WW3_MODDEF=mod_def.glo_1deg
export MESH_WAV=mesh.glo_1deg.nc

export WW3_RSTFLDS=" "
# ATMA
export AOD_FRQ=060000

Expand Down Expand Up @@ -1081,7 +1081,7 @@ export_ugwpv1() {
export LDIAG_UGWP=.false.
export KNOB_UGWP_DOKDIS=2
export KNOB_UGWP_NDX4LH=4

# Add updated damping and timestep variables
case "${ATMRES}" in
"C48")
Expand Down Expand Up @@ -1173,13 +1173,14 @@ 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}
export default_dt_atmos=0
}



# Defaults for the CICE6 model namelist, mx100
export_cice6() {
SECS=$((SHOUR*3600))
Expand Down Expand Up @@ -1305,7 +1306,18 @@ export_ww3() {
export WW3_ICE='C'
export WW3_IC1='F'
export WW3_IC5='F'
export WW3_user_sets_restname="true"
export WW3_user_histname='false'
export WW3_historync='false'
export WW3_restartnc='true'
export WW3_restart_from_binary='false'
# For default ufs_configure (fast loop), no added fields reqd
export WW3_RSTFLDS=" "
# For either history_nc or restart_nc true
export WW3_PIO_FORMAT='pnetcdf'
export WW3_PIO_STRIDE=4
export WW3_PIO_IOTASKS=-99
export WW3_PIO_REARR='box'
export WW3_PIO_ROOT=-99
}

export_fire_behavior() {
Expand Down Expand Up @@ -1412,7 +1424,7 @@ export NY_GLB=320
export NPZ=127
export NPZP=128

# Use updated omega calculations if
# Use updated omega calculations if
# hydrostatic is set to false
if [[ "${HYDROSTATIC}" == .false. ]]; then
export UPDATE_FULL_OMEGA=.true.
Expand Down Expand Up @@ -1730,6 +1742,17 @@ export_hafs_regional ()
export WW3_MODDEF=mod_def.${WW3_DOMAIN}
export WW3_ICE='F'
export WW3_OUTPARS="WND HS T01 T02 DIR FP DP PHS PTP PDIR UST CHA USP"
export WW3_RSTFLDS=" "
export WW3_user_histname='false'
export WW3_historync='false'
export WW3_restartnc='true'
export WW3_restart_from_binary='false'
# For either history_nc or restart_nc true
export WW3_PIO_FORMAT='pnetcdf'
export WW3_PIO_STRIDE=4
export WW3_PIO_IOTASKS=-99
export WW3_PIO_REARR='box'
export WW3_PIO_ROOT=-99

# Set CMEPS component defaults
export_cmeps
Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/control_run.IN
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ else
cp ../${DEP_RUN}${SUFFIX}/RESTART/${RFILE} .
ls -1 ${RFILE}>rpointer.cpl
fi
RFILE=ufs.atmw.ww3.r.${RESTART_FILE_SUFFIX_SECS}
RFILE=ufs.atmw.ww3.r.${RESTART_FILE_SUFFIX_SECS}.nc
cp ../${DEP_RUN}${SUFFIX}/${RFILE} .
fi

Expand Down
2 changes: 1 addition & 1 deletion tests/fv3_conf/cpld_control_run.IN
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ else

# WAVE restart file
if [[ $CPLWAV == .true. ]]; then
RFILE=ufs.cpld.ww3.r.${RESTART_FILE_SUFFIX_SECS}
RFILE=ufs.cpld.ww3.r.${RESTART_FILE_SUFFIX_SECS}.nc
cp ../${DEP_RUN}${SUFFIX}/${RFILE} .
fi

Expand Down
670 changes: 375 additions & 295 deletions tests/logs/RegressionTests_gaea.log

Large diffs are not rendered by default.

755 changes: 378 additions & 377 deletions tests/logs/RegressionTests_hera.log

Large diffs are not rendered by default.

755 changes: 378 additions & 377 deletions tests/logs/RegressionTests_hercules.log

Large diffs are not rendered by default.

494 changes: 247 additions & 247 deletions tests/logs/RegressionTests_jet.log

Large diffs are not rendered by default.

577 changes: 289 additions & 288 deletions tests/logs/RegressionTests_orion.log

Large diffs are not rendered by default.

462 changes: 231 additions & 231 deletions tests/logs/RegressionTests_wcoss2.log

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion tests/parm/ufs.configure.atm_lnd.IN
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ ALLCOMP_attributes::
stop_option = nhours
stop_ymd = -999
read_restart = @[READRESTART]
mediator_present = true
orb_eccen = 1.e36
orb_iyear = 2000
orb_iyear_align = 2000
Expand Down
10 changes: 9 additions & 1 deletion tests/parm/ufs.configure.atmw.IN
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,15 @@ WAV_attributes::
Verbosity = 0
OverwriteSlice = false
mesh_wav = @[MESH_WAV]
user_sets_restname = true
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]
::


Expand Down
1 change: 0 additions & 1 deletion tests/parm/ufs.configure.hafs_atm_docn.IN
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,6 @@ ALLCOMP_attributes::
orb_mode = fixed_year
orb_mvelp = 1.e36
orb_obliq = 1.e36
mediator_present = true
stop_n = @[FHMAX]
stop_option = nhours
stop_ymd = -999
Expand Down
1 change: 0 additions & 1 deletion tests/parm/ufs.configure.hafs_atm_ocn.IN
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ ALLCOMP_attributes::
orb_mode = fixed_year
orb_mvelp = 1.e36
orb_obliq = 1.e36
mediator_present = true
stop_n = @[FHMAX]
stop_option = nhours
stop_ymd = -999
Expand Down
11 changes: 9 additions & 2 deletions tests/parm/ufs.configure.hafs_atm_ocn_wav.IN
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,15 @@ WAV_attributes::
OverwriteSlice = false
merge_import = .true.
mesh_wav = @[MESH_WAV]
user_sets_restname = true
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]
::

# Run Sequence #
Expand Down Expand Up @@ -141,7 +149,6 @@ ALLCOMP_attributes::
orb_mode = fixed_year
orb_mvelp = 1.e36
orb_obliq = 1.e36
mediator_present = true
stop_n = @[FHMAX]
stop_option = nhours
stop_ymd = -999
Expand Down
11 changes: 9 additions & 2 deletions tests/parm/ufs.configure.hafs_atm_ocn_wav_inline.IN
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,15 @@ WAV_attributes::
OverwriteSlice = false
merge_import = .false.
mesh_wav = @[MESH_WAV]
user_sets_restname = true
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]
::

# Run Sequence #
Expand Down Expand Up @@ -145,7 +153,6 @@ ALLCOMP_attributes::
orb_mode = fixed_year
orb_mvelp = 1.e36
orb_obliq = 1.e36
mediator_present = true
stop_n = @[FHMAX]
stop_option = nhours
stop_ymd = -999
Expand Down
11 changes: 9 additions & 2 deletions tests/parm/ufs.configure.hafs_atm_ocn_wav_mom6.IN
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,15 @@ WAV_attributes::
OverwriteSlice = false
merge_import = .false.
mesh_wav = @[MESH_WAV]
user_sets_restname = true
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]
::

# Run Sequence #
Expand Down Expand Up @@ -131,7 +139,6 @@ ALLCOMP_attributes::
orb_mode = fixed_year
orb_mvelp = 1.e36
orb_obliq = 1.e36
mediator_present = true
stop_n = @[FHMAX]
stop_option = nhours
stop_ymd = -999
Expand Down
11 changes: 9 additions & 2 deletions tests/parm/ufs.configure.hafs_atm_wav.IN
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,15 @@ WAV_attributes::
OverwriteSlice = false
merge_import = .true.
mesh_wav = @[MESH_WAV]
user_sets_restname = true
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]
::

# Run Sequence #
Expand Down Expand Up @@ -103,7 +111,6 @@ ALLCOMP_attributes::
orb_mode = fixed_year
orb_mvelp = 1.e36
orb_obliq = 1.e36
mediator_present = true
stop_n = @[FHMAX]
stop_option = nhours
stop_ymd = -999
Expand Down
10 changes: 9 additions & 1 deletion tests/parm/ufs.configure.s2sw.IN
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,15 @@ WAV_attributes::
Verbosity = 0
OverwriteSlice = false
mesh_wav = @[MESH_WAV]
user_sets_restname = @[WW3_user_sets_restname]
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 warm run sequence
Expand Down
10 changes: 9 additions & 1 deletion tests/parm/ufs.configure.s2sw_esmf.IN
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,15 @@ WAV_attributes::
Verbosity = 0
OverwriteSlice = false
mesh_wav = @[MESH_WAV]
user_sets_restname = @[WW3_user_sets_restname]
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 warm run sequence
Expand Down
10 changes: 9 additions & 1 deletion tests/parm/ufs.configure.s2sw_fast_esmf.IN
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,15 @@ WAV_attributes::
Verbosity = 0
OverwriteSlice = false
mesh_wav = @[MESH_WAV]
user_sets_restname = @[WW3_user_sets_restname]
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 warm run sequence
Expand Down
10 changes: 9 additions & 1 deletion tests/parm/ufs.configure.s2swa.IN
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,15 @@ WAV_attributes::
Verbosity = 0
OverwriteSlice = false
mesh_wav = @[MESH_WAV]
user_sets_restname = @[WW3_user_sets_restname]
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 warm run sequence
Expand Down
10 changes: 9 additions & 1 deletion tests/parm/ufs.configure.s2swa_esmf.IN
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,15 @@ WAV_attributes::
Verbosity = 0
OverwriteSlice = false
mesh_wav = @[MESH_WAV]
user_sets_restname = @[WW3_user_sets_restname]
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 warm run sequence
Expand Down
10 changes: 9 additions & 1 deletion tests/parm/ufs.configure.s2swa_fast_esmf.IN
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,15 @@ WAV_attributes::
Verbosity = 0
OverwriteSlice = false
mesh_wav = @[MESH_WAV]
user_sets_restname = @[WW3_user_sets_restname]
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 warm run sequence
Expand Down
2 changes: 1 addition & 1 deletion tests/parm/ww3_shel.nml.IN
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
&output_type_nml
type%field%list = '@[WW3_OUTPARS]'
type%point%file = 'ww3_points.list'
type%restart%extra = '@[WW3_RSTFLDS]'
/

&output_date_nml
date%field%outffile = '1'
date%field%stride = '@[WW3_DTFLD]'
date%point%outffile = '1'
date%point%stride = '@[WW3_DTPNT]'
date%restart2%stride = '@[WW3_DT_2_RST]'
/
Loading

0 comments on commit 6b0f516

Please sign in to comment.