35 1 IXR ,IPARG ,GEO ,EADD ,IGEO ,
36 2 ND ,DD_IAD ,IDX ,INUM ,
37 3 INDEX ,CEP ,IPARTR ,ITR1 ,
38 4 IGRSURF ,IGRSPRING,IRESOFF ,TAGPRT_SMS,NOD2EL1D,
39 5 IPM ,CLUSTERS ,R_SKEW,PRINT_FLAG,
40 6 ITAGPRLD_SPRING,PRELOAD_A,NPRELOAD_A)
64#include "implicit_f.inc"
73#include "vect01_c.inc"
78 INTEGER IDX,ND,ITR1(*), IGEO(NPROPGI,*),
79 . IXR(NIXR,*), IPARG(NPARG,*),EADD(*),IPARTR(*),
80 . DD_IAD(NSPMD+1,*),INUM(9,*),INDEX(*),CEP(*),
81 . IRESOFF(*),TAGPRT_SMS(*),NOD2EL1D(*),IPM(NPROPMI,*),R_SKEW(*)
82 INTEGER,
INTENT(IN) :: PRINT_FLAG
83 INTEGER,
INTENT(IN) :: NPRELOAD_A
84 INTEGER ,
INTENT(INOUT),
DIMENSION(NUMELR) :: ITAGPRLD_SPRING
88 TYPE (GROUP_) ,
DIMENSION(NGRSPRI) :: IGRSPRING
89 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
90 TYPE () ,
DIMENSION(NCLUSTER) :: CLUSTERS
91 TYPE(
prel1d_) ,
DIMENSION(NPRELOAD_A) :: PRELOAD_A
96 INTEGER NGR1, NG, ISSN, MTNN, I, NE1, N,
98 . mode, work(70000),nn,j,mid,
99 . itag(2*numelt+2*numelp+3*numelr),
100 . ngp(nspmd+1),ipartr2r,iprld
101 INTEGER :: CLUSTER_TYP,CLUSTER_NEL
102 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SAVE_CLUSTER
111 CALL zeroin(1,nd*(nspmd+1),dd_iad(1,nspgroup+1))
117 dd_iad(p,nspgroup+n) = 0
122 nel = eadd(n+1)-eadd(n)
126 inum(1,i)=ipartr(nft+i)
127 inum(2,i)=ixr(1,nft+i)
129 inum(4,i)=ixr(3,nft+i)
130 inum(5,i)=ixr(4,nft+i)
131 inum(6,i)=ixr(5,nft+i)
132 inum(7,i)=ixr(6,nft+i)
133 inum(8,i)=iresoff(nft+i)
134 inum(9,i)=r_skew(nft+i)
138 CALL my_orders( mode, work, cep(nft+1), index, nel , 1)
140 ipartr(i+nft)=inum(1,index(i))
141 ixr(1,i+nft)=inum(2,index(i))
142 ixr(2,i+nft)=inum(3,index(i))
143 ixr(3,i+nft)=inum(4,index(i))
144 ixr(4,i+nft)=inum(5,index(i))
145 ixr(5,i+nft)=inum(6,index(i))
146 ixr(6,i+nft)=inum(7,index(i))
147 iresoff(nft+i)=inum(8,index(i))
148 r_skew(nft+i)=inum(9,index(i))
149 itr1(nft+index(i)) = nft+i
153 inum(8,i)=itagprld_spring(nft+i)
156 itagprld_spring(nft+i) =inum(8,index(i))
159 p = cep(nft+index(1))
162 IF (cep(nft+index(i))/=p)
THEN
163 dd_iad(p+1,nspgroup+n) = nb
165 p = cep(nft+index(i))
170 dd_iad(p+1,nspgroup+n) = nb
172 dd_iad(p,nspgroup+n) = dd_iad(p,nspgroup+n)
173 . + dd_iad(p-1,nspgroup+n)
176 dd_iad(p,nspgroup+n) = dd_iad(p-1,nspgroup+n)+1
178 dd_iad(1,nspgroup+n) = 1
183 index(i) = cep(nft+index(i))
186 cep(nft+i) = index(i)
196 IF(igrsurf(i)%ELTYP(j) == 6)
197 . igrsurf(i)%ELEM(j) = itr1(igrsurf(i)%ELEM(j))
204 nn=igrspring(i)%NENTITY
206 igrspring(i)%ENTITY(j) = itr1(igrspring(i)%ENTITY(j))
213 DO i=1,2*numelt+2*numelp+3*numelr
214 IF(nod2el1d(i) /= 0 .AND. nod2el1d(i) > numelt+numelp)
THEN
215 IF(itag(nod2el1d(i)) == 0)
THEN
216 nod2el1d(i)=itr1(nod2el1d(i)-numelt-numelp)
217 nod2el1d(i)=nod2el1d(i)+numelt+numelp
218 itag(nod2el1d(i)) = 1
226 cluster_typ = clusters(i)%TYPE
227 IF(cluster_typ==2.OR.cluster_typ==3)
THEN
228 cluster_nel = clusters(i)%NEL
229 ALLOCATE( save_cluster( cluster_nel ) )
230 save_cluster( 1:cluster_nel ) = clusters(i)%ELEM( 1:cluster_nel )
232 clusters(i)%ELEM(j) = itr1( save_cluster( j ) )
234 DEALLOCATE( save_cluster )
257 nel = dd_iad(p+1,nspgroup+n)-dd_iad(p,nspgroup+n)
259 nel_prec = dd_iad(p,nspgroup+n)-dd_iad(1,nspgroup+n)
261 ng = (nel-1)/nvsiz + 1
268 IF (nsubdom>0) ipartr2r = 1
269 mtnn = nint(geo(8,pid))
272 IF(geo(5,pid)/=0.)issn=1
277 iprld = itagprld_spring(ii)
279 CALL zeroin(1,nparg,iparg(1,ngroup))
281 ne1 =
min( nvsiz, nel + nel_prec - nft)
282 iparg(1,ngroup) = mtnn
283 iparg(2,ngroup) = ne1
284 iparg(3,ngroup) = eadd(n)-1 + nft
285 iparg(4,ngroup) = lbufel+1
288 iparg(9,ngroup) = issn
290 iparg(32,ngroup)= p-1
291 iparg(38,ngroup)= igtyp
293 IF (nsubdom>0) iparg(77,ngroup)= ipartr2r
298 IF(tagprt_sms(ipartr(ii))/=0)jsms=1
303 iparg(52,ngroup)=jsms
305 iparg(72,ngroup)= iprld
308 iparg(73,ngroup)= preload_a(iprld)%fun_id
309 iparg(74,ngroup)= preload_a(iprld)%sens_id
320 ngp(nspmd+1)=ngp(nspmd+1)+ngp(p)
321 dd_iad(p,nspgroup+n)=ngp(p)
323 dd_iad(nspmd+1,nspgroup+n)=ngp(nspmd+1)
327 nspgroup = nspgroup + nd
329 IF(print_flag>6)
THEN
331 WRITE(iout,1001)(n,igtyp,iparg(2,n),iparg(3,n)+1,iparg(5,n),n=ngr1,ngroup)
335 + /6x,
'3D - SPRING ELEMENT GROUPS'/
336 + 6x,
'-------------------------'/
337 +
' GROUP SPRING ELEMENT FIRST ELEMENT'/
338 +
' TYPE NUMBER ELEMENT TYPE'/)
339 1001
FORMAT(5(1x,i10))
subroutine rgrtails(ixr, iparg, geo, eadd, igeo, nd, dd_iad, idx, inum, index, cep, ipartr, itr1, igrsurf, igrspring, iresoff, tagprt_sms, nod2el1d, ipm, clusters, r_skew, print_flag, itagprld_spring, preload_a, npreload_a)