|
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