41 . THK ,IPM ,IGEO ,UNITAB,ITAG ,ANGLE ,LSUBMODEL)
71 USE reader_old_mod ,
ONLY : line
72 USE user_id_mod ,
ONLY : id_limit
81#include "implicit_f.inc"
85#include "analyse_name.inc"
95#include "remesh_c.inc"
100 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
101 INTEGER,
INTENT(IN)::ITAB(*)
102 INTEGER,
INTENT(IN)::ITABM1(*)
103 INTEGER,
INTENT(IN)::IPART(LIPART1,*)
104 INTEGER,
INTENT(IN)::IGEO(NPROPGI,*)
105 INTEGER,
INTENT(IN)::IPM(NPROPMI,*)
108 INTEGER,
INTENT(OUT)::IXC(,*)
109 INTEGER,
INTENT(OUT)::IPARTC(*)
110 INTEGER,
INTENT(OUT)::ITAG(*)
112 .
INTENT(OUT)::angle(*)
114 .
INTENT(OUT)::thk(*)
118 INTEGER I, J, I1, I2, ,IDS,IPID,MT,N,MID,PID,UID,NDEGEN,JC,STAT,
119 . iflagunit,flag_fmt,flag_fmt_tmp,ifix_tmp,ishxfem,ioutn,ierror,index_part
120 CHARACTER MESS*40, MESS2*40
121 CHARACTER(LEN=NCHARTITLE) :: TITR
124 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SUB_SHELL,UID_SHELL
125 real*8,
DIMENSION(:),
ALLOCATABLE :: hm_thk,hm_angle
131 DATA mess/
'3D SHELL ELEMENTS DEFINITION '/
132 DATA mess2/
'3D SHELL ELEMENTS SELECTION FOR TH PLOT '/
138 ALLOCATE (sub_shell(numelc0),stat=stat)
139 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
142 ALLOCATE (uid_shell(numelc0),stat=stat)
143 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
146 ALLOCATE (hm_thk(numelc0),stat=stat)
147 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
150 ALLOCATE (hm_angle(numelc0),stat=stat)
151 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
154 sub_shell(1:numelc0) = 0
155 uid_shell(1:numelc0) = 0
156 hm_thk(1:numelc0) = zero
157 hm_angle(1:numelc0) = zero
164 CALL cpp_shell_read(ixc,nixc,ipartc,hm_angle,hm_thk,sub_shell,uid_shell)
172 angle(i) = hm_angle(i) * pi / hundred80
177 IF(sub_shell(i) /= 0)
THEN
178 IF(uid_shell(i) == 0 .AND. lsubmodel(sub_shell(i))%UID /= 0)
179 . uid_shell(i) = lsubmodel(sub_shell(i))%UID
185 IF(uid_shell(i) /= uid )
THEN
189 IF (unitab%UNIT_ID(j) == uid)
THEN
190 fac_l = unitab%FAC_L(j)
194 IF (uid/=0.AND.iflagunit==0)
THEN
195 CALL ancmsg(msgid=643,anmode=aninfo,msgtype=msgerror,
196 . i1=uid,c1=
'/SHELL')
199 thk(i) = thk(i) * fac_l
203 IF( ipart(4,index_part) /= ipartc(i) )
THEN
205 IF(ipart(4,j)== ipartc(i) ) index_part = j
208 IF(ipart(4,index_part) /= ipartc(i))
THEN
211 . anmode=aninfo_blind_1,
217 ipartc(i) = index_part
219 mt=ipart(1,index_part)
220 ipid=ipart(2,index_part)
223 IF (ixc(nixc,i)>id_limit%GLOBAL)
THEN
224 CALL ancmsg(msgid=509,anmode=aninfo,msgtype=msgerror,
225 . i1=ixc(nixc,i),c1=line,c2=
'/SHELL')
226 ELSEIF (nadmesh/=0.AND.ixc(nixc,i)>id_limit%ADMESH)
THEN
227 CALL ancmsg(msgid=1069,anmode=aninfo,msgtype=msgerror,
228 . i1=ixc(nixc,i),c1=line,c2=
'/SHELL')
230 IF( ( ixc(4,i) == ixc(5,i)) .OR.
231 . ( ixc(5,i) == 0 ))
THEN
234 . msgtype=msgwarning,
236 . anmode=aninfo_blind_2,
240 CALL apartset(index_part, check_thick_shell)
244 ixc(j,i)=usr2sys(ixc(j,i),itabm1,mess,
id)
245 CALL anodset(ixc(j,i), check_shell)
248 ishxfem = igeo(19,ipid)
258 IF(
ALLOCATED(sub_shell))
DEALLOCATE(sub_shell)
259 IF(
ALLOCATED(uid_shell))
DEALLOCATE(uid_shell)
260 IF(
ALLOCATED(hm_thk))
DEALLOCATE(hm_thk)
261 IF(
ALLOCATED(hm_angle))
DEALLOCATE(hm_angle)
267 90
WRITE (iout,
'(//A/A//A,A/)')titre(110),titre(111),titre(102),titre(105)
269 mid = ipm(1,ixc(1,i))
270 pid = igeo(1,ixc(6,i))
271 WRITE (iout,fmt=
'(8(I10,1X),1PG20.13,1X,1PG20.13)') ixc(nixc,i),i,mid,pid,
272 . (itab(ixc(j,i)),j=2,5),angle(i),thk(i)
274 IF(i2==numelc0)
GOTO 200
284 . anmode=aninfo_blind_1,
292 CALL vdouble(ixc(nixc,1),nixc,numelc0,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)