|
57 | 57 | !/ | FORTRAN 90 |
|
58 | 58 | !/ | J. H. Alves |
|
59 | 59 | !/ | H. L. Tolman |
|
| 60 | +!/ ! A. Roland | |
60 | 61 | !/ | Last update : 08-Jun-2018 |
|
61 | 62 | !/ +-----------------------------------+
|
62 | 63 | !/
|
63 | 64 | !/ 25-Apr-2007 : Origination of module. ( version 3.11 )
|
64 | 65 | !/ 08-Jun-2018 : Add DEBUGDB1. ( version 6.04 )
|
| 66 | +!/ 03-Apr-2019 : Rewrite in terms of energy density (A. Roland,version 6.07) |
| 67 | +!/ 03-Apr-2019 : Add Thornton & Guza, 1983 (A. Roland,version 6.07) |
65 | 68 | !/
|
66 | 69 | ! 1. Purpose :
|
67 | 70 | !
|
68 | 71 | ! Compute depth-induced breaking using Battjes and Janssen bore
|
69 | 72 | ! model approach
|
70 | 73 | !
|
71 |
| -! 2. Method : |
72 |
| -! |
73 |
| -! Sdb = - CDB * FMEAN * QB * B * B * SPEC |
74 |
| -! |
75 |
| -! Where CDB = SDBC1 = 0.25 * BJALFA (defaults to BJALFA = 1) |
76 |
| -! modified via ww3_grid namelist parameter BJALFA |
77 |
| -! B = HM / HRMS |
78 |
| -! HM = GAMMA * DEP |
79 |
| -! GAMMA = SDBC2 defaults to 0.73 (mean Battjes/Janssen value) |
80 |
| -! modified via ww3_grid namelist parameter BJGAM |
| 74 | +! 2. Method : Battjes & Janssen (1978), |
| 75 | +! |
| 76 | +! Sbr = Dtot/Etot*WA = D * WA |
| 77 | +! Dtot = 0.25*alpha*Qb*fm*Hmax² |
| 78 | +! fm = sigma/2Pi |
| 79 | +! BB = Hrms²/Hmax² = 8Etot/Hmax² |
| 80 | +! D = Dtot/Etot = BJALFA * sigma / pi * Qb/BB = 2 * BJALFA * fm * Qb/BB |
| 81 | +! |
| 82 | +! AR: only valid for Hrms .le. Hm, Qb .le. 1, otherwise, in the degenrative regime it is |
| 83 | +! due to Qb > 1 that all wave are broken and Hrms .le. Hmax |
| 84 | +! MLIM can be used to enforce this conditions, source term will smoothly converge to this limit. |
| 85 | +! |
| 86 | +! Where CDB = SDBC1 = BJALFA (defaults to BJALFA = 1) |
| 87 | +! modified via ww3_grid namelist parameter BJALFA |
| 88 | +! HM = GAMMA * DEP |
| 89 | +! GAMMA = SDBC2 defaults to 0.73 (mean Battjes/Janssen value) |
| 90 | +! modified via ww3_grid namelist parameter BJGAM |
81 | 91 | !
|
82 | 92 | ! And QB is estimated by iterations using the nonlinear expression
|
83 | 93 | !
|
|
145 | 155 | !/
|
146 | 156 | INTEGER, INTENT(IN) :: IX ! Local grid number
|
147 | 157 | REAL, INTENT(IN) :: A(NSPEC)
|
148 |
| -!AR: This below is not good I know ... we need more inlined methods ... |
149 | 158 | REAL, INTENT(INOUT) :: EMEAN, FMEAN, WNMEAN, DEPTH
|
150 | 159 | REAL, INTENT(OUT) :: S(NSPEC), D(NSPEC)
|
151 | 160 | REAL, INTENT(IN) :: CG(NK)
|
|
179 | 188 | !
|
180 | 189 | !/T WRITE (NDST,9000) SDBC1, SDBC2, FDONLY
|
181 | 190 | !
|
182 |
| -! 1. Integral quantities ... only for the case when it is used nonlinear in the solver ... |
| 191 | +! 1. Integral quantities. AR: make sure mean quantities are computed, need to move upward |
183 | 192 | !
|
184 | 193 | ETOT = 0.
|
185 | 194 | FMEAN2 = 0.
|
|
256 | 265 | IF (IWB == 1) THEN
|
257 | 266 | IF ( ( BB .GT. THR) .AND. ( ABS ( BB - QB ) .GT. THR) ) THEN
|
258 | 267 | IF ( BB .LT. 1.0) THEN
|
259 |
| - CBJ = DBLE(SDBC1) * QB * DBLE(FMEAN) / BB |
| 268 | + CBJ = 2 * DBLE(SDBC1) * QB * DBLE(FMEAN) / BB |
260 | 269 | ELSE
|
261 |
| - CBJ = DBLE(SDBC1) * DBLE(FMEAN) * BB ! Make sure the energy vanishes ... |
| 270 | + CBJ = 2 * DBLE(SDBC1) * DBLE(FMEAN) * BB ! AR: degenerative regime, all waves must be .le. Hmax, we just smoothly let the excessive energy vanish by * BB. |
262 | 271 | END IF
|
263 | 272 | ELSE
|
264 | 273 | CBJ = 0.d0
|
265 | 274 | ENDIF
|
266 | 275 | D = - CBJ
|
267 | 276 | S = D * A
|
268 |
| - ELSE IF (IWB == 2) THEN |
| 277 | + ELSE IF (IWB == 2) THEN |
269 | 278 | IF (ETOT .GT. THR) THEN
|
270 | 279 | HRMS = SQRT(8*EMEAN)
|
271 | 280 | FAK = (1+4./SQRT(PI)*(B*BB+1.5*B)*exp(-BB)-ERF(B))
|
|
275 | 284 | ENDIF
|
276 | 285 | D = - CBJ
|
277 | 286 | S = D * A
|
278 |
| - ELSE IF (IWB == 3) THEN |
279 | 287 | ENDIF
|
280 | 288 |
|
281 | 289 | IF (CBJ .GT. 0.) THEN
|
|
0 commit comments