115 REAL,
SAVE ,
PRIVATE,
ALLOCATABLE :: omega(:)
119 INTEGER,
SAVE ,
PRIVATE :: counter = 0
124 REAL,
SAVE ,
PRIVATE,
ALLOCATABLE :: ta(:,:,:,:),tb(:,:,:,:),tc_ql(:,:,:,:),&
125 tt_4m(:,:,:,:),tt_4p(:,:,:,:),tfakh(:,:), &
130 INTEGER,
SAVE,
PRIVATE,
ALLOCATABLE :: im_p(:,:),im_m(:,:)
238 REAL,
INTENT(INOUT) :: E(NSPEC)
239 REAL,
INTENT(IN) :: DEPTH
240 REAL,
INTENT(IN) :: WN(NK)
241 REAL,
INTENT(IN) :: CG(NK)
242 INTEGER,
INTENT(IN) :: IACTION
247 INTEGER :: ISPEC, IK, ITH, M
248 REAL :: CO1, ATOE, DPTH
250 INTEGER,
SAVE :: IENT = 0
252 LOGICAL,
SAVE :: FIRST = .true.
256 REAL,
ALLOCATABLE,
SAVE :: FR(:), DFIM(:)
257 REAL,
ALLOCATABLE,
SAVE :: F1(:,:), F3(:,:)
261 INTEGER,
SAVE :: NFRE, NANG
262 INTEGER,
SAVE :: NFREH, NANGH
270 CALL strace (ient,
'W3ADD2NDORDER')
286 ALLOCATE(fr(nfre), dfim(nfre))
290 dfim(1)= co1*(fr(2)-fr(1))
292 dfim(m)=co1*(fr(m+1)-fr(m-1))
294 dfim(nfre)=co1*(fr(nfre)-fr(nfre-1))
296 ALLOCATE(f1(nang,nfre), f3(nang,nfre))
303 IF (iaction.EQ.0)
THEN
310 f1(ith,ik)=e(ispec)*atoe
320 dth,dpth,+1., nfreh, nangh)
326 IF (iaction.EQ.0)
THEN
333 e(ispec)=f3(ith,ik)/atoe
339 print*,
' END CAL_SEC_ORDER_SPEC'
368 DPTH,SIGM, NFREH, NANGH)
413 REAL,
INTENT(IN) :: F1(NANG,NFRE)
414 REAL,
INTENT(OUT) :: F3(NANG,NFRE)
416 INTEGER,
INTENT(IN) :: NFRE,NANG,NFREH, NANGH
418 REAL,
INTENT(IN) :: DFIM(NFRE),FR(NFRE), TH(NANG), DELTH
419 REAL,
INTENT(IN) :: DPTH, SIGM
421 LOGICAL FRSTIME,DOUBLEP
423 INTEGER MDW,M,K, K0,M0,MP,KP,MM,KM,KL,KLL,ML,JD
424 INTEGER,
SAVE :: MR, MA,NMAX
431 INTEGER,
SAVE :: INDEP
435 REAL,
ALLOCATABLE :: PF1(:,:),PF3(:,:)
438 REAL DEPTH,ALPHA,GAM_J,DEPTHD
440 F,EPSMIN,DELFF,SPEC1,SQRTK
441 REAL FRAC,DEL,DELF,D1,D2,D3,D4,C1,&
443 REAL,
SAVE :: OMSTART
444 REAL,
SAVE :: XMR,XMA, DELTHH, CO1
448 REAL :: F13(NFREH,NANGH)
450 REAL :: DELOM(NFREH),THH(NANGH),DFDTH(NFREH)
454 common/const/depth,alpha,mdw,gam_j,depthd
455 common/precis/doublep
463 print*,
' START SECOND-ORDER CALC.'
474 mr = max(1,nfre/nfreh)
478 delthh = float(ma)*delth
484 ALLOCATE(omega(nfreh))
485 ALLOCATE(tfak(nfre,
ndepth))
486 ALLOCATE(ta(nangh,nfreh,nfreh,
ndepth))
487 ALLOCATE(tb(nangh,nfreh,nfreh,
ndepth))
488 ALLOCATE(tc_ql(nangh,nfreh,nfreh,
ndepth))
489 ALLOCATE(tt_4m(nangh,nfreh,nfreh,
ndepth))
490 ALLOCATE(tt_4p(nangh,nfreh,nfreh,
ndepth))
491 ALLOCATE(im_p(nfreh,nfreh))
492 ALLOCATE(im_m(nfreh,nfreh))
493 ALLOCATE(tfakh(nfreh,
ndepth))
496 omega(m) =
zpi*fr(mr*m)
501 IF (k0.GT.nang) k0 = k0-nang
506 delom(1) = co1*(omega(2)-omega(1))
508 delom(m)=co1*(omega(m+1)-omega(m-1))
510 delom(nfreh)=co1*(omega(nfreh)-omega(nfreh-1))
517 nmax = xmr*(1+nint(log(2.*omega(nfreh)/omstart)/log(1.+frac)))
520 print*,
' NMAX = ',nmax
526 depth =
deptha*depthd**(jd-1)
529 tfak(m,jd) =
aki(om0,depth)
533 indep = 1+nint(log(dpth/
deptha)/log(depthd))
539 print*,
'2ND ORDER TABLES GENERATED:',
ndepth,
deptha, delthh
553 sqrtk=sqrt(tfak(m,indep))
554 sum0 = sum0+f1(k,m)*dfim(m)
555 akmean = akmean+f1(k,m)*dfim(m)/sqrtk
561 akmean = (sum0/akmean)**2
567 IF (mr.EQ.1 .AND. ma.EQ.1)
THEN
573 print*,
' NO THINNING AND INTERPOLATION'
574 print*,
'nanG:',nang,nmax,nfre,
ndepth,
deptha,depthd,dpth,
'##',delth,delthh
578 deptha,depthd,omstart,frac,mr,dfdth,omega,&
579 dpth,akmean,ta,tb,tc_ql,tt_4m,tt_4p,&
584 f3(k,m)=max(0.00000001,f1(k,m)+sigm*delf)
594 print*,
' !THINNING AND INTERPOLATION!'
595 ALLOCATE(pf1(nangh,nfreh))
596 ALLOCATE(pf3(nangh,nfreh))
612 IF (kll.GT.nang) kll = kll-nang
613 IF (kll.LT.1) kll = kll+nang
618 pf1(k,m)=pf1(k,m)+spec1*del
621 pf1(k,m) =pf1(k,m)/delff
629 deptha,depthd,omstart,frac,mr,dfdth,omega,&
630 dpth,akmean,ta,tb,tc_ql,tt_4m,tt_4p,&
644 d1 = real(m)/real(mr)-xm
646 d3 = real(k-1)/real(ma)-xk
649 IF (k0.LT.1) k0 = k0+nangh
652 IF (kp.GT.nangh) kp = kp-nangh
654 c1 = pf3(k0,m0)*d4+pf3(kp,m0)*d3
655 c2 = pf3(kp,mp)*d3+pf3(k0,mp)*d4
658 f3(k,m)=max(0.00000001,f1(k,m)+sigm*delf)
665 IF (mr.GT.1 .OR. ma.GT.1 )
THEN
669 aa1 = aa1+pf1(k,m)*delthh
671 aa1 = max(aa1,epsmin)
675 bb1 = bb1+(pf1(k,m)+pf3(k,m))*delthh
677 bb1 = max(bb1,epsmin)
681 WRITE(6,62) m,f,aa1,bb1,delthh
682 WRITE(80,62) m,f,aa1,bb1,delthh
688 f13(m,k)=pf1(k,m)+pf3(k,m)
720 SUBROUTINE tables_2nd(NFRE,NANG,NDEPTH,DEPTHA,OMSTART,FRAC,XMR,&
787 INTEGER NFRE,NANG,NDEPTH,MDW,JD,M,K,M1,K1,MP,MM,L
789 REAL DEPTH,ALPHA,GAM_J,DEPTHA,DEPTHD
790 REAL OM0,TH0,XK0,OM1,TH1,XK1,OM2,XK2,OM0P,XK0P,OM0M,XK0M,OMSTART,&
792 REAL OMEGA(NFRE),TH(NANG),DFDTH(NFRE)
794 common/const/depth,alpha,mdw,gam_j,depthd
801 depth = deptha*depthd**(jd-1)
804 tfak(m,jd) =
aki(om0,depth)
806 WRITE(6,*)
'GENERATING TABLES FOR DEPTH:',jd,depth,deptha,ndepth
839 IF (abs(om1).LT.om0/2.)
THEN
840 xm2 = log(om2/omstart)/log(1.+frac)
841 im_m(m1,m) = nint(xmr*(xm2+1.))
845 ta(l,m1,m,jd) = dfdth(m1)*
a(xk1,xk2,th1,th0)**2
854 xm2 = log(om2/omstart)/log(1.+frac)
855 im_p(m1,m) = nint(xmr*(xm2+1.))
859 tb(l,m1,m,jd) = dfdth(m1)*
b(xk1,xk2,th1,th0)**2
864 tc_ql(l,m1,m,jd) = dfdth(m1)*
c_ql(xk0,xk1,th0,th1)
869 fac = 2.*
g/om1*dfdth(m1)
871 fac*(
w2(xk0m,xk1,xk1,xk0m,th0,th1,th1,th0)+&
872 v2(xk0m,xk1,xk1,xk0m,th0,th1,th1,th0))
874 fac*(
w2(xk0p,xk1,xk1,xk0p,th0,th1,th1,th0)+&
875 v2(xk0p,xk1,xk1,xk0p,th0,th1,th1,th0))
921 SUBROUTINE secspom(F1,F3,NFRE,NANG,NMAX,NDEPTH,&
922 DEPTHA,DEPTHD,OMSTART,FRAC,MR,DFDTH,OMEGA,&
923 DEPTH,AKMEAN,TA,TB,TC_QL,TT_4M,TT_4P,&
1000 INTEGER NFRE,NANG,NDEPTH,M,K,M1,K1,M2_M,M2_P,K2,MP,&
1001 MM,L,MR,NMAX,JD,COUNTER
1002 INTEGER IM_P(NFRE,NFRE),IM_M(NFRE,NFRE),IL(NANG,NANG)
1004 REAL OM0,OM0H,OM1,OM0P,OM0M,&
1005 OMSTART,FRAC,XINCR1,XINCR2,XINCR3,XINCR4,FAC1,FAC2,&
1006 FAC3,T_4M,T_4P,F2K,F2KP,F2KM,F2K1,F2K2,DELM1,DEPTHA,DEPTHD,&
1008 REAL OMEGA(NFRE), DFDTH(NFRE), OMEGAHF(NFRE+1:NMAX)
1009 REAL TA(NANG,NFRE,NFRE,NDEPTH),TB(NANG,NFRE,NFRE,NDEPTH),&
1010 TC_QL(NANG,NFRE,NFRE,NDEPTH),TT_4M(NANG,NFRE,NFRE,NDEPTH),&
1011 TT_4P(NANG,NFRE,NFRE,NDEPTH)
1012 REAL F1(NANG,NFRE),F3(NANG,NFRE),DEPTH
1014 REAL G1(NANG,NMAX),G3(NANG,NFRE)
1026 omegahf(m) = omstart*(1.+frac)**(mr*m-1)
1032 IF (l.GT.nang) l=l-nang
1033 IF (l.LT.1) l=l+nang
1040 xd = max(x_min/akmean,depth)
1042 xd = log(xd/deptha)/log(depthd)+1.
1056 g1(k,m) = omega(nfre)**5*g1(k,nfre)/omegahf(m)**5
1074 delm1 = 1./(om0p-om0m)
1082 ll2h = (abs(om1).LT.om0h)
1094 fac1 = ta(l,m1,m,jd)
1095 fac2 = f2k1*f2k2+g1(k2,m1)*g1(k1,m2_m)
1098 g3(k,m) = g3(k,m)+xincr1
1105 fac3 = 2.*tb(l,m1,m,jd)
1110 xincr3 = tc_ql(l,m1,m,jd)*f2k
1114 t_4m = tt_4m(l,m1,m,jd)
1115 t_4p = tt_4p(l,m1,m,jd)
1116 xincr4 = -(f2kp*t_4p-f2km*t_4m)*delm1
1118 g3(k,m) = g3(k,m)+f2k1*(xincr2+xincr3+xincr4)
1151 REAL FUNCTION A(XI,XJ,THI,THJ)
1185 common/const/depth,alpha,mdw,gam_j,depthd
1187 REAL depth,alpha,gam_j,
deptha,depthd
1188 REAL ri,rj,rk,xi,xj,thi,thj,thk,oi,oj,ok,fi,fj,fk
1196 rk =
vabs(ri,rj,thi,thj)
1197 thk =
vdir(ri,rj,thi,thj)
1203 fi = sqrt(oi/(2.*
g))
1204 fj = sqrt(oj/(2.*
g))
1205 fk = sqrt(ok/(2.*
g))
1208 a = fk/(fi*fj)*(
a1(rk,ri,rj,thk,thi,thj)+&
1209 a3(rk,ri,rj,thk-
pi,thi,thj))
1228 REAL function
b(xi,xj,thi,thj)
1260 common/const/depth,alpha,mdw,gam_j,depthd
1262 REAL depth,alpha,gam_j,
deptha,depthd
1263 REAL del,ri,rj,rk,xi,xj,thi,thj,thk,oi,oj,ok,fi,fj,fk
1271 rk =
vabs(rj,ri,thj,thi-
pi)
1272 thk =
vdir(rj,ri,thj,thi-
pi)
1278 fi = sqrt(oi/(2.*
g))
1279 fj = sqrt(oj/(2.*
g))
1280 fk = sqrt(ok/(2.*
g))
1282 b = 0.5*fk/(fi*fj)*(
a2(rk,ri,rj,thk,thi,thj)+&
1283 a2(rk,rj,ri,thk-
pi,thj,thi))
1300 REAL function
c_ql(xk0,xk1,th0,th1)
1333 common/const/depth,alpha,mdw,gam_j,depthd
1335 REAL depth,alpha,gam_j,
deptha,depthd
1336 REAL xk0,xk1,th0,th1,om1,f1
1342 f1 = sqrt(om1/(2.*
g))
1344 c_ql = 2./f1**2*(
b2(xk0,xk1,xk1,xk0,th0,th1,th1,th0)+&
1345 b3(xk0,xk0,xk1,xk1,th0-
pi,th0,th1,th1))
1367 REAL function
vplus(xi,xj,xk,thi,thj,thk)
1406 common/const/depth,alpha,mdw,gam_j,depthd
1408 REAL depth,alpha,gam_j,
deptha,depthd
1409 REAL del1,ri,rj,rk,xi,xj,xk,thi,thj,thk,oi,oj,ok,qi,qj,qk,&
1410 rij,rik,rjk,sqijk,sqikj,sqjki,zconst
1416 zconst=1./(4*sqrt(2.))
1430 rij = ri*rj*cos(thj-thi)
1431 rik = ri*rk*cos(thk-thi)
1432 rjk = rj*rk*cos(thk-thj)
1434 sqijk=sqrt(
g*ok/(oi*oj))
1435 sqikj=sqrt(
g*oj/(oi*ok))
1436 sqjki=sqrt(
g*oi/(oj*ok))
1438 vplus=zconst*( (rij+qi*qj)*sqijk + (rik+qi*qk)*sqikj&
1439 + (rjk+qj*qk)*sqjki )
1458 REAL function
vmin(xi,xj,xk,thi,thj,thk)
1497 common/const/depth,alpha,mdw,gam_j,depthd
1499 REAL depth,alpha,gam_j,
deptha,depthd
1500 REAL del1,ri,rj,rk,xi,xj,xk,thi,thj,thk,oi,oj,ok,qi,qj,qk,&
1501 rij,rik,rjk,sqijk,sqikj,sqjki,zconst
1507 zconst=1./(4*sqrt(2.))
1521 rij = ri*rj*cos(thj-thi)
1522 rik = ri*rk*cos(thk-thi)
1523 rjk = rj*rk*cos(thk-thj)
1525 sqijk=sqrt(
g*ok/(oi*oj))
1526 sqikj=sqrt(
g*oj/(oi*ok))
1527 sqjki=sqrt(
g*oi/(oj*ok))
1529 vmin=zconst*( (rij-qi*qj)*sqijk + (rik-qi*qk)*sqikj&
1530 + (rjk+qj*qk)*sqjki )
1551 REAL function
u(xi,xj,xk,xl,thi,thj,thk,thl)
1588 common/const/depth,alpha,mdw,gam_j,depthd
1590 REAL depth,alpha,gam_j,
deptha,depthd
1591 REAL xi,xj,xk,xl,thi,thj,thk,thl,oi,oj,ok,ol,xik,xjk,xil,xjl,&
1592 oik,ojk,oil,ojl,qi,qj,qik,qjk,qil,qjl,sqijkl,zconst
1604 xik =
vabs(xi,xk,thi,thk)
1605 xjk =
vabs(xj,xk,thj,thk)
1606 xil =
vabs(xi,xl,thi,thl)
1607 xjl =
vabs(xj,xl,thj,thl)
1619 sqijkl=sqrt(ok*ol/(oi*oj))
1620 u = zconst*sqijkl*( 2.*(xi**2*qj+xj**2*qi)-qi*qj*(&
1642 REAL function
w2(xi,xj,xk,xl,thi,thj,thk,thl)
1680 REAL xi,xj,xk,xl,thi,thj,thk,thl
1685 w2=
u(xi,xj,xk,xl,thi-
pi,thj-
pi,thk,thl)+&
1686 u(xk,xl,xi,xj,thk,thl,thi-
pi,thj-
pi)-&
1687 u(xk,xj,xi,xl,thk,thj-
pi,thi-
pi,thl)-&
1688 u(xi,xk,xj,xl,thi-
pi,thk,thj-
pi,thl)-&
1689 u(xi,xl,xk,xj,thi-
pi,thl,thk,thj-
pi)-&
1690 u(xl,xj,xk,xi,thl,thj-
pi,thk,thi-
pi)
1711 REAL function
v2(xi,xj,xk,xl,thi,thj,thk,thl)
1750 common/const/depth,alpha,mdw,gam_j,depthd
1751 common/precis/doublep
1754 REAL depth,alpha,gam_j,
deptha,depthd
1755 REAL del1,xi,xj,xk,xl,thi,thj,thk,thl,oi,oj,ok,ol,ri,rj,rk,rl,&
1756 rij,rik,rli,rjl,rjk,rkl,thij,thik,thli,thjl,thjk,thkl,oij,&
1757 oik,ojl,ojk,oli,okl,xnik,xnjl,xnjk,xnil,ynil,ynjk,ynjl,ynik,&
1758 znij,znkl,zpij,zpkl,thlj,thil,thkj,thki,thji,thlk
1773 rl=xl+del1*(1.+1./2.-1./3.)
1780 rij =
vabs(ri,rj,thi,thj)
1781 thij =
vdir(ri,rj,thi,thj)
1783 rik =
vabs(ri,rk,thi,thk-
pi)
1784 thik =
vdir(ri,rk,thi,thk-
pi)
1786 rli =
vabs(rl,ri,thl,thi-
pi)
1787 thli =
vdir(xl,xi,thl,thi-
pi)
1789 rjl =
vabs(rj,rl,thj,thl-
pi)
1790 thjl =
vdir(rj,rl,thj,thl-
pi)
1792 rjk =
vabs(rj,rk,thj,thk-
pi)
1793 thjk =
vdir(rj,rk,thj,thk-
pi)
1795 rkl =
vabs(rk,rl,thk,thl)
1796 thkl =
vdir(rk,rl,thk,thl)
1827 v2=
vmin(ri,rk,rik,thi,thk,thik)*
vmin(rl,rj,rjl,thl,thj,thlj)*&
1829 +
vmin(rj,rk,rjk,thj,thk,thjk)*
vmin(rl,ri,rli,thl,thi,thli)*&
1831 +
vmin(ri,rl,rli,thi,thl,thil)*
vmin(rk,rj,rjk,thk,thj,thkj)*&
1833 +
vmin(rj,rl,rjl,thj,thl,thjl)*
vmin(rk,ri,rik,thk,thi,thki)*&
1835 +
vmin(rij,ri,rj,thij,thi,thj)*
vmin(rkl,rk,rl,thkl,thk,thl)*&
1837 +
vplus(rij,ri,rj,thji,thi,thj)*
vplus(rkl,rk,rl,thlk,thk,thl)*&
1862 REAL function
w1(xi,xj,xk,xl,thi,thj,thk,thl)
1900 common/const/depth,alpha,mdw,gam_j,depthd
1902 REAL depth,alpha,gam_j,
deptha,depthd
1903 REAL xi,xj,xk,xl,thi,thj,thk,thl
1909 w1= -
u(xi,xj,xk,xl,thi-
pi,thj,thk,thl)-&
1910 u(xi,xk,xj,xl,thi-
pi,thk,thj,thl)-&
1911 u(xi,xl,xj,xk,thi-
pi,thl,thj,thk)+&
1912 u(xj,xk,xi,xl,thj,thk,thi-
pi,thl)+&
1913 u(xj,xl,xi,xk,thj,thl,thi-
pi,thk)+&
1914 u(xk,xl,xi,xj,thk,thl,thi-
pi,thj)
1938 REAL function
w4(xi,xj,xk,xl,thi,thj,thk,thl)
1976 common/const/depth,alpha,mdw,gam_j,depthd
1978 REAL depth,alpha,gam_j,
deptha,depthd
1979 REAL xi,xj,xk,xl,thi,thj,thk,thl
1986 w4=
u(xi,xj,xk,xl,thi,thj,thk,thl)+&
1987 u(xi,xk,xj,xl,thi,thk,thj,thl)+&
1988 u(xi,xl,xj,xk,thi,thl,thj,thk)+&
1989 u(xj,xk,xi,xl,thj,thk,thi,thl)+&
1990 u(xj,xl,xi,xk,thj,thl,thi,thk)+&
1991 u(xk,xl,xi,xj,thk,thl,thi,thj)
2015 REAL function
b3(xi,xj,xk,xl,thi,thj,thk,thl)
2053 common/const/depth,alpha,mdw,gam_j,depthd
2054 common/precis/doublep
2057 REAL depth,alpha,gam_j,
deptha,depthd
2058 REAL del1,xi,xj,xk,xl,thi,thj,thk,thl,oi,oj,ok,ol,ri,rj,rk,rl,&
2059 rij,rji,rik,rki,rlj,rjl,rjk,rkj,rli,ril,rlk,rkl,thij,thji,&
2060 thik,thki,thlj,thjl,thjk,thkj,thli,thil,thlk,thkl,zijkl
2081 rij =
vabs(ri,rj,thi,thj)
2082 thij =
vdir(ri,rj,thi,thj)
2084 rji =
vabs(rj,ri,thj,thi)
2085 thji =
vdir(rj,ri,thj,thi)
2087 rik =
vabs(ri,rk,thi,thk)
2088 thik =
vdir(ri,rk,thi,thk)
2090 rki =
vabs(rk,ri,thk,thi)
2091 thki =
vdir(rk,ri,thk,thi)
2093 rlj =
vabs(rl,rj,thl,thj-
pi)
2094 thlj =
vdir(rl,rj,thl,thj-
pi)
2096 rjl =
vabs(rj,rl,thj,thl-
pi)
2097 thjl =
vdir(rj,rl,thj,thl-
pi)
2099 rjk =
vabs(rj,rk,thj,thk)
2100 thjk =
vdir(rj,rk,thj,thk)
2102 rkj =
vabs(rk,rj,thk,thj)
2103 thkj =
vdir(rk,rj,thk,thj)
2105 rli =
vabs(rl,ri,thl,thi-
pi)
2106 thli =
vdir(rl,ri,thl,thi-
pi)
2108 ril =
vabs(ri,rl,thi,thl-
pi)
2109 thil =
vdir(ri,rl,thi,thl-
pi)
2111 rlk =
vabs(rl,rk,thl,thk-
pi)
2112 thlk =
vdir(rl,rk,thl,thk-
pi)
2114 rkl =
vabs(rk,rl,thk,thl-
pi)
2115 thkl =
vdir(rk,rl,thk,thl-
pi)
2119 b3= -1./zijkl*(2.*( &
2120 vmin(rl,ri,rli,thl,thi,thli)*
a1(rjk,rj,rk,thjk,thj,thk)&
2121 -
vmin(rij,ri,rj,thij,thi,thj)*
a1(rl,rk,rlk,thl,thk,thlk)&
2122 -
vmin(rik,ri,rk,thik,thi,thk)*
a1(rl,rj,rlj,thl,thj,thlj)&
2123 -
vplus(rj,ri,rji,thj,thi,thji-
pi)*
a1(rk,rl,rkl,thk,thl,thkl)&
2124 -
vplus(rk,ri,rki,thk,thi,thki-
pi)*
a1(rj,rl,rjl,thj,thl,thjl)&
2125 +
vmin(ri,rl,ril,thi,thl,thil)*
a3(rj,rk,rjk,thj,thk,thjk-
pi))&
2126 +3.*
w1(rl,rk,rj,ri,thl,thk,thj,thi) )
2148 REAL function
b4(xi,xj,xk,xl,thi,thj,thk,thl)
2186 common/const/depth,alpha,mdw,gam_j,depthd
2187 common/precis/doublep
2190 REAL depth,alpha,gam_j,
deptha,depthd
2191 REAL del1,xi,xj,xk,xl,thi,thj,thk,thl,oi,oj,ok,ol,ri,rj,rk,rl,&
2192 rij,rik,ril,rjl,rjk,rkl,thij,thik,thil,thjl,thjk,thlk,thkl,&
2211 rij =
vabs(ri,rj,thi,thj)
2212 thij =
vdir(ri,rj,thi,thj)
2214 rik =
vabs(ri,rk,thi,thk)
2215 thik =
vdir(ri,rk,thi,thk)
2217 ril =
vabs(ri,rl,thi,thl)
2218 thil =
vdir(ri,rl,thi,thl)
2220 rjl =
vabs(rj,rl,thj,thl)
2221 thjl =
vdir(rj,rl,thj,thl)
2223 rjk =
vabs(rj,rk,thj,thk)
2224 thjk =
vdir(rj,rk,thj,thk)
2226 rkl =
vabs(rk,rl,thk,thl)
2227 thkl =
vdir(rk,rl,thk,thl)
2232 b4= -1./zijkl*(2./3.*( &
2233 vplus(rij,ri,rj,thij-
pi,thi,thj)*
a1(rkl,rk,rl,thkl,thk,thl)&
2234 +
vplus(rik,ri,rk,thik-
pi,thi,thk)*
a1(rjl,rj,rl,thjl,thj,thl)&
2235 +
vplus(ril,ri,rl,thil-
pi,thi,thl)*
a1(rjk,rj,rk,thjk,thj,thk)&
2236 +
vmin(rik,ri,rk,thik,thi,thk)*
a3(rjl,rj,rl,thjl-
pi,thj,thl)&
2237 +
vmin(ril,ri,rl,thil,thi,thl)*
a3(rjk,rj,rk,thjk-
pi,thj,thk)&
2238 +
vmin(rij,ri,rj,thij,thi,thj)*
a3(rkl,rk,rl,thkl-
pi,thk,thl) )&
2239 +
w4(ri,rj,rk,rl,thi,thj,thk,thl) )
2261 REAL function
b1(xi,xj,xk,xl,thi,thj,thk,thl)
2299 common/const/depth,alpha,mdw,gam_j,depthd
2300 common/precis/doublep
2303 REAL depth,alpha,gam_j,
deptha,depthd
2304 REAL del1,xi,xj,xk,xl,thi,thj,thk,thl,oi,oj,ok,ol,ri,rj,rk,rl,&
2305 rij,rji,rik,rki,rjl,rjk,rli,ril,rkl,thij,thji,&
2306 thik,thki,thjl,thjk,thli,thil,thkl,zijkl
2323 rij =
vabs(ri,rj,thi,thj-
pi)
2324 thij =
vdir(ri,rj,thi,thj-
pi)
2326 rji =
vabs(rj,ri,thj,thi-
pi)
2327 thji =
vdir(rj,ri,thj,thi-
pi)
2329 rik =
vabs(ri,rk,thi,thk-
pi)
2330 thik =
vdir(ri,rk,thi,thk-
pi)
2332 rki =
vabs(rk,ri,thk,thi-
pi)
2333 thki =
vdir(rk,ri,thk,thi-
pi)
2335 ril =
vabs(ri,rl,thi,thl-
pi)
2336 thil =
vdir(ri,rl,thi,thl-
pi)
2338 rli =
vabs(rl,ri,thl,thi-
pi)
2339 thli =
vdir(rl,ri,thl,thi-
pi)
2341 rjl =
vabs(rj,rl,thj,thl)
2342 thjl =
vdir(rj,rl,thj,thl)
2344 rjk =
vabs(rj,rk,thj,thk)
2345 thjk =
vdir(rj,rk,thj,thk)
2347 rkl =
vabs(rk,rl,thk,thl)
2348 thkl =
vdir(rk,rl,thk,thl)
2352 b1= -1./zijkl*(2./3.*( &
2353 min(ri,rj,rij,thi,thj,thij)*
a1(rkl,rk,rl,thkl,thk,thl)&
2354 +
vmin(ri,rk,rik,thi,thk,thik)*
a1(rjl,rj,rl,thjl,thj,thl)&
2355 +
vmin(ri,rl,ril,thi,thl,thil)*
a1(rjk,rj,rk,thjk,thj,thk)&
2356 +
vmin(rk,ri,rki,thk,thi,thki)*
a3(rjl,rj,rl,thjl-
pi,thj,thl)&
2357 +
vmin(rl,ri,rli,thl,thi,thli)*
a3(rjk,rj,rk,thjk-
pi,thj,thk)&
2358 +
vmin(rj,ri,rji,thj,thi,thji)*
a3(rkl,rk,rl,thkl-
pi,thk,thl) &
2359 ) +
w1(ri,rj,rk,rl,thi,thj,thk,thl) )
2380 REAL function
b2(xi,xj,xk,xl,thi,thj,thk,thl)
2418 common/const/depth,alpha,mdw,gam_j,depthd
2419 common/precis/doublep
2422 REAL depth,alpha,gam_j,
deptha,depthd
2423 REAL del1,xi,xj,xk,xl,thi,thj,thk,thl,oi,oj,ok,ol,ri,rj,rk,rl,&
2424 rij,rik,rki,rjl,rlj,rjk,rkj,rli,ril,rkl,thij,&
2425 thik,thki,thjl,thlj,thjk,thkj,thli,thil,thkl,zijkl
2436 rij =
vabs(ri,rj,thi,thj)
2437 thij =
vdir(ri,rj,thi,thj)
2439 rik =
vabs(ri,rk,thi,thk-
pi)
2440 thik =
vdir(ri,rk,thi,thk-
pi)
2442 rki =
vabs(rk,ri,thk,thi-
pi)
2443 thki =
vdir(rk,ri,thk,thi-
pi)
2445 ril =
vabs(ri,rl,thi,thl-
pi)
2446 thil =
vdir(ri,rl,thi,thl-
pi)
2448 rli =
vabs(rl,ri,thl,thi-
pi)
2449 thli =
vdir(rl,ri,thl,thi-
pi)
2451 rjl =
vabs(rj,rl,thj,thl-
pi)
2452 thjl =
vdir(rj,rl,thj,thl-
pi)
2454 rlj =
vabs(rl,rj,thl,thj-
pi)
2455 thlj =
vdir(rl,rj,thl,thj-
pi)
2457 rjk =
vabs(rj,rk,thj,thk-
pi)
2458 thjk =
vdir(rj,rk,thj,thk-
pi)
2460 rkj =
vabs(rk,rj,thk,thj-
pi)
2461 thkj =
vdir(rk,rj,thk,thj-
pi)
2463 rkl =
vabs(rk,rl,thk,thl)
2464 thkl =
vdir(rk,rl,thk,thl)
2466 b2=
a3(ri,rj,rij,thi,thj,thij-
pi)*
a3(rk,rl,rkl,thk,thl,thkl-
pi)&
2467 +
a1(rj,rk,rjk,thj,thk,thjk)*
a1(rl,ri,rli,thl,thi,thli)&
2468 +
a1(rj,rl,rjl,thj,thl,thjl)*
a1(rk,ri,rki,thk,thi,thki)&
2469 -
a1(rij,ri,rj,thij,thi,thj)*
a1(rkl,rk,rl,thkl,thk,thl)&
2470 -
a1(ri,rk,rik,thi,thk,thik)*
a1(rl,rj,rlj,thl,thj,thlj)&
2471 -
a1(ri,rl,ril,thi,thl,thil)*
a1(rk,rj,rkj,thk,thj,thkj)
2491 REAL function
a1(xi,xj,xk,thi,thj,thk)
2526 common/const/depth,alpha,mdw,gam_j,depthd
2527 common/precis/doublep
2530 REAL depth,alpha,gam_j,
deptha,depthd
2531 REAL del1,xi,xj,xk,thi,thj,thk,oi,oj,ok
2546 a1 = -
vmin(xi,xj,xk,thi,thj,thk)/(oi-oj-ok)
2565 REAL function
a2(xi,xj,xk,thi,thj,thk)
2600 REAL del1,xi,xj,xk,thi,thj,thk
2605 a2 = -2.*
a1(xk,xj,xi,thk,thj,thi)
2623 REAL function
a3(xi,xj,xk,thi,thj,thk)
2658 common/precis/doublep
2660 REAL del1,oi,oj,ok,xi,xj,xk,thi,thj,thk
2676 a3 = -
vplus(xi,xj,xk,thi,thj,thk)/(oi+oj+ok)
2691 REAL function
omeg(x)
2726 common/const/depth,alpha,mdw,gam_j,depthd
2728 REAL depth,alpha,gam_j,depthd
2781 common/const/depth,alpha,mdw,gam_j,depthd
2783 REAL depth,alpha,gam_j,depthd
2790 vg = 0.5*sqrt(
g*tanh(xd)/xk)*(1.+2.*xd/sinh(2.*xd))
2805 REAL function
aki(om,beta)
2810 REAL om,beta,
g,ebs,akm1,akm2,ao,akp,bo,th,sth
2815 akm2=om/(2.*sqrt(
g*beta))
2821 IF (bo.GT.20.)
GO TO 20
2824 ao=ao+(om-sth)*sth*2./(th/ao+
g*bo/cosh(bo)**2)
2825 IF (abs(akp-ao).GT.ebs*ao)
GO TO 10
2845 REAL function
vabs(xi,xj,thi,thj)
2850 REAL xi,xj,thi,thj,arg
2852 arg = xi**2+xj**2+2.*xi*xj*cos(thi-thj)
2875 REAL function
vdir(xi,xj,thi,thj)
2880 REAL xi,xj,thi,thj,eps,y,x
2885 x = xi+xj*cos(thj-thi)+eps
2886 vdir = atan2(y,x)+thi
2887 IF (x.EQ.0.)
vdir = 0.