34 1 IXT ,IPARG ,PM ,GEO ,
35 2 EADD ,ND ,DD_IAD ,IDX ,
36 3 INUM ,INDEX ,CEP ,IPARTT ,
37 4 ITR1 ,IGRSURF,IGRTRUSS,ITRUOFF ,
38 5 TAGPRT_SMS,NOD2EL1D,PRINT_FLAG ,
39 6 ITAGPRLD_TRUSS,PRELOAD_A ,NPRELOAD_A)
62#include "implicit_f.inc"
71#include "vect01_c.inc"
77 . (5,*), IPARG(NPARG,*),EADD(*),IPARTT(*),
78 . DD_IAD(NSPMD+1,*), INUM(7,*), INDEX(*), CEP(*),
80 . TAGPRT_SMS(*),NOD2EL1D(*)
81 INTEGER,
INTENT(IN) :: PRINT_FLAG
82 INTEGER,
INTENT(IN) :: NPRELOAD_A
83 INTEGER ,
INTENT(INOUT),
DIMENSION(NUMELT) ::ITAGPRLD_TRUSS
85 . PM(NPROPM,*), GEO(NPROPG,*)
87 TYPE () ,
DIMENSION(NGRTRUS) :: IGRTRUSS
88 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
89 TYPE(
prel1d_) ,
DIMENSION(NPRELOAD_A):: PRELOAD_A
93 INTEGER NGR1, NG, ISSN, MLN, I, NE1, N, NFIX,
94 . mid, pid, nel_prec, ii, p, nel,nb,
95 . mode, work(70000),nn, j,
96 . itag(2*numelt+2*numelp+3*numelr),
97 . ngp(nspmd+1),ipartr2r,iprld
105 idx = idx+nd*(nspmd+1)
106 CALL zeroin(1,nd*(nspmd+1),dd_iad(1,nspgroup+1))
112 dd_iad(p,nspgroup+n) = 0
117 nel = eadd(n+1)-eadd(n)
121 inum(1,i)=ipartt(nft+i)
122 inum(2,i)=itruoff(nft+i)
123 inum(3,i)=ixt(1,nft+i)
124 inum(4,i)=ixt(2,nft+i)
125 inum(5,i)=ixt(3,nft+i)
126 inum(6,i)=ixt(4,nft+i)
127 inum(7,i)=ixt(5,nft+i)
130 CALL my_orders( mode, work, cep(nft+1), index, nel , 1)
132 ipartt(i+nft)=inum(1,index(i))
133 itruoff(nft+i) = inum(2,index(i))
134 ixt(1,i+nft)=inum(3,index(i))
135 ixt(2,i+nft)=inum(4,index(i))
136 ixt(3,i+nft)=inum(5,index(i))
137 ixt(4,i+nft)=inum(6,index(i))
138 ixt(5,i+nft)=inum(7,index(i))
139 itr1(nft+index(i)) = nft+i
144 inum(2,i) = itagprld_truss(nft+i)
147 itagprld_truss(nft+i) = inum(2,index(i))
150 p = cep(nft+index(1))
153 IF (cep(nft+index(i))/=p)
THEN
154 dd_iad(p+1,nspgroup+n) = nb
156 p = cep(nft+index(i))
161 dd_iad(p+1,nspgroup+n) = nb
163 dd_iad(p,nspgroup+n) = dd_iad(p,nspgroup+n)
164 . + dd_iad(p-1,nspgroup+n)
167 dd_iad(p,nspgroup+n) = dd_iad(p-1,nspgroup+n)+1
169 dd_iad(1,nspgroup+n) = 1
174 index(i) = cep(nft+index(i))
177 cep(nft+i) = index(i)
187 IF(igrsurf(i)%ELTYP(j) == 4)
188 . igrsurf(i)%ELEM(j) = itr1(igrsurf(i)%ELEM(j))
195 nn=igrtruss(i)%NENTITY
197 igrtruss(i)%ENTITY(j) = itr1(igrtruss(i)%ENTITY(j))
204 DO i=1,2*numelt+2*numelp+3*numelr
205 IF(nod2el1d(i) /= 0 .AND. nod2el1d(i) <= numelt)
THEN
206 IF(itag(nod2el1d(i)) == 0)
THEN
207 nod2el1d(i)=itr1(nod2el1d(i))
208 itag(nod2el1d(i)) = 1
223 nel = dd_iad(p+1,nspgroup+n)-dd_iad(p,nspgroup+n)
225 nel_prec = dd_iad(p,nspgroup+n)-dd_iad(1,nspgroup+n)
227 ng = (nel-1)/nvsiz + 1
236 IF (nsubdom>0) ipartr2r =
tag_mat(mid)
238 IF(geo(5,pid)/=0.)issn=1
239 iprld = itagprld_truss(ii)
241 CALL zeroin(1,nparg,iparg(1,ngroup))
243 ne1 =
min( nvsiz, nel + nel_prec - nft)
244 iparg(1,ngroup) = mln
245 iparg(2,ngroup) = ne1
246 iparg(3,ngroup) = eadd(n)-1 + nft
247 iparg(4,ngroup) = lbufel+1
250 iparg(9,ngroup) = issn
252 iparg(32,ngroup)= p-1
254 iparg(72,ngroup)= iprld
258 iparg(74,ngroup)= preload_a(iprld)%sens_id
261 IF (nsubdom>0) iparg(77,ngroup)= ipartr2r
266 IF(tagprt_sms(ipartt(ii))/=0)jsms=1
271 iparg(52,ngroup)=jsms
281 ngp(nspmd+1)=ngp(nspmd+1)+ngp(p)
282 dd_iad(p,nspgroup+n)=ngp(p)
284 dd_iad(nspmd+1,nspgroup+n)=ngp(nspmd+1)
288 nspgroup = nspgroup + nd
290 IF(print_flag>6)
THEN
292 WRITE(iout,1001)(n,iparg(1,n),iparg(2,n),iparg(3,n)+1,iparg(5,n),n=ngr1,ngroup)
296 + /6x,
'3D - TRUSS ELEMENT GROUPS'/
297 + 6x,
'-------------------------'/
298 +
' GROUP MATERIAL ELEMENT FIRST ELEMENT'/
299 +
' LAW NUMBER ELEMENT TYPE'/)
300 1001
FORMAT(5(1x,i10))
subroutine tgrtails(ixt, iparg, pm, geo, eadd, nd, dd_iad, idx, inum, index, cep, ipartt, itr1, igrsurf, igrtruss, itruoff, tagprt_sms, nod2el1d, print_flag, itagprld_truss, preload_a, npreload_a)