40 . ISKN,IG,TITR,IGTYP,PROP_TAG,GEO,LSUBMODEL,SUB_ID)
50#include "implicit_f.inc"
57#include "tablen_c.inc"
71 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
72 INTEGER IOUT,NUVAR,ISKN(,*),IG,IGTYP,SUB_ID
74 CHARACTER(LEN=NCHARTITLE)::TITR
75 TYPE(
prop_tag_) ,
DIMENSION(0:MAXPROP) :: PROP_TAG
76 INTEGER SET_U_PNU,SET_U_GEO,
78 EXTERNAL set_u_pnu,set_u_geo
87 INTEGER ISK,IUTYP,PID1,PID2,MID1,IERROR,K
89 . xk,
area,ixx,iyy,izz,aa,ray,ry,rz
90 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
93 is_encrypted = .false.
94 is_available = .false.
102 CALL hm_get_intv(
'P36_lutype',iutyp,is_available,lsubmodel)
112 CALL hm_get_intv(
'SKEW_CSID',isk,is_available,lsubmodel)
113 IF(isk == 0 .AND. sub_id /= 0 ) isk = lsubmodel(sub_id)%SKEW
114 CALL hm_get_intv(
'PROP_ID1',pid1,is_available,lsubmodel)
115 CALL hm_get_intv(
'PROP_ID2',pid2,is_available,lsubmodel)
125 ierror = set_u_pnu(1,pid1,kuprop)
126 ierror = set_u_pnu(2,pid2,kuprop)
129 IF(isk == iskn(4,k+1))
THEN
134 CALL ancmsg(msgid=137,anmode=aninfo,msgtype=msgerror,
137 . i1=ig,i2=isk,c3=titr)
144 WRITE(iout,
'(5X,A,//)')'confidential data
'
146 WRITE(IOUT,1000)ISKN(4,ISK),PID1,PID2,XK
157 CALL HM_GET_INTV('mat_id
',MID1,IS_AVAILABLE,LSUBMODEL)
161 CALL HM_GET_FLOATV('area',AREA,IS_AVAILABLE,LSUBMODEL,UNITAB)
162 CALL HM_GET_FLOATV('ixx
',IXX,IS_AVAILABLE,LSUBMODEL,UNITAB)
163 CALL HM_GET_FLOATV('iyy
',IYY,IS_AVAILABLE,LSUBMODEL,UNITAB)
164 CALL HM_GET_FLOATV('izz
',IZZ,IS_AVAILABLE,LSUBMODEL,UNITAB)
165 CALL HM_GET_FLOATV('ray
',RAY,IS_AVAILABLE,LSUBMODEL,UNITAB)
168 IERROR = SET_U_PNU(1,MID1,KUMAT)
170.AND.
IF(RAY==0AREA/=0) THEN
171.OR..OR.
IF(IXX==0IYY==0IZZ==0) THEN
172 CALL ANCMSG(MSGID=640,
174 . ANMODE=ANINFO_BLIND_1,
180.AND.
IF ((AREA<=ZERO)(RAY<=ZERO)) THEN
181 WRITE(IOUT,*)' ** error : property input
'
182.NOT.
IF( IS_ENCRYPTED)THEN
183 WRITE(IOUT,*)' area =
',AREA,' r =
',RAY
187.AND.
IF ((AREA<=ZERO)(RAY/=ZERO)) THEN
190 IXX=AREA*RAY*RAY*HALF
198 RY=SQRT(FOUR*IYY/AREA)
199 RZ=SQRT(FOUR*IZZ/AREA)
203 IERROR = SET_U_GEO(1,AA)
204 IERROR = SET_U_GEO(2,AREA)
205 IERROR = SET_U_GEO(3,IXX)
206 IERROR = SET_U_GEO(4,IYY)
207 IERROR = SET_U_GEO(5,IZZ)
208 IERROR = SET_U_GEO(6,RY)
209 IERROR = SET_U_GEO(7,RZ)
212 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
214 WRITE(IOUT,2000)MID1,AREA,IXX,IYY,IZZ,RY,RZ
220 PROP_TAG(IGTYP)%G_EINT = 1
221 PROP_TAG(IGTYP)%G_FOR = 3
222 PROP_TAG(IGTYP)%G_MOM = 5
223 PROP_TAG(IGTYP)%G_SKEW = 6
224 PROP_TAG(IGTYP)%G_MASS = 1
225 PROP_TAG(IGTYP)%G_V_REPCVT = 3 ! -- VITESSES REPERE CONVECTEE (V_REPCVT)
226 PROP_TAG(IGTYP)%G_VR_REPCVT = 3 ! -- VITESSES REPERE CONVECTEE (VR_REPCVT)
228 IF(NINT(GEO(25)) > 0) PROP_TAG(IGTYP)%G_NUVAR = NINT(GEO(25))
232 WRITE(IOUT,*)' **error in property 36 input
'
235 & 5X,' user property
TYPE 1 (used by spring elements)
',/,
236 & 5X,' --------------------
',//,
237 & 5X,'skew
id . . . . . . . . . . . . . . . .=
',I10/
238 & 5X,'first
END TYPE 2 USER PROPERTY ID . . .=
',I10/
239 & 5X,'SECOND END TYPE 2 USER PROPERTY ID. . .=',I10/
240 & 5x,
'STIFFNESS FOR INTERFACE . . . . . . . .=',1pg20.13//)
242 & 5x,
' USER PROPERTY TYPE 2 (used by property type 1) ',/,
243 & 5x,
' -------------------- ',//,
244 & 5x,
'USER MATERIAL ID. . . . . . . . . . . .=',i10/,
245 & 5x,
'AREA. . . . . . . . . . . . . . . . . .=',1pg20.13/,
246 & 5x,
'TORSION SECTION INERTIA . . . . . . . .=',1pg20.13/,
247 & 5x,
'BENDING SECTION INERTIA IYY. . . . . . .=',1pg20.13/,
248 & 5x,
'BENDING SECTION INERTIA IZZ. . . . . . .=',1pg20.13/,
249 & 5x,
'BENDING SECTION RAYON RY . . . . . . .=',1pg20.13/,
250 & 5x,
'BENDING SECTION RAYON RZ . . . . . . .=',1pg20.13//)
252 & 5x,
'USER PROPERTY SET'/,
253 & 5x,
'PROPERTY SET NUMBER . . . . . . . . . .=',i10)
268 3 IX ,XL ,MASS ,XINER ,STIFM ,
269 4 STIFR ,VISCM ,VISCR ,UVAR ,NUVAR )
342#include "implicit_f.inc"
346 INTEGER IOUT,,NEL,IPROP,
348 . GET_U_PNU,GET_U_PID,GET_U_MID,GET_U_MNU,
351 . xl(nel) ,mass(nel) ,xiner(nel) ,stifm(nel) ,
352 . stifr(nel),viscm(nel) ,viscr(nel),uvar(nuvar,*),
353 . get_u_mat,get_u_geo
354 EXTERNAL get_u_pnu,get_u_mnu,get_u_mat,get_u_geo,get_u_pid,get_u_mid
362 . fac,rho,
area,ixx,iyy,izz,imyz,young,g,
364 . area2,ixx2,iyy2,izz2,rho2,young2,g2,
365 . ry1,rz1,ry2,rz2,ry,rz,xl3,ktran,krot,
366 . k11,k22,k26,k33,k35,k44,k55,k5b,k66,k6c,
367 . dt1,dt2,xl2,atmp,ary,arz
369 . IMAT1,IPROP1,IUTYP1
374 iprop1 = get_u_pnu(1,iprop,kprop)
375 iprop2 = get_u_pnu(2,iprop,kprop)
379 iutyp1 = nint(get_u_geo(1,iprop1))
380 WRITE(iout,*)
' **VALUE OF IUTYP1',iutyp1
382 WRITE(iout
' **ERROR SPRING USER PROPERTY',
383 . get_u_pid(iprop),
' REFERS TO WRONG USER PROPERTY',
386 area1 = get_u_geo(2,iprop1)
387 ixx1 = get_u_geo(3,iprop1)
388 iyy1 = get_u_geo(4,iprop1)
389 izz1 = get_u_geo(5,iprop1)
390 ry1 = get_u_geo(6,iprop1)
391 rz1 = get_u_geo(7,iprop1)
392 imat1 = get_u_pnu(1,iprop1,kmat)
393 young1 = get_u_mat(7,imat1)
394 g1 = get_u_mat(6,imat1)
395 rho1 = get_u_mat(0,imat1)
399 iutyp2 = nint(get_u_geo(1,iprop2))
401 WRITE(iout,*)
' **ERROR SPRING USER PROPERTY',
402 . get_u_pid(iprop),
' REFERS TO WRONG USER PROPERTY',
405 area2 = get_u_geo(2,iprop2)
406 ixx2 = get_u_geo(3,iprop2)
407 iyy2 = get_u_geo(4,iprop2)
408 izz2 = get_u_geo(5,iprop2)
409 ry2 = get_u_geo(6,iprop2)
410 rz2 = get_u_geo(7,iprop2)
414 imat2 = get_u_pnu(1,iprop2,kmat)
415 young2 = get_u_mat(7,imat2)
416 g2 = get_u_mat(6,imat2)
417 rho2 = get_u_mat(0,imat2)
421 area = half*(area1+area2)
422 rho = half*(rho1+rho2)
424 ixx = half*(ixx1+ixx2)
425 iyy = half*(iyy1+iyy2)
426 izz = half*(izz1+izz2)
430 young = half*(young1+young2)
438 WRITE(iout,*)
' **ERROR ZERO LENGTH SPRING :'
446 xiner(i) = xl(i)*rho*
max(ixx,imyz+
area*xl(i)*xl(i)/12)
455 xl2 = xl(i)*xl(i)/12.
456 ary = one/(atmp+xl2/
max(em20,iyy))
457 arz = one/(atmp+xl2/
max(em20,izz))
458 ktran =
max(
area,ary,arz)/xl(i)
459 krot = 4. *
max(iyy/xl(i),izz/xl(i))
460 stifm(i) = young*ktran
461 stifr(i) =
max( g*ixx/xl(i),young*krot)
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)