45
46
47
49
50
51
52#include "implicit_f.inc"
53#include "comlock.inc"
54
55
56
57#include "mvsiz_p.inc"
58
59
60
61 INTEGER NSN, I0,I2SIZE,,IROT, NOINT,NELTST,ITYPTST
62 INTEGER IRECT(4,*),NSV(*),IRTL(*),WEIGHT(*),IADI2(4,*),
63 . NODNX_SMS(*),IADX(*),INDXP(*)
64
66 . visc,dt2t
68 . x(3,*),vr(3,*),v(3,*),a(3,*),ar(3,*),ms(*),crst(2,*),
69 . skew(9,*),dx(3,*),dr(3,*),fini(6,*),fsav(*),fncont(3,*),
70 . stifn(*),stifr(*),stfn(*),stfr(*),fskyi2(i2size,*),
71 . dmint2(4,*),in(*),fncontp(3,*) ,ftcontp(3,*)
72 TYPE (H3D_DATABASE) :: H3D_DATA
73
74
75
76#include "com01_c.inc"
77#include "com06_c.inc"
78#include "com08_c.inc"
79#include "scr11_c.inc"
80#include "scr14_c.inc"
81#include "sms_c.inc"
82#include "task_c.inc"
83
84
85
86 INTEGER NIR,I,J,II,JJ,L,W,NN,KK,K,LLT,
87 . IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
88 . NSVG(MVSIZ),I0BASE
89
91 . s,t,sp,sm,tp,tm,econtt,econvt,e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z,
92 . fnorm,flx,fly,flz,fs(3),xsm,ysm,zsm,xm,ym,zm,
93 . x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,x0,y0,z0,xs,ys,zs,stf_mom(mvsiz),
94 . vx1,vx2,vx3,vx4,vy1,vy2,vy3,vy4,vz1,vz2,vz3,vz4,dlx,dly,dlz,
95 . vx0,vy0,vz0,vsx,vsy,vsz,vmx,vmy,vmz,vx,vy,vz,dtinv,stf,
96 . fxv,fyv,fzv,drx,dry,drz,stbrk,dti,mharm,dkm,det,b1,b2,b3,c1,c2,c3,
97 . a1,a2,a3,mttx,mtty,mttz,derx,dery,derz, dxt
99 . h(4,mvsiz),fn(3),ft(3),fx(4),fy(4),fz(4),fmx(4),fmy(4),fmz(4),
100 . rx(4),ry(4),rz(4),rm(3),rs(3),v0(3),vs(3),vm(3),
101 . stif(mvsiz), vis(mvsiz), va(3),vb(3),vc(3),vd(3),h2(4,mvsiz)
103 . vrm(3),vrs(3),
104 . vrx0,vrx1,vrx2,vrx3,vrx4,vry0,vry1,vry2,vry3,vry4,vrz0,vrz1,vrz2,vrz3,vrz4,
105 . vrsx,vrsy,vrsz,vrx,vry,vrz,mlx,mly,mlz,mx(4),my(4),mz(4),mrx,mry,mrz,
106 . mgx,mgy,mgz,msx,msy,msz,mvx,mvy,mvz,str,visr(mvsiz),dki,inharm,len2,
107 . hl(4)
108
109 i7kglo = 1
110 econtt = zero
111 econvt = zero
112 i0base = i0
113
114 nsvg(1:mvsiz) = 0
115
116 DO kk=1,nsn,mvsiz
117
118 llt=
min(nsn-kk+1,mvsiz)
119 DO k=1,llt
120
121 ii = indxp(kk+k-1)
122 IF (ii == 0) cycle
123 i = nsv(ii)
124
125 IF (i > 0) THEN
126 nsvg(k) = i
127 w = weight(i)
128 s = crst(1,ii)
129 t = crst(2,ii)
130 l = irtl(ii)
131
132 ix1(k) = irect(1,l)
133 ix2(k) = irect(2,l)
134 ix3(k) = irect(3,l)
135 ix4(k) = irect(4,l)
136
137 nir= 4
138 sp = one + s
139 sm = one - s
140 tp = fourth*(one + t)
141 tm = fourth*(one - t)
142
143 h(1,k)=fourth
144 h(2,k)=fourth
145 h(3,k)=fourth
146 h(4,k)=fourth
147
148 h2(1,k)=tm*sm
149 h2(2,k)=tm*sp
150 h2(3,k)=tp*sp
151 h2(4,k)=tp*sm
152
153 IF (ix3(k) == ix4(k)) THEN
154 nir = 3
155 h(1,k)=third
156 h(2,k)=third
157 h(3,k)=third
158 h(4,k) = zero
159 ENDIF
160
161
162
163 x1 = x(1,ix1(k))
164 y1 = x(2,ix1(k))
165 z1 = x(3,ix1(k))
166 x2 = x(1,ix2(k))
167 y2 = x(2,ix2(k))
168 z2 = x(3,ix2(k))
169 x3 = x(1,ix3(k))
170 y3 = x(2,ix3(k))
171 z3 = x(3,ix3(k))
172 x4 = x(1,ix4(k))
173 y4 = x(2,ix4(k))
174 z4 = x(3,ix4(k))
175 xs = x(1,i)
176 ys = x(2,i)
177 zs = x(3,i)
178 vsx = v(1,i)
179 vsy = v(2,i)
180 vsz = v(3,i)
181 vx1 = v(1,ix1(k))
182 vy1 = v(2,ix1(k))
183 vz1 = v(3,ix1(k))
184 vx2 = v(1,ix2(k))
185 vy2 = v(2,ix2(k))
186 vz2 = v(3,ix2(k))
187 vx3 = v(1,ix3(k))
188 vy3 = v(2,ix3(k))
189 vz3 = v(3,ix3(k))
190 vx4 = v(1,ix4(k))
191 vy4 = v(2,ix4(k))
192 vz4 = v(3,ix4(k))
193 IF (iroddl == 1 .AND. in(i) > zero) THEN
194 vrsx = vr(1,i)
195 vrsy = vr(2,i)
196 vrsz = vr(3,i)
197 vrx1 = vr(1,ix1(k))
198 vry1 = vr(2,ix1(k))
199 vrz1 = vr(3,ix1(k))
200 vrx2 = vr(1,ix2(k))
201 vry2 = vr(2,ix2(k))
202 vrz2 = vr(3,ix2(k))
203 vrx3 = vr(1,ix3(k))
204 vry3 = vr(2,ix3(k))
205 vrz3 = vr(3,ix3(k))
206 vrx4 = vr(1,ix4(k))
207 vry4 = vr(2,ix4(k))
208 vrz4 = vr(3,ix4(k))
209 ENDIF
210
211 CALL i2rep(x1 ,x2 ,x3 ,x4 ,
212 . y1 ,y2 ,y3 ,y4 ,
213 . z1 ,z2 ,z3 ,z4 ,
214 . e1x ,e1y ,e1z ,
215 . e2x ,e2y ,e2z ,
216 . e3x ,e3y ,e3z ,nir )
217
218 IF (nir == 4) THEN
219 xm = x1*h2(1,k) + x2*h2(2,k) + x3*h2(3,k) + x4*h2(4,k)
220 ym = y1*h2(1,k) + y2*h2(2,k) + y3*h2(3,k) + y4*h2(4,k)
221 zm = z1*h2(1,k) + z2*h2(2,k) + z3*h2(3,k) + z4*h2(4,k)
222 x0 = (x1 + x2 + x3 + x4)/nir
223 y0 = (y1 + y2 + y3 + y4)/nir
224 z0 = (z1 + z2 + z3 + z4)/nir
225
226 xm = xm - x0
227 ym = ym - y0
228 zm = zm - z0
229 xs = xs - x0
230 ys = ys - y0
231 zs = zs - z0
232 xsm = xs - xm
233 ysm = ys - ym
234 zsm = zs - zm
235
236 vx0 = (vx1 + vx2 + vx3 + vx4)/nir
237 vy0 = (vy1 + vy2 + vy3 + vy4)/nir
238 vz0 = (vz1 + vz2 + vz3 + vz4)/nir
239 vmx = vx1*h(1,k) + vx2*h(2,k) + vx3*h(3,k) + vx4*h(4,k) - vx0
240 vmy = vy1*h(1,k) + vy2*h(2,k) + vy3*h(3,k) + vy4*h(4,k) - vy0
241 vmz = vz1*h(1,k) + vz2*h(2,k) + vz3*h(3,k) + vz4*h(4,k) - vz0
242
243 ELSE
244 x0 = (x1 + x2 + x3)/nir
245 y0 = (y1 + y2 + y3)/nir
246 z0 = (z1 + z2 + z3)/nir
247
248 xm = x1*h(1,k) + x2*h(2,k) + x3*h(3,k)
249 ym = y1*h(1,k) + y2*h(2,k) + y3*h(3,k)
250 zm = z1*h(1,k) + z2*h(2,k) + z3*h(3,k)
251
252 xm = xm - x0
253 ym = ym - y0
254 zm = zm - z0
255 xs = xs - x0
256 ys = ys - y0
257 zs = zs - z0
258 xsm = xs - xm
259 ysm = ys - ym
260 zsm = zs - zm
261
262 vx0 = (vx1 + vx2 + vx3)/nir
263 vy0 = (vy1 + vy2 + vy3)/nir
264 vz0 = (vz1 + vz2 + vz3)/nir
265 vmx = vx1*h(1,k) + vx2*h(2,k) + vx3*h(3,k) - vx0
266 vmy = vy1*h(1,k) + vy2*h(2,k) + vy3*h(3,k) - vy0
267 vmz = vz1*h(1,k) + vz2*h(2,k) + vz3*h(3,k) - vz0
268 ENDIF
269 x1 = x1 - x0
270 y1 = y1 - y0
271 z1 = z1 - z0
272 x2 = x2 - x0
273 y2 = y2 - y0
274 z2 = z2 - z0
275 x3 = x3 - x0
276 y3 = y3 - y0
277 z3 = z3 - z0
278 x4 = x4 - x0
279 y4 = y4 - y0
280 z4 = z4 - z0
281 vsx = vsx - vx0
282 vsy = vsy - vy0
283 vsz = vsz - vz0
284
285
286
287 rs(1) = xs*e1x + ys*e1y + zs*e1z
288 rs(2) = xs*e2x + ys*e2y + zs*e2z
289 rs(3) = xs*e3x + ys*e3y + zs*e3z
290 rm(1) = xm*e1x + ym*e1y + zm*e1z
291 rm(2) = xm*e2x + ym*e2y + zm*e2z
292 rm(3) = xm*e3x + ym*e3y + zm*e3z
293
294 rx(1) = e1x*x1 + e1y*y1 + e1z*z1
295 ry(1) = e2x*x1 + e2y*y1 + e2z*z1
296 rz(1) = e3x*x1 + e3y*y1 + e3z*z1
297 rx(2) = e1x*x2 + e1y*y2 + e1z*z2
298 ry(2) = e2x*x2 + e2y*y2 + e2z*z2
299 rz(2) = e3x*x2 + e3y*y2 + e3z*z2
300 rx(3) = e1x*x3 + e1y*y3 + e1z*z3
301 ry(3) = e2x*x3 + e2y*y3 + e2z*z3
302 rz(3) = e3x*x3 + e3y*y3 + e3z*z3
303 rx(4) = e1x*x4 + e1y*y4 + e1z*z4
304 ry(4) = e2x*x4 + e2y*y4 + e2z*z4
305 rz(4) = e3x*x4 + e3y*y4 + e3z*z4
306
307 IF (nir==3) THEN
308 rx(4)=zero
309 ry(4)=zero
310 rz(4)=zero
311 END IF
312
313 vs(1) = vsx*e1x + vsy*e1y + vsz*e1z
314 vs(2) = vsx*e2x + vsy*e2y + vsz*e2z
315 vs(3) = vsx*e3x + vsy*e3y + vsz*e3z
316 IF (iroddl == 1 .AND. in(i) > zero) THEN
317 vrs(1) = vrsx*e1x + vrsy*e1y + vrsz*e1z
318 vrs(2) = vrsx*e2x + vrsy*e2y + vrsz*e2z
319 vrs(3) = vrsx*e3x + vrsy*e3y + vrsz*e3z
320 ENDIF
321
322 vm(1) = vmx*e1x + vmy*e1y + vmz*e1z
323 vm(2) = vmx*e2x + vmy*e2y + vmz*e2z
324 vm(3) = vmx*e3x + vmy*e3y + vmz*e3z
325
326 va(1) = vx1*e1x + vy1*e1y + vz1*e1z
327 va(2) = vx1*e2x + vy1*e2y + vz1*e2z
328 va(3) = vx1*e3x + vy1*e3y + vz1*e3z
329
330 vb(1) = vx2*e1x + vy2*e1y + vz2*e1z
331 vb(2) = vx2*e2x + vy2*e2y + vz2*e2z
332 vb(3) = vx2*e3x + vy2*e3y + vz2*e3z
333
334 vc(1) = vx3*e1x + vy3*e1y + vz3*e1z
335 vc(2) = vx3*e2x + vy3*e2y + vz3*e2z
336 vc(3) = vx3*e3x + vy3*e3y + vz3*e3z
337
338 vd(1) = vx4*e1x + vy4*e1y + vz4*e1z
339 vd(2) = vx4*e2x + vy4*e2y + vz4*e2z
340 vd(3) = vx4*e3x + vy4*e3y + vz4*e3z
341
342
343 IF (tt == zero) THEN
344 dx(1,ii) = zero
345 dx(2,ii) = zero
346 dx(3,ii) = zero
347 fini(1,ii) = zero
348 fini(2,ii) = zero
349 fini(3,ii) = zero
350 dr(1,ii) = zero
351 dr(2,ii) = zero
352 dr(3,ii) = zero
353 fini(4,ii) = zero
354 fini(5,ii) = zero
355 fini(6,ii) = zero
356 ENDIF
357
358 vx = vs(1) - vm(1)
359 vy = vs(2) - vm(2)
360 vz = vs(3) - vm(3)
361
362
364 . skew(1,ii) ,tt ,dt1 ,stbrk,
365 . rs ,rm ,vx ,vy ,vz ,
366 . rx ,ry ,rz ,va ,vb ,
367 . vc ,vd ,vrm ,vrs ,det ,
368 . b1 ,b2 ,b3 ,c1 ,c2 ,
369 . c3 ,in(i))
370
371 vrx = vrs(1) - vrm(1)
372 vry = vrs(2) - vrm(2)
373 vrz = vrs(3) - vrm(3)
374
375
376 dlx = vx*dt1
377 dly = vy*dt1
378 dlz = vz*dt1
379 drx = vrx*dt1
380 dry = vry*dt1
381 drz = vrz*dt1
382
383 dx(1,ii) = dx(1,ii) + dlx
384 dx(2,ii) = dx(2,ii) + dly
385 dx(3,ii) = dx(3,ii) + dlz
386 dr(1,ii) = dr(1,ii) + drx
387 dr(2,ii) = dr(2,ii) + dry
388 dr(3,ii) = dr(3,ii) + drz
389
390
391
392
393
394 flx = dx(1,ii) * stfn(ii)
395 fly = dx(2,ii) * stfn(ii)
396 flz = dx(3,ii) * stfn(ii)
397
398 IF(ms(i)==zero.OR.ms(ix1(k))==zero.OR.
399 . ms(ix2(k))==zero.OR.
400 . ms(ix3(k))==zero.OR.
401 . ms(ix4(k))==zero)THEN
402 mharm = zero
403 ELSEIF(nir==4)THEN
404 mharm = one/ms(i) +
405 . one/ms(ix1(k)) + one/ms(ix2(k)) + one/ms(ix3(k)) + one/ms(ix4(k))
406 mharm = one/mharm
407 ELSE
408 mharm = one/ms(i) +
409 . one/ms(ix1(k)) + one/ms(ix2(k)) + one/ms(ix3(k))
410 mharm = one/mharm
411 END IF
412 dkm = two*stfn(ii)*mharm
413 vis(k) = visc*sqrt(dkm)
414
415 fxv = vis(k) * vx
416 fyv = vis(k) * vy
417 fzv = vis(k) * vz
418
419 dxt = dx(1,ii)**2 + dx(2,ii)**2 + dx(3,ii)**2
420 econtt = econtt + half*stfn(ii)*dxt*w
421
422 econvt = econvt + (fxv*vx + fyv*vy + fzv*vz)*dt1*w
423
424 flx = flx + fxv
425 fly = fly + fyv
426 flz = flz + fzv
427
428 fs(1) = e1x*flx + e2x*fly + e3x*flz
429 fs(2) = e1y*flx + e2y*fly + e3y*flz
430 fs(3) = e1z*flx + e2z*fly + e3z*flz
431
432
433
434
435
436 IF (iroddl == 1 .AND. in(i) > zero) THEN
437
438
439
440 IF(in(i)==zero.OR.in(ix1(k))==zero.OR.
441 . in(ix2(k))==zero.OR.
442 . in(ix3(k))==zero.OR.
443 . in(ix4(k))==zero)THEN
444 inharm = zero
445 ELSEIF(nir==4)THEN
446 inharm = one/in(i) +
447 . one/in(ix1(k)) + one/in(ix2(k)) + one/in(ix3(k)) + one/in(ix4(k))
448 inharm = one/inharm
449 ELSE
450 inharm = one/in(i) +
451 . one/in(ix1(k)) + one/in(ix2(k)) + one/in(ix3(k))
452 inharm = one/inharm
453 END IF
454
455 dki = two*stfr(ii)*inharm
456 visr(k) = visc*sqrt(dki)
457
458 mlx = dr(1,ii) * stfr(ii)
459 mly = dr(2,ii) * stfr(ii)
460 mlz = dr(3,ii) * stfr(ii)
461
462 mvx = visr(k) * vrx
463 mvy = visr(k) * vry
464 mvz = visr(k) * vrz
465
466 dxt = dr(1,ii)**2 + dr(2,ii)**2 + dr(3,ii)**2
467 econtt = econtt + half*stfr(ii)*dxt*w
468
469 econvt = econvt + (mvx*vrx
470 . + mvy*vry
471 . + mvz*vrz)*dt1*w
472
473 mlx = mlx + mvx
474 mly = mly + mvy
475 mlz = mlz + mvz
476
477 mgx = e1x*mlx + e2x*mly + e3x*mlz
478 mgy = e1y*mlx + e2y*mly + e3y*mlz
479 mgz = e1z*mlx + e2z*mly + e3z*mlz
480
481 mrx = half*(ysm*fs(3) - zsm*fs(2))
482 mry = half*(zsm*fs(1) - xsm*fs(3))
483 mrz = half*(xsm*fs(2) - ysm*fs(1))
484
485 ELSE
486
487
488
489 mgx = zero
490 mgy = zero
491 mgz = zero
492
493 mrx = ysm*fs(3) - zsm*fs(2)
494 mry = zsm*fs(1) - xsm*fs(3)
495 mrz = xsm*fs(2) - ysm*fs(1)
496
497 ENDIF
498
499
500
501
502
503 stf = stfn(ii)*(visc + sqrt(visc**2 + (one+stbrk)))**2
504
505 len2 = xsm**2+ysm**2+zsm**2
506 str = (stfr(ii)+stfn(ii)*len2)*(visc + sqrt(visc**2 + one))**2
507
508
509
510
511
512 a(1,i) = a(1,i) - fs(1)
513 a(2,i) = a(2,i) - fs(2)
514 a(3,i) = a(3,i) - fs(3)
515 stifn(i) = stifn(i) + stf
516
517
518 stif(k) = (one+stbrk)*stfn(ii)
519
520 IF (iroddl == 1) THEN
521 IF (in(i)>zero) THEN
522 ar(1,i) = ar(1,i) - mgx + mrx
523 ar(2,i) = ar(2,i) - mgy + mry
524 ar(3,i) = ar(3,i) - mgz + mrz
525 stifr(i) = stifr(i) + str
526 ENDIF
527 ENDIF
528
529
530
531
532
533
534
535 mttx=e1x*(mgx+mrx) + e1y*(mgy+mry) + e1z*(mgz+mrz) + rm(2)*flz - rm(3)*fly
536 mtty=e2x*(mgx+mrx) + e2y*(mgy+mry) + e2z*(mgz+mrz) + rm(3)*flx - rm(1)*flz
537 mttz=e3x*(mgx+mrx) + e3y*(mgy+mry) + e3z*(mgz+mrz) + rm(1)*fly - rm(2)*flx
538
539 a1=det*(mttx*b1+mtty*c3+mttz*c2)
540 a2=det*(mtty*b2+mttz*c1+mttx*c3)
541 a3=det*(mttz*b3+mttx*c2+mtty*c1)
542
543 derx = (b1+c3+c2)
544 dery = (b2+c1+c3)
545 derz = (b3+c2+c1)
546 stf_mom(k) = det*
max(derx,dery,derz)*(str+stf*(xm*xm+ym*ym+zm*zm))
547
548 DO j=1,4
549 fmx(j) = h(j,k)*flx + a2*rz(j) - a3*ry(j)
550 fmy(j) = h(j,k)*fly + a3*rx(j) - a1*rz(j)
551 fmz(j) = h(j,k)*flz + a1*ry(j) - a2*rx(j)
552 ENDDO
553
554 DO j=1,4
555 fx(j) = e1x*fmx(j) + e2x*fmy(j) + e3x*fmz(j)
556 fy(j) = e1y*fmx(j) + e2y*fmy(j) + e3y*fmz(j)
557 fz(j) = e1z*fmx(j) + e2z*fmy(j) + e3z*fmz(j)
558 ENDDO
559
560 IF (w == 1) THEN
561 i0 = i0base + iadx(ii)
562 jj = 1
563 nn = iadi2(jj,i0)
564
565 fskyi2(1,nn) = fx(jj)
566 fskyi2(2,nn) = fy(jj)
567 fskyi2(3,nn) = fz(jj)
568 fskyi2(4,nn) = zero
569 fskyi2(5,nn) = abs(stf*h(jj,k))+stf_mom(k)
570 IF (iroddl == 1) THEN
571 fskyi2(6,nn) = zero
572 fskyi2(7,nn) = zero
573 fskyi2(8,nn) = zero
574 fskyi2(9,nn) = zero
575 fskyi2(10,nn)= zero
576 ENDIF
577
578 jj = 2
579 nn = iadi2(jj,i0)
580 fskyi2(1,nn) = fx(jj)
581 fskyi2(2,nn) = fy(jj)
582 fskyi2(3,nn) = fz(jj)
583 fskyi2(4,nn) = zero
584 fskyi2(5,nn) = abs(stf*h(jj,k))+stf_mom(k)
585 IF (iroddl == 1) THEN
586 fskyi2(6,nn) = zero
587 fskyi2(7,nn) = zero
588 fskyi2(8,nn) = zero
589 fskyi2(9,nn) = zero
590 fskyi2(10,nn)= zero
591 ENDIF
592
593 jj = 3
594 nn = iadi2(jj,i0)
595 fskyi2(1,nn) = fx(jj)
596 fskyi2(2,nn) = fy(jj)
597 fskyi2(3,nn) = fz(jj)
598 fskyi2(4,nn) = zero
599 fskyi2(5,nn) = abs(stf*h(jj,k))+stf_mom(k)
600 IF (iroddl == 1) THEN
601 fskyi2(6,nn) = zero
602 fskyi2(7,nn) = zero
603 fskyi2(8,nn) = zero
604 fskyi2(9,nn) = zero
605 fskyi2(10,nn)= zero
606 ENDIF
607
608 IF (nir==4) THEN
609 jj = 4
610 nn = iadi2(jj,i0)
611 fskyi2(1,nn) = fx(jj)
612 fskyi2(2,nn) = fy(jj)
613 fskyi2(3,nn) = fz(jj)
614 fskyi2(4,nn) = zero
615 fskyi2(5,nn) = abs(stf*h(jj,k))+stf_mom(k)
616 IF (iroddl == 1) THEN
617 fskyi2(6,nn) = zero
618 fskyi2(7,nn) = zero
619 fskyi2(8,nn) = zero
620 fskyi2(9,nn) = zero
621 fskyi2(10,nn)= zero
622 ENDIF
623 ELSE
624 jj = 4
625 nn = iadi2(jj,i0)
626 fskyi2(1,nn) = zero
627 fskyi2(2,nn) = zero
628 fskyi2(3,nn) = zero
629 fskyi2(4,nn) = zero
630 fskyi2(5,nn) = zero
631 IF (iroddl == 1) THEN
632 fskyi2(6,nn) = zero
633 fskyi2(7,nn) = zero
634 fskyi2(8,nn) = zero
635 fskyi2(9,nn) = zero
636 fskyi2(10,nn)= zero
637 ENDIF
638 ENDIF
639
640 ENDIF
641
642 fini(1,ii) = flx
643 fini(2,ii) = fly
644 fini(3,ii) = flz
645 IF (iroddl == 1 .AND. in(i) > zero) THEN
646 fini(4,ii) = mlx
647 fini(5,ii) = mly
648 fini(6,ii) = mlz
649 ENDIF
650
651
652
653 hl(1:4) = h(1:4,k)
655 . irect(1,l),nir ,fsav ,fncont ,fncontp,
656 . ftcontp ,weight ,h3d_data,i ,hl)
657
658
659 ELSE
660 nsvg(k)= -i
661 l = irtl(ii)
662
663 ix1(k) = irect(1,l)
664 ix2(k) = irect(2,l)
665 ix3(k) = irect(3,l)
666 ix4(k) = irect(4,l)
667 stif(k)= zero
668 vis(k) = zero
669 IF (weight(-i) == 1) THEN
670 i0 = i0base + iadx(ii)
671 jj = 1
672 nn = iadi2(jj,i0)
673 fskyi2(1,nn) = zero
674 fskyi2(2,nn) = zero
675 fskyi2(3,nn) = zero
676 fskyi2(4,nn) = zero
677 fskyi2(5,nn) = zero
678 IF (iroddl == 1) THEN
679 fskyi2(6,nn) = zero
680 fskyi2(7,nn) = zero
681 fskyi2(8,nn) = zero
682 fskyi2(9,nn) = zero
683 fskyi2(10,nn)= zero
684 ENDIF
685 jj = 2
686 nn = iadi2(jj,i0)
687 fskyi2(1,nn) = zero
688 fskyi2(2,nn) = zero
689 fskyi2(3,nn) = zero
690 fskyi2(4,nn) = zero
691 fskyi2(5,nn) = zero
692 IF (iroddl == 1) THEN
693 fskyi2(6,nn) = zero
694 fskyi2(7,nn) = zero
695 fskyi2(8,nn) = zero
696 fskyi2(9,nn) = zero
697 fskyi2(10,nn)= zero
698 ENDIF
699 jj = 3
700 nn = iadi2(jj,i0)
701 fskyi2(1,nn) = zero
702 fskyi2(2,nn) = zero
703 fskyi2(3,nn) = zero
704 fskyi2(4,nn) = zero
705 fskyi2(5,nn) = zero
706 IF (iroddl == 1) THEN
707 fskyi2(6,nn) = zero
708 fskyi2(7,nn) = zero
709 fskyi2(8,nn) = zero
710 fskyi2(9,nn) = zero
711 fskyi2(10,nn)= zero
712 ENDIF
713 jj = 4
714 nn = iadi2(jj,i0)
715 fskyi2(1,nn) = zero
716 fskyi2(2,nn) = zero
717 fskyi2(3,nn) = zero
718 fskyi2(4,nn) = zero
719 fskyi2(5,nn) = zero
720 IF (iroddl == 1) THEN
721 fskyi2(6,nn) = zero
722 fskyi2(7,nn) = zero
723 fskyi2(8,nn) = zero
724 fskyi2(9,nn) = zero
725 fskyi2(10,nn)= zero
726 ENDIF
727 ENDIF
728 ENDIF
729 ENDDO
730
731 IF(idtmins==2.OR.idtmins_int/=0)THEN
732 dti=dt2t
733 CALL i2sms28(llt ,ix1 ,ix2 ,ix3 ,ix4 ,
734 2 nsvg ,h ,stif ,noint ,
735 3 dmint2(1,kk),nodnx_sms ,vis ,
736 4 stf_mom ,dti)
737 IF(dti<dt2t)THEN
738 dt2t = dti
739 neltst = noint
740 ityptst = 10
741 ENDIF
742 END IF
743 ENDDO
744
745#include "lockon.inc"
746 econt = econt + econtt
747 econtd = econtd + econvt
748 fsav(26) = fsav(26) + econtt
749 fsav(28) = fsav(28) + econvt
750#include "lockoff.inc"
751
752 RETURN
subroutine i2forces(x, fs, fx, fy, fz, irect, nir, fsav, fncont, fncontp, ftcontp, weight, h3d_data, nsl, h)
subroutine i2pen_rot28(skew, tt, dt1, stif, rs, rm, vx, vy, vz, rx, ry, rz, va, vb, vc, vd, vrm, vrs, det, b1, b2, b3, c1, c2, c3, in_secnd)
subroutine i2rep(x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nir)
subroutine i2sms28(jlt, ix1, ix2, ix3, ix4, nsvg, h, stif, noint, dmint2, nodnx_sms, vis, stf_mom, dti)