40 . THK ,PM ,GEO ,ICNOD ,IGEO ,IPM ,
41 . UNITAB ,ANGLE ,LSUBMODEL)
72 USE reader_old_mod ,
ONLY : line
73 USE user_id_mod ,
ONLY : id_limit
80#include "implicit_f.inc"
84#include "analyse_name.inc"
93#include "remesh_c.inc"
98 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
99 INTEGER,
INTENT(IN)::ITAB(*)
101INTEGER,
INTENT(IN)::IPART(LIPART1,*)
102 INTEGER,
INTENT(IN)::IGEO(NPROPGI,NUMGEO)
103 INTEGER,
INTENT(IN)::IPM(,*)
104 my_real,
INTENT(IN)::geo(npropg,*)
105 my_real,
INTENT(IN)::pm(npropm,*)
108 INTEGER,
INTENT(OUT)::IXTG(NIXTG,*)
109 INTEGER,
INTENT(OUT)::IPARTTG(*)
110 INTEGER,
INTENT(OUT)::ICNOD(*)
117 INTEGER I, J, I1, I2, ID,IDS,IPID,MT,,MID,PID,UID,JC,STAT,IPARTTG_TMP
120 DATA mess /
'3D TRIANGULAR SHELL ELEMENT DEFINITION '/
121 INTEGER ISH3N,KK,IFLAGUNIT
122 INTEGER,
DIMENSION(:),
ALLOCATABLE :: SUB_SH3N,UID_SH3N,TMP_IPARTTG
123 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: TMP_IXTG
124 real*8,
DIMENSION(:),
ALLOCATABLE :: hm_thk,hm_angle
134 ALLOCATE (sub_sh3n(numeltg0),stat=stat)
135 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'SUB_SH3N')
136 ALLOCATE (uid_sh3n(numeltg0),stat=stat)
137 IF (stat /= 0)
CALL ancmsg(msgid=
'UID_SH3N')
138 ALLOCATE (hm_thk(numeltg0),stat=stat)
139 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'HM_THK')
140 ALLOCATE (hm_angle(numeltg0),stat=stat)
141 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'HM_ANGLE')
142 ALLOCATE (tmp_ixtg(nixtg,numeltg0),stat=stat)
143 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'TMP_IXTG')
144 ALLOCATE (tmp_iparttg(numeltg0),stat=stat)
145 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'TMP_IPARTTG')
146 sub_sh3n(1:numeltg0) = 0
147 uid_sh3n(1:numeltg0) = 0
148 tmp_ixtg(1:nixtg,1:numeltg0) = 0
149 tmp_iparttg(1:numeltg0) = 0
150 hm_thk(1:numeltg0) = zero
151 hm_angle(1:numeltg0) = zero
159 CALL cpp_sh3n_read(tmp_ixtg,nixtg,tmp_iparttg,hm_angle,hm_thk,sub_sh3n,uid_sh3n)
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)
186 angle(i) = hm_angle(n) * pi / hundred80
191 IF(sub_sh3n(n) /= 0)
THEN
192 IF(uid_sh3n(n) == 0 .AND. lsubmodel(sub_sh3n(n))%UID /= 0) uid_sh3n(n) = lsubmodel(sub_sh3n(n))%UID
197 IF(uid_sh3n(n) /= uid )
THEN
201 IF (unitab%UNIT_ID(j) == uid)
THEN
202 fac_l = unitab%FAC_L(j)
206 IF (uid/=0.AND.iflagunit==0)
THEN
207 CALL ancmsg(msgid=643,anmode=aninfo,msgtype=msgerror,i1=uid,c1=
'/SH3N')
210 thk(i) = thk(i) * fac_l
214 IF( ipart(4,index_part) /= iparttg(i) )
THEN
216 IF(ipart(4,j)== iparttg(i) ) index_part = j
219 IF( ipart(4,index_part) /= iparttg(i) )
THEN
220 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,c1=
"SH3N",i1=iparttg(i),i2=iparttg(i),prmod=msg_cumu)
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=msgerror,i1=ixtg(nixtg,i),c1=line,c2=
'/SH3N')
230 ELSEIF (nadmesh/=0.AND.ixtg(nixtg,i)>id_limit%ADMESH)
THEN
231 CALL ancmsg(msgid=1069,anmode=aninfo,msgtype=msgerror,i1=ixtg
'/SH3N')
234 CALL apartset(index_part, check_thick_shell)
238 ixtg(j,i)=usr2sys(ixtg(j,i),itabm1,mess,id)
239 CALL anodset(ixtg(j,i), check_shell)
242 IF (i == numeltg0) kk = 7
244 IF (i < numeltg0)
THEN
251 IF(
ALLOCATED(sub_sh3n))
DEALLOCATE(sub_sh3n)
252 IF(
ALLOCATED(uid_sh3n))
DEALLOCATE(uid_sh3n)
253 IF(
ALLOCATED(hm_thk))
DEALLOCATE(hm_thk)
254 IF(
ALLOCATED(hm_angle))
DEALLOCATE(hm_angle)
256 IF(
ALLOCATED(tmp_ixtg))
DEALLOCATE(tmp_ixtg)
257 IF(
ALLOCATED(tmp_iparttg))
DEALLOCATE(tmp_iparttg)
263 90
WRITE (iout,
'(//A/A//A/)')
' TRIANGULAR SHELL ELEMENTS ',
' ELEMENT INTERNAL MATER PRSET NODE1 NODE2 NODE3'
265 mid = ipm(1,ixtg(1,i))
266 pid = igeo(1,ixtg(5,i))
267 WRITE (iout,
'(7(I10,1X),1PG20.13,1PG20.13)') ixtg(nixtg,i),i,mid,pid,
268 . (itab(ixtg(j,i)),j=2,4),angle(i),thk(i)
270 IF(i2==numeltg0)
GOTO 200
272 i2=min0(i2+50,numeltg0)
278 CALL ancmsg(msgid=402,msgtype=msgerror,anmode=aninfo_blind_1,prmod=msg_print)
285 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)