61 #if (MARGIN==3) /* floating ice */ 62 call calc_enhance_floating_const()
65 #if (defined(NMARS) || defined(SMARS)) /* Martian polar caps */ 66 call mod_enhance_dust()
81 integer(i4b) :: i, j, kc, kt
84 age_trans = age_trans_0*year_sec
90 if (
age_t(kt,j,i) < age_trans)
then 91 enh_t(kt,j,i) = enh_intg
93 enh_t(kt,j,i) = enh_fact
98 if (
age_c(kc,j,i) < age_trans)
then 99 enh_c(kc,j,i) = enh_intg
101 enh_c(kc,j,i) = enh_fact
108 #if (MARGIN==3) /* floating ice */ 109 call calc_enhance_floating_const()
112 #if (defined(NMARS) || defined(SMARS)) /* Martian polar caps */ 113 call mod_enhance_dust()
128 real(dp),
intent(in) :: time
130 integer(i4b) :: i, j, kc, kt
131 real(dp) :: date_trans1, date_trans2, date_trans3
133 date_trans1 = date_trans1_0*year_sec
134 date_trans2 = date_trans2_0*year_sec
135 date_trans3 = date_trans3_0*year_sec
141 if ( (time-
age_t(kt,j,i)) < date_trans1 )
then 142 enh_t(kt,j,i) = enh_fact
143 else if ( ((time-
age_t(kt,j,i)) >= date_trans1).and. &
144 ((time-
age_t(kt,j,i)) < date_trans2) )
then 145 enh_t(kt,j,i) = enh_intg
146 else if ( ((time-
age_t(kt,j,i)) >= date_trans2).and. &
147 ((time-
age_t(kt,j,i)) < date_trans3) )
then 148 enh_t(kt,j,i) = enh_fact
150 enh_t(kt,j,i) = enh_intg
155 if ( (time-
age_c(kc,j,i)) < date_trans1 )
then 156 enh_c(kc,j,i) = enh_fact
157 else if ( ((time-
age_c(kc,j,i)) >= date_trans1).and. &
158 ((time-
age_c(kc,j,i)) < date_trans2) )
then 159 enh_c(kc,j,i) = enh_intg
160 else if ( ((time-
age_c(kc,j,i)) >= date_trans2).and. &
161 ((time-
age_c(kc,j,i)) < date_trans3) )
then 162 enh_c(kc,j,i) = enh_fact
164 enh_c(kc,j,i) = enh_intg
171 #if (MARGIN==3) /* floating ice */ 172 call calc_enhance_floating_const()
175 #if (defined(NMARS) || defined(SMARS)) /* Martian polar caps */ 176 call mod_enhance_dust()
191 call calc_enhance_aniso()
193 #if (MARGIN==3) /* floating ice */ 194 call calc_enhance_floating_const()
197 #if (defined(NMARS) || defined(SMARS)) /* Martian polar caps */ 198 call mod_enhance_dust()
212 call calc_enhance_aniso()
214 #if (defined(NMARS) || defined(SMARS)) /* Martian polar caps */ 215 call mod_enhance_dust()
223 subroutine calc_enhance_aniso()
227 integer(i4b) :: i, j, kc, kt
228 real(dp) :: enh_shear, enh_compr
229 real(dp) :: enh_shear_compr_diff
231 #if (defined(ENH_SHEAR)) 232 enh_shear = enh_shear
237 #if (defined(ENH_COMPR)) 238 enh_compr = enh_compr
243 enh_shear_compr_diff = enh_shear-enh_compr
249 enh_t(kt,j,i) = enh_compr &
254 enh_c(kc,j,i) = enh_compr &
261 end subroutine calc_enhance_aniso
266 subroutine calc_enhance_floating_const()
270 integer(i4b) :: i, j, kc, kt
271 real(dp) :: enh_shelf
273 #if (defined(ENH_SHELF)) 274 enh_shelf = enh_shelf
282 if (
maske(j,i)==3_i2b )
then 285 enh_t(kt,j,i) = enh_shelf
289 enh_c(kc,j,i) = enh_shelf
297 end subroutine calc_enhance_floating_const
303 subroutine mod_enhance_dust()
307 real(dp) :: frac_dust
310 #if (defined(FRAC_DUST)) 311 frac_dust = frac_dust
317 enh_mult = exp(-3.0_dp*2.0_dp*frac_dust)
319 enh_mult = exp(-1.8_dp*2.0_dp*frac_dust)
321 enh_mult = exp(-4.0_dp*2.0_dp*frac_dust)
323 stop
' >>> mod_enhance_dust: FLOW_LAW==4 has not been implemented yet!' 329 end subroutine mod_enhance_dust
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) age_c
age_c(kc,j,i): Age in the upper (kc) ice domain
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) lambda_shear_t
lambda_shear_t(kt,j,i): Shear fraction in the lower (kt) ice domain
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) age_t
age_t(kt,j,i): Age in the lower (kt) ice domain
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) enh_c
enh_c(kc,j,i): Flow enhancement factor in the upper (kc) ice domain
subroutine, public calc_enhance_2()
Computation of the flow enhancement factor. Case ENHMOD==2: two different values depending on age for...
integer(i2b), dimension(0:jmax, 0:imax) maske
maske(j,i): Ice-land-ocean mask. 0: grounded ice, 1: ice-free land, 2: ocean, 3: floating ice ...
subroutine, public calc_enhance_5()
Computation of the flow enhancement factor. Case ENHMOD==5: minimal anisotropic enhancement factor fo...
Declarations of global variables for SICOPOLIS (for the ANT domain).
Computation of the flow enhancement factor.
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) lambda_shear_c
lambda_shear_c(kc,j,i): Shear fraction in the upper (kc) ice domain
Declarations of kind types for SICOPOLIS.
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) enh_t
enh_t(kt,j,i): Flow enhancement factor in the lower (kt) ice domain
subroutine, public calc_enhance_1()
Computation of the flow enhancement factor. Case ENHMOD==1: constant for grounded ice...
subroutine, public calc_enhance_3(time)
Computation of the flow enhancement factor. Case ENHMOD==3: two different values depending on time of...
subroutine, public calc_enhance_4()
Computation of the flow enhancement factor. Case ENHMOD==4: minimal anisotropic enhancement factor fo...
Declarations of global variables for SICOPOLIS.