32 SUBROUTINE i15ass(OUTPUT,AF ,X ,V ,KSURF ,IGRSURF ,
33 2 BUFSF ,STIFN ,FS ,FCONT ,FSKYI ,
34 3 ISKY ,DE ,WNF ,WTF ,WNS ,
35 4 FNORMX ,FNORMY ,FNORMZ ,FTANGX ,FTANGY ,
36 5 FTANGZ ,NNC ,KNC ,H3D_DATA)
42 USE output_mod,
ONLY : output_
46#include "implicit_f.inc"
63 TYPE(output_),
INTENT(INOUT) :: OUTPUT
64 INTEGER KSURF,ISKY(*),NNC,KNC(*)
66 . AF(*) , X(3,*), V(3,*),BUFSF(*),
67 . stifn(*), fs(nthvki),
68 . fcont(3,*),fskyi(lskyi,nfskyi), de,
69 . wnf(3,*) ,wtf(3,*) ,wns(*) ,
70 . fnormx,fnormy,fnormz,ftangx,ftangy,ftangz
72 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
76 INTEGER ADRBUF, I, IN, I3, I2, I1
79 . ROT(9), XK , YK, ZK, FX, FY, FZ, AM1, AM2, AM3,
80 . fn1, fn2, fn3, ft1, ft2, ft3,
83 adrbuf=igrsurf(ksurf)%IAD_BUFR
85 rot(i)=bufsf(adrbuf+7+i-1)
90 fn1=rot(1)*fnormx+rot(4)*fnormy+rot(7)*fnormz
91 fn2=rot(2)*fnormx+rot(5)*fnormy+rot(8)*fnormz
92 fn3=rot(3)*fnormx+rot(6)*fnormy+rot(9)*fnormz
96 ft1=rot(1)*ftangx+rot(4)*ftangy+rot(7)*ftangz
97 ft2=rot(2)*ftangx+rot(5)*ftangy+rot(8)*ftangz
98 ft3=rot(3)*ftangx+rot(6)*ftangy+rot(9)*ftangz
105#include "vectorize.inc"
108 fx=wnf(1,in)+wtf(1,in)
109 fy=wnf(2,in)+wtf(2,in)
110 fz=wnf(3,in)+wtf(3,in)
111 wnf(1,in)=rot(1)*fx+rot(4)*fy+rot(7)*fz
112 wnf(2,in)=rot(2)*fx+rot(5)*fy+rot(8)*fz
113 wnf(3,in)=rot(3)*fx+rot(6)*fy+rot(9)*fz
120 xk=x(1,in)-bufsf(adrbuf+16)
121 yk=x(2,in)-bufsf(adrbuf+17)
122 zk=x(3,in)-bufsf(adrbuf+18)
130 bufsf(adrbuf+25)=bufsf(adrbuf+25)-fx
131 bufsf(adrbuf+26)=bufsf(adrbuf+26)-fy
132 bufsf(adrbuf+27)=bufsf(adrbuf+27)-fz
133 bufsf(adrbuf+28)=bufsf(adrbuf+28)-am1
134 bufsf(adrbuf+29)=bufsf(adrbuf+29)-am2
135 bufsf(adrbuf+30)=bufsf(adrbuf+30)-am3
138 bufsf(adrbuf+31)=bufsf(adrbuf+31)+stf
139 dd = xk**2+yk**2+zk**2
140 bufsf(adrbuf+32)=bufsf(adrbuf+32)+dd*stf
149#include "lockoff.inc"
152#include "vectorize.inc"
164 stifn(in)=stifn(in)+wns(in)
177 fskyi(niskyl,4)=wns(in)
190 fskyi(niskyl,4)=wns(in)
199 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0.AND.
200 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
201 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
THEN
203#include "vectorize.inc"
206 fcont(1,in) =fcont(1,in) + wnf(1,in
207 fcont(2,in) =fcont(2,in) + wnf(2,in
208 fcont(3,in) =fcont(3,in) + wnf(3,in)
210#include "lockoff.inc"
222 de=de+fx*v(1,in)+fy*v(2,in)+fz*v(3,in)
227 fs(7)=fs(7)+de*dt1*half
228 IF (igrsurf(ksurf)%TYPE==100)
THEN
231 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)