36 SUBROUTINE thnod(OUTPUT, ITHBUF ,
38 3 VR ,AR ,ISKWN ,IFRAME ,SKEW ,
39 4 XFRAME ,WEIGHT ,TEMP ,INOD ,FTHREAC,
40 5 NODREAC, CPTREAC ,DR ,IFORM ,NTHGRP2,
41 6 ITHGRP ,PINCH_DATA,ITHERM_FE)
52#include "implicit_f.inc"
62#include "submodel.inc"
66 TYPE(output_),
intent(inout) :: output
67 INTEGER CPTREAC,ITHBUF(*),
68 . ISKWN(LISKN,*),IFRAME(,*),WEIGHT(NUMNOD),INOD(*),
69 . NODREAC(*),IFORM,NTHGRP2
70 INTEGER,
DIMENSION(NITHGR,*),
INTENT(in) :: ITHGRP
71 INTEGER ,
intent(in) :: ITHERM_FE
73 . wa(*),x(3,*),d(3,numnod),v(3,*),a(3,*),vr(3,*),ar(3,*),
74 . skew(lskew,*),xframe(nxframe,*),temp(*),fthreac(6,*),
76 TYPE(
pinch) :: PINCH_DATA
85 INTEGER I, J, ISK, II, IFRA,IPLY,IDIR,N
86 INTEGER :: II_SAVE,IJK, ITYP
87 INTEGER :: IAD,NN,IADV,NVAR
88 my_real :: XL(3),DL(3),VL(3),AL(3),VRL(3),ARL(3),VRG(3),ARG(3)
109 isk = 1 + ithbuf(j+nn)
111 IF(.NOT. condition) condition = (weight(i) == 0)
113 DO l=iadv,iadv+nvar-1
120 DO l=iadv,iadv+nvar-1
163 IF (itherm_fe /= 0)
THEN
168 ELSEIF(k > 19 .AND. k <= 619)
THEN
169 IF(iplyxfem > 0)
THEN
170 idir = mod((k - 19),3)
171 IF(idir == 0) idir = 3
173 IF(mod((k - 19),3) /= 0) iply = iply + 1
174 wa(ijk) =
ply(iply)%U(idir,inod(i))
176 ELSEIF(k == 620)
THEN
177 IF (nodreac(i) /= 0)
THEN
178 wa(ijk) = fthreac(1,nodreac(i))
182 ELSEIF(k == 621)
THEN
183 IF (nodreac(i) /= 0)
THEN
184 wa(ijk) = fthreac(2,nodreac(i))
188 ELSEIF(k == 622)
THEN
189 IF (nodreac(i) /= 0)
THEN
190 wa(ijk) = fthreac(3,nodreac(i))
194 ELSEIF(k == 623)
THEN
195 IF (nodreac(i) /= 0)
THEN
196 wa(ijk) = fthreac(4,nodreac(i))
200 ELSEIF(k == 624)
THEN
201 IF (nodreac(i) /= 0)
THEN
202 wa(ijk) = fthreac(5,nodreac(i))
206 ELSEIF(k == 625)
THEN
207 IF (nodreac(i) /= 0)
THEN
208 wa(ijk) = fthreac(6,nodreac(i))
212 ELSEIF(k == 626)
THEN
213 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
218 ELSEIF(k == 627)
THEN
219 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
224 ELSEIF(k == 628)
THEN
225 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
230 ELSEIF(k == 629)
THEN
233 IF(output%DATA%NODA_SURF(i) > zero)
THEN
234 wa(ijk) = output%DATA%NODA_PEXT(i) / output%DATA%NODA_SURF(i)
238 ELSEIF(k == 630)
THEN
240 wa(ijk) = pinch_data%APINCH(1,i)
244 ELSEIF(k == 631)
THEN
246 wa(ijk) = pinch_data%APINCH(2,i)
250 ELSEIF(k == 632)
THEN
252 wa(ijk) = pinch_data%APINCH(3,i)
256 ELSEIF(k == 633)
THEN
258 wa(ijk) = pinch_data%VPINCH(1,i)
262 ELSEIF(k == 634)
THEN
264 wa(ijk) = pinch_data%VPINCH(2,i)
268 ELSEIF(k == 635)
THEN
270 wa(ijk) = pinch_data%VPINCH(3,i)
274 ELSEIF(k == 636)
THEN
276 wa(ijk) = pinch_data%DPINCH(1,i)
280 ELSEIF(k == 637)
THEN
282 wa(ijk) = pinch_data%DPINCH(2,i)
286 ELSEIF(k == 638)
THEN
288 wa(ijk) = pinch_data%DPINCH(3,i)
297 ELSEIF(isk<=numskw+1+nsubmod)
THEN
300 DO l=iadv,iadv+nvar-1
305 wa(ijk) = d(1,i)*skew(1,isk) + d(2,i)*skew(2,isk) + d(3,i)*skew(3,isk)
307 wa(ijk) = d(1,i)*skew(4,isk) + d(2,i)*skew(5,isk) + d(3,i)*skew(6,isk)
309 wa(ijk) = d(1,i)*skew(7,isk) + d(2,i)*skew(8,isk) + d
311 wa(ijk) = v(1,i)*skew(1,isk) + v(2,i)*skew(2,isk) + v(3,i)*skew(3,isk)
313 wa(ijk) = v(1,i)*skew(4,isk) + v(2,i)*skew(5,isk) + v(3,i)*skew(6,isk)
315 wa(ijk) = v(1,i)*skew(7,isk) + v(2,i)*skew(8,isk) + v(3,i)*skew(9,isk)
317 wa(ijk) = a(1,i)*skew(1,isk) + a(2,i)*skew(2,isk) + a(3,i)*skew(3,isk)
319 wa(ijk) = a(1,i)*skew(4,isk) + a(2,i)*skew(5,isk) + a(3,i)*skew(6,isk)
321 wa(ijk) = a(1,i)*skew(7,isk) + a(2,i)*skew(8,isk) + a(3,i)*skew(9,isk)
323 wa(ijk) = vr(1,i)*skew(1,isk) + vr(2,i)*skew(2,isk) + vr(3,i)*skew(3,isk)
325 wa(ijk) = vr(1,i)*skew(4,isk) + vr(2,i)*skew(5,isk) + vr(3,i)*skew(6,isk)
327 wa(ijk) = vr(1,i)*skew(7,isk) + vr(2,i)*skew(8,isk) + vr(3,i)*skew(9,isk)
329 wa(ijk) = ar(1,i)*skew(1,isk) + ar(2,i)*skew(2,isk) + ar(3,i)*skew(3,isk)
331 wa(ijk) = ar(1,i)*skew(4,isk) + ar(2,i)*skew(5,isk) + ar(3,i)*skew(6,isk)
333 wa(ijk) = ar(1,i)*skew(7,isk) + ar(2,i)*skew(8,isk) + ar(3,i)*skew(9,isk)
335 wa(ijk) = x(1,i)*skew(1,isk) + x(2,i)*skew(2,isk) + x(3,i)*skew(3,isk)
337 wa(ijk) = x(1,i)*skew(4,isk) + x(2,i)*skew(5,isk) + x(3,i)*skew(6,isk)
339 wa(ijk) = x(1,i)*skew(7,isk) + x(2,i)*skew(8,isk) + x(3,i)*skew(9,isk)
343 ELSEIF(k == 620)
THEN
344 IF (nodreac(i) /= 0)
THEN
345 wa(ijk) = fthreac(1,nodreac(i))*skew(1,isk)
346 . + fthreac(2,nodreac(i))*skew(2,isk)
347 . + fthreac(3,nodreac(i))*skew(3,isk)
351 ELSEIF(k == 621)
THEN
352 IF (nodreac(i) /= 0)
THEN
353 wa(ijk) = fthreac(1,nodreac(i))*skew(4,isk)
354 . + fthreac(2,nodreac(i))*skew(5,isk)
355 . + fthreac(3,nodreac(i))*skew(6,isk)
359 ELSEIF(k == 622)
THEN
360 IF (nodreac(i) /= 0)
THEN
361 wa(ijk) = fthreac(1,nodreac(i))*skew(7,isk)
362 . + fthreac(2,nodreac(i))*skew(8,isk)
363 . + fthreac(3,nodreac(i))*skew(9,isk)
367 ELSEIF(k == 623)
THEN
368 IF (nodreac(i) /= 0)
THEN
369 wa(ijk) = fthreac(4,nodreac(i))*skew(1,isk)
370 . + fthreac(5,nodreac(i))*skew(2,isk)
371 . + fthreac(6,nodreac(i))*skew(3,isk)
375 ELSEIF(k == 624)
THEN
376 IF (nodreac(i) /= 0)
THEN
377 wa(ijk) = fthreac(4,nodreac(i))*skew(4,isk)
378 . + fthreac(5,nodreac(i))*skew(5,isk)
379 . + fthreac(6,nodreac(i))*skew(6,isk)
383 ELSEIF(k == 625)
THEN
384 IF (nodreac(i) /= 0)
THEN
385 wa(ijk) = fthreac(4,nodreac(i))*skew(7,isk)
386 . + fthreac(5,nodreac(i))*skew(8,isk)
387 . + fthreac(6,nodreac(i))*skew(9,isk)
391 ELSEIF(k == 626)
THEN
392 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
393 wa(ijk) = dr(1,i)*skew(1,isk) + dr(2,i)*skew(2,isk) + dr(3,i)*skew(3,isk)
397 ELSEIF(k == 627)
THEN
398 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
399 wa(ijk) = dr(1,i)*skew(4,isk) + dr(2,i)*skew(5,isk) + dr(3,i)*skew(6,isk)
403 ELSEIF(k == 628)
THEN
404 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
405 wa(ijk) = dr(1,i)*skew(7,isk) + dr(2,i)*skew(8,isk) + dr(3,i)*skew(9,isk)
409 ELSEIF(k == 629)
THEN
412 IF(output%DATA%NODA_SURF(i) > zero)
THEN
413 wa(ijk) = output%DATA%NODA_PEXT(i) / output%DATA%NODA_SURF(i)
417 ELSEIF(k == 630)
THEN
419 wa(ijk) = pinch_data%APINCH(1,i)*skew(1,isk) +pinch_data%APINCH(2,i)*skew(2,isk)
420 . +pinch_data%APINCH(3,i)*skew(3,isk)
424 ELSEIF(k == 631)
THEN
426 wa(ijk) = pinch_data%APINCH(1,i)*skew(4,isk) +pinch_data%APINCH(2,i)*skew(5,isk)
427 . +pinch_data%APINCH(3,i)*skew(6,isk)
431 ELSEIF(k == 632)
THEN
433 wa(ijk) = pinch_data%APINCH(1,i)*skew(7,isk) +pinch_data%APINCH(2,i)*skew(8,isk)
434 . +pinch_data%APINCH(3,i)*skew(9,isk)
438 ELSEIF(k == 633)
THEN
440 wa(ijk) = pinch_data%VPINCH(1,i)*skew(1,isk) +pinch_data%VPINCH(2,i)*skew(2,isk)
441 . +pinch_data%VPINCH(3,i)*skew(3,isk)
445 ELSEIF(k == 634)
THEN
447 wa(ijk) = pinch_data%VPINCH(1,i)*skew(4,isk) +pinch_data%VPINCH(2,i)*skew(5,isk)
448 . +pinch_data%VPINCH(3,i)*skew(6,isk)
452 ELSEIF(k == 635)
THEN
454 wa(ijk) = pinch_data%VPINCH(1,i)*skew(7
455 . +pinch_data%VPINCH(3,i)*skew(9,isk)
459 ELSEIF(k == 636)
THEN
461 wa(ijk) = pinch_data%DPINCH(1,i)*skew(1,isk) +pinch_data%DPINCH(2,i)*skew(2,isk)
462 . +pinch_data%DPINCH(3,i)*skew(3,isk)
466 ELSEIF(k == 637)
THEN
468 wa(ijk) = pinch_data%DPINCH(1,i)*skew(4,isk) +pinch_data%DPINCH(2,i)*skew(5,isk)
469 . +pinch_data%DPINCH(3,i)*skew(6,isk)
473 ELSEIF(k == 638)
THEN
475 wa(ijk) = pinch_data%DPINCH(1,i)*skew(7,isk) +pinch_data%DPINCH(2,i)*skew(8,isk)
476 . +pinch_data%DPINCH(3,i)*skew(9,isk)
488 ifra=isk-(numskw+1+nsubmod)-
min(iun,nspcond)*numsph
490 1 x(1,i) ,d(1,i) ,v(1,i) ,a(1,i) ,vr(1,i) ,
491 2 ar(1,i) ,xframe(1,ifra),xframe(10,ifra),
492 . xframe(34,ifra) ,xframe(31,ifra) ,
493 3 xframe(28,ifra) ,xl ,dl ,vl ,al ,
496 DO l=iadv,iadv+nvar-1
539 IF (itherm_fe /= 0)
THEN
561 isk = 1 + ithbuf(j+nn)
563 IF(.NOT. condition) condition = (weight(i) == 0)
565 DO l=iadv,iadv+nvar-1
571 DO l=iadv,iadv+nvar-1
602 IF (itherm_fe /= 0)
THEN
607 ELSEIF(k == 620)
THEN
608 IF (nodreac(i) /= 0)
THEN
609 wa(ijk) = fthreac(1,nodreac(i))
613 ELSEIF(k == 621)
THEN
614 IF (nodreac(i) /= 0)
THEN
615 wa(ijk) = fthreac(2,nodreac(i))
619 ELSEIF(k == 622)
THEN
620 IF (nodreac(i) /= 0)
THEN
621 wa(ijk) = fthreac(3,nodreac(i))
625 ELSEIF(k == 623)
THEN
626 IF (nodreac(i) /= 0)
THEN
627 wa(ijk) = fthreac(4,nodreac(i))
631 ELSEIF(k == 624)
THEN
632 IF (nodreac(i) /= 0)
THEN
633 wa(ijk) = fthreac(5,nodreac(i))
637 ELSEIF(k == 625)
THEN
638 IF (nodreac(i) /= 0)
THEN
639 wa(ijk) = fthreac(6,nodreac(i))
643 ELSEIF(k == 626)
THEN
644 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND.iroddl/=0 )
THEN
649 ELSEIF(k == 627)
THEN
650 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
655 ELSEIF(k == 628)
THEN
656 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
661 ELSEIF(k == 629)
THEN
664 IF(output%DATA%NODA_SURF(i) > zero)
THEN
665 wa(ijk) = output%DATA%NODA_PEXT(i) / output%DATA%NODA_SURF(i)
674 ELSEIF(isk<=numskw+1+nsubmod)
THEN
678 DO l=iadv,iadv+nvar-1
683 wa(ijk) = d(1,i)*skew(1,isk) + d(2,i)*skew(2,isk) + d(3,i)*skew(3,isk)
685 wa(ijk) = d(1,i)*skew(4,isk) + d(2,i)*skew(5,isk) + d(3,i)*skew(6,isk)
687 wa(ijk) = d(1,i)*skew(7,isk) + d(2,i)*skew(8,isk) + d(3,i)*skew(9,isk)
689 wa(ijk) = v(1,i)*skew(1,isk) + v(2,i)*skew(2,isk) + v(3,i)*skew(3,isk)
691 wa(ijk) = v(1,i)*skew(4,isk) + v(2,i)*skew(5,isk) + v(3,i)*skew(6,isk)
693 wa(ijk) = v(1,i)*skew(7,isk) + v(2,i)*skew(8,isk) + v(3,i)*skew(9,isk)
695 wa(ijk) = a(1,i)*skew(1,isk) + a(2,i)*skew(2,isk) + a(3,i)*skew(3,isk)
697 wa(ijk) = a(1,i)*skew(4,isk) + a(2,i)*skew(5,isk) + a(3,i)*skew(6,isk)
699 wa(ijk) = a(1,i)*skew(7,isk) + a(2,i)*skew(8,isk) + a(3,i)*skew(9,isk)
701 wa(ijk) = x(1,i)*skew(1,isk) + x(2,i)*skew(2,isk) + x(3,i)*skew(3,isk)
703 wa(ijk) = x(1,i)*skew(4,isk) + x(2,i)*skew(5,isk) + x(3,i)*skew(6,isk)
705 wa(ijk) = x(1,i)*skew(7,isk) + x(2,i)*skew(8,isk) + x(3,i)*skew(9,isk)
709 IF (itherm_fe /= 0)
THEN
714 ELSEIF(k == 620)
THEN
715 IF (nodreac(i) /= 0)
THEN
716 wa(ijk) = fthreac(1,nodreac(i))*skew(1,isk) + fthreac(2,nodreac(i))*skew(2,isk)
717 . + fthreac(3,nodreac(i))*skew(3,isk)
721 ELSEIF(k == 621)
THEN
722 IF (nodreac(i) /= 0)
THEN
723 wa(ijk) = fthreac(1,nodreac(i))*skew(4,isk) + fthreac(2,nodreac(i))*skew(5,isk)
724 . + fthreac(3,nodreac(i))*skew(6,isk)
728 ELSEIF(k == 622)
THEN
729 IF (nodreac(i) /= 0)
THEN
730 wa(ijk) = fthreac(1,nodreac(i))*skew(7,isk) + fthreac(2,nodreac(i))*skew(8,isk)
731 . + fthreac(3,nodreac(i))*skew(9,isk)
735 ELSEIF(k == 623)
THEN
736 IF (nodreac(i) /= 0)
THEN
737 wa(ijk) = fthreac(4,nodreac(i))*skew(1,isk) + fthreac(5,nodreac(i))*skew(2,isk)
738 . + fthreac(6,nodreac(i))*skew(3,isk)
742 ELSEIF(k == 624)
THEN
743 IF (nodreac(i) /= 0)
THEN
744 wa(ijk) = fthreac(4,nodreac(i))*skew(4,isk) + fthreac(5,nodreac(i))*skew(5,isk)
745 . + fthreac(6,nodreac(i))*skew(6,isk)
749 ELSEIF(k == 625)
THEN
750 IF (nodreac(i) /= 0)
THEN
751 wa(ijk) = fthreac(4,nodreac(i))*skew(7,isk) + fthreac(5,nodreac(i))*skew(8,isk)
752 . + fthreac(6,nodreac(i))*skew(9,isk)
756 ELSEIF(k == 626)
THEN
757 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
758 wa(ijk) = dr(1,i)*skew(1,isk) + dr(2,i)*skew(2,isk) + dr(3,i)*skew(3,isk)
762 ELSEIF(k == 627)
THEN
763 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND. iroddl/=0 )
THEN
764 wa(ijk) = dr(1,i)*skew(4,isk) + dr(2,i)*skew(5,isk) + dr(3,i)*skew(6,isk)
768 ELSEIF(k == 628)
THEN
769 IF ((idrot == 1 .OR. isecut>0 .OR. iisrot>0 .OR. impose_dr>0) .AND.iroddl/=0 )
THEN
770 wa(ijk) = dr(1,i)*skew(7,isk) + dr(2,i)*skew(8,isk) + dr(3,i)*skew(9,isk)
774 ELSEIF(k == 629)
THEN
777 IF(output%DATA%NODA_SURF(i) > zero)
THEN
778 wa(ijk) = output%DATA%NODA_PEXT(i) / output%DATA%NODA_SURF(i)
790 ifra=isk-(numskw+1+nsubmod)-
min(iun,nspcond)*numsph
792 1 x(1,i) ,d(1,i) ,v(1,i) ,a(1,i) ,vrg ,
793 2 arg , xframe(1,ifra),xframe(10,ifra),
794 . xframe(34,ifra) ,xframe(31,ifra) ,
795 3 xframe(28,ifra) ,xl ,dl ,vl ,al ,
798 DO l=iadv,iadv+nvar-1
829 IF (itherm_fe /= 0)
THEN