35 . AV, RHO0_, E0, PM, C0 ,
36 . C1, C2, C3, C4, C5 ,
37 . IPLA, GG, Y, BB, N ,
38 . CC, EPDR, CM, T0, TMELT,
39 . THETL, SPH, PLAMX, SIGMX, XKA,
40 . XKB, NU, A0, A1, A2 ,
42 . B1 , B2 , R1 , R2 ,W,
43 . VDET , PCJ , IBFRAC , PEXT ,VIS,
44 . VISV ,LSUBMODEL,UNITAB)
53#include "implicit_f.inc"
57 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
60 . av(4), rho0_(4), e0(4), pm(4), c0(4) ,
61 . c1(4), c2(4), c3(4), c4(4), c5(4) ,
62 . gg(4), y(4), bb(4), n(4) ,
63 . cc(4), epdr(4), cm(4), t0(4), tmelt(4),
64 . thetl(4),sph(4) , plamx(4), sigmx(4), xka(4) ,
65 . xkb(4), nu(4), a0(4), a1(4), a2(4) ,
67 . b1,b2,r1,r2,w,vdet,pcj,
71 TYPE(SUBMODEL_DATA),
INTENT(IN) :: LSUBMODEL(NSUBMOD)
75 LOGICAL :: IS_AVAILABLE
84 CALL hm_get_floatv(
'PEXT' ,pext ,is_available, lsubmodel, unitab)
85 CALL hm_get_floatv(
'MAT_NU' ,vis ,is_available, lsubmodel, unitab)
86 CALL hm_get_floatv(
'MAT_Lamda' ,visv ,is_available, lsubmodel, unitab)
109 ELSEIF(ipla(i)==1)
THEN
114 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c0
' ,C0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
115 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c1
' ,C1(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
116 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c2
' ,C2(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
117 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c3
' ,C3(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
118 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c4
' ,C4(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
119 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c5
' ,C5(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
120 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_eps
' ,GG(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
121 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_ea
' ,Y(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
122 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_eb
' ,BB(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
123 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_ec
' ,N(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
124 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_prab
' ,CC(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
125 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_prbc
' ,EPDR(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
126 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_prca
' ,CM(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
127 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_m
' ,T0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
128 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_tmax
' ,TMELT(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
129 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_bulk
' ,THETL(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
130 CALL HM_GET_FLOAT_ARRAY_INDEX('damp1
' ,SPH(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
131 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_a0
' ,PLAMX(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
132 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_a1
' ,SIGMX(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
133 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_a2
' ,XKA(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
134 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_amax
' ,XKB(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
135 ELSEIF(IPLA(I)==2)THEN
136 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_etan
' ,AV(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
137 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_beta
' ,RHO0_(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
138 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_e0
' ,E0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
139 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_pc
' ,PM(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
140 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c0
' ,C0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
141 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c1
' ,C1(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
142 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c2
' ,C2(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
143 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c3
' ,C3(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
144 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c4
' ,C4(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
145 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_c5
' ,C5(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
146 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_eps
' ,A0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
147 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_ea
' ,A1(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
148 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_eb
' ,A2(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
149 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_ec
' ,AMX(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
150 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_prab' ,y(i) ,i ,is_available, lsubmodel, unitab)
183 ELSEIF(ipla(i)==1)
THEN
209 ELSEIF(ipla(i)==2)
THEN
224 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_tpmod
' ,Y(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
225 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_e2
' ,NU(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
226 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_fbfc
' ,T0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
227 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_f2fc
' ,TMELT(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
228 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_sofc
' ,THETL(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
229 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_ppres
' ,SPH(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
230 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_ypres
' ,PLAMX(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
231 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_bpmod
' ,SIGMX(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
232 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_dil_y
' ,XKA(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
233 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_dil_f
' ,XKB(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
238 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_ssig
' ,AV(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
239 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_setan
' ,RHO0_(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
240 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_pdir1
' ,E0(I) ,I ,IS_AVAILABLE, LSUBMODEL, UNITAB)
241 CALL HM_GET_FLOAT_ARRAY_INDEX('mat_pdir2' ,pm(i) ,i ,is_available, lsubmodel, unitab)
257 ELSEIF(ipla(i)==1)
THEN
283 ELSEIF(ipla(i)==2)
THEN