33 SUBROUTINE i15ass(OUTPUT,AF ,X ,V ,KSURF ,IGRSURF ,
34 2 BUFSF ,STIFN ,FS ,FCONT ,FSKYI ,
35 3 ISKY ,DE ,WNF ,WTF ,WNS ,
36 4 FNORMX ,FNORMY ,FNORMZ ,FTANGX ,FTANGY ,
37 5 FTANGZ ,NNC ,KNC ,H3D_DATA)
44 USE output_mod,
ONLY : output_
48#include "implicit_f.inc"
65 TYPE(output_),
INTENT(INOUT) ::
66 INTEGER KSURF,ISKY(*),NNC,KNC(*)
68 . AF(*) , X(3,*), V(3,*),BUFSF(*),
69 . stifn(*), fs(nthvki),
70 . fcont(3,*),fskyi(lskyi,nfskyi), de,
71 . wnf(3,*) ,wtf(3,*) ,wns(*) ,
72 . fnormx,fnormy,fnormz,ftangx,ftangy,ftangz
74 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
78 INTEGER ADRBUF, I, IN, I3, I2, I1
79 INTEGER NFORC , NISKYL
82 . rot(9), xk , yk, zk, fx, fy, fz, am1, am2, am3,
83 . fn1, fn2, fn3, ft1, ft2, ft3,
86 adrbuf=igrsurf(ksurf)%IAD_BUFR
88 rot(i)=bufsf(adrbuf+7+i-1)
93 fn1=rot(1)*fnormx+rot(4)*fnormy+rot(7)*fnormz
94 fn2=rot(2)*fnormx+rot(5)*fnormy+rot(8)*fnormz
95 fn3=rot(3)*fnormx+rot(6)*fnormy+rot(9)*fnormz
99 ft1=rot(1)*ftangx+rot(4)*ftangy+rot(7)*ftangz
100 ft2=rot(2)*ftangx+rot(5)*ftangy+rot(8)*ftangz
101 ft3=rot(3)*ftangx+rot(6)*ftangy+rot(9)*ftangz
108#include "vectorize.inc"
111 fx=wnf(1,in)+wtf(1,in)
112 fy=wnf(2,in)+wtf(2,in)
113 fz=wnf(3,in)+wtf(3,in)
114 wnf(1,in)=rot(1)*fx+rot(4)*fy+rot(7)*fz
115 wnf(2,in)=rot(2)*fx+rot(5)*fy+rot(8)*fz
116 wnf(3,in)=rot(3)*fx+rot(6)*fy+rot(9)*fz
123 xk=x(1,in)-bufsf(adrbuf+16)
124 yk=x(2,in)-bufsf(adrbuf+17)
125 zk=x(3,in)-bufsf(adrbuf+18)
133 bufsf(adrbuf+25)=bufsf(adrbuf+25)-fx
134 bufsf(adrbuf+26)=bufsf(adrbuf+26)-fy
135 bufsf(adrbuf+27)=bufsf(adrbuf+27)-fz
136 bufsf(adrbuf+28)=bufsf(adrbuf+28)-am1
137 bufsf(adrbuf+29)=bufsf(adrbuf+29)-am2
138 bufsf(adrbuf+30)=bufsf(adrbuf+30)-am3
141 bufsf(adrbuf+31)=bufsf(adrbuf+31)+stf
142 dd = xk**2+yk**2+zk**2
143 bufsf(adrbuf+32)=bufsf(adrbuf+32)+dd*stf
152#include "lockoff.inc"
155#include "vectorize.inc"
167 stifn(in)=stifn(in)+wns(in)
180 fskyi(niskyl,4)=wns(in)
193 fskyi(niskyl,4)=wns(in)
202 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0.AND.
203 . ((tt>=tanim .AND. tt<=tanim_stop).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
204 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
THEN
206#include "vectorize.inc"
209 fcont(1,in) =fcont(1,in) + wnf(1,in)
210 fcont(2,in) =fcont(2,in) + wnf(2,in)
211 fcont(3,in) =fcont(3,in) + wnf(3,in)
213#include "lockoff.inc"
225 de=de+fx*v(1,in)+fy*v(2,in)+fz*v(3,in)
230 fs(7)=fs(7)+de*dt1*half
231 IF (igrsurf(ksurf)%TYPE==100)
THEN
234 output%TH%WFEXT=output%TH%WFEXT+de*dt1*half
subroutine i15ass(output, af, x, v, ksurf, igrsurf, bufsf, stifn, fs, fcont, fskyi, isky, de, wnf, wtf, wns, fnormx, fnormy, fnormz, ftangx, ftangy, ftangz, nnc, knc, h3d_data)