37 . A ,AR ,STIFN ,STIFR ,WEIGHT ,
38 . NSV ,MSR ,IRTL ,IRECT ,CRST ,
39 . NSN ,NMN ,IDEL2 ,I0 ,I2SIZE ,
40 . IADI2 ,MMASS ,SMASS ,SINER ,FSKYI2 ,
41 . FSAV ,FNCONT ,H3D_DATA,FNCONTP ,FTCONTP)
49#include "implicit_f.inc"
53 INTEGER NSN, NMN, I0,I2SIZE,IDEL2
54 INTEGER IRECT(4,*),NSV(*),MSR(*),IRTL(*),WEIGHT(*),IADI2(4,*)
57 . MS(*),IN(*),MMASS(*),SMASS(*),SINER(*),X(3,*),V(3,*),VR(3,*),
58 . (3,*),AR(3,*),STIFN(*),STIFR(
64 INTEGER I1,I2,I3,I4,II,IS,IM,JJ,L,NN,
67 . xms,ins,stfn,stfr,fs(3),moms(3),ls1,ls2,lt1,lt2,
68 . ls,lt,len,s,t,xc,yc,zc,dm1,dm2,din1,din2,din3,
69 . sumhrs,sumhrt,sumhprs,sumhprt
71 . fsloc(6),fmloc(4,6),rot(9),roti(9),dm(4),din(4),dstfn(4),
72 . dstfr(4),h(4),hh(4),hrs(4),hrt(4),hps(4),hpt(4),hprs(4),
73 . hprt(4),hxs(4),hxt(4),fx(4),fy(4),fz(4)
77#include "vectorize.inc"
81 in(im)=
max(em20,in(im))
87 IF (weight(is) == 1)
THEN
94 . lt1 ,lt2 ,rot(1) ,rot(4) ,rot(7) ,
95 . rot(2) ,rot(5) ,rot(8) ,rot(3) ,rot(6) ,
102 . nir,s,t,h,hh,hrs,hrt,hps,hpt,hprs,hprt,
103 . hxs,hxt,ls1,ls2,lt1,lt2,ls,lt)
105 sumhrs = abs(hrs(1) +hrs(2) +hrs(3) +hrs(4))
106 sumhrt = abs(hrt(1) +hrt(2) +hrt(3) +hrt(4))
107 sumhprs = abs(hprs(1)+hprs(2)+hprs(3)+hprs(4))
108 sumhprt = abs(hprt(1)+hprt(2)+hprt(3)+hprt(4))
113 xc = x(1,i1)*h(1)+x(1,i2)*h(2)+x(1,i3)*h(3)+x(1,i4)*h(4)
114 yc = x(2,i2)*h(1)+x(2,i2)*h(2)+x(2,i3)*h(3)+x(2,i4)*h(4)
115 zc = x(3,i3)*h(1)+x(3,i2)*h(2)+x(3,i3)*h(3)+x(3,i4)*h(4)
130 fsloc(1) = rot(1)*fs(1) + rot(4)*fs(2) + rot(7)*fs(3)
131 fsloc(2) = rot(2)*fs(1) + rot(5)*fs(2) +
132 fsloc(3) = rot(3)*fs(1) + rot(6)*fs(2) + rot(9)*fs(3)
133 fsloc(4) = rot(1)*moms(1) + rot(4)*moms(2) + rot(7)*moms(3)
134 fsloc(5) = rot(2)*moms(1) + rot(5)*moms(2) + rot(8)*moms(3)
135 fsloc(6) = rot(3)*moms(1) + rot(6)*moms(2) + rot(9)*moms(3)
139 fmloc(jj,1) = h(jj)*fsloc(1)
140 fmloc(jj,2) = h(jj)*fsloc(2)
141 fmloc(jj,3) = hh(jj)*fsloc(3)
142 . + hps(jj)*fsloc(4) + hpt(jj)*fsloc(5)
143 fmloc(jj,4) = hrs(jj)*fsloc(3)
144 . + hprs(jj)*fsloc(4)+ hxt(jj)*fsloc(5)
145 fmloc(jj,5) = hrt(jj)*fsloc(3)
152 len = sqrt((x(1,im)-xc)**2+(x(2,im)-yc)**2+(x(3,im)-zc)**2)
156 . + hh(jj)*(sumhrs +sumhrt)*xms/len
157 . +(abs(hps(jj))*sumhprs + abs(hpt(jj))*sumhprt)*ins/len
160 dstfn(jj) = h(jj)*stfn
163 dstfn(jj) = hh(jj)*stfn
165 . +(abs(hps(jj))*sumhprs + abs(hpt(jj))*sumhprt)*stfr/len
168 din1 = abs(hrs(jj))*(sumhrs+sumhrt)*xms
169 . +(abs(hprs(jj))*sumhprs + abs(hxt(jj))*sumhprt)*ins
170 . + abs(hrs(jj))*xms*len
171 din2 = abs(hrt(jj))*(sumhrs+sumhrt)*xms
173 . + abs(hrt(jj))*xms*len
175 IF (din1 >= din2 .AND. din1 >= din3)
THEN
177 dstfr(jj) = abs(hrs(jj))*(sumhrs+sumhrt)*stfn
178 . +(abs(hprs(jj))*sumhprs + abs(hxt(jj))*sumhprt)*stfr
179 . + abs(hrs(jj))*stfn*len
180 ELSEIF (din2 >= din1 .AND. din2 >= din3)
THEN
182 dstfr(jj) = abs(hrt(jj))*(sumhrs+sumhrt)*stfn
183 . +(abs(hprt(jj))*sumhprt + abs(hxs(jj))*sumhprs)*stfr
184 . + abs(hrt(jj))*stfn*len
185 ELSEIF (din3 >= din1 .AND. din3 >= din2)
THEN
187 dstfr(jj) = h(jj)*stfr
194 fx(jj) = roti(1)*fmloc(jj,1)+roti(4)*fmloc(jj,2)+roti(7)*fmloc(jj,3)
195 fy(jj) = roti(2)*fmloc(jj,1)+roti(5)*fmloc(jj,2)+roti(8)*fmloc(jj,3)
196 fz(jj) = roti(3)*fmloc(jj,1)+roti(6)*fmloc(jj,2)+roti(9)*fmloc(jj,3)
203 fskyi2(1,nn) = fx(jj)
204 fskyi2(2,nn) = fy(jj)
205 fskyi2(3,nn) = fz(jj)
206 fskyi2(4,nn) = dm(jj)
207 fskyi2(5,nn) = dstfn(jj)
209 . roti(1)*fmloc(jj,4)+roti(4)*fmloc(jj,5)+roti(7)*fmloc(jj,6)
211 . roti(2)*fmloc(jj,4)+roti(5)*fmloc(jj,5)+roti(8)*fmloc(jj,6)
213 . roti(3)*fmloc(jj,4)+roti(6)*fmloc(jj,5)+roti(9)*fmloc(jj,6)
214 fskyi2(9,nn) = din(jj)
215 fskyi2(10,nn)= dstfr(jj)
220 fskyi2(2,nn) = fy(jj)
221 fskyi2(3,nn) = fz(jj)
222 fskyi2(4,nn) = dm(jj)
223 fskyi2(5,nn) = dstfn(jj)
225 . roti(1)*fmloc(jj,4)+roti(4)*fmloc(jj,5)+roti(7)*fmloc(jj,6)
227 . roti(2)*fmloc(jj,4)+roti(5)*fmloc
229 . roti(3)*fmloc(jj,4)+roti(6)*fmloc(jj,5)+roti(9)*fmloc(jj,6)
230 fskyi2(9,nn) = din(jj)
231 fskyi2(10,nn)= dstfr(jj)
235 fskyi2(1,nn) = fx(jj)
236 fskyi2(2,nn) = fy(jj)
237 fskyi2(3,nn) = fz(jj)
238 fskyi2(4,nn) = dm(jj)
239 fskyi2(5,nn) = dstfn(jj)
241 . roti(1)*fmloc(jj,4)+roti(4)*fmloc(jj,5)+roti(7)*fmloc(jj,6)
243 . roti(2)*fmloc(jj,4)+roti(5)*fmloc(jj,5)+roti(8)*fmloc(jj,6)
245 . roti(3)*fmloc(jj,4)+roti(6)*fmloc(jj,5)+roti(9)*fmloc(jj,6)
246 fskyi2(9,nn) = din(jj)
247 fskyi2(10,nn)= dstfr(jj)
251 fskyi2(1,nn) = fx(jj)
252 fskyi2(2,nn) = fy(jj)
253 fskyi2(3,nn) = fz(jj)
254 fskyi2(4,nn) = dm(jj)
255 fskyi2(5,nn) = dstfn(jj)
257 . roti(1)*fmloc(jj,4)+roti(4)*fmloc(jj,5)+roti
259 . roti(2)*fmloc(jj,4)+roti(5)*fmloc(jj,5)+roti(8)*fmloc(jj,6)
261 . roti(3)*fmloc(jj,4)+roti(6)*fmloc(jj,5)+roti(9)*fmloc(jj,6)
262 fskyi2(9,nn) = din(jj)
263 fskyi2(10,nn)= dstfr(jj)
267 . inod(1) ,nir ,fsav ,fncont ,fncontp,
268 . ftcontp ,weight ,h3d_data,is ,h)
270 IF (idel2/=0.AND.ms(is)/=zero) smass(ii)=ms(is)
271 IF (idel2/=0.AND.ms(is)/=zero) siner(ii)=in(is)
284 ELSEIF(weight(-is) == 1)
THEN