41
42
43
47 USE matparam_def_mod
50
51
52
53
54
55
56
57#include "implicit_f.inc"
58
59
60
61#include "units_c.inc"
62#include "param_c.inc"
63
64
65
66 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
67 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD),INTENT(IN) :: LSUBMODEL
68 TYPE(UNIT_TYPE_), INTENT(in) :: UNITAB
69 INTEGER, INTENT(IN) :: MAT_ID
70 INTEGER, INTENT(INOUT) :: IPM(NPROPMI)
71 my_real,
INTENT(INOUT) :: pm(npropm)
72 INTEGER, INTENT(INOUT) :: NUPARAM,NUVAR,NFUNC,JTHE
73 TYPE(MLAW_TAG_) ,INTENT(INOUT) :: MTAG
74 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
75
76
77
78 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
79 INTEGER :: ILAW,ITF,ISPH,IAS
80 my_real :: rhor,rho0,t0,sph,as,bs,e0,timescal,tscal,escal,kscal
81
82 is_encrypted = .false.
83 is_available = .false.
84 ilaw = 18
85 jthe = 1
86
87
88
89
91
92
93
94
95 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
96 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
97
98 CALL hm_get_floatv(
'MAT_SPHEAT',sph ,is_available, lsubmodel, unitab)
99 CALL hm_get_floatv(
'MAT_A' ,as ,is_available, lsubmodel, unitab)
100 CALL hm_get_floatv(
'MAT_B' ,bs ,is_available, lsubmodel, unitab)
101
102 CALL hm_get_intv (
'Xt_fun' ,itf ,is_available, lsubmodel)
103 CALL hm_get_floatv(
'MAT_T0' ,t0 ,is_available, lsubmodel, unitab)
104 CALL hm_get_floatv(
'SCALE' ,timescal ,is_available, lsubmodel, unitab)
105
106 CALL hm_get_intv (
'FUN_A1' ,isph ,is_available, lsubmodel)
107 CALL hm_get_intv (
'FUN_A2' ,ias ,is_available, lsubmodel)
108 CALL hm_get_floatv(
'FScale11' ,tscal ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'FScale22' ,escal ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'FScale33' ,kscal ,is_available, lsubmodel, unitab)
111
112
113
114
115 IF (timescal == zero) THEN
116 timescal = one
117 ENDIF
118 IF (tscal == zero) THEN
119 tscal = one
120 ENDIF
121 IF (escal == zero) THEN
122 escal = one
123 ENDIF
124 IF (kscal == zero) THEN
125 kscal = one
126 ENDIF
127 timescal = one / timescal
128 escal = one / escal
129 IF (t0 == zero) t0 = three100
130 e0 = t0*sph
131
132
133 nfunc = 0
134 nuparam = 0
135 nuvar = 0
136
137
138 ipm(10)= 3
139 ipm(11)= itf
140 ipm(12)= isph
141 ipm(13)= ias
142
143 pm(23) = e0
144 pm(41) = timescal
145 pm(42) = tscal
146 pm(43) = escal
147 pm(44) = kscal
148 pm(71) = jthe+em01
149 pm(72) = zero
150 pm(69) = sph
151 pm(75) = as
152 pm(76) = bs
153 pm(79) = t0
154 pm(80) = infinity
155
156 pm(1) = rhor
157 pm(89) = rho0
158
159
160
161
162 mtag%G_TEMP = 1
163 mtag%G_DELTAX = 1
164 mtag%L_TEMP = 1
165 mtag%L_DELTAX = 1
166
167
168
169
171
173
174
176
177
178
179 WRITE(iout,1000) trim(titr),mat_id,ilaw
180 WRITE(iout,1100)
181 IF (is_encrypted) THEN
182 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
183 ELSE
184 WRITE(iout,1200) rho0,rhor
185 IF (itf > 0) WRITE(iout,1300) itf
186 WRITE(iout,1400) t0,sph,as,bs,isph,ias
187 ENDIF
188
189 1000 FORMAT(/
190 & 5x,a,/,
191 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . . . .=',i10/,
192 & 5x,'MATERIAL LAW . . . . . . . . . . . . . . . .=',i10/)
193 1100 FORMAT(
194 & 5x,' THERMAL MATERIAL ',/,
195 & 5x,'-------------------- ',/)
196 1200 FORMAT(
197 & 5x,'INITIAL DENSITY . . . . . . . . . . . . . .=',1pg20.13/,
198 & 5x,'REFERENCE DENSITY. . . . . . . . . . . . . .=',1pg20.13/)
199 1300 FORMAT(
200 & 5x,'TEMPERATURE LOAD CURVE . . . . . . . . . . .=',i10/)
201 1400 FORMAT(
202 & 5x,'T0 . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
203 & 5x,'SPECIFIC HEAT. . . . . . . . . . . . . . . .=',1pg20.13/,
204 & 5x,'AS . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
205 & 5x,'BS . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
206 & 5x,'CONDUCTIVITY CURVE NUMBER. . . . . . . . . .=',i10/,
207 & 5x,'TEMPERATURE VERSUS ENERGY CURVE NUMBER . . .=',i10/)
208
209 RETURN
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle