33 1 KXIG3D ,IPARG ,GEO ,EADD,
34 2 ND ,DD_IAD ,IDX ,LB_MAX, INUM,
35 3 INDEX ,CEP ,IPARTIG3D ,ITR1, IGRSURF,
37 5 IGEO ,PM ,NIGE, KNOTLOCEL, MATPARAM_TAB)
60#include
"implicit_f.inc"
68#include "vect01_c.inc"
69#include "tabsiz_c.inc"
73 INTEGER KXIG3D(NIXIG3D,*),IPARG(NPARG,*),EADD(*),
74 . ND, DD_IAD(NSPMD+1,*),IDX,IGEO(NPROPGI,NUMGEO),
75 . LB_MAX, INUM(NIXIG3D+1,*), INDEX(*),CEP(*),
76 . IPARTIG3D(*), ITR1(*),NIGE(*)
77 my_real GEO(NPROPG,NUMGEO),PM(NPROPM,NUMMAT),KNOTLOCEL(*)
78 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
79 TYPE(MATPARAM_STRUCT_) ,
TARGET,
DIMENSION(NUMMAT),
INTENT(IN) :: MATPARAM_TAB
83 INTEGER NGR1, NG, ISSN, MTNN, I, NE1, N, NFIX,
84 . pid, nel_prec, lb_l, p, nel,nb,
85 . mode, work(70000),nn,iad1,ngrou, j,mid,ietyp,
86 . mt,ixig3d(*),nuvar,nuvarn,nxvie,nxvin,innd,ii,inno,
87 . ngp(nspmd+1),jale_from_mat,jale_from_prop
88 my_real knotlocelindx(sknotlocel)
89 TYPE(matparam_struct_) ,
POINTER :: MATPARAM
91 DATA NXVIE/3/, NXVIN/0/
106 dd_iad(p,nspgroup+n) = 0
111 nel = eadd(n+1)-eadd(n)
115 inum(1,i)=ipartig3d(nft+i)
117 inum(j+1,i)=kxig3d(j,nft+i)
120 knotlocelindx((i-1)*6+j)=knotlocel((nft+i-1)*6+j)
125 CALL my_orders( mode, work, cep(nft+1), index, nel , 1)
127 ipartig3d(i+nft)=inum(1,index(i))
129 knotlocel((i+nft-1)*6+j)=knotlocelindx((index(i)-1)*6+j)
132 kxig3d(j,i+nft)=inum(j+1,index(i))
135 itr1(nft+index(i)) = nft+i
138 p = cep(nft+index(1))
141 IF (cep(nft+index(i))/=p)
THEN
142 dd_iad(p+1,nspgroup+n) = nb
144 p = cep(nft+index(i))
149 dd_iad(p+1,nspgroup+n) = nb
151 dd_iad(p,nspgroup+n) = dd_iad(p,nspgroup+n)
152 . + dd_iad(p-1,nspgroup+n)
155 dd_iad(p,nspgroup+n) = dd_iad(p-1,nspgroup+n)+1
157 dd_iad(1,nspgroup+n) = 1
162 index(i) = cep(nft+index(i))
165 cep(nft+i) = index(i)
177 nel = dd_iad(p+1,nspgroup+n)-dd_iad(p,nspgroup+n)
179 nel_prec = dd_iad(p,nspgroup+n)-dd_iad(1,nspgroup+n)
181 ng = (nel-1)/nvsiz + 1
189 mtnn= nint(pm(19,abs(kxig3d(1,ii))))
191 geo(8,pid)=ietyp + em01
192 matparam => matparam_tab(mid)
194 jale_from_mat = nint(pm(72,mid))
195 jale_from_prop = igeo(62,pid)
196 jale =
max(jale_from_mat, jale_from_prop)
199 IF(jale == 0.AND.mtnn/=18)jlag=1
205 ELSEIF(jale == 3 .AND. mtnn == 77)
THEN
213 ale%REZON%NUM_NUVAR_MAT =
ale%REZON%NUM_NUVAR_MAT + matparam%REZON%NUM_NUVAR_MAT
214 ale%REZON%NUM_NUVAR_EOS =
ale%REZON%NUM_NUVAR_EOS + matparam%REZON%NUM_NUVAR_EOS
219 iparg(81,ngroup) = matparam%REZON%NUM_NUVAR_MAT
220 iparg(82,ngroup) = matparam%REZON%NUM_NUVAR_EOS
223 IF(mtnn/=50)jtur=nint(pm(70,mid))
224 jthe = nint(pm(71,mid))
226 CALL zeroin(1,nparg,iparg(1,ngroup))
228 ne1 =
min( nvsiz, nel + nel_prec - nft)
229 nuvar =nint( geo(25,pid))
230 nuvarn=nint( geo(35,pid))
232 iparg(1,ngroup) = mtnn
233 iparg(2,ngroup) = ne1
234 iparg(3,ngroup) = ii-1
236 iparg(5,ngroup) = ietyp
237 iparg(6,ngroup) = npt
238 iparg(7,ngroup) = jale
239 iparg(11,ngroup)= jeul
240 iparg(12,ngroup)= jtur
241 iparg(13,ngroup)= jthe
242 IF(jale+jeul>0)iparg(13,ngroup)=-jthe
243 iparg(14,ngroup)= jlag
244 iparg(75,ngroup) = innd
245 iparg(62,ngroup) = pid
246 iparg(38,ngroup) = igeo(11,pid)
247 iparg(56,ngroup) = igeo(41,pid)
248 iparg(57,ngroup) = igeo(42,pid)
249 iparg(58,ngroup) = igeo(43,pid)
254 iparg(32,ngroup)= p-1
261 lb_max =
max(lb_max,lb_l)
265 ngp(nspmd+1)=ngp(nspmd+1)+ngp(p)
266 dd_iad(p,nspgroup+n)=ngp(p)
272 nspgroup = nspgroup + nd
277 nn=igrsurf(i)%NSEG_IGE
279 IF(igrsurf(i)%ELTYP_IGE(j) == 101)
280 . igrsurf(i)%ELEM_IGE(j) = itr1(igrsurf(i)%ELEM_IGE(j))
284 DO i=1,numfakenodigeo
285 nige(i)=itr1(nige(i))
289 WRITE(iout,1001)(n,iparg(1,n),iparg(2,n),iparg(3,n)+1,
290 + iparg(4,n),iparg(5,n),
294 1000
FORMAT(10x,
' 3D - ISO-GEOMETRIC ELEMENT GROUPS '/
295 + 10x,
' ----------------------------------'/
296 +
' GROUP ELEMENT ELEMENT FIRST BUFFER ELEMENT '/
297 +
' MATERIAL NUMBER ELEMENT ADDRESS TYPE '/)
298 1001
FORMAT(6(1x,i7,1x))
299 1002
FORMAT(
' BUFFER LENGTH : ',i10 )