45 real(dp),
dimension(-256:255),
private :: rf
48 real(dp) ,
private :: r_t
50 real(dp),
dimension(-256:255),
private :: kappa
52 real(dp),
dimension(-256:255),
private :: c
55 real(dp) ,
private :: rho_i
58 real(dp) ,
private :: rho_c
61 real(dp) ,
private :: kappa_c
64 real(dp) ,
private :: c_c
75 n_temp_min, n_temp_max, &
76 rho_i_val, rho_c_val, kappa_c_val, c_c_val)
80 integer(i4b),
intent(in) :: n_temp_min, n_temp_max
81 real(dp),
dimension(n_temp_min:n_temp_max), &
82 intent(in) :: rf_table, kappa_table, c_table
83 real(dp),
intent(in) :: r_t_val
84 real(dp),
optional,
intent(in) :: rho_i_val, rho_c_val, kappa_c_val, c_c_val
94 if ((n_temp_min <= -256).or.(n_temp_max >= 255)) &
95 stop
' ice_mat_eqs_pars: Temperature indices out of allowed range!'
99 do n=n_temp_min, n_temp_max
101 kappa(n) = kappa_table(n)
105 do n=-256, n_temp_min-1
106 rf(n) = rf(n_temp_min)
107 kappa(n) = kappa(n_temp_min)
111 do n=n_temp_max+1, 255
112 rf(n) = rf(n_temp_max)
113 kappa(n) = kappa(n_temp_max)
121 if ( present(rho_i_val) )
then
127 if ( present(rho_c_val) )
then
133 if ( present(kappa_c_val) )
then
134 kappa_c = kappa_c_val
139 if ( present(c_c_val) )
then
159 real(dp),
intent(in) :: temp_val, temp_m_val
161 real(dp) :: temp_h_val
163 temp_h_val = temp_val-temp_m_val
166 +(rf(floor(temp_h_val)+1)-rf(floor(temp_h_val))) &
167 *(temp_h_val-
real(floor(temp_h_val),dp))
182 real(dp),
intent(in) :: omega_val
184 ratefac_t = rf(0)*(1.0_dp+r_t*(omega_val))
200 real(dp),
intent(in) :: temp_val, temp_m_val, omega_val
202 real(dp) :: temp_h_val
204 temp_h_val = temp_val-temp_m_val
207 +(rf(floor(temp_h_val)+1)-rf(floor(temp_h_val))) &
208 *(temp_h_val-
real(floor(temp_h_val),dp)) ) &
209 *(1.0_dp+r_t*(omega_val))
225 real(dp),
intent(in) :: temp_val
227 real(dp) :: kappa_ice
231 #if defined(FRAC_DUST)
232 kappa_ice = kappa(floor(temp_val)) &
233 +(kappa(floor(temp_val)+1)-kappa(floor(temp_val))) &
234 *(temp_val-
real(floor(temp_val),dp))
237 +(kappa(floor(temp_val)+1)-kappa(floor(temp_val))) &
238 *(temp_val-
real(floor(temp_val),dp))
244 #if defined(FRAC_DUST)
245 kappa_val = (1.0_dp-frac_dust)*kappa_ice + frac_dust*kappa_c
262 real(dp),
intent(in) :: temp_val
268 #if defined(FRAC_DUST)
269 c_ice = c(floor(temp_val)) &
270 +(c(floor(temp_val)+1)-c(floor(temp_val))) &
271 *(temp_val-
real(floor(temp_val),dp))
273 c_val = c(floor(temp_val)) &
274 +(c(floor(temp_val)+1)-c(floor(temp_val))) &
275 *(temp_val-
real(floor(temp_val),dp))
281 #if defined(FRAC_DUST)
282 c_val = rho_inv * ( (1.0_dp-frac_dust)*rho_i*c_ice + frac_dust*rho_c*c_c )
subroutine, public ice_mat_eqs_pars(RF_table, R_T_val, KAPPA_table, C_table, n_temp_min, n_temp_max, RHO_I_val, RHO_C_val, KAPPA_C_val, C_C_val)
Setting of required physical parameters.
real(dp) function, public ratefac_t(omega_val)
Rate factor for temperate ice.
Declarations of kind types for SICOPOLIS.
real(dp) function, public ratefac_c_t(temp_val, omega_val, temp_m_val)
Rate factor for cold and temperate ice: Combination of ratefac_c and ratefac_t (only for the enthalpy...
Declarations of global variables for SICOPOLIS (for the ANT domain).
real(dp) function, public ratefac_c(temp_val, temp_m_val)
Rate factor for cold ice: Linear interpolation of tabulated values in RF(.).
real(dp) function, public kappa_val(temp_val)
Heat conductivity of ice: Linear interpolation of tabulated values in KAPPA(.).
real(dp) function, public c_val(temp_val)
Specific heat of ice: Linear interpolation of tabulated values in C(.).
Material quantities of ice: Rate factor, heat conductivity, specific heat (heat capacity).
Declarations of global variables for SICOPOLIS.