52
53
54
59 USE output_mod
60
61
62
63#include "implicit_f.inc"
64#include "comlock.inc"
65
66
67
68#include "mvsiz_p.inc"
69
70
71
72#include "com01_c.inc"
73#include "com04_c.inc"
74#include "com06_c.inc"
75#include "com08_c.inc"
76#include "parit_c.inc"
77#include "scr07_c.inc"
78#include "scr14_c.inc"
79#include "scr16_c.inc"
80#include "scr18_c.inc"
81
82
83
84 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
85 INTEGER JLT, NIN, NOINT, ISKY(*), ISECIN, NSTRF(*),NCONT,IFORM,NISKYFI,
86 . NINSKID,NINTERSKID,IFLAGLOADP
87 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
88 . NSVG(MVSIZ), ITRIA(MVSIZ), CAND_N(*), WEIGHT(*),
89 . MSR(*), INTTH, NODGLOB(*),INDEXCONT(*),TAGCONT(*),MSRL(*),ITAB(*),
90 . TAGNCONT(NLOADP_HYD_INTER,NUMNOD)
91 INTEGER , INTENT(IN) :: S_LOADPINTER
92 INTEGER , INTENT(IN) :: NODADT_THERM
93 INTEGER , INTENT(IN) :: KLOADPINTER(NINTER+1),LOADPINTER(S_LOADPINTER),
94 . LOADP_HYD_INTER(NLOADP_HYD)
95 INTEGER , INTENT(IN) :: INTEREFRIC
97 my_real ,
INTENT(IN) :: dgaploadint(s_loadpinter),dist(mvsiz),gapv(mvsiz)
98 my_real ,
INTENT(INOUT) :: efric_l(mvsiz),efrict(mvsiz)
100 . a(3,*), fcont(3,*),fncont(3,*), ftcont(3,*), stifn(*),
101 . fskyi(lskyi,nfskyi), secfcum(7,numnod,nsect),
102 . fxn(mvsiz), fyn(mvsiz), fzn(mvsiz),
103 . fxt(mvsiz), fyt(mvsiz), fzt(mvsiz),
104 . stif(mvsiz), lb(mvsiz), lc(mvsiz),
105 . ftxsav(*), ftysav(*), ftzsav(*),
106 . phi(*), fthe(*), ftheskyi(*),
107 . mxi(mvsiz), myi(mvsiz), mzi(mvsiz),
stri(mvsiz),condn(*),
108 . condint(mvsiz),condnskyi(lskyi),
109 . phi1(mvsiz),phi2(mvsiz),phi3(mvsiz),phi4(mvsiz),pratio(mvsiz),
110 . pskids(ninterskid,*)
111 TYPE(INTSTAMP_DATA) INTSTAMP
112 TYPE(H3D_DATABASE) :: H3D_DATA
113
114
115
116 INTEGER I, IG, J, JG , K0, NBINTER, K1S, K, NISKYL, IROT, I1,
117 . ,NISKYL2, NISKYFIL, ND , N,PP ,PPL,INTF
119 . fxi(mvsiz), fyi(mvsiz), fzi(mvsiz),
120 . fx1(mvsiz), fx2(mvsiz), fx3(mvsiz), fx4(mvsiz),
121 . fy1(mvsiz), fy2(mvsiz), fy3(mvsiz), fy4(mvsiz),
122 . fz1(mvsiz), fz2(mvsiz), fz3(mvsiz), fz4(mvsiz),
123 . h1(mvsiz) , h2(mvsiz) , h3(mvsiz) , h4(mvsiz)
124 my_real gapp, h0 ,dgapload, efricsm
125 double precision
126 . fx6(6,mvsiz), fy6(6,mvsiz), fz6(6,mvsiz), st6(6,mvsiz),
127 . fx, fy, fz, stf,
128 . mx6(6,mvsiz), my6(6,mvsiz), mz6(6,mvsiz), str6(6,mvsiz),
129 . mx, my, mz, str
130
131 niskyfil = 0
132 DO i=1,jlt
133 fxi(i)=fxn(i)+fxt(i)
134 fyi(i)=fyn(i)+fyt(i)
135 fzi(i)=fzn(i)+fzt(i)
136 ENDDO
137
138 DO i=1,jlt
139 ftxsav(cand_n(i))=fxt(i)
140 ftysav(cand_n(i))=fyt(i)
141 ftzsav(cand_n(i))=fzt(i)
142 ENDDO
143
144 IF(iflagloadp > 0) THEN
145 DO k = kloadpinter(nin)+1, kloadpinter(nin+1)
146 pp = loadpinter(k)
147 ppl = loadp_hyd_inter(pp)
148 dgapload = dgaploadint(k)
149 DO i=1,jlt
150 jg = nsvg(i)
151 IF(weight(jg)/=1)cycle
152 gapp= gapv(i) + dgapload
153 IF(dist(i) <= gapp) THEN
154 tagncont(ppl,jg) = 1
155 ENDIF
156 ENDDO
157 ENDDO
158 ENDIF
159
160
161
162 IF(iparit==0)THEN
163 DO i=1,jlt
164 ig=nsvg(i)
165 a(1,ig)=a(1,ig)-fxi(i)*weight(ig)
166 a(2,ig)=a(2,ig)-fyi(i)*weight(ig)
167 a(3,ig)=a(3,ig)-fzi(i)*weight(ig)
168 stifn(ig) = stifn(ig) + stif(i)*weight(ig)
169 END DO
170 IF(intth/=0)THEN
171 IF(nodadt_therm == 1 ) THEN
172 DO i=1,jlt
173 ig=nsvg(i)
174 fthe(ig)=fthe(ig)+phi(i)*weight(ig)
175 condn(ig)=condn(ig)+condint(i)*weight(ig)
176 END DO
177 ELSE
178 DO i=1,jlt
179 ig=nsvg(i)
180 fthe(ig)=fthe(ig)+phi(i)*weight(ig)
181 END DO
182 ENDIF
183
184 IF(iform==1) THEN
185 DO i=1,jlt
186 i1 = ix1(i)
187 nd = msrl(i1)
188 ig=nsvg(i)
189 IF(nd>0) THEN
190 fthe(nd)=fthe(nd) + phi1(i)*weight(ig)
191 ELSE
192 nd = -nd
193 fthefi(nin)%P(nd)=
fthefi(nin)%P(nd) + phi1(i)*weight(ig)
194 ENDIF
195
196 i1 = ix2(i)
197 nd = msrl(i1)
198 IF(nd>0) THEN
199 fthe(nd)=fthe(nd) + phi2(i)*weight(ig)
200 ELSE
201 nd = -nd
202 fthefi(nin)%P(nd)=
fthefi(nin)%P(nd) + phi2(i)*weight(ig)
203 ENDIF
204
205 i1 = ix3(i)
206 nd = msrl(i1)
207 IF(nd>0) THEN
208 fthe(nd)=fthe(nd) + phi3(i)*weight(ig)
209 ELSE
210 nd = -nd
211 fthefi(nin)%P(nd)=
fthefi(nin)%P(nd) + phi3(i)*weight(ig)
212 ENDIF
213
214 i1 = ix4(i)
215 nd = msrl(i1)
216 IF(nd>0) THEN
217 fthe(nd)=fthe(nd) + phi4(i)*weight(ig)
218 ELSE
219 nd = -nd
220 fthefi(nin)%P(nd)=
fthefi(nin)%P(nd) + phi4(i)*weight(ig)
221 ENDIF
222
223 ENDDO
224 ENDIF
225
226 END IF
227
228
229 fx =zero
230 fy =zero
231 fz =zero
232 stf=zero
233 DO i=1,jlt
234 ig=nsvg(i)
235 fx=fx+fxi(i) *weight(ig)
236 fy=fy+fyi(i) *weight(ig)
237 fz=fz+fzi(i) *weight(ig)
238 stf=stf+stif(i)*weight(ig)
239 END DO
240#include "lockon.inc"
241 intstamp%FC(1)=intstamp%FC(1)+fx
242 intstamp%FC(2)=intstamp%FC(2)+fy
243 intstamp%FC(3)=intstamp%FC(3)+fz
244 intstamp%STF =intstamp%STF +stf
245#include "lockoff.inc"
246 irot=intstamp%IROT
247 IF(irot/=0)THEN
248 mx =zero
249 my =zero
250 mz =zero
251 str=zero
252 DO i=1,jlt
253 ig=nsvg(i)
254 mx=mx+mxi(i) *weight(ig)
255 my=my+myi(i) *weight(ig)
256 mz=mz+mzi(i) *weight(ig)
257 str=str+
stri(i)*weight(ig)
258 END DO
259#include "lockon.inc"
260 intstamp%MC(1)=intstamp%MC(1)+mx
261 intstamp%MC(2)=intstamp%MC(2)+my
262 intstamp%MC(3)=intstamp%MC(3)+mz
263 intstamp%STR =intstamp%STR +str
264#include "lockoff.inc"
265 END IF
266 ELSE
267
268
269
270 niskyl1 = 0
271 niskyl2 = 0
272 IF(iform /= 0) THEN
273 DO i = 1, jlt
274 IF (h1(i)/=zero) THEN
275 i1 = ix1(i)
276 nd = msrl(i1)
277 IF(nd>0) THEN
278 niskyl1 = niskyl1 + 1
279 ELSE
280 niskyl2 = niskyl2 + 1
281 ENDIF
282 ENDIF
283 IF (h2(i)/=zero) THEN
284 i1 = ix2(i)
285 nd = msrl(i1)
286 IF(nd>0) THEN
287 niskyl1 = niskyl1 + 1
288 ELSE
289 niskyl2 = niskyl2 + 1
290 ENDIF
291 ENDIF
292 IF (h3(i)/=zero) THEN
293 i1 = ix3(i)
294 nd = msrl(i1)
295 IF(nd>0) THEN
296 niskyl1 = niskyl1 + 1
297 ELSE
298 niskyl2 = niskyl2 + 1
299 ENDIF
300 ENDIF
301 IF (h4(i)/=zero) THEN
302 i1 = ix4(i)
303 nd = msrl(i1)
304 IF(nd>0) THEN
305 niskyl1 = niskyl1 + 1
306 ELSE
307 niskyl2 = niskyl2 + 1
308 ENDIF
309 ENDIF
310 ENDDO
311 ENDIF
312
313
314#include "lockon.inc"
315 niskyl = nisky
316 nisky = nisky + jlt + niskyl1
317 IF(iform /= 0) THEN
318 niskyfil = niskyfi
319 niskyfi = niskyfi + niskyl2
320 ENDIF
321#include "lockoff.inc"
322 IF(intth==0)THEN
323 DO i=1,jlt
324 niskyl = niskyl + 1
325 ig=nsvg(i)
326 fskyi(niskyl,1)=-fxi(i)*weight(ig)
327 fskyi(niskyl,2)=-fyi(i)*weight(ig)
328 fskyi(niskyl,3)=-fzi(i)*weight(ig)
329 fskyi(niskyl,4)=stif(i)*weight(ig)
330 isky(niskyl) = ig
331 END DO
332 ELSE
333 IF(nodadt_therm == 1 ) THEN
334 DO i=1,jlt
335 niskyl = niskyl + 1
336 ig=nsvg(i)
337 fskyi(niskyl,1)=-fxi(i)*weight(ig)
338 fskyi(niskyl,2)=-fyi(i)*weight(ig)
339 fskyi(niskyl,3)=-fzi(i)*weight(ig)
340 fskyi(niskyl,4)=stif(i)*weight(ig)
341 ftheskyi(niskyl)=phi(i)*weight(ig)
342 condnskyi(niskyl)=condint(i)*weight(ig)
343 isky(niskyl) = ig
344 END DO
345 ELSE
346 DO i=1,jlt
347 niskyl = niskyl + 1
348 ig=nsvg(i)
349 fskyi(niskyl,1)=-fxi(i)*weight(ig)
350 fskyi(niskyl,2)=-fyi(i)*weight(ig)
351 fskyi(niskyl,3)=-fzi(i)*weight(ig)
352 fskyi(niskyl,4)=stif(i)*weight(ig)
353 ftheskyi(niskyl)=phi(i)*weight(ig)
354 isky(niskyl) = ig
355 END DO
356 ENDIF
357 IF(iform==1) THEN
358 IF(nodadt_therm == 1 ) THEN
359
360 DO i=1,jlt
361 ig=nsvg(i)
362 IF (h1(i)/=zero) THEN
363 i1 = ix1(i)
364 nd = msrl(i1)
365 IF(nd>0) THEN
366 niskyl = niskyl + 1
367 fskyi(niskyl,1)=zero
368 fskyi(niskyl,2)=zero
369 fskyi(niskyl,3)=zero
370 fskyi(niskyl,4)=zero
371 condnskyi(niskyl)=zero
372 ftheskyi(niskyl)=phi1(i)*weight(ig)
373 isky(niskyl) = nd
374 ELSE
375 nd = -nd
376 niskyfil = niskyfil + 1
377 ftheskyfi(nin)%P(niskyfil)=phi1(i)*weight(ig)
378 iskyfi(nin)%P(niskyfil) = nd
379 ENDIF
380 ENDIF
381
382 IF (h2(i)/=zero) THEN
383 i1 = ix2(i)
384 nd = msrl(i1)
385 IF(nd>0) THEN
386 niskyl = niskyl + 1
387 fskyi(niskyl,1)=zero
388 fskyi(niskyl,2)=zero
389 fskyi(niskyl,3)=zero
390 fskyi(niskyl,4)=zero
391 condnskyi(niskyl)=zero
392 ftheskyi(niskyl)=phi2(i)*weight(ig)
393 isky(niskyl) = nd
394 ELSE
395 nd = -nd
396 niskyfil = niskyfil + 1
397 ftheskyfi(nin)%P(niskyfil)=phi2(i)*weight(ig)
398 iskyfi(nin)%P(niskyfil) = nd
399 ENDIF
400 ENDIF
401
402 IF (h3(i)/=zero) THEN
403 i1 = ix3(i)
404 nd = msrl(i1)
405 IF(nd>0) THEN
406 niskyl = niskyl + 1
407 fskyi(niskyl,1)=zero
408 fskyi(niskyl,2)=zero
409 fskyi(niskyl,3)=zero
410 fskyi(niskyl,4)=zero
411 condnskyi(niskyl)=zero
412 ftheskyi(niskyl)=phi3(i)*weight(ig)
413 isky(niskyl) = nd
414 ELSE
415 nd = -nd
416 niskyfil = niskyfil + 1
417 ftheskyfi(nin)%P(niskyfil)=phi3(i)*weight(ig)
418 iskyfi(nin)%P(niskyfil) = nd
419 ENDIF
420 ENDIF
421
422 IF (h4(i)/=zero) THEN
423 i1 = ix4(i)
424 nd = msrl(i1)
425 IF(nd>0) THEN
426 niskyl = niskyl + 1
427 fskyi(niskyl,1)=zero
428 fskyi(niskyl,2)=zero
429 fskyi(niskyl,3)=zero
430 fskyi(niskyl,4)=zero
431 condnskyi(niskyl)=zero
432 ftheskyi(niskyl)=phi4(i)*weight(ig)
433 isky(niskyl) = nd
434 ELSE
435 nd = -nd
436 niskyfil = niskyfil + 1
437 ftheskyfi(nin)%P(niskyfil)=phi4(i)*weight(ig)
438 iskyfi(nin)%P(niskyfil) = nd
439 ENDIF
440 ENDIF
441 ENDDO
442
443 ELSE
444
445 DO i=1,jlt
446 ig=nsvg(i)
447 IF (h1(i)/=zero) THEN
448 i1 = ix1(i)
449 nd = msrl(i1)
450 IF(nd>0) THEN
451 niskyl = niskyl + 1
452 fskyi(niskyl,1)=zero
453 fskyi(niskyl,2)=zero
454 fskyi(niskyl,3)=zero
455 fskyi(niskyl,4)=zero
456 ftheskyi(niskyl)=phi1(i)*weight(ig)
457 isky(niskyl) = nd
458 ELSE
459 nd = -nd
460 niskyfil = niskyfil + 1
461 ftheskyfi(nin)%P(niskyfil)=phi1(i)*weight(ig)
462 iskyfi(nin)%P(niskyfil) = nd
463 ENDIF
464 ENDIF
465
466 IF (h2(i)/=zero) THEN
467 i1 = ix2(i)
468 nd = msrl(i1)
469 IF(nd>0) THEN
470 niskyl = niskyl + 1
471 fskyi(niskyl,1)=zero
472 fskyi(niskyl,2)=zero
473 fskyi(niskyl,3)=zero
474 fskyi(niskyl,4)=zero
475 ftheskyi(niskyl)=phi2(i)*weight(ig)
476 isky(niskyl) = nd
477 ELSE
478 nd = -nd
479 niskyfil = niskyfil + 1
480 ftheskyfi(nin)%P(niskyfil)=phi2(i)*weight(ig)
481 iskyfi(nin)%P(niskyfil) = nd
482 ENDIF
483 ENDIF
484
485 IF (h3(i)/=zero) THEN
486 i1 = ix3(i)
487 nd = msrl(i1)
488 IF(nd>0) THEN
489 niskyl = niskyl + 1
490 fskyi(niskyl,1)=zero
491 fskyi(niskyl,2)=zero
492 fskyi(niskyl,3)=zero
493 fskyi(niskyl,4)=zero
494 ftheskyi(niskyl)=phi3(i)*weight(ig)
495 isky(niskyl) = nd
496 ELSE
497 nd = -nd
498 niskyfil = niskyfil + 1
499 ftheskyfi(nin)%P(niskyfil)=phi3(i)*weight(ig)
500 iskyfi(nin)%P(niskyfil) = nd
501 ENDIF
502 ENDIF
503
504 IF (h4(i)/=zero) THEN
505 i1 = ix4(i)
506 nd = msrl(i1)
507 IF(nd>0) THEN
508 niskyl = niskyl + 1
509 fskyi(niskyl,1)=zero
510 fskyi(niskyl,2)=zero
511 fskyi(niskyl,3)=zero
512 fskyi(niskyl,4)=zero
513 ftheskyi(niskyl)=phi4(i)*weight(ig)
514 isky(niskyl) = nd
515 ELSE
516 nd = -nd
517 niskyfil = niskyfil + 1
518 ftheskyfi(nin)%P(niskyfil)=phi4(i)*weight(ig)
519 iskyfi(nin)%P(niskyfil) = nd
520 ENDIF
521 ENDIF
522
523 ENDDO
524 ENDIF
525
526 ENDIF
527 END IF
528
533 DO k=1,6
534 fx =zero
535 fy =zero
536 fz =zero
537 stf=zero
538 DO i=1,jlt
539 ig=nsvg(i)
540 fx =fx +fx6(k,i)*weight(ig)
541 fy =fy +fy6(k,i)*weight(ig)
542 fz =fz +fz6(k,i)*weight(ig)
543 stf=stf+st6(k,i)*weight(ig)
544 ENDDO
545#include "lockon.inc"
546 intstamp%FC6(k,1)=intstamp%FC6(k,1)+fx
547 intstamp%FC6(k,2)=intstamp%FC6(k,2)+fy
548 intstamp%FC6(k,3)=intstamp%FC6(k,3)+fz
549 intstamp%ST6(k) =intstamp%ST6(k) +stf
550#include "lockoff.inc"
551 ENDDO
552 irot=intstamp%IROT
553 IF(irot/=0)THEN
558 DO k=1,6
559 mx =zero
560 my =zero
561 mz =zero
562 str=zero
563 DO i=1,jlt
564 ig=nsvg(i)
565 mx =mx +mx6(k,i)*weight(ig)
566 my =my +my6(k,i)*weight(ig)
567 mz =mz +mz6(k,i)*weight(ig)
568 str=str+str6(k,i)*weight(ig)
569 ENDDO
570#include "lockon.inc"
571 intstamp%MC6(k,1)=intstamp%MC6(k,1)+mx
572 intstamp%MC6(k,2)=intstamp%MC6(k,2)+my
573 intstamp%MC6(k
574 intstamp%STR6(k) =intstamp%STR6(k) +str
575#include "lockoff.inc"
576 END DO
577 END IF
578 ENDIF
579
580
581 IF(.NOT.( (anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0 .AND.
582 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.
583 . (tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
584 . (manim>=4.AND.manim<=15) .OR. h3d_data%MH3D /= 0))
585 . .OR.(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
586 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.
587 . (tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
588 . (manim>=4.AND.manim<=15) .OR. h3d_data%MH3D /= 0))
589 . .OR.h3d_data%N_VECT_PCONT_MAX>0.OR.ninskid > 0.OR.interefric>0
590 . .OR.h3d_data%N_SCAL_CSE_FRIC >0.OR.isecin/=0) ) RETURN
591
592 DO i=1,jlt
593 IF(ix3(i)/=ix4(i))THEN
594 h0 =fourth*(one - lb(i) - lc(i))
595 IF(abs(itria(i))==1)THEN
596 h1(i)= lb(i)+h0
597 h2(i)= lc(i)+h0
598 h3(i)= h0
599 h4(i)= h0
600 ELSEIF(abs(itria(i))==2)THEN
601 h1(i)= h0
602 h2(i)= lb(i)+h0
603 h3(i)= lc(i)+h0
604 h4(i)= h0
605 ELSEIF(abs(itria(i))==3)THEN
606 h1(i)= h0
607 h2(i)= h0
608 h3(i)= lb(i)+h0
609 h4(i)= lc(i)+h0
610 ELSEIF(abs(itria(i))==4)THEN
611 h1(i)= lc(i)+h0
612 h2(i)= h0
613 h3(i)= h0
614 h4(i)= lb(i)+h0
615 END IF
616 ELSE
617 h1(i) = lb(i)
618 h2(i) = lc(i)
619 h3(i) = one - lb(i) - lc(i)
620 h4(i) = zero
621 END IF
622 END DO
623
624 DO i=1,jlt
625 ix1(i)=msr(ix1(i))
626 ix2(i)=msr(ix2(i))
627 ix3(i)=msr(ix3(i))
628 ix4(i)=msr(ix4(i))
629 END DO
630
631 IF(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT >0.OR.
632 . anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0)THEN
633#include "lockon.inc"
634 DO i=1,jlt
635 jg = nsvg(i)
636 IF(weight(jg)/=1)cycle
637 ig = nodglob(jg)
638
639 IF(tagcont(ig)==0) THEN
640 ncont= ncont+1
641 indexcont(ncont) = ig
642 tagcont(ig)= 1
643 ENDIF
644 IF(tagcont(ix1(i))==0) THEN
645 ncont= ncont+1
646 indexcont(ncont) = ix1(i)
647 tagcont(ix1(i))= 1
648 ENDIF
649 IF(tagcont(ix2(i))==0) THEN
650 ncont= ncont+1
651 indexcont(ncont) = ix2(i)
652 tagcont(ix2(i))= 1
653 ENDIF
654 IF(tagcont(ix3(i))==0) THEN
655 ncont= ncont+1
656 indexcont(ncont) = ix3(i)
657 tagcont(ix3(i))= 1
658 ENDIF
659 IF(tagcont(ix4(i))==0) THEN
660 ncont= ncont+1
661 indexcont(ncont) = ix4(i)
662 tagcont(ix4(i))= 1
663 ENDIF
664 ENDDO
665#include "lockoff.inc"
666 ENDIF
667
668
669 IF((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
670 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
671 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
672 . .OR.h3d_data%N_VECT_PCONT_MAX>0)THEN
673#include "lockon.inc"
674 DO i=1,jlt
675 jg = nsvg(i)
676 IF(weight(jg)/=1)cycle
677 fncont(1,nodglob(jg))=fncont(1,nodglob(jg))- fxn(i)
678 fncont(2,nodglob(jg))=fncont(2,nodglob(jg))- fyn(i)
679 fncont(3,nodglob(jg))=fncont(3,nodglob(jg))- fzn(i)
680
681 fncont(1,ix1(i)) =fncont(1,ix1(i)) + fxn(i)*h1(i)
682 fncont(2,ix1(i)) =fncont(2,ix1(i)) + fyn(i)*h1(i)
683 fncont(3,ix1(i)) =fncont(3,ix1(i)) + fzn(i)*h1(i)
684 fncont(1,ix2(i)) =fncont(1,ix2(i)) + fxn(i)*h2(i)
685 fncont(2,ix2(i)) =fncont(2,ix2(i)) + fyn(i)*h2(i)
686 fncont(3,ix2(i)) =fncont(3,ix2(i)) + fzn(i)*h2(i)
687 fncont(1,ix3(i)) =fncont(1,ix3(i)) + fxn(i)*h3(i)
688 fncont(2,ix3(i)) =fncont(2,ix3(i)) + fyn(i)*h3(i)
689 fncont(3,ix3(i)) =fncont(3,ix3(i)) + fzn(i)*h3(i)
690 fncont(1,ix4(i)) =fncont(1,ix4(i)) + fxn(i)*h4(i)
691 fncont(2,ix4(i)) =fncont(2,ix4(i)) + fyn(i)*h4(i)
692 fncont(3,ix4(i)) =fncont(3,ix4(i)) + fzn(i)*h4(i)
693 ENDDO
694#include "lockoff.inc"
695 ENDIF
696
697 IF((anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0.AND.
698 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP
699 . (manim>=4.AND.manim<=15).OR. h3d_data%MH3D /= 0))
700 . .OR.h3d_data%N_VECT_PCONT_MAX>0)THEN
701#include "lockon.inc"
702 DO i=1,jlt
703 jg = nsvg(i)
704 IF(weight(jg)/=1)cycle
705 ftcont(1,nodglob(jg))=ftcont(1,nodglob(jg))- fxt(i)
706 ftcont(2,nodglob(jg))=ftcont(2,nodglob(jg))- fyt(i)
707 ftcont(3,nodglob(jg))=ftcont(3,nodglob(jg))- fzt(i)
708
709 ftcont(1,ix1(i)) =ftcont(1,ix1(i)) + fxt(i)*h1(i)
710 ftcont(2,ix1(i)) =ftcont(2,ix1(i)) + fyt(i)*h1(i)
711 ftcont(3,ix1(i)) =ftcont(3,ix1(i)) + fzt(i)*h1(i)
712 ftcont(1,ix2(i)) =ftcont(1,ix2(i)) + fxt(i)*h2(i)
713 ftcont(2,ix2(i)) =ftcont(2,ix2(i)) + fyt(i)*h2(i)
714 ftcont(3,ix2(i)) =ftcont(3,ix2(i)) + fzt(i)*h2(i)
715 ftcont(1,ix3(i)) =ftcont(1,ix3(i)) + fxt(i)*h3(i)
716 ftcont(2,ix3(i)) =ftcont(2,ix3(i)) + fyt(i)*h3(i)
717 ftcont(3,ix3(i)) =ftcont(3,ix3(i)) + fzt(i)*h3(i)
718 ftcont(1,ix4(i)) =ftcont(1,ix4(i)) + fxt(i)*h4(i)
719 ftcont(2,ix4(i)) =ftcont(2,ix4(i)) + fyt(i)*h4(i)
720 ftcont(3,ix4(i)) =ftcont(3,ix4(i)) + fzt(i)*h4(i)
721 ENDDO
722#include "lockoff.inc"
723 ENDIF
724
725
726 DO i=1,jlt
727
728 fx1(i)=fxi(i)*h1(i)
729 fy1(i)=fyi(i)*h1(i)
730 fz1(i)=fzi(i)*h1(i)
731
732 fx2(i)=fxi(i)*h2(i)
733 fy2(i)=fyi(i)*h2(i)
734 fz2(i)=fzi(i)*h2(i)
735
736 fx3(i)=fxi(i)*h3(i)
737 fy3(i)=fyi(i)*h3(i)
738 fz3(i)=fzi(i)*h3(i)
739
740 fx4(i)=fxi(i)*h4(i)
741 fy4(i)=fyi(i)*h4(i)
742 fz4(i)=fzi(i)*h4(i)
743
744 ENDDO
745
746 IF(anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT>0.AND.
747 . ((tt>=output%TANIM .AND. tt<=output%TANIM_STOP).OR.tt>=toutp.OR.(tt>=h3d_data%TH3D.AND.tt<=h3d_data%TH3D_STOP).OR.
748 . (manim>=4.AND.manim<=15) .OR. h3d_data%MH3D /= 0 ))THEN
749#include "lockon.inc"
750 DO i=1,jlt
751 jg = nsvg(i)
752 IF(weight(jg)/=1)cycle
753 fcont(1,nodglob(jg))=fcont(1,nodglob(jg))- fxi(i)
754 fcont(2,nodglob(jg))=fcont(2,nodglob(jg))- fyi(i)
755 fcont(3,nodglob(jg))=fcont(3,nodglob(jg))- fzi(i)
756
757 fcont(1,ix1(i)) =fcont(1,ix1(i)) + fx1(i)
758 fcont(2,ix1(i)) =fcont(2,ix1(i)) + fy1(i)
759 fcont(3,ix1(i)) =fcont(3,ix1(i)) + fz1(i)
760 fcont(1,ix2(i)) =fcont(1,ix2(i)) + fx2(i)
761 fcont(2,ix2(i)) =fcont(2,ix2(i)) + fy2(i)
762 fcont(3,ix2(i)) =fcont(3,ix2(i)) + fz2(i)
763 fcont(1,ix3(i)) =fcont(1,ix3(i)) + fx3(i)
764 fcont(2,ix3(i)) =fcont(2,ix3(i)) + fy3(i)
765 fcont(3,ix3(i)) =fcont(3,ix3(i)) + fz3(i)
766 fcont(1,ix4(i)) =fcont(1,ix4(i)) + fx4(i)
767 fcont(2,ix4(i)) =fcont(2,ix4(i)) + fy4(i)
768 fcont(3,ix4(i)) =fcont(3,ix4(i)) + fz4(i)
769 ENDDO
770#include "lockoff.inc"
771 ENDIF
772
773
774
775 IF(nspmd == 1)THEN
776 IF(isecin>0)THEN
777 k0=nstrf(25)
778 IF(nstrf(1)+nstrf(2)/=0)THEN
779 DO i=1,nsect
780 nbinter=nstrf(k0+14)
781 k1s=k0+30
782 DO j=1,nbinter
783 IF(nstrf(k1s)==noint)THEN
784 IF(isecut/=0)THEN
785#include "lockon.inc"
786 DO k=1,jlt
787
788
789 IF(secfcum(4,ix1(k),i)==1.)THEN
790 secfcum(1,ix1(k),i)=secfcum(1,ix1(k),i)-fx1(k)
791 secfcum(2,ix1(k),i)=secfcum(2,ix1(k),i)-fy1(k)
792 secfcum(3,ix1(k),i)=secfcum(3,ix1(k),i)-fz1(k)
793 ENDIF
794 IF(secfcum(4,ix2(k),i)==1.)THEN
795 secfcum(1,ix2(k),i)=secfcum(1,ix2(k),i)-fx2(k)
796 secfcum(2,ix2(k),i)=secfcum(2,ix2(k),i)-fy2(k)
797 secfcum(3,ix2(k),i)=secfcum(3,ix2(k),i)-fz2(k)
798 ENDIF
799 IF(secfcum(4,ix3(k),i)==1.)THEN
800 secfcum(1,ix3(k),i)=secfcum(1,ix3(k),i)-fx3(k)
801 secfcum(2,ix3(k),i)=secfcum(2,ix3(k),i)-fy3(k)
802 secfcum(3,ix3(k),i)=secfcum(3,ix3(k),i)-fz3(k)
803 ENDIF
804 IF(secfcum(4,ix4(k),i)==1.)THEN
805 secfcum(1,ix4(k),i)=secfcum(1,ix4(k),i)-fx4(k)
806 secfcum(2,ix4(k),i)=secfcum(2,ix4(k),i)-fy4(k)
807 secfcum(3,ix4(k),i)=secfcum(3,ix4(k),i)-fz4(k)
808 ENDIF
809 jg = nsvg(k)
810 IF(secfcum(4,jg,i)==1.)THEN
811 secfcum(1,jg,i)=secfcum(1,jg,i)+fxi(k)
812 secfcum(2,jg,i)=secfcum(2,jg,i)+fyi(k)
813 secfcum(3,jg,i)=secfcum(3,jg,i)+fzi(k)
814 ENDIF
815 ENDDO
816#include "lockoff.inc"
817 ENDIF
818
819 ENDIF
820 k1s=k1s+1
821 ENDDO
822 k0=nstrf(k0+24)
823 ENDDO
824 ENDIF
825 ENDIF
826 ELSE
827
828 ENDIF
829
830 IF(ninskid > 0)THEN
831
832#include "lockon.inc"
833 DO i=1,jlt
834 jg = nsvg(i)
835 IF(weight(jg)/=1)cycle
836 n = nodglob(jg)
837 pskids(ninskid,n)=
max(pskids(ninskid,n),pratio(i))
838
839 n= ix1(i)
840 pskids(ninskid,n)=
max(pskids(ninskid,n),pratio(i))
841 n= ix2(i)
842 pskids(ninskid,n)=
max(pskids(ninskid,n),pratio(i))
843 n= ix3(i)
844 pskids(ninskid,n)=
max(pskids(ninskid,n),pratio(i))
845 n= ix4(i)
846 pskids(ninskid,n)=
max(pskids(ninskid,n),pratio(i))
847
848 ENDDO
849#include "lockoff.inc"
850 ENDIF
851
852
853 IF(interefric > 0)THEN
854 intf= interefric - output%DATA%NINEFRIC
855#include "lockon.inc"
856 DO i=1,jlt
857 jg = nsvg(i)
858 IF(weight(jg)/=1)cycle
859 n = nodglob(jg)
860 efricsm = half*efric_l(i)
861 output%DATA%EFRIC_STAMP(intf,n)=output%DATA%EFRIC_STAMP(intf,n) + (efricsm-fheat*efrict
862
863 n= ix1(i)
864 output%DATA%EFRIC_STAMP(intf,n)=output%DATA%EFRIC_STAMP(intf,n) + efricsm*h1(i)
865 n= ix2(i)
866 output%DATA%EFRIC_STAMP(intf,n)=output%DATA%EFRIC_STAMP(intf,n) + efricsm*h2(i)
867 n= ix3(i)
868 output%DATA%EFRIC_STAMP(intf,n)=output%DATA%EFRIC_STAMP(intf,n) + efricsm*h3(i
869 n= ix4(i)
870 output%DATA%EFRIC_STAMP(intf,n)=output%DATA%EFRIC_STAMP(intf,n) + efricsm*h4(i)
871
872 ENDDO
873#include "lockoff.inc"
874 ENDIF
875
876 IF(h3d_data%N_SCAL_CSE_FRIC >0)THEN
877#include "lockon.inc"
878 DO i=1,jlt
879 jg = nsvg(i)
880 IF(weight(jg)/=1)cycle
881 n = nodglob(jg)
882 efricsm = half*efric_l(i)
883 output%DATA%EFRICG_STAMP(n)=output%DATA%EFRICG_STAMP(n) + (efricsm-fheat*efrict(i))
884 n= ix1(i)
885 output%DATA%EFRICG_STAMP(n)=output%DATA%EFRICG_STAMP(n) + efricsm*h1(i)
886 n= ix2(i)
887 output%DATA%EFRICG_STAMP(n)=output%DATA%EFRICG_STAMP(n) + efricsm*h2(i)
888 n= ix3(i)
889 output%DATA%EFRICG_STAMP(n)=output%DATA%EFRICG_STAMP(n) + efricsm*h3(i)
890 n= ix4(i)
891 output%DATA%EFRICG_STAMP(n)=output%DATA%EFRICG_STAMP(n) + efricsm*h4(i)
892
893 ENDDO
894#include "lockoff.inc"
895 ENDIF
896
897 RETURN
type(real_pointer), dimension(:), allocatable ftheskyfi
type(int_pointer), dimension(:), allocatable iskyfi
type(real_pointer), dimension(:), allocatable fthefi
subroutine foat_to_6_float(jft, jlt, f, f6)