28 SUBROUTINE init_tg(IFLOW, IBUF, ELEM, X, XS, YS, ZS, XD, YD, ZD,
29 . RFLOW, NORMAL, TA, AF, COSG, DCP)
33#include "implicit_f.inc"
41 INTEGER IFLOW(*), IBUF(*), ELEM(3,*)
42 my_real x(3,*), af(*), rflow(*), normal(3,*), ta(*), cosg(*), dcp(*)
47 INTEGER ILVOUT, NEL, IWAVE, FREESURF
48 INTEGER N1, N2, N3, NN1, NN2, NN3, IEL, JEL
50 . xp, yp, zp, x12, y12, z12, x13, y13, z13,
51 . nrx, nry, nrz, area2, dcs, ssp,
98 area2=sqrt(nrx**2+nry**2+nrz**2)
99 normal(1,iel)=nrx/area2
100 normal(2,iel)=nry/area2
101 normal(3,iel)=nrz/area2
109 dcp(iel) = sqrt((xp-xc)**2+(yp-yc)**2+(zp-zc)**2)
110 ta(iel) = (dcp(iel)-dcs)/ssp
111 cosg(iel)= (nrx*(xp-xc)+nry*(yp-yc)+nrz*(zp-zc))/(area2*dcp(iel))
112 IF(freesurf == 2)
THEN
114 dcp(jel) = sqrt((xp-xd)**2+(yp-yd)**2+(zp-zd)**2)
115 ta(jel) = (dcp(jel)-dcs)/ssp
116 cosg(jel)= (nrx*(xp-xd)+nry*(yp-yd)+nrz*(zp-zd))/(area2*dcp(jel))
118 ELSEIF(iwave==2)
THEN
119 dcp(iel) = (xp-xs)*dirx+(yp-xs)*diry+(zp-zs)*dirz
120 ta(iel) = dcp(iel)/ssp
121 cosg(iel)= (nrx*dirx+nry*diry+nrz*dirz)/area2
127 WRITE (iout,
'(//7X,2A)')
'ELEMENT ARRIVAL TIME AREA DISTANCE DIR.COSINE ',
128 .
'NORMAL-X NORMAL-Y NORMAL-Z'
130 WRITE (iout,
'(5X,I10,7E13.5)')iel,ta(iel),af(iel),dcp(iel),cosg(iel),normal(1,iel),normal(2,iel),normal(3,iel)
132 IF(freesurf == 2)
THEN
133 WRITE (iout,
'(//7X,2A)')
'ELEMENT ARRIVAL TIME AREA DISTANCE DIR.COSINE '
136 WRITE (iout,
'(5X,I10,7E13.5)')iel,ta(jel),af(iel),dcp(jel),cosg(jel)
subroutine init_tg(iflow, ibuf, elem, x, xs, ys, zs, xd, yd, zd, rflow, normal, ta, af, cosg, dcp)