38 . PM ,GEO ,ICNOD ,IGEO ,IPM ,
68 USE reader_old_mod ,
ONLY : line
69 USE user_id_mod ,
ONLY : id_limit
70 use element_mod ,
only : nixtg
77#include "implicit_f.inc"
81#include "analyse_name.inc"
90#include "remesh_c.inc"
95 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
96 INTEGER,
INTENT(IN)::ITAB(*)
97 INTEGER,
INTENT(IN)::ITABM1(*)
98 INTEGER,
INTENT(IN)::IPART(LIPART1
99INTEGER,
INTENT(IN)::IGEO(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, J, I1, I2, ,IDS,IPID,MT,N,MID,PID,UID,STAT,
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
131 ALLOCATE (sub_tria(numeltg0),stat=stat)
132 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
135 ALLOCATE (uid_tria(numeltg0),stat=stat)
136 IF (stat /= 0)
CALL ancmsg(msgid
139 ALLOCATE (tmp_ixtg(nixtg,numeltg0),stat=stat)
140 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
143 ALLOCATE (tmp_iparttg(numeltg0),stat=stat)
144 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
147 sub_tria(1:numeltg0) = 0
148 uid_tria(1:numeltg0) = 0
149 tmp_ixtg(1:nixtg,1:numeltg0) = 0
150 tmp_iparttg(1:numeltg0) = 0
158 CALL cpp_tria_read(tmp_ixtg,nixtg,tmp_iparttg,sub_tria,uid_tria)
165 iparttg_tmp = tmp_iparttg(n)
167 IF( ipart(4,index_part) /= iparttg_tmp)
THEN
169 IF(ipart(4,j)== iparttg_tmp )index_part = j
172 ish3n = igeo(18,ipart(2,index_part))
173 IF(kk == 6 .AND. ish3n==31) numeltg6 = numeltg6 + 1
175 IF((kk==3.AND.ish3n/=31).OR.(kk==6.AND.ish3n==31))
THEN
179 ixtg(j,i) = tmp_ixtg(j,n)
181 iparttg(i) = tmp_iparttg(n)
183 IF(sub_tria(n) /= 0)
THEN
184 IF(uid_tria(n) == 0 .AND. lsubmodel(sub_tria(n))%UID /= 0)
185 . uid_tria(n) = lsubmodel(sub_tria(n))%UID
190 IF(uid_tria(n) /= uid )
THEN
194 IF (unitab%UNIT_ID(j) == uid)
THEN
195 fac_l = unitab%FAC_L(j)
199 IF (uid/=0.AND.iflagunit==0)
THEN
200 CALL ancmsg(msgid=643,anmode=aninfo,msgtype=msgerror,
207 IF( ipart(4,index_part) /= iparttg(i) )
THEN
209 IF(ipart(4,j)== iparttg(i) ) index_part = j
212 IF( ipart(4,index_part) /= iparttg(i) )
THEN
215 . anmode=aninfo_blind_1,
221 iparttg(i) = index_part
223 mt=ipart(1,index_part)
224 ipid=ipart(2,index_part)
227 IF (ixtg(nixtg,i)>id_limit%GLOBAL)
THEN
228 CALL ancmsg(msgid=509,anmode=aninfo,msgtype=msgerror,
229 . i1=ixtg(nixtg,i),c1=line,c2=
'/TRIA')
230 ELSEIF (nadmesh/=0.AND.ixtg(nixtg,i)>id_limit%ADMESH)
THEN
231 CALL ancmsg(msgid=1069,anmode=aninfo,msgtype=msgerror,
232 . i1=ixtg(nixtg,i),c1=line,c2=
'/TRIA')
236 ixtg(j,i)=usr2sys(ixtg(j,i),itabm1,mess,
id)
237 CALL anodset(ixtg(j,i), check_shell)
240 IF (i == numeltg0) kk = 7
242 IF (i < numeltg0)
THEN
249 IF(
ALLOCATED(sub_tria))
DEALLOCATE(sub_tria)
250 IF(
ALLOCATED(uid_tria))
DEALLOCATE(uid_tria)
252 IF(
ALLOCATED(tmp_ixtg))
DEALLOCATE(tmp_ixtg)
253 IF(
ALLOCATED(tmp_iparttg))
DEALLOCATE(tmp_iparttg)
259 90
WRITE (iout,
'(//A/A//A/)')
' 2D TRIANGULAR ELEMENTS ',
260 &
' ELEMENT INTERNAL MATER PRSET NODE1 NODE2 NODE3'
262 mid = ipm(1,ixtg(1,i))
263 pid = igeo(1,ixtg(5,i))
264 WRITE (iout,
'(7(I10,1X))') ixtg(nixtg,i),i,mid,pid,
265 . (itab(ixtg(j,i)),j=2,4)
267 IF(i2==numeltg0)
GOTO 200
269 i2=min0(i2+50,numeltg0)
277 . anmode=aninfo_blind_1,
286 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)