Skip to content

Commit

Permalink
adding regtest to IC4M10 case, PR 1293
Browse files Browse the repository at this point in the history
  • Loading branch information
sbanihash committed Dec 11, 2024
2 parents bd7b90d + 0ef328c commit fdec3c9
Show file tree
Hide file tree
Showing 17 changed files with 430 additions and 0 deletions.
43 changes: 43 additions & 0 deletions model/src/w3sic4md.F90
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ MODULE W3SIC4MD
! *** Rogers et al. tech. rep. 2021 (RYW2021)
! *** Yu et al. CRST 2022
! *** Yu JMSE 2022
! *** Meylan et al. Ocean Modeling 2021
!
! 6. Switches :
!
Expand Down Expand Up @@ -138,6 +139,7 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D)
!/ 11-Jan-2024 : Method 8 added (Meylan et al. 2018) (E. Rogers)
!/ 11-Jan-2024 : Method 9 added (Rogers et al., 2021)
!/ denoted "RYW2021" (E. Rogers)
!/ 14-Aug-2024 : Method 10 added (Meylan et al. 2021) (E. Thomas)
!/
!/ FIXME : Move field input to W3SRCE and provide
!/ (S.Zieger) input parameter to W3SIC1 to make the subroutine
Expand Down Expand Up @@ -307,6 +309,8 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D)
! suggested default is marked with "(*SD*)", for consistency
! with SWAN (v41.31AB or later)
!
! 10) Meylan et al. 2021 (Ocean Modeling): ocean-wave attenuation
! due to scattering by sea ice floes.
! ------------------------------------------------------------------
!
! For all methods, the user can specify namelist
Expand Down Expand Up @@ -450,6 +454,8 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D)
REAL, ALLOCATABLE :: FREQ(:) ! wave frequency
REAL, ALLOCATABLE :: MARG1(:), MARG2(:) ! Arguments for M2
REAL, ALLOCATABLE :: KARG1(:), KARG2(:), KARG3(:) !Arguments for M3
REAL :: x1,x2,x3,x1sqr,x2sqr,x3sqr !Arguments for M10
REAL :: perfour,amhb,bmhb !Arguments for M10
LOGICAL :: NML_INPUT ! if using namelist input for M2

!/
Expand Down Expand Up @@ -699,6 +705,43 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D)
DO IK=1,NK
WN_I(IK) = Chf*(hice**mpow)*(FREQ(IK)**npow)
END DO

CASE (10)
! Cubic fit to Meylan, Horvat & Bitz 2021
! ICECOEF1 is thickness
! ICECOEF5 is floe size
! TPI/SIG is period
x3=min(ICECOEF1,3.5) ! limit thickness to 3.5 m
x3=max(x3,0.1) ! limit thickness >0.1 m since I make fit below
x2=min(ICECOEF5*0.5,100.0) ! convert dia to radius, limit to 100m
x2=max(2.5,x2)
x2sqr=x2*x2
x3sqr=x3*x3
amhb = 2.12e-3
bmhb = 4.59e-2

DO IK=1, NK
x1=TPI/SIG(IK) ! period
x1sqr=x1*x1
KARG1(ik)=-0.26982 + 1.5043*x3 - 0.70112*x3sqr + 0.011037*x2 + &
(-0.0073178)*x2*x3 + 0.00036604*x2*x3sqr + &
(-0.00045789)*x2sqr + 1.8034e-05*x2sqr*x3 + &
(-0.7246)*x1 + 0.12068*x1*x3 + &
(-0.0051311)*x1*x3sqr + 0.0059241*x1*x2 + &
0.00010771*x1*x2*x3 - 1.0171e-05*x1*x2sqr + &
0.0035412*x1sqr - 0.0031893*x1sqr*x3 + &
(-0.00010791)*x1sqr*x2 + &
0.00031073*x1**3 + 1.5996e-06*x2**3 + 0.090994*x3**3
KARG1(IK)=min(KARG1(IK),0.0)
ALPHA(IK) = 10.0**KARG1(IK)
perfour=x1sqr*x1sqr
if ((x1.gt.5.0) .and. (x1.lt.20.0)) then
ALPHA(IK) = ALPHA(IK) + amhb/x1sqr+bmhb/perfour
else if (x1.gt.20.0) then
ALPHA(IK) = amhb/x1sqr+bmhb/perfour
endif
WN_I(IK) = ALPHA(IK) * 0.5
end do

