32 use element_mod ,
only : nixs,nixc,nixtg
36#include "implicit_f.inc"
48 . IXS(NIXS,*),IXC(NIXC,*),IXTG(NIXTG,*),
49 . FASTAG(*),ISOLNOD(*)
53 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: NELENOD
54 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ELSNOD,ELCNOD,ELTGNOD,
56 INTEGER N,NI,I,J,K,II,JJ,KK,LL,NN,JS,KS,
58 INTEGER FACES(4,6),PWR(7)
65 DATA pwr/1,2,4,8,16,32,64/
69 ALLOCATE(nodtag(numnod), stat=ierror)
71 WRITE(istdo,
'(A)')
' ANIM ...'
73 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
74 WRITE(iout,
'(A)')
' ANIM ...'
76 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY NODTAG'
79 ALLOCATE(nodtag_1(numnod), stat=ierror)
81 WRITE(istdo,
'(A)')
' ANIM ...'
83 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
84 WRITE(iout,
'(A)')
' ANIM ...'
86 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY NODTAG_1'
89 ALLOCATE(nelenod(3,numnod+1), stat=ierror)
91 WRITE(istdo,
'(A)')
' ANIM ...'
93 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
94 WRITE(iout,
'(A)')
' ANIM ...'
96 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY NELENOD'
99 ALLOCATE(elsnod(8*numels), stat=ierror)
101 WRITE(istdo,
'(A)')
' ANIM ...'
103 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
104 WRITE(iout,
'(A)')
' ANIM ...'
106 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY ELSNOD'
109 ALLOCATE(elcnod(4*numelc), stat=ierror)
111 WRITE(istdo,
'(A)')
' ANIM ...'
113 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
114 WRITE(iout,
'(A)')
' ANIM ...'
116 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY ELCNOD'
119 ALLOCATE(eltgnod(3*numeltg), stat=ierror)
121 WRITE(istdo,
'(A)')
' ANIM ...'
123 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
124 WRITE(iout,
'(A)')
' ANIM ...'
126 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY ELTGNOD'
148 IF (nodtag_1(ni) == 0) nelenod(1,ni+1)=nelenod(1,ni+1)+1
154 nelenod(1,n+1)=nelenod(1,n+1)+nelenod(1,n)
164 IF (nodtag_1(ni) == 0)
THEN
165 nelenod(1,ni)=nelenod(1,ni)+1
166 elsnod(nelenod(1,ni))=n
173 nelenod(1,n+1)=nelenod(1,n)
181 nelenod(2,ni+1)=nelenod(2,ni+1)+1
186 nelenod(2,n+1)=nelenod(2,n+1)+nelenod(2,n)
192 nelenod(2,ni)=nelenod(2,ni)+1
193 elcnod(nelenod(2,ni))=n
198 nelenod(2,n+1)=nelenod(2,n)
206 nelenod(3,ni+1)=nelenod(3,ni+1)+1
211 nelenod(3,n+1)=nelenod(3,n+1)+nelenod(3,n)
217 nelenod(3,ni)=nelenod(3,ni)+1
218 eltgnod(nelenod(3,ni))=n
223 nelenod(3,n+1)=nelenod(3,n)
228 DO j=nelenod(1,n)+1,nelenod(1,n+1)
230 DO k=nelenod(1,n)+1,nelenod(1,n+1)
233 IF(ixs(ii+1,js)/=0) nodtag(ixs(ii+1,js))=0
242 IF (nodtag_1(ni) == 0)
THEN
243 nodtag(ixs(ii+1,ks))=nodtag(ixs(ii+1,ks))+1
250 IF(mod(ll,pwr(jj+1))/pwr(jj)==0)
THEN
253 IF(ixs(faces(kk,jj)+1,js)/=0)
254 . nn=nn+nodtag(ixs(faces(kk,jj)+1,js))
258 fastag(js)=fastag(js)+pwr(jj)
265 DO k=nelenod(2,n)+1,nelenod(2,n+1)
267 IF(ixs(ii+1,js)/=0) nodtag(ixs(ii+1,js))=0
272 . nodtag(ixc(ii+1,ks))=nodtag(ixc(ii+1,ks))+1
277 IF(mod(ll,pwr(jj+1))/pwr(jj)==0)
THEN
280 IF(ixs(faces(kk,jj)+1,js)/=0)
281 . nn=nn+nodtag(ixs(faces(kk,jj)+1,js))
285 fastag(js)=fastag(js)+pwr(jj)
291 DO k=nelenod(3,n)+1,nelenod(3,n+1)
293 IF(ixs(ii+1,js)/=0) nodtag(ixs(ii+1,js))=0
298 . nodtag(ixtg(ii+1,ks))=nodtag(ixtg(ii+1,ks))+1
303 IF(mod(ll,pwr(jj+1))/pwr(jj)==0)
THEN
306 IF(ixs(faces(kk,jj)+1,js)/=0)
307 . nn=nn+nodtag(ixs(faces(kk,jj)+1,js))
311 fastag(js)=fastag(js)+pwr(jj)
323 IF(mod(ll,pwr(jj+1))/pwr(jj)==0)
THEN
330 DEALLOCATE(eltgnod, elcnod, elsnod, nelenod,nodtag,nodtag_1)