44 integer(i4b) :: i, j, kc, kt, kr
45 real(dp) :: kappa_const_val, c_const_val
46 real(dp) :: as_val, h_val, qgeo_val, k, z_above_base, erf_val_1, erf_val_2
47 real(dp) :: temp_ice_base, temp_scale_factor
58 #if (!defined(TEMP_INIT) || TEMP_INIT==1)
60 #if (defined(NMARS) || defined(SMARS)) /* Polar caps of Mars */
63 temp_c(kc,j,i) = -100.0_dp
66 #else /* all other domains */
69 temp_c(kc,j,i) = -10.0_dp
77 temp_c(kc,j,i) = temp_s(j,i)
82 #if (defined(NMARS) || defined(SMARS)) /* Polar caps of Mars */
84 #else /* all other domains */
88 if (maske(j,i)<=2_i2b)
then
106 temp_c(kc,j,i) = temp_s(j,i) &
107 + (q_geo(j,i)/kappa_const_val) &
108 *h_c(j,i)*(1.0_dp-eaz_c_quotient(kc))
113 if (temp_c(0,j,i) >= -beta*h_c(j,i))
then
115 temp_ice_base = -beta*h_c(j,i)
118 temp_c(kc,j,i) = temp_s(j,i) &
119 + (temp_ice_base-temp_s(j,i)) &
120 *(1.0_dp-eaz_c_quotient(kc))
127 temp_ice_base = -beta*h_c(j,i) - delta_tm_sw
130 temp_c(kc,j,i) = temp_s(j,i) &
131 + (temp_ice_base-temp_s(j,i)) &
132 *(1.0_dp-eaz_c_quotient(kc))
139 #if (defined(NMARS) || defined(SMARS)) /* Polar caps of Mars */
141 c_const_val =
c_val(-100.0_dp)
142 #else /* all other domains */
144 c_const_val =
c_val(-10.0_dp)
147 if (maske(j,i)<=2_i2b)
then
148 as_val = max(as_perp(j,i), epsi)
153 h_val = max(h_c(j,i) , eps)
154 qgeo_val = max(q_geo(j,i), eps)
156 k = sqrt( (kappa_const_val/(rho*c_const_val)) * (h_val/as_val) )
158 erf_val_1 = erf(h_c(j,i)/(sqrt(2.0_dp)*k))
161 z_above_base = h_c(j,i)*eaz_c_quotient(kc)
162 erf_val_2 = erf(z_above_base/(sqrt(2.0_dp)*k))
163 temp_c(kc,j,i) = temp_s(j,i) &
164 + (qgeo_val/kappa_const_val) &
165 * sqrt(0.5_dp*pi)*k*(erf_val_1-erf_val_2)
168 if ( (maske(j,i) <= 2_i2b).and.(temp_c(0,j,i) >= -beta*h_c(j,i)) )
then
169 temp_ice_base = -beta*h_c(j,i)
170 temp_scale_factor = (temp_ice_base-temp_s(j,i)) &
171 /(temp_c(0,j,i)-temp_s(j,i))
172 else if (maske(j,i) == 3_i2b)
then
173 temp_ice_base = -beta*h_c(j,i)-delta_tm_sw
174 temp_scale_factor = (temp_ice_base-temp_s(j,i)) &
175 /(temp_c(0,j,i)-temp_s(j,i))
177 temp_scale_factor = 1.0_dp
181 temp_c(kc,j,i) = temp_s(j,i) &
182 + temp_scale_factor*(temp_c(kc,j,i)-temp_s(j,i))
187 write(6, fmt=
'(a)')
' ice_temp:'
188 write(6, fmt=
'(a)')
' TEMP_INIT must be set to either 1, 2, 3 or 4!'
204 temp_c(kc,j,i) = temp_s(j,i)
212 write(6, fmt=
'(a)')
' ice_temp:'
213 write(6, fmt=
'(a)')
' Only to be called for ANF_DAT==1 or ANF_DAT==2!'
224 temp_r(kr,j,i) = temp_c(0,j,i) &
225 + (q_geo(j,i)/kappa_r) &
226 *h_r*(1.0_dp-zeta_r(kr))
241 #if (defined(ASF)) /* Austfonna */
243 age_c = 3500.0_dp*year_sec
244 age_t = 3500.0_dp*year_sec
246 #else /* all other domains */
248 age_c = 15000.0_dp*year_sec
249 age_t = 15000.0_dp*year_sec
Declarations of kind types for SICOPOLIS.
Declarations of global variables for SICOPOLIS (for the ANT domain).
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(.).
subroutine init_temp_water_age()
Initial temperature, water content and age.
Material quantities of ice: Rate factor, heat conductivity, specific heat (heat capacity).
Declarations of global variables for SICOPOLIS.