7 !! Computation of the flow enhancement factor.
11 !! Copyright 2009-2013 Ralf Greve
15 !! This file is part of SICOPOLIS.
17 !! SICOPOLIS is free software: you can redistribute it and/or modify
18 !! it under the terms of the GNU General Public License as published by
19 !! the Free Software Foundation, either version 3 of the License, or
20 !! (at your option) any later version.
22 !! SICOPOLIS is distributed in the hope that it will be useful,
23 !! but WITHOUT ANY WARRANTY; without even the implied warranty of
24 !! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 !! GNU General Public License for more details.
27 !! You should have received a copy of the GNU General Public License
28 !! along with SICOPOLIS. If not, see <http://www.gnu.org/licenses/>.
30 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
33 !> Computation of the flow enhancement factor.
34 !<------------------------------------------------------------------------------
42 real(dp),
intent(in) :: time
44 integer(i4b) :: i, j, kc, kt
45 real(dp) :: age_trans, date_trans1, date_trans2, date_trans3
55 age_trans = age_trans_0*year_sec
61 if (age_t(kt,j,i) < age_trans)
then
62 enh_t(kt,j,i) = enh_intg
64 enh_t(kt,j,i) = enh_fact
69 if (age_c(kc,j,i) < age_trans)
then
70 enh_c(kc,j,i) = enh_intg
72 enh_c(kc,j,i) = enh_fact
81 date_trans1 = date_trans1_0*year_sec
82 date_trans2 = date_trans2_0*year_sec
83 date_trans3 = date_trans3_0*year_sec
89 if ( (time-age_t(kt,j,i)) < date_trans1 )
then
90 enh_t(kt,j,i) = enh_fact
91 else if ( ((time-age_t(kt,j,i)) >= date_trans1).and. &
92 ((time-age_t(kt,j,i)) < date_trans2) )
then
93 enh_t(kt,j,i) = enh_intg
94 else if ( ((time-age_t(kt,j,i)) >= date_trans2).and. &
95 ((time-age_t(kt,j,i)) < date_trans3) )
then
96 enh_t(kt,j,i) = enh_fact
98 enh_t(kt,j,i) = enh_intg
103 if ( (time-age_c(kc,j,i)) < date_trans1 )
then
104 enh_c(kc,j,i) = enh_fact
105 else if ( ((time-age_c(kc,j,i)) >= date_trans1).and. &
106 ((time-age_c(kc,j,i)) < date_trans2) )
then
107 enh_c(kc,j,i) = enh_intg
108 else if ( ((time-age_c(kc,j,i)) >= date_trans2).and. &
109 ((time-age_c(kc,j,i)) < date_trans3) )
then
110 enh_c(kc,j,i) = enh_fact
112 enh_c(kc,j,i) = enh_intg
128 if ( maske(j,i)==3_i2b )
then
131 enh_t(kt,j,i) = enh_shelf
135 enh_c(kc,j,i) = enh_shelf
147 #if ( defined(NMARS) \
148 || defined(smars) ) /* martian ice sheet */
151 enh_mult = exp(-3.0_dp*2.0_dp*frac_dust)
153 enh_mult = exp(-1.8_dp*2.0_dp*frac_dust)
155 enh_mult = exp(-4.0_dp*2.0_dp*frac_dust)
157 stop
' calc_enhance: FLOW_LAW==4 has not been implemented yet!'
160 enh_t = enh_t * enh_mult
161 enh_c = enh_c * enh_mult