39 . IPM ,IGEO ,UNITAB ,LSUBMODEL)
66 USE reader_old_mod ,
ONLY : line
67 USE user_id_mod ,
ONLY : id_limit
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(LIPART1,*)
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,N,MID,PID,UID,NDEGEN,JC,STAT,
109 . iflagunit,flag_fmt,flag_fmt_tmp,ifix_tmp,ishxfem,ioutn,ierror,index_part
110 CHARACTER MESS*40, MESS2*40
111 CHARACTER(LEN=NCHARTITLE) :: TITR
113 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SUB_QUAD,UID_QUAD
119 DATA mess/
'2D QUAD ELEMENTS DEFINITION '/
120 DATA mess2/
'2D QUAD ELEMENTS SELECTION FOR TH PLOT '/
126 ALLOCATE (sub_quad(numelq),stat=stat)
127 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'SUB_QUAD')
128 ALLOCATE (uid_quad(numelq),stat=stat)
129 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'UID_QUAD')
130 sub_quad(1:numelq) = 0
131 uid_quad(1:numelq) = 0
138 CALL cpp_quad_read(ixq,nixq,ipartq,sub_quad,uid_quad)
146 IF(sub_quad(i) /= 0)
THEN
147 IF(uid_quad(i) == 0 .AND. lsubmodel(sub_quad(i))%UID
152 IF(uid_quad(i) /= uid )
THEN
156 IF (unitab%UNIT_ID
THEN
157 fac_l = unitab%FAC_L(j)
161 IF (uid/=0.AND.iflagunit==0)
THEN
162 CALL ancmsg(msgid=643,anmode=aninfo,msgtype=msgerror,i1=uid,c1=
'/QUAD')
168 IF( ipart(4,index_part) /= ipartq(i) )
THEN
170 IF(ipart(4,j)== ipartq(i) ) index_part = j
173 IF(ipart(4,index_part) /= ipartq(i))
THEN
174 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,c1=
"QUAD",i1=ipartq(i),i2=ipartq(i),prmod=msg_cumu)
176 ipartq(i) = index_part
178 mt=ipart(1,index_part)
179 ipid=ipart(2,index_part)
182 IF (ixq(nixq,i)>id_limit%GLOBAL)
THEN
183 CALL ancmsg(msgid=509,anmode=aninfo,msgtype=msgerror,i1=ixq(nixq,i),c1=line,c2=
'/QUAD')
184 ELSEIF (nadmesh/=0.AND.ixq(nixq,i)>id_limit%ADMESH)
THEN
185 CALL ancmsg(msgid=1069,anmode=aninfo,msgtype=msgerror,i1=ixq(nixq,i),c1=line,c2=
'/QUAD')
187 IF(( ixq(4,i) == ixq(5,i)) .OR. ( ixq(5,i) == 0 ))
THEN
189 CALL ancmsg(msgid=430,msgtype=msgwarning,i1=ixq(nixq,i),anmode=aninfo_blind_2,prmod=msg_cumu)
193 ixq(j,i)=usr2sys(ixq(j,i),itabm1,mess,id)
194 CALL anodset(ixq(j,i), check_shell)
199 IF(
ALLOCATED(sub_quad))
DEALLOCATE(sub_quad)
200 IF(
ALLOCATED(uid_quad))
DEALLOCATE(uid_quad)
206 90
WRITE (iout,
'(//A/A//A,A/)')titre(110),titre(111),titre(102),titre(105)
208 mid = ipm(1,ixq(1,i))
209 pid = igeo(1,ixq(6,i))
210 WRITE (iout,fmt=
'(8(I10,1X),1PG20.13,1X,1PG20.13)') ixq(nixq,i),i,mid,pid,(itab(ixq(j,i)),j=2,5)
212 IF(i2==numelq)
GOTO 200
214 i2=min0(i2+50,numelq)
220 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,prmod=msg_print)
227 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)