CASE DEFAULT
WN_I = ICECOEF1 !Default to IC1: Uniform in k
Expand Down
1 change: 1 addition & 0 deletions regtests/bin/matrix.base
Original file line number Diff line number Diff line change
Expand Up @@ -1957,6 +1957,7 @@
echo "$rtst -w work_IC4_M7 -i input_IC4_M7 $ww3 ww3_tic1.1" >> matrix.body
echo "$rtst -w work_IC4_M8 -i input_IC4_M8 $ww3 ww3_tic1.1" >> matrix.body
echo "$rtst -w work_IC4_M9 -i input_IC4_M9 $ww3 ww3_tic1.1" >> matrix.body
echo "$rtst -w work_IC4_M10 -i input_IC4_M10 $ww3 ww3_tic1.1" >> matrix.body
echo "$rtst -g 1000m -w work_IC5_M1 -i input_IC5_M1 $ww3 ww3_tic1.1" >> matrix.body
echo "$rtst -g 1000m -w work_IC5_M2 -i input_IC5_M2 $ww3 ww3_tic1.1" >> matrix.body
echo "$rtst -g 1000m -w work_IC5_M3 -i input_IC5_M3 $ww3 ww3_tic1.1" >> matrix.body
Expand Down
9 changes: 9 additions & 0 deletions regtests/ww3_tic1.1/info
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
# IC4METHOD = 8 - Meylan et al. (2018) ; Liu et al. (2020) #
# (NB: redundant with IC5+IC5VEMOD=3) #
# IC4METHOD = 9 - RYW (2021) ; Yu et al. (2022) #
# IC4METHOD = 10 - Meylan et al. (2021) #
# IC5 = Choose from three different effective medium models #
# IC5VEMOD = 1 - Extended Fox and Squire model (EFS) #
# IC5VEMOD = 2 - Robinson and Palmer model (RP) #
Expand Down Expand Up @@ -101,6 +102,14 @@
# 'IC1' 19680606 000000 5.35E-6 #
# 'IC2' 19680606 000000 16.05E-6 #
# #
# ------------> &SIC4 IC4METHOD = 10 / #
# ...ICECOEF1, ICECOEF5 are required: #
# T T Ice parameter 1 #
# T T Ice parameter 5 #
# ... #
# 'IC1' 19680606 000000 0.2 #
# 'IC5' 19680606 000000 0.459 #
# #
# Reference (w/plots): Rogers and Orzech, NRL Memorandum Report (2013) #
# available from http://www7320.nrlssc.navy.mil/pubs.php #
# (This report only covers IC1 and IC2, not IC3, which is newer) #
Expand Down
2 changes: 2 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/namelists_1-D.nml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
&SIC4 IC4METHOD = 10 /
END OF NAMELISTS
16 changes: 16 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/points.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
0.00 0. 'Point 1 '
1.00E3 0. 'Point 2 '
2.00E3 0. 'Point 3 '
3.00E3 0. 'Point 4 '
4.00E3 0. 'Point 5 '
5.00E3 0. 'Point 6 '
6.00E3 0. 'Point 7 '
7.00E3 0. 'Point 8 '
8.00E3 0. 'Point 9 '
9.00E3 0. 'Point 10 '
10.00E3 0. 'Point 11 '
11.00E3 0. 'Point 12 '
12.00E3 0. 'Point 13 '
13.00E3 0. 'Point 14 '
14.00E3 0. 'Point 15 '
15.00E3 0. 'Point 16 '
1 change: 1 addition & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/switch
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NOGRB SHRD PR3 UQ FLX2 LN0 ST0 NL0 BT0 DB0 TR0 BS0 IC4 IS0 REF0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7
43 changes: 43 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/ww3_grid.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
$ WAVEWATCH III Grid preprocessor input file
$ ------------------------------------------
'1-D parameterized ice test '
$
$ 1.1 0.04118 25 24 0.0
1.1 0.0418 31 36 5.0
$
F T F F F T
60. 60. 60. 60.
$
$ IC4METHOD determines calculation
$ IC4METHOD = 1 - Wadhams et al. (1988)
$ IC4METHOD = 2 - Meylan et al. (2014)
$ IC4METHOD = 3 - Kohout & Meylan (2008) in Horvat & Tziperman (2015)
$ IC4METHOD = 4 - Kohout et al. (2014)
$ IC4METHOD = 5 - Simple ki step function
$ IC4METHOD = 6 - Simple ki step function via namelist
$ IC4METHOD = 7 - Doble et al. (GRL 2015)
$ IC4METHOD = 8 - Meylan et al. (2018) ; Liu et al. (2020)
$ IC4METHOD = 9 - RYW (2021) ; Yu et al. (2022)
$ IC4M8 Fit to R21A L ChfM2=0.059
$ IC4M10
&SIC4 IC4METHOD = 10 , IC4CN = 0.059/
END OF NAMELISTS
$
'RECT' F 'NONE'
156 3
1.0E3 1.0E3 1.
-1.0E3 -1.0E3 1.
$ dlim dmin file# scale layout# format# formatdescrip filetype# filenm
-0.1 0.1 401 -1.0 1 1 '(....)' 'NAME' '../input_IC1/depth1d.flat'
$
10 1 1 '(....)' 'PART' 'input'
$
$ First grid
$
2 2 F
$
0 0 F
0 0 F
0 0
$
0. 0. 0. 0. 0
81 changes: 81 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/ww3_grid.nml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
! -------------------------------------------------------------------- !
! WAVEWATCH III - ww3_grid.nml - Grid pre-processing !
! -------------------------------------------------------------------- !

