183 SUBROUTINE w3str1 (A, AOLD, CG, WN, DEPTH, IX, S, D)
323 REAL,
INTENT(IN) :: CG(NK), WN(NK), DEPTH, A(NSPEC), AOLD(NSPEC)
324 INTEGER,
INTENT(IN) :: IX
325 REAL,
INTENT(OUT) :: S(NSPEC), D(NSPEC)
374 INTEGER,
SAVE :: IENT = 0
376 INTEGER :: I1, I2, ID, IDDUM, II, IS, ISM, ISM1, ISMAX
377 INTEGER :: ISP, ISP1, ITH, IK
378 REAL :: AUX1, AUX2, BIPH, C0, CM, DEP, DEP_2, DEP_3, E0, EM, HS
379 REAL :: FT, RINT, SIGPICG, SINBPH, STRI, WISM, WISM1, WISP
380 REAL :: WISP1, W0, WM, WN0, WNM, XIS, XISLN, EDM, ED0, G9DEP, STRI2
381 REAL :: E(NK), SA(NTH,100), SA2(NTH,100), A2(NSPEC), A3(NSPEC), HMAX
382 REAL :: EB(NK), EBAND, EMEAN, SIGM01, ED(NK)
384 REAL :: EF(NK), JACEPS, DIFFSTR
386 REAL :: URSELL, ALPHAR
392 CALL strace (ient,
'W3STR1')
409 eb(ik) = eb(ik) + a(ith+(ik-1)*nth)
410 ed(ik) = ed(ik) + a(ith+(ik-1)*nth) *
dden(ik) / cg(ik)
417 eb(ik) = eb(ik) *
dden(ik) / cg(ik)
418 emean = emean + eb(ik)
419 sigm01 = sigm01 + eb(ik)*
sig(ik)
425 eband = eb(nk) /
dden(nk)
426 emean = emean + eband *
fte
427 sigm01 = sigm01 + eband *
ftf
431 sigm01 = sigm01 / emean
441 hs = 4.*sqrt( max(0.,emean) )
442 ursell = (
grav*hs)/(2.*sqrt(2.)*sigm01**2*depth**2)
452 i2 = int(float(nk) / 2.)
457 isp = int( log(2.) / xisln )
459 wisp = (2. - xis**isp) / (xis**isp1 - xis**isp)
462 ism = int( log(0.5) / xisln )
464 wism = (xis**ism -0.5) / (xis**ism - xis**ism1)
474 IF (
sig(ik) .LT. ( ptriad(2) * sigm01) )
THEN
478 ismax = max( ismax , isp1 )
482 IF (ursell.GE.ptriad(5) )
THEN
486 biph = (0.5*
pi)*(tanh(ptriad(4)/ursell)-1.)
487 sinbph = abs(sin(biph) )
492 e(ik) = a(ith+(ik-1)*nth) *
tpi *
sig(ik) / cg(ik)
493 ef(ik) = ef(ik) + e(ik)
501 IF ( ik.GT.-ism1 )
THEN
502 em = wism * e(ik+ism1) + wism1 * e(ik+ism)
503 edm = wism * eb(ik+ism1) + wism1 * eb(ik+ism)
504 wm = wism *
sig(ik+ism1) + wism1 *
sig(ik+ism)
505 wnm = wism * wn(ik+ism1) + wism1 * wn(ik+ism)
514 aux1 = wnm**2 * ( g9dep + 2*cm**2 )
515 aux2 = wn0*dep* (g9dep+(2./15.)*
grav*dep_3*wn0**2-(2./5.)*w0**2*dep_2)
517 ft = ptriad(1) * c0 * cg(ik) * rint**2 * sinbph
518 sa(ith,ik) = max(0.,ft * ( em * em - 2. * em * e0))
523 sigpicg =
sig(ik)*
tpi/cg(ik)
525 stri = sa(ith,ik) - 2 * (wisp * sa(ith,ik+isp1) + wisp1 * sa(ith,ik+isp))
526 IF (a(ith+(ik-1)*nth) .gt. jaceps)
THEN
527 d(ith+(ik-1)*nth) = stri / ((a(ith+(ik-1)*nth)) * sigpicg)
528 s(ith+(ik-1)*nth) = stri / sigpicg
530 d(ith+(ik-1)*nth) = 0.
531 s(ith+(ik-1)*nth) = 0.