39 . PM ,GEO ,ICNOD ,IGEO ,IPM ,
69 USE reader_old_mod ,
ONLY : line
70 USE user_id_mod ,
ONLY : id_limit
77#include "implicit_f.inc"
81#include "analyse_name.inc"
90#include "remesh_c.inc"
95 TYPE (UNIT_TYPE_),
INTENT(IN) :
96INTEGER,
INTENT(IN)::ITAB(*)
97 INTEGER,
INTENT(IN)::ITABM1(*)
98 INTEGER,
INTENT(IN)::IPART(LIPART1,*)
99 INTEGER,
INTENT(IN)::(NPROPGI,NUMGEO)
100 INTEGER,
INTENT(IN)::IPM(NPROPMI,*)
102 .
INTENT(IN)::geo(npropg,*)
104 .
INTENT(IN)::pm(npropm,*)
107 INTEGER,
INTENT(OUT)::IXTG(NIXTG,*)
108 INTEGER,
INTENT(OUT)::IPARTTG(*)
109 INTEGER,
INTENT(OUT)::ICNOD(*)
115 INTEGER I, , I1, I2, ID,IDS,IPID,MT,N,MID,PID,UID,JC,STAT,IPARTTG_TMP
118 DATA mess /
'2D TRIANGULAR ELEMENT DEFINITION '/
119 INTEGER ISH3N,KK,IFLAGUNIT
120 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SUB_TRIA,UID_TRIA,TMP_IPARTTG
121 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TMP_IXTG
132 ALLOCATE (sub_tria(numeltg0),stat=stat)
133 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
136 ALLOCATE (uid_tria(numeltg0),stat=stat)
137 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
140 ALLOCATE (tmp_ixtg(nixtg,numeltg0),stat=stat)
141 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
144 ALLOCATE (tmp_iparttg(numeltg0),stat=stat)
145 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
148 sub_tria(1:numeltg0) = 0
149 uid_tria(1:numeltg0) = 0
150 tmp_ixtg(1:nixtg,1:numeltg0) = 0
151 tmp_iparttg(1:numeltg0) = 0
159 CALL cpp_tria_read(tmp_ixtg,nixtg,tmp_iparttg,sub_tria,uid_tria)
166 iparttg_tmp = tmp_iparttg(n)
168 IF( ipart(4,index_part) /= iparttg_tmp)
THEN
170 IF(ipart(4,j)== iparttg_tmp )index_part = j
173 ish3n = igeo(18,ipart(2,index_part))
174 IF(kk == 6 .AND. ish3n==31) numeltg6 = numeltg6 + 1
176 IF((kk==3.AND.ish3n/=31).OR.(kk==6.AND.ish3n==31))
THEN
180 ixtg(j,i) = tmp_ixtg(j,n)
182 iparttg(i) = tmp_iparttg(n)
184 IF(sub_tria(n) /= 0)
THEN
185 IF(uid_tria(n) == 0 .AND. lsubmodel(sub_tria(n))%UID /= 0)
186 . uid_tria(n) = lsubmodel(sub_tria(n))%UID
191 IF(uid_tria(n) /= uid )
THEN
195 IF (unitab%UNIT_ID(j) == uid)
THEN
196 fac_l = unitab%FAC_L(j)
200 IF (uid/=0.AND.iflagunit==0)
THEN
201 CALL ancmsg(msgid=643,anmode=aninfo,msgtype=msgerror,
208 IF( ipart(4,index_part) /= iparttg(i) )
THEN
210 IF(ipart(4,j)== iparttg(i) ) index_part = j
213 IF( ipart(4,index_part) /= iparttg(i) )
THEN
216 . anmode=aninfo_blind_1,
222 iparttg(i) = index_part
224 mt=ipart(1,index_part)
225 ipid=ipart(2,index_part)
228 IF (ixtg(nixtg,i)>id_limit%GLOBAL)
THEN
229 CALL ancmsg(msgid=509,anmode=aninfo,msgtype
230 . i1=ixtg(nixtg,i),c1=line,c2=
'/TRIA')
231 ELSEIF (nadmesh/=0.AND.ixtg(nixtg,i)>id_limit%ADMESH)
THEN
232 CALL ancmsg(msgid=1069,anmode=aninfo,msgtype=msgerror,
233 . i1=ixtg(nixtg,i),c1=line,c2=
'/TRIA')
237 ixtg(j,i)=usr2sys(ixtg(j,i),itabm1,mess,id)
238 CALL anodset(ixtg(j,i), check_shell)
241 IF (i == numeltg0) kk = 7
243 IF (i < numeltg0)
THEN
250 IF(
ALLOCATED(sub_tria))
DEALLOCATE(sub_tria)
251 IF(
ALLOCATED(uid_tria))
DEALLOCATE(uid_tria)
253 IF(
ALLOCATED(tmp_ixtg))
DEALLOCATE(tmp_ixtg)
254 IF(
ALLOCATED(tmp_iparttg))
DEALLOCATE(tmp_iparttg)
260 90
WRITE (iout,
'(//A/A//A/)')
' 2D TRIANGULAR ELEMENTS ',
261 &
' ELEMENT INTERNAL MATER PRSET NODE1 NODE2 NODE3'
263 mid = ipm(1,ixtg(1,i))
264 pid = igeo(1,ixtg(5,i))
265 WRITE (iout,
'(7(I10,1X))') ixtg(nixtg,i),i,mid,pid,
266 . (itab(ixtg(j,i)),j=2,4)
268 IF(i2==numeltg0)
GOTO 200
270 i2=min0(i2+50,numeltg0)
278 . anmode=aninfo_blind_1,
287 CALL vdouble(ixtg(nixtg,1),nixtg,numeltg0,mess,0,bid)
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)