! -------------------------------------------------------------------- !
! Define the spectrum parameterization via SPECTRUM_NML namelist
! -------------------------------------------------------------------- !
&SPECTRUM_NML
SPECTRUM%XFR = 1.1
SPECTRUM%FREQ1 = 0.0418
SPECTRUM%NK = 31
SPECTRUM%NTH = 36
SPECTRUM%THOFF = 5.0
/

! -------------------------------------------------------------------- !
! Define the run parameterization via RUN_NML namelist
! -------------------------------------------------------------------- !
&RUN_NML
RUN%FLCX = T
RUN%FLSOU = T
/

! -------------------------------------------------------------------- !
! Define the timesteps parameterization via TIMESTEPS_NML namelist
! -------------------------------------------------------------------- !
&TIMESTEPS_NML
TIMESTEPS%DTMAX = 60.
TIMESTEPS%DTXY = 60.
TIMESTEPS%DTKTH = 60.
TIMESTEPS%DTMIN = 60.
/

! -------------------------------------------------------------------- !
! Define the grid to preprocess via GRID_NML namelist
! -------------------------------------------------------------------- !
&GRID_NML
GRID%NAME = '1-D parameterized ice test'
GRID%NML = '../input_IC4_M10/namelists_1-D.nml'
GRID%TYPE = 'RECT'
GRID%COORD = 'CART'
GRID%CLOS = 'NONE'
GRID%ZLIM = -0.1
GRID%DMIN = 0.1
/

! -------------------------------------------------------------------- !
! Define the rectilinear grid type via RECT_NML namelist
! -------------------------------------------------------------------- !
&RECT_NML
RECT%NX = 156
RECT%NY = 3
RECT%SX = 1.0E3
RECT%SY = 1.0E3
RECT%X0 = -1.0E3
RECT%Y0 = -1.0E3
/

! -------------------------------------------------------------------- !
! Define the depth to preprocess via DEPTH_NML namelist
! -------------------------------------------------------------------- !
&DEPTH_NML
DEPTH%SF = -1.0
DEPTH%FILENAME = '../input_IC1/depth1d.flat'
/

