39 2 FSKY ,FSKYV ,ADSKY , FSKYM ,
40 3 MSNF ,ISKY ,FSKYI ,FTHE ,
41 4 FTHESKY ,FTHESKYI,NODFT ,NODLT ,ADSKYI ,
42 5 PARTSAV ,PARTFT ,PARTLT ,ITASK ,GREFT ,
43 6 GRELT ,GRESAV ,AF ,FFSKY ,MSF ,
44 7 ADSKY_PXFEM ,INOD_PXFEM ,FSKYD ,
45 8 DMSPH ,CONDN,CONDNSKY,CONDNSKYI,MS_2D,ICNDS10 ,
46 A STIFND ,FORNEQS ,FORNEQSKY,NFACNIT,NODFT_2,
47 B NODLT_2 ,FSKY_L ,GLOB_THERM)
59#include "implicit_f.inc"
74 INTEGER ,NBLOC,NBVAL,,NFACNIT
75 PARAMETER (MAXBLOC=1000)
76 common/ptmparit/nbloc,nbval(1:maxbloc
80 TYPE(nodal_arrays_),
intent(inout) :: NODES
81 INTEGER ADSKY(*), ISKY(*),
83 . nodft, nodlt, itask, partft, partlt,greft,grelt,
84 . adsky_pxfem(*),inod_pxfem(*), icnds10(3,*),nodft_2 ,nodlt_2
88 . fskyv(lsky,8),fsky(8,lsky),
89 . fskym(*), msnf(*), fskyi(lskyi,nfskyi),
90 . fthe(*), fthesky(lsky), ftheskyi(lskyi), partsav(*),gresav(*),
91 . af(3,*),ffsky(3,*),msf(*), fskyd(*), dmsph(*),condnsky(lsky),condn(*),
92 . condnskyi(lskyi),ms_2d(*),stifnd(*),forneqs(3,*) ,
93 . forneqsky(3*nfacnit,*)
94 my_real,
DIMENSION(NISKY),
INTENT(INOUT) :: fsky_l
95 type (glob_therm_) ,
intent(inout) :: glob_therm
99 INTEGER VSIZE, NBCC, NUM7, KM,IL,IPLY,ND
100 PARAMETER (VSIZE = 8192)
101 parameter (nbcc = 20)
102 INTEGER I,J,L,K,N,NC,KK,JJ,JJ1,JJ2,NN,NFSKYFT_INTPLY,NFSKYLT_INTPLY,
103 . niskyft,niskylt,nfskyft,nfskylt,k1,k2,k3,ijk,nf,
104 . nct,diffadd,ndlt,ndft,lj,kkend,nstart,kkstart,kmax,ksplit
105 INTEGER IC(NBCC+1),NN_A(VSIZE),IARRAY(VSIZE)
106 my_real FF, FSKYT(NISKY)
108 INTEGER,
DIMENSION(:),
ALLOCATABLE :: VIND1,VIND2,VIND3
109 INTEGER :: CHUNK_NODE,CHUNK_NODE_1
110 INTEGER,
PARAMETER :: IVSIZE = 32
115 vind_size=
max(nodlt-nodft+1,ivsize)
116 ALLOCATE(vind1(vind_size))
117 ALLOCATE(vind2(vind_size))
118 ALLOCATE(vind3(vind_size))
119 chunk_node = int(numnod / (10*nthread))
120 if( chunk_node<2) chunk_node = int(numnod/nthread)
121 chunk_node =
max(1,chunk_node)
122 chunk_node_1 = (numnod+2)/ (10*nthread)
123 if( chunk_node_1<2) chunk_node_1 = (numnod+1)/nthread
124 chunk_node_1 =
max(1,chunk_node_1)
134 adskyi(n) = adskyi(n)+1
143 adskyi(nn) = adskyi(nn) + adskyi(n)
152 adskyi(n) = adskyi(n) + 1
157 IF(glob_therm%ITHERM_FE == 0 )
THEN
159 IF(
ale%SUB%IFSUBM==0)
THEN
163 nc = adsky(n+1)-adsky(n)
165 nodes%A(1,n) = nodes%A(1,n) + fsky(1,k)
166 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
167 nodes%A(3,n) = nodes%A(3,n) + fsky(3,k)
168 nodes%AR(1,n) = nodes%AR(1,n) + fsky(4,k)
169 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
170 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
171 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
172 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
181 nc = adsky(n+1)-adsky(n)
183 nodes%A(1,n) = nodes%A(1,n) + fsky(1,k)
184 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
185 nodes%A(3,n) = nodes%A(3,n) + fsky
187 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
188 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
189 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
190 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
191 ms_2d(n) = ms_2d(n) + fskym(k)
200 nc = adsky(n+1)-adsky(n)
202 nodes%A(1,n) = nodes%A(1,n) + fsky(1,k)
203 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
204 nodes%A(3,n) = nodes%A(3,n) + fsky(3,k)
205 nodes%AR(1,n) = nodes%AR(1,n) + fsky(4,k)
206 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
207 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
208 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
209 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
210 msnf(n) = msnf(n) + fskym(k)
219 IF(glob_therm%NODADT_THERM == 1)
THEN
221 IF(
ale%SUB%IFSUBM==0)
THEN
225 nc = adsky(n+1)-adsky(n)
227 nodes%A(1,n) = nodes%A(1,n) + fsky(1,k)
228 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
229 nodes%A(3,n) = nodes%A(3,n) + fsky(3,k)
230 nodes%AR(1,n) = nodes%AR(1,n) + fsky(4,k)
231 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
232 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
233 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
234 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
235 fthe(n) = fthe(n) + fthesky(k)
236 condn(n) = condn(n) + condnsky(k)
245 nc = adsky(n+1)-adsky(n)
247 nodes%A(1,n) = nodes%A(1,n) + fsky(1,k)
248 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
249 nodes%A(3,n) = nodes%A(3,n) + fsky(3,k)
250 nodes%AR(1,n) = nodes%AR(1,n) + fsky(4,k)
251 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
252 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
253 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
254 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
255 fthe(n) = fthe(n) + fthesky(k)
256 condn(n) = condn(n) + condnsky(k)
257 ms_2d(n) = ms_2d(n) + fskym(k)
266 nc = adsky(n+1)-adsky(n)
268 nodes%A(1,n) = nodes%A(1,n) + fsky(1,k)
269 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
270 nodes%A(3,n) = nodes%A(3,n) + fsky(3,k)
271 nodes%AR(1,n) = nodes%AR(1,n) + fsky(4,k)
272 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
273 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
274 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
275 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
276 msnf(n) = msnf(n) + fskym(k)
277 fthe(n) = fthe(n) + fthesky(k)
278 condn(n) = condn(n) + condnsky(k)
287 IF(
ale%SUB%IFSUBM==0)
THEN
291 nc = adsky(n+1)-adsky(n)
293 nodes%A(1,n) = nodes%A(1,n) + fsky(1,k)
294 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
295 nodes%A(3,n) = nodes%A(3,n) + fsky(3,k)
296 nodes%AR(1,n) = nodes%AR(1,n) + fsky(4,k)
297 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
298 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
299 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
300 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
301 fthe(n) = fthe(n) + fthesky(k)
310 nc = adsky(n+1)-adsky(n)
312 nodes%A(1,n) = nodes%A(1,n) + fsky(1,k)
313 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
314 nodes%A(3,n) = nodes%A(3,n) + fsky(3,k)
315 nodes%AR(1,n) = nodes%AR(1,n) + fsky(4,k)
316 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
317 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
318 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
319 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
320 fthe(n) = fthe(n) + fthesky(k)
321 ms_2d(n) = ms_2d(n) + fskym(k)
330 nc = adsky(n+1)-adsky(n)
333 nodes%A(2,n) = nodes%A(2,n) + fsky(2,k)
334 nodes%A(3,n) = nodes%A(3,n) + fsky(3,k)
335 nodes%AR(1,n) = nodes%AR(1,n) + fsky(4,k)
336 nodes%AR(2,n) = nodes%AR(2,n) + fsky(5,k)
337 nodes%AR(3,n) = nodes%AR(3,n) + fsky(6,k)
338 nodes%STIFN(n) = nodes%STIFN(n) + fsky(7,k)
339 nodes%STIFR(n) = nodes%STIFR(n) + fsky(8,k)
340 msnf(n) = msnf(n) + fskym(k)
341 fthe(n) = fthe(n) + fthesky(k)
360 af(1,n) = af(1,n) + ffsky(1,k)
361 af(2,n) = af(2,n) + ffsky(2,k)
362 af(3,n) = af(3,n) + ffsky(3,k)
363 msnf(n) = msnf(n) + fskym(k)
373 IF(sol2sph_flag/=0)
THEN
377 nc = adsky(n+1)-adsky(n)
379 dmsph(n) = dmsph(n) + fskyd(k)
388 IF(iplyxfem > 0)
THEN
393 nct = adsky_pxfem(il) - 1
394 nc = adsky_pxfem(il+1) - adsky_pxfem(il)
408 IF( (n2d/=0).OR.(
ale%SUB%IFSUBM==1).OR.(ialelag > 0) )
CALL my_barrier
414 nodes%MS(i) = nodes%A(1,i)
418 ELSEIF(
ale%SUB%IFSUBM==1)
THEN
421 nodes%MS(i) = nodes%MS(i) + msnf(i)
429 msf(i) = msf(i) + msnf(i)
439#include "vectorize.inc"
441 nd = iabs(icnds10(1,i))
442 stifnd(i) = nodes%STIFN(nd)
449 IF(nitsche /= 0)
THEN
453 nc = adsky(n+1)-adsky(n)
456 forneqs(1,n) = forneqs(1,n) + forneqsky(3*(nf-1)+1,k)
457 forneqs(2,n) = forneqs(2,n) + forneqsky(3*(nf-1)+2,k)
458 forneqs(3,n) = forneqs(3,n) + forneqsky(3*(nf-1)+3,k)
469 WRITE(iout,*)
' **ERROR** : MEMORY PROBLEM IN PARITH OPTION'
471 .
' PLEASE, INCREASE MULTIMP FOR INTERFACES 7, 10 AND 11'
472 WRITE(istdo,*)
' **ERROR** : MEMORY PROBLEM IN PARITH OPTION'
479 niskyft = 1+itask*nisky/ nthread
480 niskylt = (itask+1)*nisky/nthread
481 nfskyft = 1+itask*nfskyi/ nthread
482 nfskylt = (itask+1)*nfskyi/nthread
484 IF(intplyxfem > 0 )
THEN
485 nfskyft_intply = 1+itask*5/ nthread
486 nfskylt_intply = (itask+1)*5/nthread
495 fsky_l(j) = fskyi(i,l)
501 fskyi(i,l) = fsky_l(i)
506 IF(glob_therm%INTHEAT > 0 )
THEN
510 fskyt(j) = ftheskyi(i)
513 ftheskyi(i) = fskyt(i)
516 IF(glob_therm%NODADT_THERM ==1 )
THEN
520 fskyt(j) = condnskyi(i)
523 condnskyi(i) = fskyt(i)
529 IF(intplyxfem > 0)
THEN
530 DO l = nfskyft_intply,nfskylt_intply
550 DO ndft = 1,numnod,ivsize
552 ndlt =
min(ndft+ivsize-1,numnod)
558 diffadd = adskyi(n)-1-adskyi(nn)
563 ELSEIF(diffadd>=1.AND.diffadd<nbcc)
THEN
566 ELSEIF(diffadd>=nbcc)
THEN
574 IF(glob_therm%INTHEAT == 0 )
THEN
576#include "vectorize.inc"
580 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
581 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
582 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
583 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
586#include "vectorize.inc"
590 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
591 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
592 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
593 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
594 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
599 IF(glob_therm%NODADT_THERM == 1)
THEN
601#include "vectorize.inc"
605 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
606 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
607 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
608 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
609 fthe(n) = fthe(n) + ftheskyi(k)
610 condn(n) = condn(n) + condnskyi(k)
614#include "vectorize.inc"
618 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
619 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
620 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
621 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
622 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
623 fthe(n) = fthe(n) + ftheskyi(k)
624 condn(n) = condn(n) + condnskyi(k)
630#include "vectorize.inc"
634 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
635 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
636 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
637 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
638 fthe(n) = fthe(n) + ftheskyi(k)
642#include "vectorize.inc"
646 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
647 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
648 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
649 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
650 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
651 fthe(n) = fthe(n) + ftheskyi(k)
662 IF(intplyxfem > 0)
THEN
663#include "vectorize.inc"
693 IF(glob_therm%INTHEAT == 0 )
THEN
697 IF(fskyi(kk,l)>fskyi(k,l))
THEN
699 fskyi(kk,l) = fskyi(k,l)
705 IF(glob_therm%NODADT_THERM == 1 )
THEN
709 IF(fskyi(kk,l)>fskyi(k,l))
THEN
711 fskyi(kk,l) = fskyi(k,l)
715 IF(ftheskyi(kk)>ftheskyi(k))
THEN
717 ftheskyi(kk) = ftheskyi(k)
720 IF(condnskyi(kk)>condnskyi(k))
THEN
722 condnskyi(kk) = condnskyi(k)
731 IF(fskyi(kk,l)>fskyi(k,l))
THEN
733 fskyi(kk,l) = fskyi(k,l)
737 IF(ftheskyi(kk)>ftheskyi(k))
THEN
739 ftheskyi(kk) = ftheskyi(k)
747 IF(intplyxfem > 0 )
THEN
767 IF(glob_therm%INTHEAT == 0 )
THEN
770 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
771 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
772 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
773 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
777 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
778 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
779 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
780 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
781 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
786 IF(glob_therm%NODADT_THERM == 1)
THEN
789 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
790 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
791 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
792 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
793 fthe(n) = fthe(n) + ftheskyi(k
794 condn(n) = condn(n)+ condnskyi(k)
799 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
800 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
801 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
802 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
803 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
804 fthe(n) = fthe(n) + ftheskyi(k)
805 condn(n) = condn(n)+ condnskyi(k)
812 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
813 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
814 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
815 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
816 fthe(n) = fthe(n) + ftheskyi(k)
821 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
822 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
823 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
824 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
825 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
826 fthe(n) = fthe(n) + ftheskyi(k)
837 IF(intplyxfem > 0)
THEN
846 ply(iply)%A(3,il)=
ply(iply
871 CALL ass2sort(fskyi,jj1,jj2,fskyt,nfskyi)
872 IF(glob_therm%INTHEAT > 0)
CALL ass2sort(ftheskyi,jj1,jj2,fskyt,1)
873 IF(glob_therm%NODADT_THERM == 1)
CALL ass2sort(condnskyi,jj1,jj2,fskyt,1)
879 IF(glob_therm%INTHEAT == 0 )
THEN
882 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
883 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
884 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
885 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
889 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
890 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
891 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
892 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
893 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
898 IF(glob_therm%NODADT_THERM ==1)
THEN
901 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
902 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
903 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
904 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
905 fthe(n) = fthe(n) + ftheskyi(k)
906 condn(n)= condn(n) + condnskyi(k)
911 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
912 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
913 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
914 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
915 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
916 fthe(n) = fthe(n) + ftheskyi(k)
917 condn(n)= condn(n) + condnskyi(k)
924 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
925 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
926 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
927 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
928 fthe(n) = fthe(n) + ftheskyi(k)
933 nodes%A(1,n) = nodes%A(1,n) + fskyi(k,1)
934 nodes%A(2,n) = nodes%A(2,n) + fskyi(k,2)
935 nodes%A(3,n) = nodes%A(3,n) + fskyi(k,3)
936 nodes%STIFN(n) = nodes%STIFN(n) + fskyi(k,4)
937 nodes%VISCN(n) = nodes%VISCN(n) + fskyi(k,5)
938 fthe(n) = fthe(n) + ftheskyi(k)
945 IF(intplyxfem > 0)
THEN
973#include "vectorize.inc"
975 partsav(i) = partsav(i) + partsav(i+km)
988#include "vectorize.inc"