Skip to content
Open
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
4 changes: 4 additions & 0 deletions model/src/w3profsmd_pdlib.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5760,6 +5760,10 @@ SUBROUTINE PDLIB_JACOBI_GAUSS_SEIDEL_BLOCK(IMOD, FACX, FACY, DTG, VGX, VGY, LCAL
ENDIF
END IF
CALL APPLY_BOUNDARY_CONDITION(IMOD)
!
! for reproducability state must be communicated after BC application
!
CALL PDLIB_exchange2DREAL_zero(VA)
call print_memcheck(memunit, 'memcheck_____:'//' WW3_PROP SECTION 6')
!
#ifdef W3_DEBUGSOLVERCOH
Expand Down
29 changes: 28 additions & 1 deletion regtests/ww3_tp2.17/info
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,31 @@
# Ali Abdolali, Aron Roland, Jessica Meixner, May 2018 #
# Last Mod : May 2018 #
# #
#############################################################################
#
#---------------------------------------------------------------------------#
#
#---------------------------------------------------------------------------#
# Addendum Keston Smith, Jessica Meixner, November 2025
# A test is added with ice forcing in addition to currents, water level, #
# and boundary forcing. This test exhibits failure to restart reproduce bit #
# for bit when both boundary forcing and water level are present. #
#
# The full: ice, wind, water level, currents and boundary forcing can be run
# with the following script:
#
#mkdir ww3_tp2.17/work_ice_restart24
#
# ./bin/run_cmake_test -b slurm -o all -S -T -s MPI -s PDLIB -i input_ice -w work_ice -g d -f -p srun -n 24 ../model ww3_tp2.17
#
# cp ww3_tp2.17/work_ice/20151214.120000.restart.ww3 ww3_tp2.17/work_ice_restart24/restart.ww3
#
# ./bin/run_cmake_test -b slurm -o all -S -T -s MPI -s PDLIB -i input_ice_restart -w work_ice_restart24 -g d -f -p srun -n 24 ../model ww3_tp2.17
# ./bin/run_cmake_test -b slurm -o all -S -T -s MPI -s PDLIB -i input_ice -w work_ice20 -g d -f -p srun -n 20 ../model ww3_tp2.17
#
# Bit for bit reproducability for different numbers of MPI processes #
# is evident in comparison of solutions in work_ice and work_ice20 #
# (cold starts) with 24 and 20 MPI processes respectivly. Restart #
# reproducability can be checked by comparing solution in work_ice/ to #
# work_ice_restart24. #
#---------------------------------------------------------------------------#
############################################################################
Binary file added regtests/ww3_tp2.17/input_ice/ice.nc
Binary file not shown.
8,934 changes: 8,934 additions & 0 deletions regtests/ww3_tp2.17/input_ice/inlet.msh

Large diffs are not rendered by default.

Binary file added regtests/ww3_tp2.17/input_ice/levelNoNaN.nc
Binary file not shown.
1 change: 1 addition & 0 deletions regtests/ww3_tp2.17/input_ice/switch_PDLIB
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NOGRB TRKNC DIST MPI SCRIP MLIM PR3 UQ FLX0 PDLIB SCOTCH LN1 ST4 STAB0 NL1 BT4 DB1 TR0 BS0 IS0 IC0 REF0 WNT2 WNX1 RWND CRT1 CRX1 O0 O1 O2 O2a O2b O2c O3 O4 O5 O6 O7
25 changes: 25 additions & 0 deletions regtests/ww3_tp2.17/input_ice/ww3_bounc.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
$ -------------------------------------------------------------------- $
$ WAVEWATCH III NetCDF boundary input processing $
$--------------------------------------------------------------------- $
$
$ Boundary option: READ or WRITE
$
WRITE
$
$ Interpolation method: 1: nearest
$ 2: linear interpolation
2
$ Verbose (0, 1, 2)
1
$
$ List of spectra files. These NetCDF files use the WAVEWATCH III
$ format as described in the ww3_ounp.inp file. The files are
$ defined relative to the directory in which the program is run.
$
../input/bound.nc
'STOPSTRING'
$
$ -------------------------------------------------------------------- $
$ End of input file $
$ -------------------------------------------------------------------- $

10 changes: 10 additions & 0 deletions regtests/ww3_tp2.17/input_ice/ww3_grib.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
$ -------------------------------------------------------------------- $
$ WAVEWATCH-III gridded output input file
$ ----------------------------------------
20151214 000000 3600 9
N
WND CUR ICE HS T01 T02 DIR FP DP PHS PTP PDIR UST
$
20151214 000000 7 11 255 0 0
$
$ end of input file
160 changes: 160 additions & 0 deletions regtests/ww3_tp2.17/input_ice/ww3_grid_b.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
$ -------------------------------------------------------------------- $
$ WAVEWATCH III Grid preprocessor input file $
$ -------------------------------------------------------------------- $
$
'Global Unstructured'
$
$ Frequency increment factor and first frequency (Hz) ---------------- $
$ number of frequencies (wavenumbers) and directions, relative offset
$ of first direction in terms of the directional increment [-0.5,0.5].
$ In versions 1.18 and 2.22 of the model this value was by definiton 0,
$ it is added to mitigate the GSE for a first order scheme. Note that
$ this factor is IGNORED in the print plots in ww3_outp.
$
$gfs: 1.07 0.035 50 36 0.5
$gefs: 1.1 0.035 33 36 0.5
1.1 0.035 33 36 0.5
$
$ Set model flags ---------------------------------------------------- $
$ - FLDRY Dry run (input/output only, no calculation).
$ - FLCX, FLCY Activate X and Y component of propagation.
$ - FLCTH, FLCK Activate direction and wavenumber shifts.
$ - FLSOU Activate source terms.
$
F T T T T T
$
$ Set time steps ----------------------------------------------------- $
$ - Time step information (this information is always read)
$ maximum global time step, maximum CFL time step for x-y and
$ k-theta, minimum source term time step (all in seconds).
$
$
720. 180. 360. 30.
$
$ Start of namelist input section ------------------------------------ $
$
&OUTS
USSP = 1,
IUSSP = 3,
STK_WN = 0.04, 0.110, 0.3305 /
&SIN4
BETAMAX = 1.315,
TAUWSHELTER = 1.0,
SWELLF = 0.798,
SWELLF2 = -0.0127,
SWELLF3 = 0.0151,
SWELLF4 = 100025.0,
SWELLF5 = 1.1999,
SWELLF7 = 235500.0 /
&SNL1
NLPROP = 2.502E7 /
&SDS4
FXFM3 = 2.501,
SDSC2 = -2.1975e-05,
SDSCUM = -0.4032,
SDSC6 = 0.2978,
SDSBR = 0.0009035 /
&MISC
CICE0 = 0.75,
CICEN = 0.75 /
&SBT1
GAMMA = -0.038 /
&PRO3
WDTHCG=1.5,
WDTHTH=1.5 /
&UNST
UGOBCAUTO = F,
UGOBCDEPTH = -10.,
UGBCCFL = F,
EXPFSN = F,
EXPFSPSI = F,
EXPFSFCT = F,
IMPFSN = F,
EXPTOTAL = T,
IMPTOTAL = F,
IMPREFRACTION = F,
IMPFREQSHIFT = F,
IMPSOURCE = F,
SETUP_APPLY_WLV = F,
SOLVERTHR_SETUP = 1E-14,
CRIT_DEP_SETUP = 0.1,
JGS_NLEVEL = 0,
JGS_USE_JACOBI = F,
JGS_BLOCK_GAUSS_SEIDEL = F,
JGS_TERMINATE_MAXITER = F,
JGS_MAXITER = 1000,
JGS_TERMINATE_NORM = F,
JGS_TERMINATE_DIFFERENCE = F,
JGS_DIFF_THR = 1.E-8,
JGS_PMIN = 3.0,
JGS_LIMITER = F,
JGS_NORM_THR = 1.E-6 /
$
$ Mandatory string to identify end of namelist input section.
$
END OF NAMELISTS
$
$ FLAG for grid features
$ 1 Type of grid 'UNST' 'RECT' 'CURV'
$ 2 Flag for geographical coordinates (LLG)
$ 3 Flag for periodic grid
$
$ Define grid -------------------------------------------------------- $
$ Four records containing :
$ 1 NX, NY. As the outer grid lines are always defined as land
$ points, the minimum size is 3x3.
$ 2 Grid increments SX, SY (degr.or m) and scaling (division) factor.
$ If NX*SX is 360., latitudinal closure is applied.
$ 3 Coordinates of (1,1) (degr.) and scaling (division) factor.
$ 4 Limiting bottom depth (m) to discriminate between land and sea
$ points, minimum water depth (m) as allowed in model, unit number
$ of file with bottom depths, scale factor for bottom depths (mult.),
$ IDLA, IDFM, format for formatted read, FROM and filename.
$ IDLA : Layout indicator :
$ 1 : Read line-by-line bottom to top.
$ 2 : Like 1, single read statement.
$ 3 : Read line-by-line top to bottom.
$ 4 : Like 3, single read statement.
$ IDFM : format indicator :
$ 1 : Free format.
$ 2 : Fixed format with above format descriptor.
$ 3 : Unformatted.
$ FROM : file type parameter
$ 'UNIT' : open file by unit number only.
$ 'NAME' : open file by name and assign to unit.
$
$ Example for longitude-latitude grid (switch !/LLG), for Cartesian
$ grid the unit is meters (NOT km).
$
$
'UNST' T T
$
4.0 0.30 20 -1. 4 1 '(20f10.2)' 'NAME' '../input/inlet.msh'
$
$
10 3 1 '(....)' 'PART' 'mapsta.inp'
$ Input boundary points ---------------------------------------------- $
$ Close list by defining point (0,0) (mandatory)
$
0 0 F
$
$ Excluded grid points from segment data ( FROM != PART )
$ First defined as lines, identical to the definition of the input
$ boundary points, and closed the same way.
$
0 0 F
$
$ Second, define a point in a closed body of sea points to remove
$ the entire body os sea points. Also close by point (0,0)
$
0 0
$
$ Output boundary points --------------------------------------------- $
$
$ Close list by defining line with 0 points (mandatory)
$
0. 0. 0. 0. 0
$
$ -------------------------------------------------------------------- $
$ End of input file $
$ -------------------------------------------------------------------- $
Loading