! -------------------------------------------------------------------- !
! Define the input boundary points via INBND_COUNT_NML and
! INBND_POINT_NML namelist
! -------------------------------------------------------------------- !
&INBND_COUNT_NML
INBND_COUNT%N_POINT = 1
/

&INBND_POINT_NML
INBND_POINT(1) = 2 2 F
/

! -------------------------------------------------------------------- !
! WAVEWATCH III - end of namelist !
! -------------------------------------------------------------------- !
20 changes: 20 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/ww3_ounf.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
$ WAVEWATCH III Grid output post-processing (netcdf)
$---------------------------------------------------
19680606 000000 3600. 99
N
$ Options: DPT CUR WND DT WLV ICE HS L T02 T01 TM1 FP DIR SPR DP EF
$ TH1M STH1M PHS PTP PLP PDIR PSP WSF TWS PNR UST CHA CGE FAW
$ TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S WN USF
$ P2L ABR UBR BED FBB TBB MSS MSC DTD FCT CFX CFT CFK US1 US2
DPT WLV HS DIR
$
3 4
0 1 2
F
ww3.
4
1 999 1 999 3 2
$
$ -------------------------------------------------------------------- $
$ End of input file $
$ -------------------------------------------------------------------- $
29 changes: 29 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/ww3_ounf.nml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
! -------------------------------------------------------------------- !
! WAVEWATCH III ww3_ounf.nml - Grid output post-processing !
! -------------------------------------------------------------------- !

! -------------------------------------------------------------------- !
! Define the output fields to postprocess via FIELD_NML namelist
! -------------------------------------------------------------------- !
&FIELD_NML
FIELD%TIMESTART = '19680606 000000'
FIELD%TIMESTRIDE = '3600.'
FIELD%TIMECOUNT = '99'
FIELD%TIMESPLIT = 4
FIELD%LIST = 'DPT WLV HS DIR'
FIELD%PARTITION = '0 1 2'
FIELD%SAMEFILE = F
FIELD%TYPE = 4
/

! -------------------------------------------------------------------- !
! Define the content of the output file via FILE_NML namelist
! -------------------------------------------------------------------- !
&FILE_NML
FILE%IXN = 999
FILE%IYN = 999
/

! -------------------------------------------------------------------- !
! WAVEWATCH III - end of namelist !
! -------------------------------------------------------------------- !
13 changes: 13 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/ww3_outf.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
$ WAVEWATCH III Grid output post-processing
$ -----------------------------------------
19680606 000000 3600. 99
N
$ Options: DPT CUR WND DT WLV ICE HS L T02 T01 TM1 FP DIR SPR DP EF
$ TH1M STH1M PHS PTP PLP PDIR PSP WSF TWS PNR UST CHA CGE FAW
$ TAW TWA WCC WCF WCH WCM SXY TWO BHD FOC TUS USS P2S WN USF
$ P2L ABR UBR BED FBB TBB MSS MSC DTD FCT CFX CFT CFK US1 US2
DPT WLV HS DIR
$
3 0
$
1 999 1 999 1 1
19 changes: 19 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/ww3_outp_spec.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
$ WAVEWATCH III Point output post-processing
$ ------------------------------------------
19680606 120000 3600. 1
$
1
2
3
4
5
6
7
8
9
10
11
-1
$
1
2 -1. 0. 33 F
19 changes: 19 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/ww3_outp_tab50.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
$ WAVEWATCH III Point output post-processing
$ ------------------------------------------
19680606 000000 600. 9999
$
1
2
3
4
5
6
7
8
9
10
11
-1
$
2
2 50
10 changes: 10 additions & 0 deletions regtests/ww3_tic1.1/input_IC4_M10/ww3_outp_tab51.inp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
$ WAVEWATCH III Point output post-processing
$ ------------------------------------------
19680606 000000 900. 49
$
$ 1
11
-1
$
2
2 51
Loading

0 comments on commit fdec3c9

Please sign in to comment.