diff --git a/manual/eqs/ICE4.tex b/manual/eqs/ICE4.tex index 7e4332ce5..1ee257d60 100644 --- a/manual/eqs/ICE4.tex +++ b/manual/eqs/ICE4.tex @@ -52,6 +52,20 @@ \subsubsection{~$S_{ice}$: Empirical/parametric damping by sea ice} \label{sec:I {\code IC4M7}: This is a formula for dissipation from \cite{art:Dob15}, developed for a mixture of pancake and frazil ice, using data collected in the Weddell Sea (Antarctica). The formula depends on wave frequency and ice thickness: \begin{equation}\label{eq:ice7} - {\alpha=0.2T^{-2.13}h} \:\:\: . + {\alpha=2k_i=0.2h^1f^{2.13}} \:\:\: . \end{equation} This method is described in \cite{rep:RPLA18}. + +{\code IC4M8}: Like {\code IC4M7}, this method is in the general form of +\begin{equation}\label{eq:ice8} + {k_i=C_{hf}h^mf^n} \:\:\: . +\end{equation} +The formula is taken from \cite{Meylan2018}, where it is described as a ``Model with Order 3 Power Law''. It is applied by \cite{Liu2020}, where it is referred to as the ``M2'' model. The model specifies $m=1$ and $n=3$, and $C_{hf}$ is a user-specified calibration coefficient. \cite{Liu2020} provide calibration to two field cases and \cite{rep:RYW2021} provides a calibration to a third field case, \cite{art:RMK2021}. The third calibration is set as the default for {\code IC4M8}, $C_{hf}=0.059$, but can be changed in using the namelist parameter (constant and uniform) {\code IC4CN}, or using the spatially and/or temporally variable parameter ${C_{ice,2}}$ . Further details on the calibrations are available in the inline documentation in {\file w3sic4md.F90}. This method is functionally the same as the ``{\code M2}'' model in {\code IC5} (i.e., {\code IC5} with {\code IC5VEMOD=3}) and is redundantly included here as {\code IC4M8} because it is in the same ``family'' as {\code IC4M7} and {\code IC4M9}, being in the form of Eq. (\ref{eq:ice8}). + +For an example of setting the namelist parameter, see {\file /regtests/ww3\_tic1.1/input\_IC4\_M8}. + +{\code IC4M9}: This formula is taken from the ``monomial power fit'' given in section 2.2.3 of \cite{rep:RYW2021}. Like {\code IC4M7} and {\code IC4M8}, it is a specific case of the general form of Eq. (\ref{eq:ice8}). The specificity is the constraint that $m=n/2-1$. This constraint is derived by \cite{rep:RYW2021} by invoking the scaling from \cite{art:YRW2019}, which is based on Reynolds number with ice thickness as the relevant length scale. This is also given as equation 2 in \cite{art:YRW2022}. The default namelist settings are $C_{hf}=2.9$ and $n=4.5$, from calibration by \cite{rep:RYW2021} to \cite{art:RMK2021}. Further details, including alternative calibrations such as \cite{art:Yu2022}, are available in the inline documentation in {\file w3sic4md.F90}. Constant values can be set using namelist parameters, where $C_{hf}$ and $n$ are {\code IC4CN(1)} and {\code IC4CN(2)}, respectively. Spatially and/or temporally versions of the same can be specified as ${C_{ice,2}}$ and ${C_{ice,3}}$, respectively. + +The namelist default $C_{hf}$ values in {\code IC4M8} and {\code IC4M9} are consistent with those of identical formulae implemented in \cite{man:SWAN4145A}. + + diff --git a/manual/eqs/ICE5.tex b/manual/eqs/ICE5.tex index f5fac80fa..4d5ab25b0 100755 --- a/manual/eqs/ICE5.tex +++ b/manual/eqs/ICE5.tex @@ -25,7 +25,7 @@ \subsubsection{~$S_{ice}$: Damping by sea ice (effective medium models)} \label{ \begin{align} k_i^{EFS} &\propto \eta h_i^3 \sigma^{11},\label{eq:fspw}\\ k_i^{RP} &\propto \frac{\eta}{\rho_w g^2} \sigma^3,\label{eq:rppw} \end{align} -whereas previous field measurements \citep[e.g.,][]{Meylan2018, Rogers2021} support a power law $k_i \propto \sigma^n$, with $n$ between 2 and 4. Eqs.~(\ref{eq:fspw}) and (\ref{eq:rppw}) indicate at certain regimes (i.e., $k_r \approx k_0$ and low $k_i$), $k_i$ of the EFS model is too sensitive to wave frequency and $k_i$ of the RP model shows no dependence on ice thickness. +whereas previous field measurements \citep[e.g.,][]{Meylan2018, RMK21} support a power law $k_i \propto \sigma^n$, with $n$ between 2 and 4. Eqs.~(\ref{eq:fspw}) and (\ref{eq:rppw}) indicate at certain regimes (i.e., $k_r \approx k_0$ and low $k_i$), $k_i$ of the EFS model is too sensitive to wave frequency and $k_i$ of the RP model shows no dependence on ice thickness. The third model included in the {\code IC5} module is based on the ``Model with Order 3 Power Law'' proposed by \citet[][their section 6.2; hereafter the M2 model]{Meylan2018}, which assumes the loss of wave energy is proportional to the horizontal ice velocity squared times the ice thickness. The attenuation rate is given by \begin{equation} @@ -52,4 +52,4 @@ \subsubsection{~$S_{ice}$: Damping by sea ice (effective medium models)} \label{ % \cit{IC5VEMOD} {the sea ice model to be selected: 1 - {\code EFS}, 2 - {\code RP}, 3 - {\code M2}; Default=3 (i.e., \textbf{the {\code M2} model is chosen}).} \end{clist} -The first 6 parameters were introduced to improve the stability of the numerical solver for the EFS model \citep[the solver may fail for small wave periods in some rare cases, particularly for shallow water depth $d$ and low $G$; see][]{Liu2020}. Nonetheless, since version 7.12, the M2 model becomes the default option and these limiters are therefore not used by default. \ No newline at end of file +The first 6 parameters were introduced to improve the stability of the numerical solver for the EFS model \citep[the solver may fail for small wave periods in some rare cases, particularly for shallow water depth $d$ and low $G$; see][]{Liu2020}. Nonetheless, since version 7.12, the M2 model becomes the default option and these limiters are therefore not used by default. diff --git a/manual/manual.bib b/manual/manual.bib index c49e3340b..3da650ea2 100644 --- a/manual/manual.bib +++ b/manual/manual.bib @@ -524,7 +524,7 @@ @TECHREPORT{rep:CR17 INSTITUTION = "{N}aval {R}esearch {L}aboratory, {S}tennis {S}pace {C}enter, {MS}", TYPE = "NRL Memorandum Report", NUMBER = "NRL/MR/7320--17-9726", - NOTE = "25 pp., www7320.nrlssc.navy.mil/pubs.php" } + NOTE = "25 pp., www7320.nrlssc.navy.mil/pubs" } % item art:CRT17 @@ -1764,7 +1764,7 @@ @INPROCEEDINGS{pro:RZ14 TITLE = "New wave-ice interaction physics in {WAVEWATCH III}", BOOKTITLE = Ice14, PUBLISHER = "IAHR", - NOTE = "8 pp., www7320.nrlssc.navy.mil/pubs.php" } + NOTE = "8 pp., www7320.nrlssc.navy.mil/pubs" } % item rep:RPLA18 @@ -1775,7 +1775,18 @@ @TECHREPORT{rep:RPLA18 INSTITUTION = "{N}aval {R}esearch {L}aboratory, {S}tennis {S}pace {C}enter, {MS}", TYPE = "NRL Memorandum Report", NUMBER = "NRL/MR/7320--18-9786", - NOTE = "179 pp., www7320.nrlssc.navy.mil/pubs.php" } + NOTE = "179 pp., www7320.nrlssc.navy.mil/pubs" } + +% item rep:RYW2021 + +@TECHREPORT{rep:RYW2021, + AUTHOR = "W. E. Rogers and J. Yu and D. W. Wang", + YEAR = "2021", + TITLE = "Incorporating dependencies on ice thickness in empirical parameterizations of wave dissipation by sea ice", + INSTITUTION = "{N}aval {R}esearch {L}aboratory, {S}tennis {S}pace {C}enter, {MS}", + TYPE = "NRL Technical Report", + NUMBER = "NRL/OT/7320-21-5145", + NOTE = "35 pp., https://arxiv.org/abs/2104.01246" } % item rep:RMK18 @@ -1786,7 +1797,7 @@ @TECHREPORT{rep:RMK18 INSTITUTION = "{N}aval {R}esearch {L}aboratory, {S}tennis {S}pace {C}enter, {MS}", TYPE = "NRL Memorandum Report", NUMBER = "NRL/MR/7320--18-9801", - NOTE = "25 pp., www7320.nrlssc.navy.mil/pubs.php" } + NOTE = "25 pp., www7320.nrlssc.navy.mil/pubs" } % item art:RH09 @@ -1811,6 +1822,33 @@ @ARTICLE{art:RTS16 doi = "doi:10.1002/2016JC012251" } +% item art:YRW2019 + +@ARTICLE{art:YRW2019, + AUTHOR = "J. Yu and W. E. Rogers and D. W. Wang", + YEAR = 2019, + TITLE = "A Scaling for Wave Dispersion Relationships in Ice-Covered Waters", + JOURNAL = JGR, + VOLUME = "124", + PAGES = "8429--8438" , + doi = "doi:10.1029/2018JC014870" + } + +% item art:Yu2022 + +@Article{art:Yu2022, +AUTHOR = {Yu, Jie}, +TITLE = {Wave Boundary Layer at the Ice-Water Interface}, +JOURNAL = {Journal of Marine Science and Engineering}, +VOLUME = {10}, +YEAR = {2022}, +NUMBER = {10}, +ARTICLE-NUMBER = {1472}, +URL = {https://www.mdpi.com/2077-1312/10/10/1472}, +ISSN = {2077-1312}, +DOI = {10.3390/jmse10101472} +} + % item art:CFSRR10 @ARTICLE{art:CFSRR10, @@ -2346,7 +2384,7 @@ @TECHREPORT{rep:RC09 INSTITUTION = "{N}aval {R}esearch {L}aboratory, {S}tennis {S}pace {C}enter, {MS}", TYPE = "NRL Memorandum Report", NUMBER = "NRL/MR/7320--09-9193", - NOTE = "42 pp., www7320.nrlssc.navy.mil/pubs.php" } + NOTE = "42 pp., www7320.nrlssc.navy.mil/pubs" } % item rep:RO13 @@ -2357,7 +2395,7 @@ @TECHREPORT{rep:RO13 INSTITUTION = "{N}aval {R}esearch {L}aboratory, {S}tennis {S}pace {C}enter, {MS}", TYPE = "NRL Memorandum Report", NUMBER = "NRL/MR/7320--13-9462", - NOTE = "31 pp., www7320.nrlssc.navy.mil/pubs.php" } + NOTE = "31 pp., www7320.nrlssc.navy.mil/pubs" } % item rep:Roland2008 @@ -2606,6 +2644,17 @@ @MANUAL{man:SWAN3 ADDRESS = "P.O. Box 5048, 2600 GA Delft, The Netherlands", NOTE = "see http://swan.ct.tudelft.nl" } +% item man:SWAN4145A + +@MANUAL{man:SWAN4145A, + AUTHOR = "{SWAN team}", + YEAR = "2023", + TITLE = "{SWAN Cycle III} version 41.45A User Manual", + ORGANIZATION = "Delft University of Technology, + Faculty of Civil Engineering and Geosciences", + ADDRESS = "P.O. Box 5048, 2600 GA Delft, The Netherlands", + NOTE = "see https://swanmodel.sourceforge.io/" } + % item man:Jones98 @MANUAL{man:Jones98, @@ -3485,10 +3534,14 @@ @article{Liu2021 title={{Global Wave Hindcasts Using the Observation-based Source Terms: Description and Validation}}, author={Liu, Qingxiang and Babanin, Alexander and Rogers, W Erick and Zieger, Stefan and Young, Ian and Bidlot, Jean-Raymond and Durrant, Tom and Ewans, Kevin and Guan, Changlong and Kirezci, Cagil and Lemos, Gil and MacHutchon, Keith and Moon, Il-Ju and Rapizo, Henrique and Ribal, Agustinus and Semedo, Alvaro and Wang, Juanjuan}, journal={Journal of Advances in Modeling Earth Systems (JAMES)}, - year={submitted} + year = {2021}, + volume = {13}, + number = {8}, + pages = {e2021MS002493}, + doi = {https://doi.org/10.1029/2021MS002493}, } -@article{Rogers2021, +@article{art:RMK2021, title = {Estimates of spectral wave attenuation in Antarctic sea ice, using model/data inversion}, journal = {Cold Regions Science and Technology}, volume = {182}, @@ -3499,6 +3552,18 @@ @article{Rogers2021 author = {W. Erick Rogers and Michael H. Meylan and Alison L. Kohout} } +@article{art:YRW2022, + title = {A new method for parameterization of wave dissipation by sea ice}, + journal = {Cold Regions Science and Technology}, + volume = {199}, + pages = {103582}, + year = {2022}, + issn = {0165-232X}, + doi = {https://doi.org/10.1016/j.coldregions.2022.103582}, + url = {https://www.sciencedirect.com/science/article/pii/S0165232X2200101X}, + author = {Jie Yu and W. Erick Rogers and David W. Wang}, +} + @article{Forristall1981, author = {Forristall, George Z.}, doi = {10.1029/JC086iC09p08075}, diff --git a/model/nml/ww3_shel.nml b/model/nml/ww3_shel.nml index f6700ca8a..97beaf6a0 100644 --- a/model/nml/ww3_shel.nml +++ b/model/nml/ww3_shel.nml @@ -319,9 +319,9 @@ ! * the number of each homogeneous input is defined by HOMOG_COUNT ! * the total number of homogeneous input is automatically calculated ! * the homogeneous input must start from index 1 to N -! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * if VALUE1 is equal 0, then the homogeneous input is deactivated ! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV -! * each homogeneous input is defined over a maximum of 3 values detailled below : +! * each homogeneous input is defined over a maximum of 3 values detailed below : ! - IC1 is defined by thickness ! - IC2 is defined by viscosity ! - IC3 is defined by density diff --git a/model/src/w3gdatmd.F90 b/model/src/w3gdatmd.F90 index 59d3bcddf..bde5bf999 100644 --- a/model/src/w3gdatmd.F90 +++ b/model/src/w3gdatmd.F90 @@ -199,10 +199,14 @@ MODULE W3GDATMD ! Default is 1.0, meaning that 100% ice ! concentration result in zero source term ! If set to 0.0, then ice has no direct impact on Sln / Sin / Snl / Sds - ! IC3PARS R.A. Public various parameters for use in IC4, handled as + ! IC3PARS R.A. Public various parameters for use in IC3, handled as ! an array for simplicity - ! IC4_KI R.A. Public KI (dissipation rate) values for use in IC4 - ! IC4_FC R.A. Public FC (frequency bin separators) for use in IC4 + ! IC4_KI R.A. Public KI (dissipation rate) values for use in IC4M6 + ! IC4_FC R.A. Public FC (frequency bin separators) for use in IC4M6 + ! IC4_CN R.A. Public Coefficients for use in IC4M2 + ! IC4_FMIN Real Public Minimum frequency below which ki is set to + ! some background level dissipation (for S_ice) + ! IC4_KIBK Real Public Low, background level dissipation (for S_ice) ! PFMOVE Real Public Tunable parameter in GSE correction ! for moving grids. ! GRIDSHIFT Real Public Grid offset for multi-grid w/SCRIP @@ -615,7 +619,7 @@ MODULE W3GDATMD IPARS = -1, NAUXGR ! #ifdef W3_IC4 - INTEGER, PARAMETER :: NIC4=10 + INTEGER, PARAMETER :: NIC4=16 , NIC42=5 #endif INTEGER, PARAMETER :: RLGTYPE = 1 INTEGER, PARAMETER :: CLGTYPE = 2 @@ -732,6 +736,8 @@ MODULE W3GDATMD INTEGER, POINTER :: IC4PARS(:) REAL, POINTER :: IC4_KI(:) REAL, POINTER :: IC4_FC(:) + REAL, POINTER :: IC4_CN(:) + REAL :: IC4_FMIN, IC4_KIBK #endif #ifdef W3_IC5 REAL, POINTER :: IC5PARS(:) @@ -1144,6 +1150,8 @@ MODULE W3GDATMD INTEGER, POINTER :: IC4PARS(:) REAL, POINTER :: IC4_KI(:) REAL, POINTER :: IC4_FC(:) + REAL, POINTER :: IC4_CN(:) + REAL, POINTER :: IC4_FMIN, IC4_KIBK #endif #ifdef W3_IC5 REAL, POINTER :: IC5PARS(:) @@ -1840,6 +1848,8 @@ SUBROUTINE W3DIMX ( IMOD, MX, MY, MSEA, NDSE, NDST & CHECK_ALLOC_STATUS ( ISTAT ) ALLOCATE ( GRIDS(IMOD)%IC4_FC(NIC4), STAT=ISTAT ) CHECK_ALLOC_STATUS ( ISTAT ) + ALLOCATE ( GRIDS(IMOD)%IC4_CN(NIC42), STAT=ISTAT ) + CHECK_ALLOC_STATUS ( ISTAT ) #endif #ifdef W3_IC5 ALLOCATE ( GRIDS(IMOD)%IC5PARS(9), STAT=ISTAT ) @@ -2314,6 +2324,9 @@ SUBROUTINE W3SETG ( IMOD, NDSE, NDST ) IC4PARS => GRIDS(IMOD)%IC4PARS IC4_KI => GRIDS(IMOD)%IC4_KI IC4_FC => GRIDS(IMOD)%IC4_FC + IC4_CN => GRIDS(IMOD)%IC4_CN + IC4_FMIN => GRIDS(IMOD)%IC4_FMIN + IC4_KIBK => GRIDS(IMOD)%IC4_KIBK #endif #ifdef W3_IC5 IC5PARS => GRIDS(IMOD)%IC5PARS diff --git a/model/src/w3gridmd.F90 b/model/src/w3gridmd.F90 index 51aa3d159..977a203ae 100644 --- a/model/src/w3gridmd.F90 +++ b/model/src/w3gridmd.F90 @@ -114,6 +114,7 @@ MODULE W3GRIDMD !/ 07-Jun-2021 : S_{nl} GKE NL5 (Q. Liu) ( version 7.13 ) !/ 19-Jul-2021 : Momentum and air density support ( version 7.14 ) !/ 28-Feb-2023 : GQM as an alternative for NL1 ( version 7.15 ) + !/ 11-Jan-2024 : New namelist parameters for IC4 ( version 7.15 ) !/ !/ Copyright 2009-2013 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -764,9 +765,10 @@ MODULE W3GRIDMD #ifdef W3_IC4 INTEGER :: IC4METHOD - REAL :: IC4KI(NIC4), IC4FC(NIC4) + REAL :: IC4KI(NIC4), IC4FC(NIC4), & + IC4CN(NIC42), IC4FMIN, IC4KIBK #endif - ! + #ifdef W3_IC5 REAL :: IC5MINIG, IC5MINWT, & IC5MAXKRATIO, IC5MAXKI, IC5MINHW, & @@ -970,7 +972,8 @@ MODULE W3GRIDMD IC3VISC, IC3ELAS, IC3DENS, IC3HICE #endif #ifdef W3_IC4 - NAMELIST /SIC4/ IC4METHOD, IC4KI, IC4FC + NAMELIST /SIC4/ IC4METHOD, IC4KI, IC4FC, IC4CN, IC4FMIN, & + IC4KIBK #endif #ifdef W3_IC5 NAMELIST /SIC5/ IC5MINIG, IC5MINWT, IC5MAXKRATIO, & @@ -2891,6 +2894,9 @@ SUBROUTINE W3GRID() IC4METHOD = 1 !switch for methods within IC4 IC4KI=0.0 IC4FC=0.0 + IC4CN=0.0 + IC4FMIN=0.0 + IC4KIBK=0.0 #endif ! #ifdef W3_IC5 @@ -5313,6 +5319,9 @@ SUBROUTINE W3GRID() IC4PARS(1)=IC4METHOD IC4_KI=IC4KI IC4_FC=IC4FC + IC4_CN=IC4CN + IC4_FMIN=IC4FMIN + IC4_KIBK=IC4KIBK #endif ! #ifdef W3_IC5 diff --git a/model/src/w3iogrmd.F90 b/model/src/w3iogrmd.F90 index f8723d812..ce4403ba3 100644 --- a/model/src/w3iogrmd.F90 +++ b/model/src/w3iogrmd.F90 @@ -1292,11 +1292,11 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT & #endif #ifdef W3_IC4 WRITE (NDSM) & - IC4PARS,IC4_KI,IC4_FC + IC4PARS,IC4_KI,IC4_FC,IC4_CN,IC4_FMIN,IC4_KIBK #ifdef W3_ASCII WRITE (NDSA,*) & - 'IC4PARS,IC4_KI,IC4_FC:', & - IC4PARS,IC4_KI,IC4_FC + 'IC4PARS,IC4_KI,IC4_FC,IC4_CN,IC4_FMIN,IC4_KIBK:', & + IC4PARS,IC4_KI,IC4_FC,IC4_CN,IC4_FMIN,IC4_KIBK #endif #endif #ifdef W3_IC5 @@ -1338,7 +1338,7 @@ SUBROUTINE W3IOGR ( INXOUT, NDSM, IMOD, FEXT & #endif #ifdef W3_IC4 READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & - IC4PARS,IC4_KI,IC4_FC + IC4PARS,IC4_KI,IC4_FC,IC4_CN,IC4_FMIN,IC4_KIBK #endif #ifdef W3_IC5 READ (NDSM,END=801,ERR=802,IOSTAT=IERR) & diff --git a/model/src/w3sic4md.F90 b/model/src/w3sic4md.F90 index 7b1c9c67a..3cc7da357 100644 --- a/model/src/w3sic4md.F90 +++ b/model/src/w3sic4md.F90 @@ -58,13 +58,6 @@ MODULE W3SIC4MD ! ! 5. Remarks : ! - ! Source material : - ! 1) Wadhams et al. JGR 1988 - ! 2) Meylan et al. GRL 2014 - ! 3) Kohout & Meylan JGR 2008 in Horvat & Tziperman Cryo. 2015 - ! 4) Kohout et al. Nature 2014 - ! 5) Doble et al. GRL 2015 - ! 6) Rogers et al. JGR 2016 ! Documentation of IC4: ! 1) Collins and Rogers, NRL Memorandum report 2017 ! ---> "A Source Term for Wave Attenuation by Sea @@ -82,6 +75,21 @@ MODULE W3SIC4MD ! ---> New recommendations for IC4 Method 2 (polynomial fit) ! and IC4 Method 6 (step function via namelist) ! + ! Other source material : + ! *** Wadhams et al. JGR 1988 + ! *** Meylan et al. GRL 2014 + ! *** Kohout & Meylan JGR 2008 in Horvat & Tziperman Cryo. 2015 + ! *** Kohout et al. Nature 2014 + ! *** Doble et al. GRL 2015 + ! *** Rogers et al. JGR 2016 + ! *** Meylan et al. JGR 2018 + ! *** Yu et al. JGR 2019 + ! *** Liu et al. JPO 2020 + ! *** Rogers et al. CRST 2021 (RMK2021) + ! *** Rogers et al. tech. rep. 2021 (RYW2021) + ! *** Yu et al. CRST 2022 + ! *** Yu JMSE 2022 + ! ! 6. Switches : ! ! See subroutine documentation. @@ -127,6 +135,9 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) !/ 08-Apr-2016 : Method 6 added (namelist step funct.) (E. Rogers) !/ 24-Feb-2017 : Corrections to Methods 1,2,3,4 (E. Rogers) !/ 13-Apr-2017 : Method 7 added (Doble et al. 2015) (E. Rogers) + !/ 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) !/ !/ FIXME : Move field input to W3SRCE and provide !/ (S.Zieger) input parameter to W3SIC1 to make the subroutine @@ -155,7 +166,24 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) ! 2) Polynomial fit, Eq. 3 from Meylan et al. 2014 ! 3) Quadratic fit to Kohout & Meylan'08 in Horvat & Tziperman'15 ! Here, note that their eqn is given as ln(alpha)=blah, so we - ! have alpha=exp(blah) + ! have alpha=exp(blah). + ! Note from ER: + ! This implementation has two things to keep in mind: + ! 1) This is a scattering model, applied as dissipation, + ! which is not correct. + ! 2) This is not actually HT15! The alpha of HT15 has + ! different meaning from alpha of CR17, as follows: + ! HT15: decay is exp(-alpha*Lambda) where Lambda + ! is the number of floes encountered. + ! CR17: decay is exp(-alpha*x) + ! Thus, CR17's implementation of HT15 is equivalent to + ! the actual HT15 only if one assumes one floe encountered + ! per meter. This is very strong attenuation, as shown in + ! Figure 3 of CR17! This problem might be fixed by computing + ! an encounter interval length scale from an a_ice and d_ice + ! provided by the user...or a length scale provided by the + ! user. + ! See also: page 3 of Rogers et al. (RYW2021). ! 4) Eq. 1 from Kohout et al. 2014 ! ! 5) Simple step function for ki as a function of frequency @@ -208,9 +236,10 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) ! 'MTH' 19680606 000000 0.16 ! ! 6) Simple step function for ki as a function of frequency - ! with up to 10 "steps". Controlling parameters KIx and FCx are + ! with up to 16 "steps". Controlling parameters KIx and FCx are ! read in as namelist parameters, so they are stationary and - ! uniform. + ! uniform. (If 16 steps is not enough, the number of steps can be + ! increased at compile time by changing NIC4 in w3gdatmd.ftn.) ! The last non-zero FCx value should be a large number, e.g. 99 Hz ! ! 4444444444 <--- ki=ic4_ki(4) @@ -237,6 +266,62 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) ! ALPHA = 0.2*(T^(-2.13)*HICE or ! ALPHA = 0.2*(FREQ^2.13)*HICE ! + ! 8) Meylan et al. (JGR 2018), eq. 48. "Model with Order 3 Power + ! Law". The is denoted as the "M2" model by Liu et al. (JPO 2020) + ! It is a function of ice thickness and wave period. + ! ki = ChfM2*h_ice*freq^3 + ! where ChfM2 is a coefficient of proportionality which formally + ! includes viscosity, density, and gravity parameters, see + ! Meylan et al. (JGR 2018) for details. + ! ChfM2 has units of s3/m2 + ! It is equation 53 in Meylan et al. (2018) and equation 16 in + ! Liu et al. (2020). + ! This method is functionally the same as the "M2" model in IC5 + ! in WW3 (IC5 w/IC5VEMOD=3) and is redundantly included here as + ! IC4M8 because it is in the same "family" as IC4M7 and IC4M9, + ! being in the form of: + ! ki=Chf * h_ice^m * freq^n . + ! Calibrations: + ! * Liu et al. has ChfM2=eta*(2*pi)^3/(1025*9.81^2) + ! ** eta=14.0 for "Sikuliaq" case of Liu et al., so ChfM2=0.035 + ! ** eta=3.0 for "SIPEX" case of Liu et al., so ChfM2=0.0075 + ! * Rogers et al. (tech rep. 2021, "RYW2021") : + ! ** Fit to Rogers et al. (CRST 2021 "RMK2021") ChfM2=0.059 (*SD*) + ! suggested default is marked with "(*SD*)", for consistency + ! with SWAN (v41.31AB or later) + ! + ! 9) Rogers et al. (tech. rep. 2021, "RYW2021"): the "monomial power + ! fit" described in section 2.2.3. It is the general form above, + ! ki=Chf * h_ice^m * freq^n but is constrained such that m=n/2-1. + ! This constraint is derived by RYW2021 by invoking the scaling from + ! Yu et al. (2019), which is based on Reynolds number with ice + ! thickness as the relevant length scale. + ! This is also given as equation 2 in Yu et al. (CRST 2022). + ! Some calibrations are as follows: + ! * RYW2021, calibration to RMK2021: Chf=2.9 and n=4.5 (*SD*) + ! * Yu et al. (2022) calibration to RMK2021 : Chf=2.4 and n=4.46 + ! (noting that c_n=0.108 and Chf=c_n*(2*pi/sqrt(g))^n) + ! * Yu (2022) adjusted the prior calibration to get better fit + ! to higher frequency lab measurements and got: + ! Chf=7.89 and n=4.8 + ! suggested default is marked with "(*SD*)", for consistency + ! with SWAN (v41.31AB or later) + ! + ! ------------------------------------------------------------------ + ! + ! For all methods, the user can specify namelist + ! variables IC4FMIN and IC4KIBK such as: + ! &SIC4 IC4METHOD = [...], IC4FMIN=0.08, IC4KIBK=1.0e-7, [...] + ! This accomodates the situation where the empirically-derived + ! dissipation is uncertain for the lowest frequencies, which can be + ! the case if estimated dissipation rate is so small that it falls + ! in the noise level for the estimation method. (This is common, + ! since some ice types cause only very weak dissipation + ! to low frequencies.) In the example above, the amplitude + ! dissipation rate ki is set to some low background level + ! dissipation IC4KIBK=1.0e-7 1/m when model frequency is less than + ! 0.08 Hz. + ! ! More verbose description of implementation of Sice in WW3: ! See documentation for IC1 ! @@ -315,9 +400,10 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) USE W3ODATMD, ONLY: NDSE USE W3SERVMD, ONLY: EXTCDE USE W3GDATMD, ONLY: NK, NTH, NSPEC, SIG, MAPWN, IC4PARS, DDEN, & - IC4_KI, IC4_FC, NIC4 + IC4_KI, IC4_FC, IC4_CN, NIC4, IC4_FMIN, & + IC4_KIBK USE W3IDATMD, ONLY: ICEP1, ICEP2, ICEP3, ICEP4, ICEP5, & - MUDT, MUDV, MUDD, INFLAGS2 + MUDT, MUDV, MUDD, INFLAGS2 #ifdef W3_T USE W3ODATMD, ONLY: NDST @@ -353,14 +439,18 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) INTEGER :: IKTH, IK, ITH, IC4METHOD, IFC REAL :: D1D(NK), EB(NK) REAL :: ICECOEF1, ICECOEF2, ICECOEF3, & - ICECOEF4, ICECOEF5, ICECOEF6, & - ICECOEF7, ICECOEF8 - REAL :: KI1,KI2,KI3,KI4,FC5,FC6,FC7,FREQ + ICECOEF4, ICECOEF5, ICECOEF6, & + ICECOEF7, ICECOEF8 + REAL :: CICE1,CICE2,CICE3,CICE4,CICE5 ! temporary variables + REAL :: KI1,KI2,KI3,KI4,FC5,FC6,FC7 REAL :: HS, EMEAN, HICE + REAL :: Chf,mpow,npow REAL, ALLOCATABLE :: WN_I(:) ! exponential decay rate for amplitude REAL, ALLOCATABLE :: ALPHA(:) ! exponential decay rate for energy + REAL, ALLOCATABLE :: FREQ(:) ! wave frequency REAL, ALLOCATABLE :: MARG1(:), MARG2(:) ! Arguments for M2 REAL, ALLOCATABLE :: KARG1(:), KARG2(:), KARG3(:) !Arguments for M3 + LOGICAL :: NML_INPUT ! if using namelist input for M2 !/ !/ ------------------------------------------------------------------- / @@ -380,6 +470,7 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) ALLOCATE(KARG1(0:NK+1)) ALLOCATE(KARG2(0:NK+1)) ALLOCATE(KARG3(0:NK+1)) + ALLOCATE(FREQ(0:NK+1)) MARG1 = 0.0 MARG2 = 0.0 KARG1 = 0.0 @@ -398,12 +489,12 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) HS = 0.0 HICE = 0.0 EMEAN = 0.0 + FREQ=SIG/TPI ! ! IF (.NOT.INFLAGS2(-7))THEN ! WRITE (NDSE,1001) 'ICE PARAMETER 1' ! CALL EXTCDE(201) ! ENDIF - ! ! We cannot remove the other use of INFLAGS below, ! because we would get 'array not allocated' error for the methods @@ -430,20 +521,8 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) IC4METHOD = IC4PARS(1) ! - ! x. No ice --------------------------------------------------------- / - ! - ! IF ( ICECOEF1==0. ) THEN - ! D = 0. - ! WRITE(*,*) '!!!No Ice!!!' - ! - ! x. Ice ------------------------------------------------------------ / - ! ELSE - ! - ! x.x Set constant(s) and write test output -------------------------- / - ! - ! (none) - ! #ifdef W3_T38 + ! Write test output ---------------------------------------------- / WRITE (NDST,9000) DEPTH,ICECOEF1,ICECOEF2,ICECOEF3,ICECOEF4 #endif ! @@ -461,8 +540,32 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) !NB: Eq. 3 only includes T^2 and T^4 terms, ! which correspond to ICECOEF3, ICECOEF5, so in ! regtest: ICECOEF1=ICECOEF2=ICECOEF4=0 - MARG1 = ICECOEF1 + ICECOEF2*(SIG/TPI) + ICECOEF3*(SIG/TPI)**2 - MARG2 = ICECOEF4*(SIG/TPI)**3 + ICECOEF5*(SIG/TPI)**4 + + NML_INPUT=.TRUE. + IF (INFLAGS2(-7).OR.INFLAGS2(-6).OR.INFLAGS2(-5).OR. & + INFLAGS2(-4).OR.INFLAGS2(-3)) NML_INPUT=.FALSE. + + IF(NML_INPUT)THEN ! get from namelist array + + CICE1=IC4_CN(1) + CICE2=IC4_CN(2) + CICE3=IC4_CN(3) + CICE4=IC4_CN(4) + CICE5=IC4_CN(5) + + ELSE ! get from input-field array (ICEP1 etc.) + + CICE1=ICECOEF1 + CICE2=ICECOEF2 + CICE3=ICECOEF3 + CICE4=ICECOEF4 + CICE5=ICECOEF5 + + ENDIF + + ! CICE1 is C_{ice,1} in Collins and Rogers (2017), for example. + MARG1 = CICE1 + CICE2*FREQ + CICE3*FREQ**2 + MARG2 = CICE4*FREQ**3 + CICE5*FREQ**4 ALPHA = MARG1 + MARG2 WN_I = 0.5 * ALPHA @@ -510,13 +613,12 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) CALL EXTCDE(201) END IF DO IK=1, NK - FREQ=SIG(IK)/TPI ! select ki - IF(FREQ.LT.FC5)THEN + IF(FREQ(IK).LT.FC5)THEN WN_I(IK)=KI1 - ELSEIF(FREQ.LT.FC6)THEN + ELSEIF(FREQ(IK).LT.FC6)THEN WN_I(IK)=KI2 - ELSEIF(FREQ.LT.FC7)THEN + ELSEIF(FREQ(IK).LT.FC7)THEN WN_I(IK)=KI3 ELSE WN_I(IK)=KI4 @@ -534,10 +636,9 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) END IF DO IK=1, NK - FREQ=SIG(IK)/TPI ! select ki DO IFC=1,NIC4 - IF(FREQ.LT.IC4_FC(IFC))THEN + IF(FREQ(IK).LT.IC4_FC(IFC))THEN WN_I(IK)=IC4_KI(IFC) EXIT END IF @@ -548,11 +649,57 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) HICE=ICECOEF1 ! For this method, ICECOEF1=ice thickness DO IK=1,NK - FREQ=SIG(IK)/TPI - ALPHA(IK) = 0.2*(FREQ**2.13)*HICE + ALPHA(IK) = 0.2*(FREQ(IK)**2.13)*HICE END DO WN_I= 0.5 * ALPHA + CASE (8) ! Meylan et al. (JGR 2018), Liu et al. (JPO 2020) + + NML_INPUT=.TRUE. + IF (INFLAGS2(-6)) NML_INPUT=.FALSE. + + IF(NML_INPUT)THEN ! get from namelist array + + Chf=IC4_CN(1) ! Denoted "ChfM2" in documentation + + ELSE ! get from input-field array (ICEP1 etc.) + + Chf=ICECOEF2 ! Denoted "ChfM2" in documentation + + ENDIF + + ! Rename variable, for clarity + hice=ICECOEF1 ! For this method, ICECOEF1 is ice thickness + + DO IK=1,NK + WN_I(IK) = Chf*hice*(FREQ(IK)**3) + END DO + + CASE (9) ! Rogers et al. (2021) (RYW2021), Yu et al. (JGR 2022) + + NML_INPUT=.TRUE. + IF (INFLAGS2(-6).OR.INFLAGS2(-5)) NML_INPUT=.FALSE. + + IF(NML_INPUT)THEN ! get from namelist array + + Chf=IC4_CN(1) ! Denoted as same in documentation + npow=IC4_CN(2) ! Denoted "n" in documentation + + ELSE ! get from input-field array (ICEP1 etc.) + + Chf=ICECOEF2 ! Denoted as same in documentation + npow=ICECOEF3 ! Denoted "n" in documentation + + ENDIF + + ! Rename variable, for clarity + hice=ICECOEF1 ! For this method, ICECOEF1 is ice thickness + ! Compute + mpow=0.5*npow-1.0 ! Denoted "m" in documentation + DO IK=1,NK + WN_I(IK) = Chf*(hice**mpow)*(FREQ(IK)**npow) + END DO + CASE DEFAULT WN_I = ICECOEF1 !Default to IC1: Uniform in k @@ -564,6 +711,8 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) DO IK=1, NK ! SBT1 has: D1D(IK) = FACTOR * MAX(0., (CG(IK)*WN(IK)/SIG(IK)-0.5) ) ! recall that D=S/E=-2*Cg*k_i + IF(FREQ(IK).LT.IC4_FMIN)WN_I(IK)=IC4_KIBK + ! write(*,*)freq(ik),wn_i(ik),ICECOEF1,' % :: freq,ki,hice' ! temporary code: do not commit to repo uncommented D1D(IK) = -2. * CG(IK) * WN_I(IK) END DO @@ -598,7 +747,7 @@ SUBROUTINE W3SIC4 (A, DEPTH, CG, IX, IY, S, D) ! Formats ! 1001 FORMAT (/' *** WAVEWATCH III ERROR IN W3SIC4 : '/ & - ' ',A,' REQUIRED BUT NOT SELECTED'/) + ' ',A,' REQUIRED BUT NOT SELECTED'/) ! #ifdef W3_T 9000 FORMAT (' TEST W3SIC4 : DEPTH,ICECOEF1 : ',2E10.3) diff --git a/regtests/bin/matrix.base b/regtests/bin/matrix.base index 3fcf651d6..97ae213f4 100755 --- a/regtests/bin/matrix.base +++ b/regtests/bin/matrix.base @@ -1953,6 +1953,8 @@ echo "$rtst -g 206H -w work_IC4_M6H -i input_IC4_M6 $ww3 ww3_tic1.1" >> matrix.body echo "$rtst -g 206L -w work_IC4_M6L -i input_IC4_M6 $ww3 ww3_tic1.1" >> matrix.body 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 -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 diff --git a/regtests/ww3_tic1.1/info b/regtests/ww3_tic1.1/info index 89f046a37..589317ea5 100644 --- a/regtests/ww3_tic1.1/info +++ b/regtests/ww3_tic1.1/info @@ -51,6 +51,9 @@ # 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) # +# (NB: redundant with IC5+IC5VEMOD=3) # +# IC4METHOD = 9 - RYW (2021) ; Yu et al. (2022) # # IC5 = Choose from three different effective medium models # # IC5VEMOD = 1 - Extended Fox and Squire model (EFS) # # IC5VEMOD = 2 - Robinson and Palmer model (RP) # @@ -170,7 +173,8 @@ # updated: Erick Rogers, Apr 2016 # # updated: Jessica Meixner, May 2016 # # updated: Qingxiang Liu, Jul 2018 # -# last updated: Qingxiang Liu, May 2021 # +# updated: Qingxiang Liu, May 2021 # +# last updated: Erick Rogers, Jan 2024 # # Copyright 2009-2014 National Weather Service (NWS), # # National Oceanic and Atmospheric Administration. All rights # # reserved. WAVEWATCH III is a trademark of the NWS. # diff --git a/regtests/ww3_tic1.1/input_IC4_M8/namelists_1-D.nml b/regtests/ww3_tic1.1/input_IC4_M8/namelists_1-D.nml new file mode 100644 index 000000000..281a0b12f --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/namelists_1-D.nml @@ -0,0 +1,2 @@ +&SIC4 IC4METHOD = 8 / +END OF NAMELISTS diff --git a/regtests/ww3_tic1.1/input_IC4_M8/points.list b/regtests/ww3_tic1.1/input_IC4_M8/points.list new file mode 100644 index 000000000..e2a0afe3d --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/points.list @@ -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 ' diff --git a/regtests/ww3_tic1.1/input_IC4_M8/switch b/regtests/ww3_tic1.1/input_IC4_M8/switch new file mode 100644 index 000000000..31ef85bae --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/switch @@ -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 diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_grid.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_grid.inp new file mode 100644 index 000000000..9356362ef --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_grid.inp @@ -0,0 +1,42 @@ +$ 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 + &SIC4 IC4METHOD = 8 , 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 diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_grid.nml b/regtests/ww3_tic1.1/input_IC4_M8/ww3_grid.nml new file mode 100644 index 000000000..87d4e3845 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_grid.nml @@ -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_M8/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 ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_ounf.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_ounf.inp new file mode 100644 index 000000000..4104d759e --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_ounf.inp @@ -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 $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_ounf.nml b/regtests/ww3_tic1.1/input_IC4_M8/ww3_ounf.nml new file mode 100644 index 000000000..46aa758fa --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_ounf.nml @@ -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 ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_outf.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_outf.inp new file mode 100644 index 000000000..2b4c6bca8 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_outf.inp @@ -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 diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_spec.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_spec.inp new file mode 100644 index 000000000..b500e0ca4 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_spec.inp @@ -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 diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_tab50.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_tab50.inp new file mode 100644 index 000000000..826bd422d --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_tab50.inp @@ -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 diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_tab51.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_tab51.inp new file mode 100644 index 000000000..e54faed46 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_outp_tab51.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 900. 49 +$ +$ 1 + 11 + -1 +$ + 2 + 2 51 diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_prep_icecon.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_prep_icecon.inp new file mode 100644 index 000000000..26a94221f --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_prep_icecon.inp @@ -0,0 +1,38 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Field preprocessor input file $ +$ -------------------------------------------------------------------- $ +$ Mayor types of field and time flag +$ Field types : IC1, IC2, IC3, IC4, IC5 => Ice parameters (5) +$ MDN => Mud densities +$ MTH => Mud thicknesses +$ MVS => Mud viscosities +$ ICE => Ice concentrations. +$ LEV => Water levels. +$ WND => Winds. +$ WNS => Winds (including air-sea temp. dif.) +$ CUR => Currents. +$ Format types : AI Transfer field 'as is'. +$ LL Field defined on longitude-latitude grid. +$ F1 Arbitrary grid, longitude and latitude of +$ each grid point given in separate file. +$ F2 Like F1, composite of 2 fields. +$ Time flag : If true, time is included in file. +$ Header flag : If true, write header on "*.ww3" data file +$ + 'ICE' 'AI' T T +$ +$ Additional time input ---------------------------------------------- $ +$ If time flag is .FALSE., give time of field in yyyymmdd hhmmss format. +$ +$ 19680606 000000 +$ +$ Define data files -------------------------------------------------- $ +$ The first input line identifies the file format with FROM, IDLA and +$ IDFM, the second (third) lines give the file unit number and name. +$ + 'NAME' 1 2 '(I10,1x,I10)' '(1000(F6.2))' + 2345 '../input_IC2_nondisp/icecon.156x3.txt' +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_shel.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_shel.inp new file mode 100644 index 000000000..c496220ff --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_shel.inp @@ -0,0 +1,68 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + T T Ice parameter 1 + F F Ice parameter 2 + F F Ice parameter 3 + F F Ice parameter 4 + F F Ice parameter 5 + F F Mud parameter 1 + F F Mud parameter 2 + F F Mud parameter 3 + F F Water levels + F F Currents + F F Winds + T F Ice concentrations + F F Atmospheric momentum + F F Air density + F Assimilation data : Mean parameters + F Assimilation data : 1-D spectra + F Assimilation data : 2-D spectra. +$ + 19680606 000000 + 19680606 120000 +$ + 1 +$ + 19680606 000000 900 19680606 120000 +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 HS ICE DIR EF + 19680606 000000 900 19680606 120000 + 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 ' + 0. 0. 'STOPSTRING' + 19680606 000000 0 19680606 120000 + 19680606 000000 0 19680606 120000 + 19680606 000000 0 19680606 120000 + 19680606 000000 0 19680606 120000 +$ +$ Testing of output through parameter list (C/TPAR) ------------------ $ +$ Time for output and field flags as in above output type 1. +$ +$ 19680606 014500 +$ T T T T T T T T T T T T T T T T +$ +$ Homogeneous field data --------------------------------------------- $ +$ constant case: + 'IC1' 19680606 000000 0.2 +$ 'IC1' 19680606 000000 2.00 + 'STP' +$ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tic1.1/input_IC4_M8/ww3_strt.inp b/regtests/ww3_tic1.1/input_IC4_M8/ww3_strt.inp new file mode 100644 index 000000000..49747e41a --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M8/ww3_strt.inp @@ -0,0 +1,17 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- + 2 +$ 0.1 0.0001 225. 12 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 315. 12 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 240. 2 0. -5.E3 0. 5.E3 1.0 +$ fp sip thm ncos xm six ym siy hmax +$ 0.1 0.0001 270. 12 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 270. 2 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 300. 2 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 135. 12 50.E3 -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 45. 12 50.E3 -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 120. 2 50.E3 -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 60. 2 50.E3 -5.E3 0. 5.E3 1.0 +$ +$ alpha fp thm gamma sigA sigB xm six ym siy + 0.0081 0.1 270.0 1.0 0.07 0.09 0. -5.E3 0. 5.E3 diff --git a/regtests/ww3_tic1.1/input_IC4_M9/namelists_1-D.nml b/regtests/ww3_tic1.1/input_IC4_M9/namelists_1-D.nml new file mode 100644 index 000000000..3c6dc824d --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/namelists_1-D.nml @@ -0,0 +1,2 @@ +&SIC4 IC4METHOD = 9 / +END OF NAMELISTS diff --git a/regtests/ww3_tic1.1/input_IC4_M9/points.list b/regtests/ww3_tic1.1/input_IC4_M9/points.list new file mode 100644 index 000000000..e2a0afe3d --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/points.list @@ -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 ' diff --git a/regtests/ww3_tic1.1/input_IC4_M9/switch b/regtests/ww3_tic1.1/input_IC4_M9/switch new file mode 100644 index 000000000..31ef85bae --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/switch @@ -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 diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_grid.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_grid.inp new file mode 100644 index 000000000..201517305 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_grid.inp @@ -0,0 +1,42 @@ +$ 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) +$ IC4M9 Fit to R21A Chf=2.9 and n=4.5 + &SIC4 IC4METHOD = 9 , IC4CN = 2.9, 4.5/ +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 diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_grid.nml b/regtests/ww3_tic1.1/input_IC4_M9/ww3_grid.nml new file mode 100644 index 000000000..071761155 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_grid.nml @@ -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_M9/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 ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_ounf.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_ounf.inp new file mode 100644 index 000000000..4104d759e --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_ounf.inp @@ -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 $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_ounf.nml b/regtests/ww3_tic1.1/input_IC4_M9/ww3_ounf.nml new file mode 100644 index 000000000..46aa758fa --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_ounf.nml @@ -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 ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_outf.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_outf.inp new file mode 100644 index 000000000..2b4c6bca8 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_outf.inp @@ -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 diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_spec.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_spec.inp new file mode 100644 index 000000000..b500e0ca4 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_spec.inp @@ -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 diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_tab50.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_tab50.inp new file mode 100644 index 000000000..826bd422d --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_tab50.inp @@ -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 diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_tab51.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_tab51.inp new file mode 100644 index 000000000..e54faed46 --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_outp_tab51.inp @@ -0,0 +1,10 @@ +$ WAVEWATCH III Point output post-processing +$ ------------------------------------------ + 19680606 000000 900. 49 +$ +$ 1 + 11 + -1 +$ + 2 + 2 51 diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_prep_icecon.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_prep_icecon.inp new file mode 100644 index 000000000..26a94221f --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_prep_icecon.inp @@ -0,0 +1,38 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Field preprocessor input file $ +$ -------------------------------------------------------------------- $ +$ Mayor types of field and time flag +$ Field types : IC1, IC2, IC3, IC4, IC5 => Ice parameters (5) +$ MDN => Mud densities +$ MTH => Mud thicknesses +$ MVS => Mud viscosities +$ ICE => Ice concentrations. +$ LEV => Water levels. +$ WND => Winds. +$ WNS => Winds (including air-sea temp. dif.) +$ CUR => Currents. +$ Format types : AI Transfer field 'as is'. +$ LL Field defined on longitude-latitude grid. +$ F1 Arbitrary grid, longitude and latitude of +$ each grid point given in separate file. +$ F2 Like F1, composite of 2 fields. +$ Time flag : If true, time is included in file. +$ Header flag : If true, write header on "*.ww3" data file +$ + 'ICE' 'AI' T T +$ +$ Additional time input ---------------------------------------------- $ +$ If time flag is .FALSE., give time of field in yyyymmdd hhmmss format. +$ +$ 19680606 000000 +$ +$ Define data files -------------------------------------------------- $ +$ The first input line identifies the file format with FROM, IDLA and +$ IDFM, the second (third) lines give the file unit number and name. +$ + 'NAME' 1 2 '(I10,1x,I10)' '(1000(F6.2))' + 2345 '../input_IC2_nondisp/icecon.156x3.txt' +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_shel.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_shel.inp new file mode 100644 index 000000000..c496220ff --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_shel.inp @@ -0,0 +1,68 @@ +$ WAVEWATCH III shell input file +$ ------------------------------ + T T Ice parameter 1 + F F Ice parameter 2 + F F Ice parameter 3 + F F Ice parameter 4 + F F Ice parameter 5 + F F Mud parameter 1 + F F Mud parameter 2 + F F Mud parameter 3 + F F Water levels + F F Currents + F F Winds + T F Ice concentrations + F F Atmospheric momentum + F F Air density + F Assimilation data : Mean parameters + F Assimilation data : 1-D spectra + F Assimilation data : 2-D spectra. +$ + 19680606 000000 + 19680606 120000 +$ + 1 +$ + 19680606 000000 900 19680606 120000 +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 HS ICE DIR EF + 19680606 000000 900 19680606 120000 + 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 ' + 0. 0. 'STOPSTRING' + 19680606 000000 0 19680606 120000 + 19680606 000000 0 19680606 120000 + 19680606 000000 0 19680606 120000 + 19680606 000000 0 19680606 120000 +$ +$ Testing of output through parameter list (C/TPAR) ------------------ $ +$ Time for output and field flags as in above output type 1. +$ +$ 19680606 014500 +$ T T T T T T T T T T T T T T T T +$ +$ Homogeneous field data --------------------------------------------- $ +$ constant case: + 'IC1' 19680606 000000 0.2 +$ 'IC1' 19680606 000000 2.00 + 'STP' +$ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tic1.1/input_IC4_M9/ww3_strt.inp b/regtests/ww3_tic1.1/input_IC4_M9/ww3_strt.inp new file mode 100644 index 000000000..49747e41a --- /dev/null +++ b/regtests/ww3_tic1.1/input_IC4_M9/ww3_strt.inp @@ -0,0 +1,17 @@ +$ WAVEWATCH III Initial conditions input file +$ ------------------------------------------- + 2 +$ 0.1 0.0001 225. 12 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 315. 12 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 240. 2 0. -5.E3 0. 5.E3 1.0 +$ fp sip thm ncos xm six ym siy hmax +$ 0.1 0.0001 270. 12 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 270. 2 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 300. 2 0. -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 135. 12 50.E3 -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 45. 12 50.E3 -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 120. 2 50.E3 -5.E3 0. 5.E3 1.0 +$ 0.1 0.0001 60. 2 50.E3 -5.E3 0. 5.E3 1.0 +$ +$ alpha fp thm gamma sigA sigB xm six ym siy + 0.0081 0.1 270.0 1.0 0.07 0.09 0. -5.E3 0. 5.E3