34#include "implicit_f.inc"
46 . IXS(NIXS,*),IXC(NIXC,*),IXTG(NIXTG,*),
47 . FASTAG(*),ISOLNOD(*)
51 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: NELENOD
52 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ELSNOD,ELCNOD,ELTGNOD,
54 INTEGER N,NI,I,J,K,II,JJ,KK,LL,NN,JS,KS,
56 INTEGER FACES(4,6),PWR(7)
63 DATA pwr/1,2,4,8,16,32,64/
67 ALLOCATE(nodtag(numnod), stat=ierror)
69 WRITE(istdo,
'(A)')
' ANIM ...'
71 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
72 WRITE(iout,
'(A)')
' ANIM ...'
74 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY NODTAG'
77 ALLOCATE(nodtag_1(numnod), stat=ierror)
79 WRITE(istdo,
'(A)')
' ANIM ...'
81 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
82 WRITE(iout,
'(A)')
' ANIM ...'
84 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY NODTAG_1'
87 ALLOCATE(nelenod(3,numnod+1), stat=ierror)
89 WRITE(istdo,
'(A)')
' ANIM ...'
91 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
92 WRITE(iout,
'(A)')
' ANIM ...'
94 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY NELENOD'
97 ALLOCATE(elsnod(8*numels), stat=ierror)
99 WRITE(istdo,
'(A)')
' ANIM ...'
101 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
102 WRITE(iout,
'(A)')
' ANIM ...'
104 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY ELSNOD'
107 ALLOCATE(elcnod(4*numelc), stat=ierror)
109 WRITE(istdo,
'(A)')
' ANIM ...'
111 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
112 WRITE(iout,
'(A)')
' ANIM ...'
114 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY ELCNOD'
117 ALLOCATE(eltgnod(3*numeltg), stat=ierror)
119 WRITE(istdo,
'(A)')
' ANIM ...'
121 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY'
122 WRITE(iout,
'(A)')
' ANIM ...'
124 .
' UNABLE TO ALLOCATE MEMORY FOR WORK ARRAY ELTGNOD'
146 IF (nodtag_1(ni) == 0) nelenod(1,ni+1)=nelenod(1,ni+1)+1
152 nelenod(1,n+1)=nelenod(1,n+1)+nelenod(1,n)
162 IF (nodtag_1(ni) == 0)
THEN
163 nelenod(1,ni)=nelenod(1,ni)+1
164 elsnod(nelenod(1,ni))=n
171 nelenod(1,n+1)=nelenod(1,n)
179 nelenod(2,ni+1)=nelenod(2,ni+1)+1
184 nelenod(2,n+1)=nelenod(2,n+1)+nelenod(2,n)
190 nelenod(2,ni)=nelenod(2,ni)+1
191 elcnod(nelenod(2,ni))=n
196 nelenod(2,n+1)=nelenod(2,n)
204 nelenod(3,ni+1)=nelenod(3,ni+1)+1
209 nelenod(3,n+1)=nelenod(3,n+1)+nelenod(3,n)
215 nelenod(3,ni)=nelenod(3,ni)+1
216 eltgnod(nelenod(3,ni))=n
221 nelenod(3,n+1)=nelenod(3,n)
226 DO j=nelenod(1,n)+1,nelenod(1,n+1)
228 DO k=nelenod(1,n)+1,nelenod(1,n+1)
231 IF(ixs(ii+1,js)/=0) nodtag(ixs(ii+1,js))=0
240 IF (nodtag_1(ni) == 0)
THEN
241 nodtag(ixs(ii+1,ks))=nodtag(ixs(ii+1,ks))+1
248 IF(mod(ll,pwr(jj+1))/pwr(jj)==0)
THEN
251 IF(ixs(faces(kk,jj)+1,js)/=0)
252 . nn=nn+nodtag(ixs(faces(kk,jj)+1,js))
256 fastag(js)=fastag(js)+pwr(jj)
263 DO k=nelenod(2,n)+1,nelenod(2,n+1)
265 IF(ixs(ii+1,js)/=0) nodtag(ixs(ii+1,js))=0
270 . nodtag(ixc(ii+1,ks))=nodtag(ixc(ii+1,ks))+1
275 IF(mod(ll,pwr(jj+1))/pwr(jj)==0)
THEN
278 IF(ixs(faces(kk,jj)+1,js)/=0)
279 . nn=nn+nodtag(ixs(faces(kk,jj)+1,js))
283 fastag(js)=fastag(js)+pwr(jj)
289 DO k=nelenod(3,n)+1,nelenod(3,n+1)
291 IF(ixs(ii+1,js)/=0) nodtag(ixs(ii+1,js))=0
296 . nodtag(ixtg(ii+1,ks))=nodtag(ixtg(ii+1,ks))+1
301 IF(mod(ll,pwr(jj+1))/pwr(jj)==0)
THEN
304 IF(ixs(faces(kk,jj)+1,js)/=0)
305 . nn=nn+nodtag(ixs(faces(kk,jj)+1,js))
309 fastag(js)=fastag(js)+pwr(jj)
321 IF(mod(ll,pwr(jj+1))/pwr(jj)==0)
THEN
328 DEALLOCATE(eltgnod, elcnod, elsnod, nelenod,nodtag,nodtag_1)