39 SUBROUTINE lecig3d(ITAB ,IPART ,IPARTIG3D ,IPM ,IGEO ,
40 . KXIG3D ,IXIG3D ,ITABM1 ,NCTRLMAX, TABCONPATCH)
46 USE format_mod ,
ONLY : fmt_10i, fmt_8i, fmt_2i
47 USE reader_old_mod ,
ONLY : kline, kcur, line, kige3d, koptad, irec
70#include "implicit_f.inc"
82 INTEGER KXIG3D(NIXIG3D,*),IXIG3D(*),ITAB(*),
83 . ipart(lipart1,*),ipartig3d(*),
84 . ipm(npropmi,*),igeo(npropgi,*),itabm1(*),
90 INTEGER I,N,J,ID,IDS,IDEX,IDGU,IGS,NNOD,IAD,
91 . i1, i2,mid,pid,idx1,idy1,idz1,nctrl,nbline,
92 . nrafx,nrafy,nrafz,nbig3d_patch
93 INTEGER TABIDS(NUMELIG3D0),J10(10)
99 INTEGER NODGRNR5,USR2SYS
101 DATA mess /
'ISO-GEOMETRIC ELEMENTS DEFINITION '/
108 nbpart_ig3d = nbpart_ig3d+1
109 tabconpatch(nbpart_ig3d)%ID_TABCON=nbpart_ig3d
112 READ(iin,rec=irec,err=999,fmt=
'(A)')line
113 DO WHILE( line(1:1) /=
'/' .OR. line(1:6) ==
'/IGE3D')
115 IF (line(1:1) ==
'/')
THEN
117 READ(iin,rec=irec,err=999,fmt=
'(A)')line
120 READ(line,err=999,fmt=fmt_8i)id,idx1,idy1,idz1,nctrl,nrafx,nrafy,nrafz
121 nbig3d_patch=nbig3d_patch+1
122 irec = irec + ((nctrl-1)/10)+2
123 READ(iin,rec=irec,err=999,fmt=
'(A)')line
125 IF (line(1:6) ==
'/IGE3D')
THEN
126 tabconpatch(nbpart_ig3d)%L_TAB_IG3D=nbig3d_patch
127 ALLOCATE(tabconpatch(nbpart_ig3d)%TAB_IG3D(nbig3d_patch))
128 nbpart_ig3d = nbpart_ig3d+1
131 READ(iin,rec=irec,err=999,fmt=
'(A)')line
136 tabconpatch(nbpart_ig3d)%L_TAB_IG3D=nbig3d_patch
137 ALLOCATE(tabconpatch(nbpart_ig3d)%TAB_IG3D(nbig3d_patch))
147 inod_ige = firstnod_isogeo
149 DO WHILE( i < numelig3d0 )
151 READ(iin,rec=irec,err=999,fmt=
'(A)')line
152 IF (line(1:1) ==
'/')
THEN
153 nbpart_ig3d = nbpart_ig3d+1
159 IF(ipart(4,j) == id)ids=j
162 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,c1=
"IGE3D",i1=id,i2=id,prmod=msg_cumu)
164 tabconpatch(nbpart_ig3d)%PID=ids
167 kxig3d(1,i) =ipart(1,ids)
168 kxig3d(2,i) =ipart(2,ids)
172 READ(iin,rec=irec,err=999,fmt=
'(A)')line
173 READ(line,err=999,fmt=fmt_8i) id,idx1,idy1,idz1,nctrl,nrafx,nrafy,nrafz
174 nbig3d_patch = nbig3d_patch + 1
175 tabconpatch(nbpart_ig3d)%TAB_IG3D(nbig3d_patch)=i
176 nctrlmax =
max(nctrlmax,nctrl)
183 kxig3d(12,i)=
max(nrafx,1)
184 kxig3d(13,i)=
max(nrafy,1)
185 kxig3d(14,i)=
max(nrafz,1)
186 kxig3d(15,i)=inod_ige
187 inod_ige = inod_ige + 64
189 nbline= ((nctrl-1)/10)+1
193 READ(iin,rec=irec,err=999,fmt=
'(A)')line
194 READ(line,err=999,fmt=fmt_10i) j10
197 ixig3d(iad)=usr2sys(j10(j),itabm1,mess,id)
205 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,prmod=msg_print)
210 tabids(i)= kxig3d(5,i)
212 CALL udouble(tabids,1,numelig3d0,mess,0,bid)
217 i2=min0(50,numelig3d0)
221 mid=ipm(1,kxig3d(1,i))
222 pid=igeo(1,kxig3d(2,i))
223 WRITE (iout,
'(4(I10,1X))') i,kxig3d(5,i),mid,pid
224 WRITE (iout,
'(10(I10,1X))')
225 . (itab(ixig3d(iad)),iad=kxig3d(4,i),kxig3d(4,i)+kxig3d(3,i)-1)
227 IF(i2==numelig3d0)
GOTO 200
229 i2=min0(i2+50,numelig3d0)
234 300
FORMAT(/
' ISO-GEOMETRIC ELEMENTS'/
235 +
' ----------------------'/
236 +
' 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)