38 SUBROUTINE lecig3d(ITAB ,IPART ,IPARTIG3D ,IPM ,IGEO ,
39 . KXIG3D ,IXIG3D ,ITABM1 ,NCTRLMAX, TABCONPATCH)
45 USE format_mod ,
ONLY : fmt_10i, fmt_8i, fmt_2i
46 USE reader_old_mod ,
ONLY : kline, kcur, line, kige3d, koptad, irec
69#include "implicit_f.inc"
81 INTEGER KXIG3D(NIXIG3D,*),IXIG3D(*),ITAB(*),
82 . ipart(lipart1,*),ipartig3d(*),
83 . ipm(npropmi,*),igeo(npropgi,*),itabm1(*),
89 INTEGER :: I,N,J,ID,IDS,IAD,
90 . i1, i2,mid,pid,idx1,idy1,idz1,nctrl,nbline,
91 . nrafx,nrafy,nrafz,nbig3d_patch
92 INTEGER :: TABIDS(NUMELIG3D0),J10(10)
100 DATA mess /
'ISO-GEOMETRIC ELEMENTS DEFINITION '/
107 nbpart_ig3d = nbpart_ig3d+1
108 tabconpatch(nbpart_ig3d)%ID_TABCON=nbpart_ig3d
111 READ(iin,rec=irec,err=999,fmt=
'(A)')line
112 DO WHILE( line(1:1) /=
'/' .OR. line(1:6) ==
'/IGE3D')
114 IF (line(1:1) ==
'/')
THEN
116 READ(iin,rec=irec,err=999,fmt=
'(A)')line
119 READ(line,err=999,fmt=fmt_8i)id,idx1,idy1,idz1,nctrl,nrafx,nrafy,nrafz
120 nbig3d_patch=nbig3d_patch+1
121 irec = irec + ((nctrl-1)/10)+2
122 READ(iin,rec=irec,err=999,fmt=
'(A)')line
124 IF (line(1:6) ==
'/IGE3D')
THEN
125 tabconpatch(nbpart_ig3d)%L_TAB_IG3D=nbig3d_patch
126 ALLOCATE(tabconpatch(nbpart_ig3d)%TAB_IG3D(nbig3d_patch))
127 nbpart_ig3d = nbpart_ig3d+1
130 READ(iin,rec=irec,err=999,fmt=
'(A)')line
135 tabconpatch(nbpart_ig3d)%L_TAB_IG3D=nbig3d_patch
136 ALLOCATE(tabconpatch(nbpart_ig3d)%TAB_IG3D(nbig3d_patch))
146 inod_ige = firstnod_isogeo
148 DO WHILE( i < numelig3d0 )
150 READ(iin,rec=irec,err=999,fmt=
'(A)')line
151 IF (line(1:1) ==
'/')
THEN
152 nbpart_ig3d = nbpart_ig3d+1
158 IF(ipart(4,j) == id)ids=j
161 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,c1=
"IGE3D",i1=id,i2=id,prmod=msg_cumu)
163 tabconpatch(nbpart_ig3d)%PID=ids
166 kxig3d(1,i) =ipart(1,ids)
167 kxig3d(2,i) =ipart(2,ids)
171 READ(iin,rec=irec,err=999,fmt=
'(A)')line
172 READ(line,err=999,fmt=fmt_8i) id,idx1,idy1,idz1,nctrl,nrafx,nrafy,nrafz
173 nbig3d_patch = nbig3d_patch + 1
174 tabconpatch(nbpart_ig3d)%TAB_IG3D(nbig3d_patch)=i
175 nctrlmax =
max(nctrlmax,nctrl)
182 kxig3d(12,i)=
max(nrafx,1)
183 kxig3d(13,i)=
max(nrafy,1)
184 kxig3d(14,i)=
max(nrafz,1)
185 kxig3d(15,i)=inod_ige
186 inod_ige = inod_ige + 64
188 nbline= ((nctrl-1)/10)+1
192 READ(iin,rec=irec,err=999,fmt=
'(A)')line
193 READ(line,err=999,fmt=fmt_10i) j10
196 ixig3d(iad)=usr2sys(j10(j),itabm1,mess,id)
204 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,prmod=msg_print)
209 tabids(i)= kxig3d(5,i)
211 CALL udouble(tabids,1,numelig3d0,mess,0,bid)
216 i2=min0(50,numelig3d0)
220 mid=ipm(1,kxig3d(1,i))
221 pid=igeo(1,kxig3d(2,i))
222 WRITE (iout,
'(4(I10,1X))') i,kxig3d(5,i),mid,pid
223 WRITE (iout,
'(10(I10,1X))')
224 . (itab(ixig3d(iad)),iad=kxig3d(4,i),kxig3d(4,i)+kxig3d(3,i)-1)
226 IF(i2==numelig3d0)
GOTO 200
228 i2=min0(i2+50,numelig3d0)
233 300
FORMAT(/
' ISO-GEOMETRIC ELEMENTS'/
234 +
' ----------------------'/
235 +
' LOC-EL GLO-EL MATER GEOM'/
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)