38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
62 USE matparam_def_mod
64
65
66
67#include "implicit_f.inc"
68
69
70
71#include "units_c.inc"
72#include "param_c.inc"
73
74
75
76
77 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
78 INTEGER,INTENT(IN)::ID
79 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN)::TITR
80 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
81
82 INTEGER,INTENT(INOUT)::IPM(NPROPMI),ISRATE
83 my_real,
INTENT(INOUT)::pm(npropm)
84 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
85
86
87
89 . young, anu, g, c0, c1, e0, e1mn2, en1n2, sdsp, rho0, rhor
90 LOGICAL IS_AVAILABLE,IS_ENCRYPTED
91
92
93
94 is_encrypted = .false.
95 is_available = .false.
96
98
99 CALL hm_get_floatv(
'MAT_RHO', rho0 ,is_available,lsubmodel,unitab)
100 CALL hm_get_floatv(
'Refer_Rho',rhor ,is_available,lsubmodel,unitab)
101 CALL hm_get_floatv(
'MAT_E', young ,is_available,lsubmodel,unitab)
102 CALL hm_get_floatv(
'MAT_NU', anu ,is_available,lsubmodel,unitab)
103
104 IF(rhor == zero ) rhor=rho0
105
106 IF (young<=zero) THEN
108 . msgtype=msgerror,
109 . anmode=aninfo,
111 . c1=titr,
112 . c2='YOUNG''S MODULUS')
113 ENDIF
114 IF(anu==half)anu=zep499
115
116 g=young/(two*(one+anu))
117 c0=zero
118 c1=young/(three*(one-two*anu))
119 e0=zero
120 e1mn2=young/(one-anu**2)
121 en1n2=anu*e1mn2
122 sdsp =sqrt(young/
max(rhor,em20))
123 israte = 0
124
125 pm(1) =rhor
126 pm(20)=young
127 pm(21)=anu
128 pm(22)=g
129 pm(23)=e0
130 pm(24)=e1mn2
131 pm(25)=en1n2
132 pm(26)=five_over_6
133 pm(27)=sdsp
134 pm(31)=c0
135 pm(32)=c1
136 pm(89) =rho0
137
139 IF (anu > 0.49) THEN
141 ELSE
143 END IF
145
151
152 WRITE(iout,1001) trim(titr),
id,01
153 WRITE(iout,1000)
154 IF(is_encrypted)THEN
155 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
156 ELSE
157 WRITE(iout,1100)rho0
158 WRITE(iout,1300)young,anu,g
159 ENDIF
160
161 ipm(252)= 2
162 pm(105) = two*g/(c1+four_over_3*g)
163
164 RETURN
165 1000 FORMAT(
166 & 5x,' ELASTIC MATERIAL (/MAT/LAW01)',/,
167 & 5x,' -----------------------------')
168 1001 FORMAT(
169 & 5x,a,/,
170 & 5x,'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
171 & 5x,'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
172 1100 FORMAT(
173 & 5x,'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
174 1300 FORMAT(
175 & 5x,'YOUNG''S MODULUS . . . . . . . . . . . .=',e12.4/,
176 & 5x,'POISSON''S RATIO . . . . . . . . . . . .=',e12.4/,
177 & 5x,'SHEAR MODULUS . . . . . . . . . . . . .=',e12.4//)
178
179 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle
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)