38 . IPM ,IGEO ,UNITAB ,LSUBMODEL)
65 USE reader_old_mod ,
ONLY : line
66 USE user_id_mod ,
ONLY : id_limit
67 use element_mod ,
only : nixq
76#include "implicit_f.inc"
80#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(,*)
99 INTEGER,
INTENT(IN)::IGEO(NPROPGI,*)
100 INTEGER,
INTENT(IN)::IPM(NPROPMI,*)
103 INTEGER,
INTENT(OUT)::IXQ(NIXQ,*)
104 INTEGER,
INTENT(OUT)::IPARTQ(*)
108 INTEGER I, J, I1, I2, ID,IDS,IPID,MT,MID,PID,UID,NDEGEN,STAT,
109 . iflagunit,index_part
110 CHARACTER MESS*40, MESS2*40
112 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SUB_QUAD,UID_QUAD
117 DATA mess/
'2D QUAD ELEMENTS DEFINITION '/
118 DATA mess2/
'2D QUAD ELEMENTS SELECTION FOR TH PLOT '/
124 ALLOCATE (sub_quad(numelq),stat=stat)
125 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'SUB_QUAD')
126 ALLOCATE (uid_quad(numelq),stat=stat)
127 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'UID_QUAD')
128 sub_quad(1:numelq) = 0
129 uid_quad(1:numelq) = 0
136 CALL cpp_quad_read(ixq,nixq,ipartq,sub_quad,uid_quad)
144 IF(sub_quad(i) /= 0)
THEN
145 IF(uid_quad(i) == 0 .AND. lsubmodel(sub_quad(i))%UID /= 0) uid_quad(i) = lsubmodel(sub_quad(i))%UID
150 IF(uid_quad(i) /= uid )
THEN
154 IF (unitab%UNIT_ID(j) == uid)
THEN
155 fac_l = unitab%FAC_L(j)
159 IF (uid/=0.AND.iflagunit==0)
THEN
160 CALL ancmsg(msgid=643,anmode=aninfo,msgtype=msgerror,i1=uid,c1=
'/QUAD')
166 IF( ipart(4,index_part) /= ipartq(i) )
THEN
168 IF(ipart(4,j)== ipartq(i) ) index_part = j
171 IF(ipart(4,index_part) /= ipartq(i))
THEN
172 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,c1=
"QUAD",i1=ipartq
174 ipartq(i) = index_part
176 mt=ipart(1,index_part)
177 ipid=ipart(2,index_part)
180 IF (ixq(nixq,i)>id_limit%GLOBAL)
THEN
181 CALL ancmsg(msgid=509,anmode=aninfo,msgtype=msgerror,i1=ixq(nixq,i),c1=line,c2=
'/QUAD')
182 ELSEIF (nadmesh/=0.AND.ixq(nixq,i)>id_limit%ADMESH)
THEN
183 CALL ancmsg(msgid=1069,anmode=aninfo,msgtype=msgerror,i1=ixq(nixq,i),c1=line,c2=
'/QUAD')
185 IF(( ixq(4,i) == ixq(5,i)) .OR. ( ixq(5,i) == 0 ))
THEN
187 CALL ancmsg(msgid=430,msgtype=msgwarning,i1=ixq(nixq,i),anmode=aninfo_blind_2,prmod=msg_cumu)
191 ixq(j,i)=usr2sys(ixq(j,i),itabm1,mess,id)
192 CALL anodset(ixq(j,i), check_shell)
197 IF(
ALLOCATED(sub_quad))
DEALLOCATE(sub_quad)
198 IF(
ALLOCATED(uid_quad))
DEALLOCATE(uid_quad)
204 90
WRITE (iout,
'(//A/A//A,A/)')titre(110),titre(111),titre(102),titre(105)
206 mid = ipm(1,ixq(1,i))
207 pid = igeo(1,ixq(6,i))
208 WRITE (iout,fmt=
'(8(I10,1X),1PG20.13,1X,1PG20.13)') ixq(nixq,i),i,mid,pid,(itab(ixq(j,i)),j=2,5)
210 IF(i2==numelq)
GOTO 200
212 i2=min0(i2+50,numelq)
218 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,prmod=msg_print)
225 CALL vdouble(ixq(nixq,1),nixq,numelq,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)