40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
64 USE matparam_def_mod
66
67
68
69#include "implicit_f.inc"
70
71
72
73#include "units_c.inc"
74#include "param_c.inc"
75
76
77
78 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
79 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
80 my_real,
DIMENSION(100) ,
INTENT(INOUT) :: parmat
81 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
82 INTEGER, DIMENSION(MAXFUNC) ,INTENT(INOUT) :: IFUNC
83 INTEGER, INTENT(INOUT) :: ISRATE,IMATVIS,NFUNC,MAXFUNC,MAXUPARAM,NUPARAM,NUVAR
84 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
85 INTEGER,INTENT(IN) :: MAT_ID
86 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
87 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
88 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
89
90
91
96 LOGICAL :: IS_ENCRYPTED,IS_AVAILABLE
97
98
99
100 israte=0
101 imatvis=1
102 is_encrypted = .false.
103 is_available = .false.
104
105
107
108 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
110
111 CALL hm_get_floatv(
'MAT_BULK' ,bulk ,is_available, lsubmodel, unitab)
112
113
114 CALL hm_get_floatv(
'MAT_G0' ,g0 ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv(
'MAT_GI' ,gi ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_DECAY' ,beta ,is_available, lsubmodel, unitab)
117
118 CALL hm_get_floatv(
'MAT_P0' ,p0 ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'MAT_PHI' ,phi ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_GAMA0' ,gama0 ,is_available, lsubmodel, unitab)
121
122
123
124
125 IF (rhor==zero) rhor=rho0
126
127 nuparam=7
128 nfunc=0
129 nuvar=8
130
131 uparam(1)=bulk
132 uparam(2)=g0
133 uparam(3)=gi
134 uparam(4)=beta
135 uparam(5)=p0
136 uparam(6)=phi
137 uparam(7)=gama0
138
139 young = (nine*bulk*g0)/(three*bulk + g0)
140
141 parmat(1) = bulk
142
143 parmat(2) = young
144
145 parmat(16) = 2
146 parmat(17) = two*g0/(bulk + four_over_3*g0)
147
148 pm(1) = rhor
149 pm(89) = rho0
150 pm(12) = sqrt(
max(zero, g0))
151 pm(22) = g0
152 pm(27) = sqrt(young/rho0)
153
154
156
157
163
164 WRITE(iout,1001) trim(titr),mat_id,34
165 WRITE(iout,1000)
166
167 IF(is_encrypted)THEN
168 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
169 ELSE
170 WRITE(iout,1002) rho0
171 WRITE(iout,1100) bulk,g0,gi,beta,p0,phi,gama0
172 ENDIF
173
174 RETURN
175
176 1000 FORMAT
177 & (5x,14h viscoelastic,/,
178 & 5x,14h ------------,//)
179 1001 FORMAT(/
180 & 5x,a,/,
181 & 5x, 'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
182 & 5x, 'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
183 1002 FORMAT(
184 & 5x, 'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
185 1100 FORMAT
186 & (5x, 'BULK MODULUS. . . . . . . . . . . . . .=',1pg20.13/
187 & ,5x, 'SHEAR MODULUS (SHORT TIME). . . . . . .=',1pg20.13/
188 & ,5x, 'SHEAR MODULUS (LONG TIME) . . . . . . .=',1pg20.13/
189 & ,5x, 'DECAY CONSTANT. . . . . . . . . . . . .=',1pg20.13//
190 & ,5x, 'INITIAL FOAM PRESSURE . . . . . . . . .=',1pg20.13/
191 & ,5x, 'RATIO OF FOAM TO POLYMER DENSITY. . . .=',1pg20.13/
192 & ,5x, 'INITIAL VOLUMETRIC STRAIN. . . .. . . .=',1pg20.13//)
193
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