111 SUBROUTINE w3sbt8(AC,H_WDEPTH,S,D,IX,IY)
194 REAL,
INTENT(IN) :: H_WDEPTH
195 REAL,
INTENT(IN) :: AC(NSPEC)
196 INTEGER,
INTENT(IN) :: IX, IY
197 REAL,
INTENT(OUT) :: S(NSPEC), D(NSPEC)
203 INTEGER,
SAVE :: IENT = 0
279 CALL strace (ient,
'W3SBT8')
293 WRITE(
ndse,*)
'RHOM NOT SET'
299 WRITE(
ndse,*)
'THICKM NOT SET'
303 kinvism = mudv(ix,iy)
305 WRITE(
ndse,*)
'KINVISM NOT SET'
320 IF ( thickm>0.0 .AND. rhom>0.0 .AND. kinvism>0.0 )
THEN
330 CALL wavnu1(sigma,h_wdepth,k_unmud,cg_unmud)
337 CALL csinh(k*h_wdepth,shh)
338 CALL ccosh(k*h_wdepth,chh)
339 CALL csinh(k*thickm,shd)
340 CALL ccosh(k*thickm,chd)
343 lam1=sqrt(k*k-i*sigma/kinvisw)
344 lam2=sqrt(k*k-i*sigma/kinvism)
347 CALL ccosh(lam2*thickm,chlam2)
348 CALL csinh(lam2*thickm,shlam2)
351 exph=exp(-lam1*h_wdepth)
354 a1=-lam2*shd/k+shlam2
360 b2=lam2*a2*shh/k+a1*chh
365 c0=b4*exph-(lam1*lam1+k*k)/(2*k*k)
371 testalf1=-rhom*kinvism*(lam2*lam2+k*k)*(-lam2/k)*chd/k &
372 -2*rhom*kinvism*lam2*chlam2-(rhom-rhow)*
grav*(i*(a1)/sigma)
373 testalf2=-rhom*kinvism*(lam2*lam2+k*k)*(-1)*shd/k &
374 -2*rhom*kinvism*lam2*shlam2-(rhom-rhow)*
grav*(i*(a2)/sigma)
379 psi1=2*k*(-lam2/k)*shd+(lam2*lam2+k*k)*shlam2/k
380 psi2=2*k*(-1)*chd+(lam2*lam2+k*k)*chlam2/k
383 m1=i*rhow*sigma/k-2*rhow*kinvisw*k
384 m0=b1+(lam1*lam1+k*k)*exph/(k*k)
387 c(1,1)=lam1*(bet0*m0+1)*shh/k+(bet0*m0-1)*chh+m0/c0+exph
388 c(1,2)=(lam1*bet0*b2+lam2*a2)*shh/k+(bet0*b2+a1)*chh+b2/c0
389 c(1,3)=(lam1*bet0*b3/k-a3)*shh+(bet0*b3+a2)*chh+b3/c0
392 c(2,1)=lam1*(bet0*m0+1)*m1*chh/k+(bet0*m0-1)*m1*shh &
393 -2*rhow*kinvisw*lam1*m0/c0+2*rhow*kinvisw*lam1*exph
394 c(2,2)=(lam1*bet0*b2+lam2*a2)*m1*chh/k+(bet0*b2+a1)*m1*shh &
395 -2*rhow*kinvisw*lam1*b2/c0
396 c(2,3)=(lam1*bet0*b3/k-a3)*m1*chh+(bet0*b3+a2)*m1*shh &
397 -2*rhow*kinvisw*lam1*b3/c0
400 c(3,1)=2*k*rhow*kinvisw*(bet0*m0-1)+rhow*kinvisw &
401 *(lam1*lam1+k*k)*(1-bet0*m0)/k
402 c(3,2)=2*k*rhow*kinvisw*(bet0*b2+a1)-rhow*kinvisw &
403 *(lam1*lam1+k*k)*bet0*b2/k-i*rhom*kinvism*psi1
404 c(3,3)=2*k*rhow*kinvisw*(bet0*b3+a2)-rhow*kinvisw &
405 *(lam1*lam1+k*k)*bet0*b3/k-i*rhom*kinvism*psi2
408 c41a=lam1*m1*(bet0*m0+1)/k+2*rhow*kinvisw*lam1 &
409 +2*rhow*kinvisw*lam1*bet0*m0
410 c42a=m1*(lam1*bet0*b2+lam2*a2)/k &
411 +2*rhow*kinvisw*lam1*bet0*b2+alf1
412 c43a=m1*(lam1*bet0*b3/k-a3)+2*rhow*kinvisw*lam1*bet0*b3+alf2
415 c(4,1)=c41a*c(3,1)/c41a-c(3,1)
416 c(4,2)=c42a*c(3,1)/c41a-c(3,2)
417 c(4,3)=c43a*c(3,1)/c41a-c(3,3)
425 cd=-(c(3,3)-c(3,2)*c(4,3)/c(4,2))/c(3,1)
426 hh=b(2)/(c(2,1)*cd -c(2,2)*(c(4,3)/c(4,2))+c(2,3))
431 f=c(1,1)*dd+c(1,2)*gg+c(1,3)*hh-b(1)
439 kcheck=abs(imag(k)-imag(km1))
440 IF((f.EQ.fm1).OR.(k.EQ.km1).OR.(kcheck<kthreshold))
THEN
455 kd = real(kmud) * h_wdepth
457 IF ( kd .LT. kdcutoff )
THEN
460 cwave=sigma/real(kmud)
461 ztmp=2.0*real(kmud)*h_wdepth
467 nwave_mud=0.5*(1.0+2.0*real(kmud)*h_wdepth/ztmp)
468 cg_mud=nwave_mud*cwave
470 smudwd(ik)=2.0*imag(kmud)*cg_mud
473 kmimag(ik)=imag(kmud)
481 d(is) = -smudwd(
mapwn(is))
504 SUBROUTINE csinh(C,CS)
505 COMPLEX,
INTENT(IN) :: C
506 COMPLEX,
INTENT(OUT) :: CS
509 cs = cmplx(sinh(x) * cos(y), sin(y) * cosh(x))
523 SUBROUTINE ccosh(C,CC)
524 COMPLEX,
INTENT(IN) :: C
525 COMPLEX,
INTENT(OUT) :: CC
528 cc = cmplx(cosh(x) * cos(y), sin(y) * sinh(x))