34 SUBROUTINE parsors(IADD ,IPARG ,IXS ,MATER ,IPARTS ,
36 3 IADG ,INSPH ,KXSP ,IPARTSP,
37 4 IXS10 ,IXS20 ,IXS16 ,NNSPH ,ISPH3D,
38 5 NODGLOB,SHFT16 ,SHFTSPH ,NNSPHG,IPARTIG3D,
39 6 KXIG3D,IGEO,IG3DSOLID)
40 use element_mod ,
only : nixs
44#include "implicit_f.inc"
58 INTEGER IADD(*),IPARG(NPARG,*),IXS(NIXS,*),
59 . MATER(*),EL2FA(*),IPARTS(*),
62 . INSPH,KXSP(NISP,*),IPARTSP(*),
63 . ixs10(6,*) ,ixs16(8,*) ,ixs20(12,*) ,nnsph,
64 . isph3d,nodglob(*),shft16,shftsph ,nnsphg,ipartig3d(*),
69 INTEGER II(8), , NG, ITY, LFT, LLT, , I, J,
70 . NEL, IAD, NPAR, NFT, IPRT,
71 . NN1,NN2,NN3,NN4,NN5,
72 . JJ, , ISOLNOD ,NNN,IE1,IDBRICK,
73 . N9,N10,N11,N12,N13,N14,N15,N16,IPROP,PX,PY,PZ
74 INTEGER BUF, BUFP, L, M
75 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NP
78 ALLOCATE(NP(NUMELS*8+24*NUMELS16+NUMSPH*8))
82 nn4 = nn3 + isph3d*(numsph+maxpjet)
91 DO 100 iprt = 1 , npart
93 IF(mater(iprt)/=2)
GOTO 100
101 isolnod = iparg(28,ng)
107 nnn = insph + isph3d*nnsph
108 IF(ity==1.AND.isolnod==16)
THEN
111 j = n - numels8 - numels10 - numels20
113 IF( n9==0) n9=ixs(2,n)
115 IF(n10==0)n10=ixs(3,n)
117 IF(n11==0)n11=ixs(4,n)
119 IF(n12==0)n12=ixs(5,n)
121 IF(n13==0)n13=ixs(6,n)
123 IF(n14==0)n14=ixs(7,n)
125 IF(n15==0)n15=ixs(8,n)
127 IF(n16==0)n16=ixs(9,n)
128 IF(iparts(n)==iprt)
THEN
132 ii(3) = nnn + 2*j-1 -1
142 ii(4) = nnn + 2*j-1 -1
149 ii(2) = nnn + 2*j-1 -1
157 ii(1) = nnn + 2*j-1 -1
167 np(jj+1) = nodglob(ixs(2,n))-1
168 np(jj+2) = nodglob(n9) -1
169 np(jj+3) = (shft16-1) + 2*j-1 -1
170 np(jj+4) = nodglob(n12) -1
171 np(jj+5) = nodglob(ixs(6,n))-1
172 np(jj+6) = nodglob(n13) -1
173 np(jj+7) = (shft16-1) + 2*j -1
174 np(jj+8) = nodglob(n16)-1
176 np(jj+9) = nodglob(n9) -1
177 np(jj+10) = nodglob(ixs(3,n))-1
178 np(jj+11) = nodglob(n10) -1
179 np(jj+12) = (shft16-1) + 2*j-1 -1
180 np(jj+13) = nodglob(n13) -1
181 np(jj+14) = nodglob(ixs(7,n))-1
182 np(jj+15) = nodglob(n14)-1
183 np(jj+16) = (shft16-1) + 2*j -1
185 np(jj+17) = nodglob(n12) -1
186 np(jj+18) = (shft16-1) + 2*j-1 -1
187 np(jj+19) = nodglob(n11) -1
188 np(jj+20) = nodglob(ixs(5,n)) -1
189 np(jj+21) = nodglob(n16) -1
190 np(jj+22) = (shft16-1) + 2*j -1
191 np(jj+23) = nodglob(n15)-1
192 np(jj+24) = nodglob(ixs(9,n))-1
194 np(jj+25) = (shft16-1) + 2*j-1 -1
195 np(jj+26) = nodglob(n10) -1
196 np(jj+27) = nodglob(ixs(4,n)) -1
197 np(jj+28) = nodglob(n11
198 np(jj+29) = (shft16-1) + 2*j -1
199 np(jj+30) = nodglob(n14)-1
200 np(jj+31) = nodglob(ixs(8,n))-1
201 np(jj+32) = nodglob(n15)-1
215 IF(iparts(n)/=iprt)
GOTO 10
227 np(jj+1) = nodglob(ixs(2,n))-1
228 np(jj+2) = nodglob(ixs(3,n))-1
229 np(jj+3) = nodglob(ixs(4,n))-1
230 np(jj+4) = nodglob(ixs(5,n))-1
231 np(jj+5) = nodglob(ixs(6,n))-1
232 np(jj+6) = nodglob(ixs(7,n))-1
233 np(jj+7) = nodglob(ixs(8,n))-1
234 np(jj+8) = nodglob(ixs(9,n))-1
240 ELSEIF(isph3d==1.AND.ity==51)
THEN
246 IF(ipartsp(n)/=iprt)
GOTO 20
249 ii(1) = insph+4*(n-1)+1
250 ii(2) = insph+4*(n-1)+2
251 ii(3) = insph+4*(n-1)
252 ii(4) = insph+4*(n-1)+1
253 ii(5) = insph+4*(n-1)+3
254 ii(6) = insph+4*(n-1)+2
255 ii(7) = insph+4*(n-1)+3
259 np(jj+1) = shftsph-1+4*(n-1)+1
260 np(jj+2) = shftsph-1+4*(n-1)+2
261 np(jj+3) = shftsph-1+4*(n-1)
262 np(jj+4) = shftsph-1+4*(n-1)+1
263 np(jj+5) = shftsph-1+4*(n-1)+3
264 np(jj+6) = shftsph-1+4*(n-1)+2
265 np(jj+7) = shftsph-1+4*(n-1)+3
266 np(jj+8) = nodglob(inod)-1
277 iprop = kxig3d(2,i+nft)
287 idbrick = idbrick + 1
288 ii(1) = ig3dsolid(1,idbrick,i+nft)
289 ii(2) = ig3dsolid(2,idbrick,i+nft)
290 ii(3) = ig3dsolid(3,idbrick,i+nft)
291 ii(4) = ig3dsolid(4,idbrick,i+nft)
292 ii(5) = ig3dsolid(5,idbrick,i+nft)
293 ii(6) = ig3dsolid(6,idbrick,i+nft)
295 ii(8) = ig3dsolid(8,idbrick,i+nft)
302 el2fa(nn4+i+nft) = ie1
316 buf = numelsg*8 + 24*numels16g+numsphg*8 +64*numelig3d
subroutine parsors(iadd, iparg, ixs, mater, iparts, el2fa, dd_iad, iadg, insph, kxsp, ipartsp, ixs10, ixs20, ixs16, nnsph, isph3d, nodglob, shft16, shftsph, nnsphg, ipartig3d, kxig3d, igeo, ig3dsolid)