SICOPOLIS V5-dev  Revision 1264
sico_variables_m.F90
Go to the documentation of this file.
1 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 !
3 ! Module : s i c o _ v a r i a b l e s _ m
4 !
5 !> @file
6 !!
7 !! Declarations of global variables for SICOPOLIS.
8 !!
9 !! @section Copyright
10 !!
11 !! Copyright 2009-2018 Ralf Greve
12 !!
13 !! @section License
14 !!
15 !! This file is part of SICOPOLIS.
16 !!
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.
21 !!
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.
26 !!
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/>.
29 !<
30 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
31 
32 !-------------------------------------------------------------------------------
33 !> Declarations of global variables for SICOPOLIS.
34 !<------------------------------------------------------------------------------
36 
37 use sico_types_m
38 
39 implicit none
40 save
41 
42 !-------- Field quantities --------
43 
44 !> maske(j,i): Ice-land-ocean mask.
45 !> 0: grounded ice,
46 !> 1: ice-free land,
47 !> 2: ocean,
48 !> 3: floating ice
49  integer(i2b), dimension(0:JMAX,0:IMAX) :: maske
50 !> maske_old(j,i): Old value of maske (at the previous time step)
51  integer(i2b), dimension(0:JMAX,0:IMAX) :: maske_old
52 !> maske_neu(j,i): New value of maske computed during an integration step
53  integer(i2b), dimension(0:JMAX,0:IMAX) :: maske_neu
54 !> mask_run(j,i): mask indicating melt type.
55 !> 2: visible (ocean, for later developments),
56 !> 1: visible (grounded ice),
57 !> -1: hidden on land,
58 !> -2: hidden in ocean
59  integer(i2b), dimension(0:JMAX,0:IMAX) :: mask_run
60 !> n_cts(j,i): Mask for thermal conditions.
61 !> -1: cold ice base,
62 !> 0: temperate ice base with cold ice above,
63 !> 1: temperate ice base with temperate ice layer above
64 !> (only for POLY)
65  integer(i2b), dimension(0:JMAX,0:IMAX) :: n_cts
66 !> (.)_neu: New value of quantity (.) computed during an integration step
67  integer(i2b), dimension(0:JMAX,0:IMAX) :: n_cts_neu
68 !> kc_cts(j,i): Position kc of the CTS (for COLD, ENTC, ENTM)
69  integer(i2b), dimension(0:JMAX,0:IMAX) :: kc_cts
70 !> (.)_neu: New value of quantity (.) computed during an integration step
71  integer(i2b), dimension(0:JMAX,0:IMAX) :: kc_cts_neu
72 !> flag_inner_point(j,i): Inner-point flag.
73 !> .true.: inner point,
74 !> .false.: margin point
75  logical, dimension(0:JMAX,0:IMAX) :: flag_inner_point
76 !> flag_grounding_line_1(j,i): Grounding line flag.
77 !> .true.: grounding line point
78 !> (grounded ice point with at least
79 !> one floating ice neighbour),
80 !> .false.: otherwise
81  logical, dimension(0:JMAX,0:IMAX) :: flag_grounding_line_1
82 !> flag_grounding_line_2(j,i): Grounding line flag.
83 !> .true.: grounding line point
84 !> (floating ice point with at least
85 !> one grounded ice neighbour),
86 !> .false.: otherwise
87  logical, dimension(0:JMAX,0:IMAX) :: flag_grounding_line_2
88 !> flag_calving_front_1(j,i): Calving front flag.
89 !> .true.: calving front point
90 !> (floating ice point with at least
91 !> one ocean neighbour),
92 !> .false.: otherwise
93  logical, dimension(0:JMAX,0:IMAX) :: flag_calving_front_1
94 !> flag_calving_front_2(j,i): Calving front flag.
95 !> .true.: calving front point
96 !> (ocean point with at least
97 !> one floating ice neighbour),
98 !> .false.: otherwise
99  logical, dimension(0:JMAX,0:IMAX) :: flag_calving_front_2
100 !> flag_shelfy_stream_x(j,i): Shelfy stream flag in x-direction, at (i+1/2,j).
101 !> .true.: shelfy stream point
102 !> .false.: otherwise
103  logical, dimension(0:JMAX,0:IMAX) :: flag_shelfy_stream_x
104 !> flag_shelfy_stream_y(j,i): Shelfy stream flag in y-direction, at (i,j+1/2).
105 !> .true.: shelfy stream point
106 !> .false.: otherwise
107  logical, dimension(0:JMAX,0:IMAX) :: flag_shelfy_stream_y
108 !> flag_shelfy_stream(j,i): Shelfy stream flag on the main grid.
109 !> .true.: grounded ice,
110 !> and at least one neighbour on the
111 !> staggered grid is a shelfy stream point
112 !> .false.: otherwise
113  logical, dimension(0:JMAX,0:IMAX) :: flag_shelfy_stream
114 !> xi(i): Coordinate xi (= x) of grid point i
115  real(dp), dimension(0:IMAX) :: xi
116 !> eta(j): Coordinate eta (= y) of grid point j
117  real(dp), dimension(0:JMAX) :: eta
118 !> zeta_c(kc): Sigma coordinate zeta_c of grid point kc
119  real(dp), dimension(0:KCMAX) :: zeta_c
120 !> zeta_t(kt): Sigma coordinate zeta_t of grid point kt
121  real(dp), dimension(0:KTMAX) :: zeta_t
122 !> zeta_r(kr): Sigma coordinate zeta_r of grid point kr
123  real(dp), dimension(0:KRMAX) :: zeta_r
124 !> aa: Exponential stretch parameter of the non-equidistant vertical grid
125 !> in the upper (kc) ice domain
126  real(dp) :: aa
127 !> flag_aa_nonzero: Flag for the exponential stretch parameter aa.
128 !> .true.: aa greater than zero (non-equidistant grid)
129 !> .false.: aa equal to zero (equidistant grid)
130  logical :: flag_aa_nonzero
131 !> ea: Abbreviation for exp(aa)
132  real(dp) :: ea
133 !> eaz_c(kc): Abbreviation for exp(aa*zeta(kc))
134  real(dp), dimension(0:KCMAX) :: eaz_c
135 !> eaz_c_quotient(kc): Abbreviation for (eaz_c(kc)-1.0)/(ea-1.0)
136  real(dp), dimension(0:KCMAX) :: eaz_c_quotient
137 
138 !> lambda(j,i): Geographic longitude of grid point (i,j)
139  real(dp), dimension(0:JMAX,0:IMAX) :: lambda
140 !> phi(j,i): Geographic latitude of grid point (i,j)
141  real(dp), dimension(0:JMAX,0:IMAX) :: phi
142 !> area(j,i): Area of grid cell associated with grid point (i,j)
143  real(dp), dimension(0:JMAX,0:IMAX) :: area
144 !> sq_g11_g(j,i): Square root of the coefficient g11 of the metric tensor
145 !> on grid point (i,j)
146  real(dp), dimension(0:JMAX,0:IMAX) :: sq_g11_g
147 !> sq_g22_g(j,i): Square root of the coefficient g22 of the metric tensor
148 !> on grid point (i,j)
149  real(dp), dimension(0:JMAX,0:IMAX) :: sq_g22_g
150 !> insq_g11_g(j,i): Inverse square root of g11 on grid point (i,j)
151  real(dp), dimension(0:JMAX,0:IMAX) :: insq_g11_g
152 !> insq_g22_g(j,i): Inverse square root of g22 on grid point (i,j)
153  real(dp), dimension(0:JMAX,0:IMAX) :: insq_g22_g
154 !> sq_g11_sgx(j,i): Square root of g11, at (i+1/2,j)
155  real(dp), dimension(0:JMAX,0:IMAX) :: sq_g11_sgx
156 !> sq_g11_sgy(j,i): Square root of g11, at (i,j+1/2)
157  real(dp), dimension(0:JMAX,0:IMAX) :: sq_g11_sgy
158 !> sq_g22_sgx(j,i): Square root of g22, at (i+1/2,j)
159  real(dp), dimension(0:JMAX,0:IMAX) :: sq_g22_sgx
160 !> sq_g22_sgy(j,i): Square root of g22, at (i,j+1/2)
161  real(dp), dimension(0:JMAX,0:IMAX) :: sq_g22_sgy
162 !> insq_g11_sgx(j,i): Inverse square root of g11, at (i+1/2,j)
163  real(dp), dimension(0:JMAX,0:IMAX) :: insq_g11_sgx
164 !> insq_g22_sgy(j,i): Inverse square root of g22, at (i,j+1/2)
165  real(dp), dimension(0:JMAX,0:IMAX) :: insq_g22_sgy
166 !> zs(j,i): Coordinate z of the surface topography
167  real(dp), dimension(0:JMAX,0:IMAX) :: zs
168 !> zm(j,i): Coordinate z of the bottom of the upper (kc) ice domain
169 !> = top of the lower (kt) ice domain
170 !> (position of the CTS for POLY,
171 !> equal to zb for ISOT, COLD, ENTC, ENTM)
172  real(dp), dimension(0:JMAX,0:IMAX) :: zm
173 !> zb(j,i): Coordinate z of the ice base
174  real(dp), dimension(0:JMAX,0:IMAX) :: zb
175 !> zl(j,i): Coordinate z of the lithosphere surface
176  real(dp), dimension(0:JMAX,0:IMAX) :: zl
177 !> zl0(j,i): zl for isostatically relaxed ice-free conditions
178  real(dp), dimension(0:JMAX,0:IMAX) :: zl0
179 !> wss(j,i): Isostatic steady-state displacement of the lithosphere
180  real(dp), dimension(0:JMAX,0:IMAX) :: wss
181 !> flex_rig_lith(j,i): Flexural rigidity of the lithosphere
182  real(dp), dimension(0:JMAX,0:IMAX) :: flex_rig_lith
183 !> time_lag_asth(j,i): Time lag of the relaxing asthenosphere
184  real(dp), dimension(0:JMAX,0:IMAX) :: time_lag_asth
185 !> H_c(j,i): Thickness of ice in the upper (kc) domain
186 !> (thickness of the cold-ice layer for POLY,
187 !> entire ice thickness for ISOT, COLD, ENTC, ENTM)
188  real(dp), dimension(0:JMAX,0:IMAX) :: h_c
189 !> H_t(j,i): Thickness of ice in the lower (kt) domain
190 !> (thickness of the temperate layer for POLY,
191 !> redundant and thus set to zero for ISOT, COLD, ENTC, ENTM)
192  real(dp), dimension(0:JMAX,0:IMAX) :: h_t
193 !> dzs_dxi(j,i): Derivative of zs by xi (at i+1/2,j)
194  real(dp), dimension(0:JMAX,0:IMAX) :: dzs_dxi
195 !> dzm_dxi(j,i): Derivative of zm by xi (at i+1/2,j)
196  real(dp), dimension(0:JMAX,0:IMAX) :: dzm_dxi
197 !> dzb_dxi(j,i): Derivative of zb by xi (at i+1/2,j)
198  real(dp), dimension(0:JMAX,0:IMAX) :: dzb_dxi
199 !> dH_c_dxi(j,i): Derivative of H_c by xi (at i+1/2,j)
200  real(dp), dimension(0:JMAX,0:IMAX) :: dh_c_dxi
201 !> dH_t_dxi(j,i): Derivative of H_t by xi (at i+1/2,j)
202  real(dp), dimension(0:JMAX,0:IMAX) :: dh_t_dxi
203 !> dzs_deta(j,i): Derivative of zs by eta (at i,j+1/2)
204  real(dp), dimension(0:JMAX,0:IMAX) :: dzs_deta
205 !> dzm_deta(j,i): Derivative of zm by eta (at i,j+1/2)
206  real(dp), dimension(0:JMAX,0:IMAX) :: dzm_deta
207 !> dzb_deta(j,i): Derivative of zb by eta (at i,j+1/2)
208  real(dp), dimension(0:JMAX,0:IMAX) :: dzb_deta
209 !> dH_c_deta(j,i): Derivative of H_c by eta (at i,j+1/2)
210  real(dp), dimension(0:JMAX,0:IMAX) :: dh_c_deta
211 !> dH_t_deta(j,i): Derivative of H_t by eta (at i,j+1/2)
212  real(dp), dimension(0:JMAX,0:IMAX) :: dh_t_deta
213 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
214  real(dp), dimension(0:JMAX,0:IMAX) :: dzs_dxi_g
215 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
216  real(dp), dimension(0:JMAX,0:IMAX) :: dzm_dxi_g
217 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
218  real(dp), dimension(0:JMAX,0:IMAX) :: dzb_dxi_g
219 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
220  real(dp), dimension(0:JMAX,0:IMAX) :: dh_c_dxi_g
221 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
222  real(dp), dimension(0:JMAX,0:IMAX) :: dh_t_dxi_g
223 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
224  real(dp), dimension(0:JMAX,0:IMAX) :: dzs_deta_g
225 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
226  real(dp), dimension(0:JMAX,0:IMAX) :: dzm_deta_g
227 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
228  real(dp), dimension(0:JMAX,0:IMAX) :: dzb_deta_g
229 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
230  real(dp), dimension(0:JMAX,0:IMAX) :: dh_c_deta_g
231 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
232  real(dp), dimension(0:JMAX,0:IMAX) :: dh_t_deta_g
233 !> dzs_dtau(j,i): Derivative of zs by tau (time)
234  real(dp), dimension(0:JMAX,0:IMAX) :: dzs_dtau
235 !> dzm_dtau(j,i): Derivative of zm by tau (time)
236  real(dp), dimension(0:JMAX,0:IMAX) :: dzm_dtau
237 !> dzb_dtau(j,i): Derivative of zb by tau (time)
238  real(dp), dimension(0:JMAX,0:IMAX) :: dzb_dtau
239 !> dzl_dtau(j,i): Derivative of zl by tau (time)
240  real(dp), dimension(0:JMAX,0:IMAX) :: dzl_dtau
241 !> dH_c_dtau(j,i): Derivative of H_c by tau (time)
242  real(dp), dimension(0:JMAX,0:IMAX) :: dh_c_dtau
243 !> dH_t_dtau(j,i): Derivative of H_t by tau (time)
244  real(dp), dimension(0:JMAX,0:IMAX) :: dh_t_dtau
245 !> p_weert(j,i): Weertman exponent for the basal shear stress
246  integer(i4b), dimension(0:JMAX,0:IMAX) :: p_weert
247 !> q_weert(j,i): Weertman exponent for the basal pressure
248  integer(i4b), dimension(0:JMAX,0:IMAX) :: q_weert
249 !> p_weert_inv(j,i): Inverse of p_weert
250  real(dp), dimension(0:JMAX,0:IMAX) :: p_weert_inv
251 !> c_slide(j,i): Basal sliding coefficient
252  real(dp), dimension(0:JMAX,0:IMAX) :: c_slide
253 !> d_help_b(j,i): Auxiliary quantity for the computation of vx_b and vy_b
254  real(dp), dimension(0:JMAX,0:IMAX) :: d_help_b
255 !> c_drag(j,i): Auxiliary quantity for the computation of the basal drag
256  real(dp), dimension(0:JMAX,0:IMAX) :: c_drag
257 !> p_b_w(j,i): Basal water pressure
258  real(dp), dimension(0:JMAX,0:IMAX) :: p_b_w
259 !> vx_b(j,i): Velocity in x-direction at the ice base, at (i+1/2,j)
260  real(dp), dimension(0:JMAX,0:IMAX) :: vx_b
261 !> vy_b(j,i): Velocity in y-direction at the ice base, at (i,j+1/2)
262  real(dp), dimension(0:JMAX,0:IMAX) :: vy_b
263 !> vx_m(j,i): Mean (depth-averaged) velocity in x-direction, at (i+1/2,j)
264  real(dp), dimension(0:JMAX,0:IMAX) :: vx_m
265 !> vy_m(j,i): Mean (depth-averaged) velocity in y-direction, at (i,j+1/2)
266  real(dp), dimension(0:JMAX,0:IMAX) :: vy_m
267 !> ratio_sl_x(j,i): Ratio of basal to surface velocity (slip ratio)
268 !> in x-direction, at (i+1/2,j)
269  real(dp), dimension(0:JMAX,0:IMAX) :: ratio_sl_x
270 !> ratio_sl_y(j,i): Ratio of basal to surface velocity (slip ratio)
271 !> in y-direction, at (i,j+1/2)
272  real(dp), dimension(0:JMAX,0:IMAX) :: ratio_sl_y
273 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
274  real(dp), dimension(0:JMAX,0:IMAX) :: vx_b_g
275 !> (.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
276  real(dp), dimension(0:JMAX,0:IMAX) :: vy_b_g
277 !> vz_b(j,i): Velocity in z-direction at the ice base, at (i,j)
278  real(dp), dimension(0:JMAX,0:IMAX) :: vz_b
279 !> vz_m(j,i): Velocity in z-direction at the position z=zm (interface between
280 !> the upper (kc) and the lower (kt) domain), at (i,j)
281  real(dp), dimension(0:JMAX,0:IMAX) :: vz_m
282 !> vx_s_g(j,i): Velocity in x-direction at the ice surface, at (i,j)
283  real(dp), dimension(0:JMAX,0:IMAX) :: vx_s_g
284 !> vy_s_g(j,i): Velocity in x-direction at the ice surface, at (i,j)
285  real(dp), dimension(0:JMAX,0:IMAX) :: vy_s_g
286 !> vz_s(j,i): Velocity in z-direction at the ice surface, at (i,j)
287  real(dp), dimension(0:JMAX,0:IMAX) :: vz_s
288 !> flui_ave_sia(j,i): Depth-averaged fluidity of the SIA
289  real(dp), dimension(0:JMAX,0:IMAX) :: flui_ave_sia
290 !> h_diff(j,i): Diffusivity of the SIA evolution equation of the ice surface
291  real(dp), dimension(0:JMAX,0:IMAX) :: h_diff
292 !> qx(j,i): Volume flux in x-direction (depth-integrated vx, at (i+1/2,j))
293  real(dp), dimension(0:JMAX,0:IMAX) :: qx
294 !> qy(j,i): Volume flux in y-direction (depth-integrated vy, at (i,j+1/2))
295  real(dp), dimension(0:JMAX,0:IMAX) :: qy
296 !> q_gl_g(j,i): Volume flux across the grounding line, at (i,j)
297  real(dp), dimension(0:JMAX,0:IMAX) :: q_gl_g
298 !> q_geo(j,i): Geothermal heat flux
299  real(dp), dimension(0:JMAX,0:IMAX) :: q_geo
300 !> temp_b(j,i): Basal temperature
301  real(dp), dimension(0:JMAX,0:IMAX) :: temp_b
302 !> temph_b(j,i): Basal temperature relative to the pressure melting point
303  real(dp), dimension(0:JMAX,0:IMAX) :: temph_b
304 !> Q_bm(j,i): Basal melting rate
305  real(dp), dimension(0:JMAX,0:IMAX) :: q_bm
306 !> Q_tld(j,i): Water drainage rate from the temperate layer
307  real(dp), dimension(0:JMAX,0:IMAX) :: q_tld
308 !> Q_b_tot(j,i): Sum of Q_bm and Q_tld
309  real(dp), dimension(0:JMAX,0:IMAX) :: q_b_tot
310 !> H_w(j,i): Thickness of the water column under the ice base
311  real(dp), dimension(0:JMAX,0:IMAX) :: h_w
312 !> accum(j,i): Accumulation rate at the ice surface
313 !> (includes liquid precipitation = rainfall!)
314  real(dp), dimension(0:JMAX,0:IMAX) :: accum
315 !> snowfall(j,i): Snowfall rate at the ice surface
316  real(dp), dimension(0:JMAX,0:IMAX) :: snowfall
317 !> rainfall(j,i): Rainfall rate at the ice surface
318  real(dp), dimension(0:JMAX,0:IMAX) :: rainfall
319 !> ET(j,i): Temperature excess at the ice surface
320 !> (positive degree days divided by time)
321  real(dp), dimension(0:JMAX,0:IMAX) :: et
322 !> melt(j,i): Melting rate at the ice surface
323  real(dp), dimension(0:JMAX,0:IMAX) :: melt
324 !> melt_star(j,i): Superimposed ice formation rate at the ice surface
325  real(dp), dimension(0:JMAX,0:IMAX) :: melt_star
326 !> evap(j,i): Evaporation rate at the ice surface
327  real(dp), dimension(0:JMAX,0:IMAX) :: evap
328 !> runoff(j,i): Runoff rate at the ice surface
329  real(dp), dimension(0:JMAX,0:IMAX) :: runoff
330 !> as_perp(j,i): Accumulation-ablation function at the ice surface (SMB)
331  real(dp), dimension(0:JMAX,0:IMAX) :: as_perp
332 !> as_perp_apl(j,i): Applied accumulation-ablation function (SMB)
333  real(dp), dimension(0:JMAX,0:IMAX) :: as_perp_apl
334 !> smb_corr_prescribed(j,i): Prescribed SMB correction
335  real(dp), dimension(0:JMAX,0:IMAX) :: smb_corr_prescribed
336 !> smb_corr(j,i): Diagnosed SMB correction
337  real(dp), dimension(0:JMAX,0:IMAX) :: smb_corr
338 !> mb_source_apl(j,i): Applied mass balance source (SMB, BMB, calving)
339  real(dp), dimension(0:JMAX,0:IMAX) :: mb_source_apl
340 !> runoff_top(j,i): Runoff rate (accounting at ice surface)
341  real(dp), dimension(0:JMAX,0:IMAX) :: runoff_top
342 !> runoff_bot(j,i): Runoff rate (accounting at ice bottom)
343  real(dp), dimension(0:JMAX,0:IMAX) :: runoff_bot
344 !> disc_top(j,i): Ice discharge rate (accounting at ice surface)
345  real(dp), dimension(0:JMAX,0:IMAX) :: disc_top
346 !> calv_grounded(j,i): Calving rate of grounded ice
347  real(dp), dimension(0:JMAX,0:IMAX) :: calv_grounded
348 !> temp_s(j,i): Ice surface temperature
349  real(dp), dimension(0:JMAX,0:IMAX) :: temp_s
350 !> am_perp(j,i): Ice volume flux across the z=zm interface
351  real(dp), dimension(0:JMAX,0:IMAX) :: am_perp
352 !> am_perp_st(j,i): Steady-state part of am_perp
353 !> (without contribution of dzm_dtau)
354  real(dp), dimension(0:JMAX,0:IMAX) :: am_perp_st
355 !> (.)_neu: New value of quantity (.) computed during an integration step
356  real(dp), dimension(0:JMAX,0:IMAX) :: zs_neu
357 !> (.)_neu: New value of quantity (.) computed during an integration step
358  real(dp), dimension(0:JMAX,0:IMAX) :: zm_neu
359 !> (.)_neu: New value of quantity (.) computed during an integration step
360  real(dp), dimension(0:JMAX,0:IMAX) :: zb_neu
361 !> (.)_neu: New value of quantity (.) computed during an integration step
362  real(dp), dimension(0:JMAX,0:IMAX) :: zl_neu
363 !> (.)_neu: New value of quantity (.) computed during an integration step
364  real(dp), dimension(0:JMAX,0:IMAX) :: h_c_neu
365 !> (.)_neu: New value of quantity (.) computed during an integration step
366  real(dp), dimension(0:JMAX,0:IMAX) :: h_t_neu
367 
368 !> zs_ref(j,i): Reference elevation for precip_present, temp_ma_present
369 !> and temp_mj_present
370  real(dp), dimension(0:JMAX,0:IMAX) :: zs_ref
371 
372 !> accum_present(j,i): Present-day accumulation rate at the ice surface
373 !> (for EISMINT, ISMIP HEINO and the north and south
374 !> polar caps of Mars)
375  real(dp), dimension(0:JMAX,0:IMAX) :: accum_present
376 !> precip_ma_present(j,i): Present-day mean annual precipitation rate
377 !> at the ice surface
378  real(dp), dimension(0:JMAX,0:IMAX) :: precip_ma_present
379 !> precip_ma_lgm_anom(j,i): LGM anomaly (ratio LGM/present) of the mean annual
380 !> precipitation rate at the ice surface
381  real(dp), dimension(0:JMAX,0:IMAX) :: precip_ma_lgm_anom
382 !> temp_ma_present(j,i): Present-day mean annual surface temperature
383  real(dp), dimension(0:JMAX,0:IMAX) :: temp_ma_present
384 !> temp_mj_present(j,i): Present-day mean summer (northern hemisphere: July,
385 !> southern hemisphere: January) surface temperature
386  real(dp), dimension(0:JMAX,0:IMAX) :: temp_mj_present
387 !> temp_ma_lgm_anom(j,i): LGM anomaly (difference LGM - present) of the mean
388 !> annual surface temperature
389  real(dp), dimension(0:JMAX,0:IMAX) :: temp_ma_lgm_anom
390 !> temp_mj_lgm_anom(j,i): LGM anomaly (difference LGM - present) of the mean
391 !> summer (northern hemisphere: July, southern
392 !> hemisphere: January) surface temperature
393  real(dp), dimension(0:JMAX,0:IMAX) :: temp_mj_lgm_anom
394 
395 !> dist_dxdy(jr,ir): Distance between grid points with delta_i=ir, delta_j=jr
396  real(dp), dimension(-JMAX:JMAX,-IMAX:IMAX) :: dist_dxdy
397 
398 !> precip_present(j,i,n): Present-day mean monthly precipitation rate
399 !> at the ice surface
400  real(dp), dimension(0:JMAX,0:IMAX,12) :: precip_present
401 !> precip_lgm_anom(j,i,n): LGM anomaly (ratio LGM/present) of the mean monthly
402 !> precipitation rate at the ice surface
403  real(dp), dimension(0:JMAX,0:IMAX,12) :: precip_lgm_anom
404 !> gamma_precip_lgm_anom(j,i,n): negative natural logarithm of
405 !> precip_lgm_anom(j,i,n)
406  real(dp), dimension(0:JMAX,0:IMAX,12) :: gamma_precip_lgm_anom
407 !> temp_mm_present(j,i,n): Present-day mean monthly surface temperature
408  real(dp), dimension(0:JMAX,0:IMAX,12) :: temp_mm_present
409 !> temp_mm_lgm_anom(j,i,n): LGM anomaly (difference LGM - present) of the mean
410 !> monthly surface temperature
411  real(dp), dimension(0:JMAX,0:IMAX,12) :: temp_mm_lgm_anom
412 
413 !> d_help_c(kc,j,i): Auxiliary quantity for the computation of vx, vy und zs
414  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: d_help_c
415 !> vx_c(kc,j,i): Velocity in x-direction in the upper (kc) ice domain
416 !> (at (i+1/2,j,kc))
417  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: vx_c
418 !> vy_c(kc,j,i): Velocity in y-direction in the upper (kc) ice domain
419 !> (at (i,j+1/2,kc))
420  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: vy_c
421 !> vz_c(kc,j,i): Velocity in z-direction in the upper (kc) ice domain
422 !> (at (i,j,kc+1/2))
423  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: vz_c
424 !> temp_c(kc,j,i): Temperature in the upper (kc) ice domain
425  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: temp_c
426 !> (.)_neu: New value of quantity (.) computed during an integration step
427  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: temp_c_neu
428 !> temp_c_m(kc,j,i): Melting temperature in the upper (kc) ice domain
429  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: temp_c_m
430 !> age_c(kc,j,i): Age in the upper (kc) ice domain
431  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: age_c
432 !> (.)_neu: New value of quantity (.) computed during an integration step
433  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: age_c_neu
434 !> txz_c(kc,j,i): Shear stress txz in the upper (kc) ice domain
435 !> (at (i+1/2,j,kc))
436  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: txz_c
437 !> tyz_c(kc,j,i): Shear stress tyz in the upper (kc) ice domain
438 !> (at (i,j+1/2,kc))
439  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: tyz_c
440 !> sigma_c(kc,j,i): Effective stress in the upper (kc) ice domain
441  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: sigma_c
442 !> enh_c(kc,j,i): Flow enhancement factor in the upper (kc) ice domain
443  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: enh_c
444 
445 !> de_ssa(j,i): Effective strain rate of the SSA, at (i,j)
446  real(dp), dimension(0:JMAX,0:IMAX) :: de_ssa
447 !> vis_int_g(j,i): Depth-integrated viscosity of the SSA, at (i,j)
448  real(dp), dimension(0:JMAX,0:IMAX) :: vis_int_g
449 !> vx_g(j,i): Velocity in x-direction of the SSA, at (i,j)
450  real(dp), dimension(0:JMAX,0:IMAX) :: vx_g
451 !> vy_g(j,i): Velocity in y-direction of the SSA, at (i,j)
452  real(dp), dimension(0:JMAX,0:IMAX) :: vy_g
453 
454 !> d_help_t(kt,j,i): Auxiliary quantity for the computation of vx, vy und zs
455  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: d_help_t
456 !> vx_t(kt,j,i): Velocity in x-direction in the lower (kt) ice domain
457 !> (at (i+1/2,j,kt))
458  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: vx_t
459 !> vy_t(kt,j,i): Velocity in y-direction in the lower (kt) ice domain
460 !> (at (i,j+1/2,kt))
461  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: vy_t
462 !> vz_t(kt,j,i): Velocity in z-direction in the lower (kt) ice domain
463 !> (at (i,j,kt+1/2))
464  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: vz_t
465 !> omega_t(kt,j,i): Water content in the lower (kt) ice domain
466  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: omega_t
467 !> (.)_neu: New value of quantity (.) computed during an integration step
468  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: omega_t_neu
469 !> temp_t_m(kt,j,i): Melting temperature in the lower (kt) ice domain
470  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: temp_t_m
471 !> age_t(kt,j,i): Age in the lower (kt) ice domain
472  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: age_t
473 !> (.)_neu: New value of quantity (.) computed during an integration step
474  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: age_t_neu
475 !> txz_t(kt,j,i): Shear stress txz in the lower (kt) ice domain
476 !> (at (i+1/2,j,kt))
477  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: txz_t
478 !> tyz_t(kt,j,i): Shear stress tyz in the lower (kt) ice domain
479 !> (at (i,j+1/2,kt))
480  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: tyz_t
481 !> sigma_t(kt,j,i): Effective stress in the lower (kt) ice domain
482  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: sigma_t
483 !> enh_t(kt,j,i): Flow enhancement factor in the lower (kt) ice domain
484  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: enh_t
485 
486 !> temp_r(kr,j,i): Temperature in the bedrock
487  real(dp), dimension(0:KRMAX,0:JMAX,0:IMAX) :: temp_r
488 !> (.)_neu: New value of quantity (.) computed during an integration step
489  real(dp), dimension(0:KRMAX,0:JMAX,0:IMAX) :: temp_r_neu
490 
491 !> enth_c(kc,j,i): Enthalpy in the upper (kc) ice domain
492  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: enth_c
493 !> (.)_neu: New value of quantity (.) computed during an integration step
494  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: enth_c_neu
495 !> omega_c(kc,j,i): Water content in the upper (kc) ice domain
496  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: omega_c
497 !> (.)_neu: New value of quantity (.) computed during an integration step
498  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: omega_c_neu
499 
500 !> enth_t(kt,j,i): Enthalpy in the lower (kt) ice domain
501  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: enth_t
502 !> (.)_neu: New value of quantity (.) computed during an integration step
503  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: enth_t_neu
504 
505 !> dxx_c(kc,j,i): Strain rate dxx in the upper (kc) ice domain
506  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: dxx_c
507 !> dyy_c(kc,j,i): Strain rate dyy in the upper (kc) ice domain
508  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: dyy_c
509 !> dxy_c(kc,j,i): Strain rate dxy in the upper (kc) ice domain
510  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: dxy_c
511 !> dxz_c(kc,j,i): Strain rate dxz in the upper (kc) ice domain
512  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: dxz_c
513 !> dyz_c(kc,j,i): Strain rate dyz in the upper (kc) ice domain
514  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: dyz_c
515 !> de_c(kc,j,i): Full effective strain rate in the upper (kc) ice domain
516  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: de_c
517 !> lambda_shear_c(kc,j,i): Shear fraction in the upper (kc) ice domain
518  real(dp), dimension(0:KCMAX,0:JMAX,0:IMAX) :: lambda_shear_c
519 
520 !> dxx_t(kt,j,i): Strain rate dxx in the lower (kt) ice domain
521  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: dxx_t
522 !> dyy_t(kt,j,i): Strain rate dyy in the lower (kt) ice domain
523  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: dyy_t
524 !> dxy_t(kt,j,i): Strain rate dxy in the lower (kt) ice domain
525  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: dxy_t
526 !> dxz_t(kt,j,i): Strain rate dxz in the lower (kt) ice domain
527  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: dxz_t
528 !> dyz_t(kt,j,i): Strain rate dyz in the lower (kt) ice domain
529  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: dyz_t
530 !> de_t(kt,j,i): Full effective strain rate in the lower (kt) ice domain
531  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: de_t
532 !> lambda_shear_t(kt,j,i): Shear fraction in the lower (kt) ice domain
533  real(dp), dimension(0:KTMAX,0:JMAX,0:IMAX) :: lambda_shear_t
534 
535 !-------- Physical parameters --------
536 
537 !> RHO: Density of ice
538  real(dp) :: rho
539 !> RHO_W: Density of pure water
540  real(dp) :: rho_w
541 !> RHO_SW: Density of sea water
542  real(dp) :: rho_sw
543 !> L: Latent heat of ice
544  real(dp) :: l
545 !> G: Acceleration due to gravity
546  real(dp) :: g
547 !> NUE: Water diffusivity in ice
548  real(dp) :: nue
549 !> BETA: Clausius-Clapeyron gradient of ice
550  real(dp) :: beta
551 !> DELTA_TM_SW: Melting point depression of sea water due to its
552 !> average salinity
553  real(dp) :: delta_tm_sw
554 !> OMEGA_MAX: Threshold value for the water content of temperate ice
555  real(dp) :: omega_max
556 !> H_R: Thickness of the modelled lithosphere layer
557  real(dp) :: h_r
558 !> RHO_C_R: Density times specific heat of the lithosphere
559  real(dp) :: rho_c_r
560 !> KAPPA_R: Heat conductivity of the lithosphere
561  real(dp) :: kappa_r
562 !> RHO_A: Density of the asthenosphere
563  real(dp) :: rho_a
564 !> R_T: Coefficient of the water-content dependence in the rate factor
565 !> for temperate ice
566  real(dp) :: r_t
567 !> R: Radius of the planet
568  real(dp) :: r
569 !> A: Semi-major axis of the planet
570  real(dp) :: a
571 !> B: Semi-minor axis of the planet
572  real(dp) :: b
573 !> LAMBDA0: Reference longitude (central meridian) of the stereographic
574 !> projection
575  real(dp) :: lambda0
576 !> PHI0: Standard parallel of the stereographic projection
577  real(dp) :: phi0
578 !> S_STAT_0: Standard deviation of the air termperature for the
579 !> degree-day model
580  real(dp) :: s_stat_0
581 !> BETA1_0: Degree-day factor for snow
582  real(dp) :: beta1_0
583 !> BETA1_LT_0: Degree-day factor for snow at low summer temperatures
584  real(dp) :: beta1_lt_0
585 !> BETA1_HT_0: Degree-day factor for snow at high summer temperatures
586  real(dp) :: beta1_ht_0
587 !> BETA2_0: Degree-day factor for ice
588  real(dp) :: beta2_0
589 !> BETA2_LT_0: Degree-day factor for ice at low summer temperatures
590  real(dp) :: beta2_lt_0
591 !> BETA2_HT_0: Degree-day factor for ice at high summer temperatures
592  real(dp) :: beta2_ht_0
593 !> PHI_SEP_0: Separation latitude for the computation of the degree-day
594 !> factors beta1 and beta2: Equatorward of phi_sep, only the
595 !> high-temperature values are used, whereas poleward of phi_sep,
596 !> beta1 and beta2 are temperature-dependent
597  real(dp) :: phi_sep_0
598 !> PMAX_0: Saturation factor for the formation of superimposed ice
599  real(dp) :: pmax_0
600 !> MU_0: Firn-warming correction
601  real(dp) :: mu_0
602 
603 !> RF(n): Tabulated values for the rate factor of cold ice
604  real(dp), dimension(-190:10) :: rf
605 !> KAPPA(n): Tabulated values for the heat conductivity of ice
606  real(dp), dimension(-190:10) :: kappa
607 !> C(n): Tabulated values for the specific heat of ice
608  real(dp), dimension(-190:10) :: c
609 
610 !-------- Mathematical constants --------
611 
612 !> pi: Constant pi
613  real(dp), parameter :: pi = 3.141592653589793_dp
614 !> pi_inv: Inverse of pi
615  real(dp), parameter :: pi_inv = 1.0_dp/pi
616 !> pi_180: pi divided by 180 (-> deg to rad)
617  real(dp), parameter :: pi_180 = pi/180.0_dp
618 !> pi_180_inv: 180 divided by pi (-> rad to deg)
619  real(dp), parameter :: pi_180_inv = 180.0_dp/pi
620 
621 !> euler: Euler number
622  real(dp), parameter :: euler = 2.718281828459045_dp
623 
624 !> eps: Small number
625  real(dp), parameter :: eps = 1.0e-05_dp
626 !> epsi: Very small number
627  real(dp), parameter :: epsi = 1.0e-12_dp
628 
629 #if (!defined(ALLOW_GRDCHK) && !defined(ALLOW_OPENAD)) /* Normal */
630 !> eps_sp: Small number to single-precision accuracy
631  real(sp), parameter :: eps_sp = epsilon(1.0_sp)
632 !> eps_sp_dp: Small number to single-precision accuracy in double precision
633  real(dp), parameter :: eps_sp_dp = real(eps_sp,dp)
634 !> eps_dp: Small number to double-precision accuracy
635  real(dp), parameter :: eps_dp = epsilon(1.0_dp)
636 #else /* OpenAD */
637  !myepsilon_sp was computed using the code below. 4 is the value of sp
638  !real(4) :: y = 1.0
639  !print *, EPSILON(y)
640  real(sp), parameter :: myepsilon_sp = 1.19209290e-07
641  real(sp), parameter :: eps_sp = myepsilon_sp
642  !myepsilon_sp_dp was computed using the code below. 4 is the value of sp,
643  !8 is the value of dp
644  !real(4) :: y = 1.0
645  !print *, REAL(EPSILON(y),8)
646  real(dp), parameter :: myepsilon_sp_dp = 1.1920928955078125e-007
647  real(dp), parameter :: eps_sp_dp = myepsilon_sp_dp
648  !myepsilon_dp was computed using the code below. 8 is the value of dp
649  !real(8) :: y = 1.0
650  !print *, EPSILON(y)
651  real(dp), parameter :: myepsilon_dp = 2.2204460492503131e-016
652  real(dp), parameter :: eps_dp = myepsilon_dp
653 #endif /* Normal vs. OpenAD */
654 
655 !-------- Further quantities --------
656 
657 !> year_zero: SICOPOLIS year zero in astronomical year numbering
658 !> [ = signed year CE (AD) ]
659  real(dp) :: year_zero
660 
661 !> ch_domain_long: Long name of the computational domain
662  character(len=64) :: ch_domain_long
663 !> ch_domain_short: Short name of the computational domain
664  character(len=16) :: ch_domain_short
665 
666 !> forcing_flag: Flag for the forcing type.
667 !> 1: forcing by a spatially constant surface temperature
668 !> anomaly (delta_ts),
669 !> 2: forcing by a glacial index (glac_index),
670 !> 3: forcing by time-dependent surface temperature
671 !> and precipitation data.
672  integer(i2b) :: forcing_flag
673 
674 !> n_core: Number of positions to be considered in the time-series file
675 !> for deep boreholes
676  integer(i4b) :: n_core
677 !> lambda_core(n): Geographical longitude of the prescribed borehole positions
678  real(dp), dimension(:), allocatable :: lambda_core
679 !> phi_core(n): Geographical latitude of the prescribed borehole positions
680  real(dp), dimension(:), allocatable :: phi_core
681 !> x_core(n): Coordinate xi (= x) of the prescribed borehole positions
682  real(dp), dimension(:), allocatable :: x_core
683 !> y_core(n): Coordinate eta (= y) of the prescribed borehole positions
684  real(dp), dimension(:), allocatable :: y_core
685 !> ch_core(n): Names of the prescribed borehole positions
686  character(len=16), dimension(:), allocatable :: ch_core
687 
688 !> grip_time_min: Minimum time of the data values for the
689 !> surface temperature anomaly
690  integer(i4b) :: grip_time_min
691 !> grip_time_stp: Time step of the data values for the
692 !> surface temperature anomaly
693  integer(i4b) :: grip_time_stp
694 !> grip_time_max: Maximum time of the data values for the
695 !> surface temperature anomaly
696  integer(i4b) :: grip_time_max
697 !> ndata_grip: Number of data values for the surface temperature anomaly
698  integer(i4b) :: ndata_grip
699 !> griptemp(n): Data values for the surface temperature anomaly
700  real(dp), dimension(:), allocatable :: griptemp
701 
702 !> gi_time_min: Minimum time of the data values for the glacial index
703  integer(i4b) :: gi_time_min
704 !> gi_time_stp: Time step of the data values for the glacial index
705  integer(i4b) :: gi_time_stp
706 !> gi_time_max: Maximum time of the data values for the glacial index
707  integer(i4b) :: gi_time_max
708 !> ndata_gi: Number of data values for the glacial index
709  integer(i4b) :: ndata_gi
710 !> glacial_index(n): Data values for the glacial index
711  real(dp), dimension(:), allocatable :: glacial_index
712 
713 !> specmap_time_min: Minimum time of the data values for the sea level
714  integer(i4b) :: specmap_time_min
715 !> specmap_time_stp: Time step of the data values for the sea level
716  integer(i4b) :: specmap_time_stp
717 !> specmap_time_max: Maximum time of the data values for the sea level
718  integer(i4b) :: specmap_time_max
719 !> ndata_specmap: Number of data values for the sea level
720  integer(i4b) :: ndata_specmap
721 !> specmap_zsl(n): Data values for the sea level
722  real(dp), dimension(:), allocatable :: specmap_zsl
723 
724 !> time_target_topo_init: Initial time for target-topography adjustment
726 !> time_target_topo_final: Final time for target-topography adjustment
728 !> target_topo_tau: Relaxation time for target-topography adjustment
729  real(dp) :: target_topo_tau
730 !> maske_target(j,i): Target topography (ice-land-ocean mask)
731  integer(i2b), dimension(0:JMAX,0:IMAX) :: maske_target
732 !> zs_target(j,i): Target topography (ice surface)
733  real(dp), dimension(0:JMAX,0:IMAX) :: zs_target
734 !> zb_target(j,i): Target topography (ice base)
735  real(dp), dimension(0:JMAX,0:IMAX) :: zb_target
736 !> zl_target(j,i): Target topography (lithosphere surface)
737  real(dp), dimension(0:JMAX,0:IMAX) :: zl_target
738 !> H_target(j,i): Target topography (ice thickness)
739  real(dp), dimension(0:JMAX,0:IMAX) :: h_target
740 
741 !> maske_maxextent(j,i): Maximum ice extent mask.
742 !> 0: not allowed to glaciate,
743 !> 1: allowed to glaciate.
744  integer(i2b), dimension(0:JMAX,0:IMAX) :: maske_maxextent
745 
746 !> ncid_ser: ID of the NetCDF time-series output file
747  integer(i4b) :: ncid_ser
748 !> ncid_core: ID of the NetCDF time-series output file for the deep ice cores
749  integer(i4b) :: ncid_core
750 
751 !> ncid_temp_precip: ID of the NetCDF file containing the
752 !> surface-temperature and precipitation data
753 !> as functions of time
754  integer(i4b) :: ncid_temp_precip
755 !> ndata_temp_precip: Number of surface-temperature
756 !> and precipitation data
757  integer(i4b) :: ndata_temp_precip
758 !> temp_precip_time_min: Minimum time of the surface-temperature
759 !> and precipitation data
761 !> temp_precip_time_stp: Time step of the surface-temperature
762 !> and precipitation data
764 !> temp_precip_time_max: Maximum time of the surface-temperature
765 !> and precipitation data
767 !> temp_precip_time(n): Times of the surface-temperature
768 !> and precipitation data
769  real(dp), dimension(:), allocatable :: temp_precip_time
770 
771 !> kei(n): Tabulated values of the kei function (Kelvin function of zero order)
772  real(dp), dimension(-10000:10000) :: kei
773 !> n_data_kei: Number of tabulated values of the kei function
774  integer(i4b):: n_data_kei
775 !> kei_r_max: Maximum value of the argument r of the tabulated kei function
776  real(dp) :: kei_r_max
777 !> kei_r_incr: Increment of the argument r of the tabulated kei function
778  real(dp) :: kei_r_incr
779 
780 !> rcl1: Maximum length of record for input files
781 !> (with factor 3 safety margin)
782  integer(i4b), parameter :: rcl1 = 3*8*(imax+1)
783 !> rcl2: Maximum length of record for input mask files
784 !> (with factor 3 safety margin)
785  integer(i4b), parameter :: rcl2 = 3 *(imax+1)
786 
787 !> no_value_pos_1: Positive no-value parameter
788  real(dp), parameter :: no_value_pos_1 = 1.11e+11_dp
789 !> no_value_pos_2: Positive no-value parameter
790  real(dp), parameter :: no_value_pos_2 = 9.999e+03_dp
791 !> no_value_neg_1: Negative no-value parameter
792  real(dp), parameter :: no_value_neg_1 = -1.11e+11_dp
793 !> no_value_neg_2: Negative no-value parameter
794  real(dp), parameter :: no_value_neg_2 = -9.999e+03_dp
795 
796 !> errormsg: Error-message string
797  character(len=256) :: errormsg
798 !> end_of_line: End-of-line string
799  character, parameter :: end_of_line = char(10)
800 
801 #if (defined(ALLOW_GRDCHK) || defined(ALLOW_OPENAD)) /* OpenAD */
802 !> fc: scalar cost function
803  real(dp) :: fc
804 !> objf_test: cost function
805  real(dp) :: objf_test
806 !> mult_test: cost function
807  real(dp) :: mult_test
808 !> age_data: array of gridded ages to be used in adjoint mode
809  real(dp), dimension(0:KTMAX+KCMAX+1,0:JMAX,0:IMAX) :: age_data
810 #endif /* OpenAD */
811 
812 end module sico_variables_m
813 !
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) vx_c
vx_c(kc,j,i): Velocity in x-direction in the upper (kc) ice domain (at (i+1/2,j,kc)) ...
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) temp_c
temp_c(kc,j,i): Temperature in the upper (kc) ice domain
real(dp) kappa_r
KAPPA_R: Heat conductivity of the lithosphere.
real(dp), dimension(0:jmax, 0:imax) c_slide
c_slide(j,i): Basal sliding coefficient
real(dp) delta_tm_sw
DELTA_TM_SW: Melting point depression of sea water due to its average salinity.
real(dp), dimension(0:krmax, 0:jmax, 0:imax) temp_r_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp), dimension(0:jmax, 0:imax) phi
phi(j,i): Geographic latitude of grid point (i,j)
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) de_c
de_c(kc,j,i): Full effective strain rate in the upper (kc) ice domain
real(dp) phi_sep_0
PHI_SEP_0: Separation latitude for the computation of the degree-day factors beta1 and beta2: Equator...
real(dp), dimension(:), allocatable phi_core
phi_core(n): Geographical latitude of the prescribed borehole positions
logical, dimension(0:jmax, 0:imax) flag_inner_point
flag_inner_point(j,i): Inner-point flag. .true.: inner point, .false.: margin point ...
integer(i4b) grip_time_stp
grip_time_stp: Time step of the data values for the surface temperature anomaly
integer(i4b) ncid_ser
ncid_ser: ID of the NetCDF time-series output file
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) age_c
age_c(kc,j,i): Age in the upper (kc) ice domain
integer(i2b), dimension(0:jmax, 0:imax) n_cts
n_cts(j,i): Mask for thermal conditions. -1: cold ice base, 0: temperate ice base with cold ice above...
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:kcmax, 0:jmax, 0:imax) d_help_c
d_help_c(kc,j,i): Auxiliary quantity for the computation of vx, vy und zs
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) dxy_t
dxy_t(kt,j,i): Strain rate dxy in the lower (kt) ice domain
integer(i4b) ndata_specmap
ndata_specmap: Number of data values for the sea level
real(dp), dimension(0:jmax, 0:imax) insq_g22_sgy
insq_g22_sgy(j,i): Inverse square root of g22, at (i,j+1/2)
real(dp), parameter epsi
epsi: Very small number
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) de_t
de_t(kt,j,i): Full effective strain rate in the lower (kt) ice domain
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) enth_c_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) dyy_t
dyy_t(kt,j,i): Strain rate dyy in the lower (kt) ice domain
real(dp), dimension(0:jmax, 0:imax) vz_m
vz_m(j,i): Velocity in z-direction at the position z=zm (interface between the upper (kc) and the low...
real(dp) beta2_ht_0
BETA2_HT_0: Degree-day factor for ice at high summer temperatures.
real(dp), dimension(0:kcmax) eaz_c
eaz_c(kc): Abbreviation for exp(aa*zeta(kc))
real(dp), dimension(0:jmax, 0:imax) q_geo
q_geo(j,i): Geothermal heat flux
real(dp), dimension(0:jmax, 0:imax, 12) temp_mm_present
temp_mm_present(j,i,n): Present-day mean monthly surface temperature
real(dp), dimension(0:jmax, 0:imax) dh_c_deta
dH_c_deta(j,i): Derivative of H_c by eta (at i,j+1/2)
real(dp) beta1_ht_0
BETA1_HT_0: Degree-day factor for snow at high summer temperatures.
real(dp), dimension(0:jmax, 0:imax) vx_b_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
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
real(dp) rho_w
RHO_W: Density of pure water.
real(dp), dimension(0:jmax, 0:imax) vx_m
vx_m(j,i): Mean (depth-averaged) velocity in x-direction, at (i+1/2,j)
real(dp), dimension(0:krmax, 0:jmax, 0:imax) temp_r
temp_r(kr,j,i): Temperature in the bedrock
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) age_t_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp), dimension(0:jmax, 0:imax) mb_source_apl
mb_source_apl(j,i): Applied mass balance source (SMB, BMB, calving)
real(dp) h_r
H_R: Thickness of the modelled lithosphere layer.
real(dp) a
A: Semi-major axis of the planet.
real(dp), dimension(0:jmax, 0:imax) vz_b
vz_b(j,i): Velocity in z-direction at the ice base, at (i,j)
integer(i4b) specmap_time_max
specmap_time_max: Maximum time of the data values for the sea level
real(dp) temp_precip_time_stp
temp_precip_time_stp: Time step of the surface-temperature and precipitation data ...
real(dp) mu_0
MU_0: Firn-warming correction.
real(dp), dimension(0:jmax, 0:imax) vy_g
vy_g(j,i): Velocity in y-direction of the SSA, at (i,j)
real(dp), parameter eps
eps: Small number
real(dp), dimension(0:jmax, 0:imax) vx_s_g
vx_s_g(j,i): Velocity in x-direction at the ice surface, at (i,j)
integer(i2b), dimension(0:jmax, 0:imax) maske_maxextent
maske_maxextent(j,i): Maximum ice extent mask. 0: not allowed to glaciate, 1: allowed to glaciate...
integer(i2b) forcing_flag
forcing_flag: Flag for the forcing type. 1: forcing by a spatially constant surface temperature anoma...
real(dp) temp_precip_time_max
temp_precip_time_max: Maximum time of the surface-temperature and precipitation data ...
real(dp) omega_max
OMEGA_MAX: Threshold value for the water content of temperate ice.
real(dp), dimension(0:jmax, 0:imax) calv_grounded
calv_grounded(j,i): Calving rate of grounded ice
real(dp), dimension(0:jmax, 0:imax) rainfall
rainfall(j,i): Rainfall rate at the ice surface
logical, dimension(0:jmax, 0:imax) flag_grounding_line_1
flag_grounding_line_1(j,i): Grounding line flag. .true.: grounding line point (grounded ice point wit...
real(dp), dimension(0:jmax, 0:imax) insq_g11_sgx
insq_g11_sgx(j,i): Inverse square root of g11, at (i+1/2,j)
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) enth_t
enth_t(kt,j,i): Enthalpy in the lower (kt) ice domain
real(dp), dimension(0:jmax, 0:imax) vz_s
vz_s(j,i): Velocity in z-direction at the ice surface, at (i,j)
real(dp), dimension(0:jmax, 0:imax) temp_mj_present
temp_mj_present(j,i): Present-day mean summer (northern hemisphere: July, southern hemisphere: Januar...
real(dp), dimension(0:jmax, 0:imax) insq_g22_g
insq_g22_g(j,i): Inverse square root of g22 on grid point (i,j)
real(dp), dimension(0:jmax, 0:imax) dh_t_dtau
dH_t_dtau(j,i): Derivative of H_t by tau (time)
real(dp), dimension(0:jmax, 0:imax) lambda
lambda(j,i): Geographic longitude of grid point (i,j)
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) dyz_c
dyz_c(kc,j,i): Strain rate dyz in the upper (kc) ice domain
real(dp), dimension(0:jmax, 0:imax) dh_c_dtau
dH_c_dtau(j,i): Derivative of H_c by tau (time)
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 ...
real(dp), dimension(0:jmax, 0:imax) p_b_w
p_b_w(j,i): Basal water pressure
integer(i4b) specmap_time_min
specmap_time_min: Minimum time of the data values for the sea level
real(dp), dimension(0:jmax, 0:imax) sq_g22_sgx
sq_g22_sgx(j,i): Square root of g22, at (i+1/2,j)
real(dp), dimension(0:jmax, 0:imax) dh_c_dxi_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
real(dp), dimension(0:jmax, 0:imax) vy_b
vy_b(j,i): Velocity in y-direction at the ice base, at (i,j+1/2)
real(dp), dimension(0:jmax, 0:imax) dh_c_dxi
dH_c_dxi(j,i): Derivative of H_c by xi (at i+1/2,j)
real(dp), dimension(0:jmax, 0:imax) as_perp
as_perp(j,i): Accumulation-ablation function at the ice surface (SMB)
real(dp), dimension(0:jmax, 0:imax) area
area(j,i): Area of grid cell associated with grid point (i,j)
real(dp), dimension(0:jmax, 0:imax) dzs_deta_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
real(dp), dimension(:), allocatable glacial_index
glacial_index(n): Data values for the glacial index
real(dp) s_stat_0
S_STAT_0: Standard deviation of the air termperature for the degree-day model.
real(dp), dimension(0:jmax, 0:imax) zl_target
zl_target(j,i): Target topography (lithosphere surface)
logical, dimension(0:jmax, 0:imax) flag_shelfy_stream_x
flag_shelfy_stream_x(j,i): Shelfy stream flag in x-direction, at (i+1/2,j). .true.: shelfy stream point .false.: otherwise
real(dp) beta2_lt_0
BETA2_LT_0: Degree-day factor for ice at low summer temperatures.
real(dp), dimension(0:jmax, 0:imax) dzm_deta
dzm_deta(j,i): Derivative of zm by eta (at i,j+1/2)
real(dp), dimension(0:jmax, 0:imax) runoff
runoff(j,i): Runoff rate at the ice surface
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) temp_t_m
temp_t_m(kt,j,i): Melting temperature in the lower (kt) ice domain
real(dp), dimension(0:jmax, 0:imax) de_ssa
de_ssa(j,i): Effective strain rate of the SSA, at (i,j)
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) txz_c
txz_c(kc,j,i): Shear stress txz in the upper (kc) ice domain (at (i+1/2,j,kc))
real(dp), dimension(0:jmax, 0:imax) dzs_dxi
dzs_dxi(j,i): Derivative of zs by xi (at i+1/2,j)
real(dp), dimension(0:jmax, 0:imax) melt_star
melt_star(j,i): Superimposed ice formation rate at the ice surface
real(dp), dimension(0:jmax, 0:imax) h_t_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(sp), parameter eps_sp
eps_sp: Small number to single-precision accuracy
real(dp), dimension(0:jmax, 0:imax) zs_ref
zs_ref(j,i): Reference elevation for precip_present, temp_ma_present and temp_mj_present ...
real(dp), dimension(0:jmax, 0:imax) sq_g22_sgy
sq_g22_sgy(j,i): Square root of g22, at (i,j+1/2)
real(dp), dimension(0:jmax, 0:imax) snowfall
snowfall(j,i): Snowfall rate at the ice surface
real(dp) target_topo_tau
target_topo_tau: Relaxation time for target-topography adjustment
real(dp), dimension(0:jmax, 0:imax) zs_target
zs_target(j,i): Target topography (ice surface)
real(dp), parameter pi_180_inv
pi_180_inv: 180 divided by pi (-> rad to deg)
real(dp) b
B: Semi-minor axis of the planet.
real(dp), dimension(0:jmax, 0:imax) temp_s
temp_s(j,i): Ice surface temperature
real(dp), dimension(0:jmax, 0:imax) melt
melt(j,i): Melting rate at the ice surface
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) vz_t
vz_t(kt,j,i): Velocity in z-direction in the lower (kt) ice domain (at (i,j,kt+1/2)) ...
real(dp), dimension(0:jmax, 0:imax) zl
zl(j,i): Coordinate z of the lithosphere surface
real(dp) g
G: Acceleration due to gravity.
real(dp), dimension(0:jmax, 0:imax) dzb_dxi
dzb_dxi(j,i): Derivative of zb by xi (at i+1/2,j)
real(dp) r
R: Radius of the planet.
real(dp), dimension(0:jmax, 0:imax) vy_m
vy_m(j,i): Mean (depth-averaged) velocity in y-direction, at (i,j+1/2)
integer(i2b), dimension(0:jmax, 0:imax) kc_cts
kc_cts(j,i): Position kc of the CTS (for COLD, ENTC, ENTM)
integer(i4b) grip_time_max
grip_time_max: Maximum time of the data values for the surface temperature anomaly ...
real(dp), dimension(0:jmax, 0:imax) q_tld
Q_tld(j,i): Water drainage rate from the temperate layer.
real(dp), dimension(0:jmax, 0:imax) runoff_bot
runoff_bot(j,i): Runoff rate (accounting at ice bottom)
real(dp), dimension(0:jmax, 0:imax) zl_neu
(.)_neu: New value of quantity (.) computed during an integration step
integer(i4b), parameter rcl1
rcl1: Maximum length of record for input files (with factor 3 safety margin)
real(dp), dimension(0:jmax, 0:imax) vis_int_g
vis_int_g(j,i): Depth-integrated viscosity of the SSA, at (i,j)
real(dp), parameter pi_inv
pi_inv: Inverse of pi
real(dp), dimension(0:jmax, 0:imax) dh_t_deta
dH_t_deta(j,i): Derivative of H_t by eta (at i,j+1/2)
integer(i4b) ndata_gi
ndata_gi: Number of data values for the glacial index
real(dp), dimension(0:jmax, 0:imax) ratio_sl_y
ratio_sl_y(j,i): Ratio of basal to surface velocity (slip ratio) in y-direction, at (i...
real(dp), dimension(0:jmax, 0:imax) temp_b
temp_b(j,i): Basal temperature
integer(i4b) ndata_grip
ndata_grip: Number of data values for the surface temperature anomaly
integer(i4b), dimension(0:jmax, 0:imax) q_weert
q_weert(j,i): Weertman exponent for the basal pressure
real(dp) beta1_0
BETA1_0: Degree-day factor for snow.
real(dp), dimension(0:jmax, 0:imax) d_help_b
d_help_b(j,i): Auxiliary quantity for the computation of vx_b and vy_b
real(dp), dimension(0:jmax, 0:imax) et
ET(j,i): Temperature excess at the ice surface (positive degree days divided by time) ...
real(dp) ea
ea: Abbreviation for exp(aa)
real(dp), parameter pi_180
pi_180: pi divided by 180 (-> deg to rad)
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
real(dp), parameter no_value_neg_2
no_value_neg_2: Negative no-value parameter
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) enth_c
enth_c(kc,j,i): Enthalpy in the upper (kc) ice domain
logical flag_aa_nonzero
flag_aa_nonzero: Flag for the exponential stretch parameter aa. .true.: aa greater than zero (non-equ...
real(dp), dimension(0:jmax, 0:imax) h_diff
h_diff(j,i): Diffusivity of the SIA evolution equation of the ice surface
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) dyz_t
dyz_t(kt,j,i): Strain rate dyz in the lower (kt) ice domain
real(dp), dimension(0:jmax, 0:imax) runoff_top
runoff_top(j,i): Runoff rate (accounting at ice surface)
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) d_help_t
d_help_t(kt,j,i): Auxiliary quantity for the computation of vx, vy und zs
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) age_c_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp) aa
aa: Exponential stretch parameter of the non-equidistant vertical grid in the upper (kc) ice domain ...
real(dp) rho_c_r
RHO_C_R: Density times specific heat of the lithosphere.
real(dp), dimension(0:jmax, 0:imax) wss
wss(j,i): Isostatic steady-state displacement of the lithosphere
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) dxz_t
dxz_t(kt,j,i): Strain rate dxz in the lower (kt) ice domain
Declarations of kind types for SICOPOLIS.
real(dp), dimension(0:jmax, 0:imax) zs
zs(j,i): Coordinate z of the surface topography
real(dp) pmax_0
PMAX_0: Saturation factor for the formation of superimposed ice.
real(dp), dimension(0:jmax, 0:imax) evap
evap(j,i): Evaporation rate at the ice surface
real(dp), dimension(0:jmax, 0:imax) flui_ave_sia
flui_ave_sia(j,i): Depth-averaged fluidity of the SIA
real(dp), dimension(0:jmax, 0:imax) accum
accum(j,i): Accumulation rate at the ice surface (includes liquid precipitation = rainfall!) ...
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) txz_t
txz_t(kt,j,i): Shear stress txz in the lower (kt) ice domain (at (i+1/2,j,kt))
real(dp), dimension(0:jmax, 0:imax) dh_c_deta_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
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
real(dp), dimension(0:jmax, 0:imax) precip_ma_present
precip_ma_present(j,i): Present-day mean annual precipitation rate at the ice surface ...
integer(i2b), dimension(0:jmax, 0:imax) kc_cts_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) temp_c_neu
(.)_neu: New value of quantity (.) computed during an integration step
integer(i4b) gi_time_min
gi_time_min: Minimum time of the data values for the glacial index
real(dp), dimension(0:jmax, 0:imax) h_c
H_c(j,i): Thickness of ice in the upper (kc) domain (thickness of the cold-ice layer for POLY...
real(dp), dimension(0:jmax, 0:imax) zb_target
zb_target(j,i): Target topography (ice base)
real(dp) temp_precip_time_min
temp_precip_time_min: Minimum time of the surface-temperature and precipitation data ...
real(dp), dimension(0:jmax, 0:imax) smb_corr
smb_corr(j,i): Diagnosed SMB correction
real(dp) kei_r_max
kei_r_max: Maximum value of the argument r of the tabulated kei function
real(dp) year_zero
year_zero: SICOPOLIS year zero in astronomical year numbering [ = signed year CE (AD) ] ...
real(dp), parameter no_value_neg_1
no_value_neg_1: Negative no-value parameter
real(dp), dimension(:), allocatable specmap_zsl
specmap_zsl(n): Data values for the sea level
real(dp), dimension(0:jmax, 0:imax) vy_b_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) dxx_c
dxx_c(kc,j,i): Strain rate dxx in the upper (kc) ice domain
real(dp), parameter euler
euler: Euler number
integer(i4b) ncid_core
ncid_core: ID of the NetCDF time-series output file for the deep ice cores
real(dp) beta2_0
BETA2_0: Degree-day factor for ice.
real(dp), dimension(-190:10) kappa
KAPPA(n): Tabulated values for the heat conductivity of ice.
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) omega_t_neu
(.)_neu: New value of quantity (.) computed during an integration step
integer(i4b) gi_time_stp
gi_time_stp: Time step of the data values for the glacial index
integer(i4b) ndata_temp_precip
ndata_temp_precip: Number of surface-temperature and precipitation data
real(dp), dimension(0:jmax, 0:imax) dzm_dtau
dzm_dtau(j,i): Derivative of zm by tau (time)
real(dp), dimension(0:krmax) zeta_r
zeta_r(kr): Sigma coordinate zeta_r of grid point kr
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) omega_c
omega_c(kc,j,i): Water content in the upper (kc) ice domain
real(dp), dimension(:), allocatable y_core
y_core(n): Coordinate eta (= y) of the prescribed borehole positions
real(dp), dimension(:), allocatable temp_precip_time
temp_precip_time(n): Times of the surface-temperature and precipitation data
real(dp), dimension(0:jmax, 0:imax) sq_g11_sgy
sq_g11_sgy(j,i): Square root of g11, at (i,j+1/2)
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) temp_c_m
temp_c_m(kc,j,i): Melting temperature in the upper (kc) ice domain
integer(i2b), dimension(0:jmax, 0:imax) maske_old
maske_old(j,i): Old value of maske (at the previous time step)
real(dp), dimension(0:jmax, 0:imax) qx
qx(j,i): Volume flux in x-direction (depth-integrated vx, at (i+1/2,j))
character(len=64) ch_domain_long
ch_domain_long: Long name of the computational domain
real(dp), dimension(0:jmax, 0:imax) accum_present
accum_present(j,i): Present-day accumulation rate at the ice surface (for EISMINT, ISMIP HEINO and the north and south polar caps of Mars)
real(dp), parameter eps_dp
eps_dp: Small number to double-precision accuracy
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) dxx_t
dxx_t(kt,j,i): Strain rate dxx in the lower (kt) ice domain
real(dp), dimension(0:jmax, 0:imax) dzb_deta_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) enth_t_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp), dimension(0:jmax, 0:imax) temp_ma_present
temp_ma_present(j,i): Present-day mean annual surface temperature
real(dp) nue
NUE: Water diffusivity in ice.
real(dp), dimension(0:jmax, 0:imax) precip_ma_lgm_anom
precip_ma_lgm_anom(j,i): LGM anomaly (ratio LGM/present) of the mean annual precipitation rate at the...
real(dp), dimension(0:jmax, 0:imax) zs_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp), dimension(0:jmax, 0:imax) zl0
zl0(j,i): zl for isostatically relaxed ice-free conditions
real(dp), dimension(0:jmax, 0:imax) p_weert_inv
p_weert_inv(j,i): Inverse of p_weert
integer(i4b) gi_time_max
gi_time_max: Maximum time of the data values for the glacial index
real(dp) beta1_lt_0
BETA1_LT_0: Degree-day factor for snow at low summer temperatures.
logical, dimension(0:jmax, 0:imax) flag_shelfy_stream
flag_shelfy_stream(j,i): Shelfy stream flag on the main grid. .true.: grounded ice, and at least one neighbour on the staggered grid is a shelfy stream point .false.: otherwise
real(dp), dimension(0:jmax, 0:imax) dzs_deta
dzs_deta(j,i): Derivative of zs by eta (at i,j+1/2)
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) tyz_c
tyz_c(kc,j,i): Shear stress tyz in the upper (kc) ice domain (at (i,j+1/2,kc))
real(dp), dimension(0:jmax, 0:imax) q_gl_g
q_gl_g(j,i): Volume flux across the grounding line, at (i,j)
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) vz_c
vz_c(kc,j,i): Velocity in z-direction in the upper (kc) ice domain (at (i,j,kc+1/2)) ...
real(dp) phi0
PHI0: Standard parallel of the stereographic projection.
real(dp), dimension(0:jmax, 0:imax) vy_s_g
vy_s_g(j,i): Velocity in x-direction at the ice surface, at (i,j)
character, parameter end_of_line
end_of_line: End-of-line string
real(dp), parameter no_value_pos_2
no_value_pos_2: Positive no-value parameter
real(dp), dimension(0:jmax, 0:imax) sq_g11_sgx
sq_g11_sgx(j,i): Square root of g11, at (i+1/2,j)
real(dp), dimension(0:jmax, 0:imax, 12) gamma_precip_lgm_anom
gamma_precip_lgm_anom(j,i,n): negative natural logarithm of precip_lgm_anom(j,i,n) ...
real(dp) time_target_topo_final
time_target_topo_final: Final time for target-topography adjustment
real(dp), dimension(0:jmax, 0:imax) h_c_neu
(.)_neu: New value of quantity (.) computed during an integration step
integer(i2b), dimension(0:jmax, 0:imax) maske_neu
maske_neu(j,i): New value of maske computed during an integration step
real(dp), dimension(0:jmax, 0:imax) zm
zm(j,i): Coordinate z of the bottom of the upper (kc) ice domain = top of the lower (kt) ice domain (...
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) dyy_c
dyy_c(kc,j,i): Strain rate dyy in the upper (kc) ice domain
real(dp), dimension(0:jmax, 0:imax) temp_mj_lgm_anom
temp_mj_lgm_anom(j,i): LGM anomaly (difference LGM - present) of the mean summer (northern hemisphere...
real(dp), dimension(-190:10) rf
RF(n): Tabulated values for the rate factor of cold ice.
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) dxz_c
dxz_c(kc,j,i): Strain rate dxz in the upper (kc) ice domain
real(dp), dimension(0:jmax, 0:imax) q_b_tot
Q_b_tot(j,i): Sum of Q_bm and Q_tld.
real(dp), dimension(0:jmax, 0:imax) q_bm
Q_bm(j,i): Basal melting rate.
real(dp), dimension(0:jmax, 0:imax) disc_top
disc_top(j,i): Ice discharge rate (accounting at ice surface)
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) dxy_c
dxy_c(kc,j,i): Strain rate dxy in the upper (kc) ice domain
real(dp), dimension(0:jmax, 0:imax) vx_g
vx_g(j,i): Velocity in x-direction of the SSA, at (i,j)
real(dp), dimension(-190:10) c
C(n): Tabulated values for the specific heat of ice.
real(dp), dimension(0:kcmax) eaz_c_quotient
eaz_c_quotient(kc): Abbreviation for (eaz_c(kc)-1.0)/(ea-1.0)
real(dp), dimension(-10000:10000) kei
kei(n): Tabulated values of the kei function (Kelvin function of zero order)
real(dp), dimension(0:jmax, 0:imax) dzb_deta
dzb_deta(j,i): Derivative of zb by eta (at i,j+1/2)
real(dp), dimension(0:jmax, 0:imax) dh_t_deta_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
real(dp) time_target_topo_init
time_target_topo_init: Initial time for target-topography adjustment
real(dp), dimension(0:jmax, 0:imax) dh_t_dxi_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
real(dp), dimension(0:jmax, 0:imax) dzm_dxi_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
integer(i4b) specmap_time_stp
specmap_time_stp: Time step of the data values for the sea level
integer(i4b), parameter rcl2
rcl2: Maximum length of record for input mask files (with factor 3 safety margin) ...
real(dp), dimension(0:jmax, 0:imax) dzm_dxi
dzm_dxi(j,i): Derivative of zm by xi (at i+1/2,j)
real(dp), dimension(0:jmax, 0:imax) temp_ma_lgm_anom
temp_ma_lgm_anom(j,i): LGM anomaly (difference LGM - present) of the mean annual surface temperature ...
real(dp), dimension(0:jmax, 0:imax) temph_b
temph_b(j,i): Basal temperature relative to the pressure melting point
real(dp), dimension(0:jmax, 0:imax) dzs_dxi_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) vy_t
vy_t(kt,j,i): Velocity in y-direction in the lower (kt) ice domain (at (i,j+1/2,kt)) ...
real(dp), dimension(0:jmax, 0:imax) am_perp
am_perp(j,i): Ice volume flux across the z=zm interface
real(dp) beta
BETA: Clausius-Clapeyron gradient of ice.
real(dp), dimension(-jmax:jmax,-imax:imax) dist_dxdy
dist_dxdy(jr,ir): Distance between grid points with delta_i=ir, delta_j=jr
real(dp), parameter pi
pi: Constant pi
real(dp), dimension(0:jmax, 0:imax) dzm_deta_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
integer(i4b) ncid_temp_precip
ncid_temp_precip: ID of the NetCDF file containing the surface-temperature and precipitation data as ...
character(len=16), dimension(:), allocatable ch_core
ch_core(n): Names of the prescribed borehole positions
real(dp), dimension(0:jmax, 0:imax) sq_g11_g
sq_g11_g(j,i): Square root of the coefficient g11 of the metric tensor on grid point (i...
real(dp), parameter no_value_pos_1
no_value_pos_1: Positive no-value parameter
real(dp), dimension(0:jmax, 0:imax) as_perp_apl
as_perp_apl(j,i): Applied accumulation-ablation function (SMB)
logical, dimension(0:jmax, 0:imax) flag_calving_front_1
flag_calving_front_1(j,i): Calving front flag. .true.: calving front point (floating ice point with a...
real(dp), dimension(0:jmax, 0:imax) ratio_sl_x
ratio_sl_x(j,i): Ratio of basal to surface velocity (slip ratio) in x-direction, at (i+1/2...
integer(i4b) grip_time_min
grip_time_min: Minimum time of the data values for the surface temperature anomaly ...
real(dp), dimension(0:jmax, 0:imax) time_lag_asth
time_lag_asth(j,i): Time lag of the relaxing asthenosphere
real(dp), dimension(0:jmax) eta
eta(j): Coordinate eta (= y) of grid point j
real(dp), dimension(:), allocatable x_core
x_core(n): Coordinate xi (= x) of the prescribed borehole positions
real(dp), dimension(0:jmax, 0:imax) insq_g11_g
insq_g11_g(j,i): Inverse square root of g11 on grid point (i,j)
real(dp), dimension(0:jmax, 0:imax) c_drag
c_drag(j,i): Auxiliary quantity for the computation of the basal drag
real(dp), dimension(0:imax) xi
xi(i): Coordinate xi (= x) of grid point i
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) vy_c
vy_c(kc,j,i): Velocity in y-direction in the upper (kc) ice domain (at (i,j+1/2,kc)) ...
character(len=16) ch_domain_short
ch_domain_short: Short name of the computational domain
real(dp) r_t
R_T: Coefficient of the water-content dependence in the rate factor for temperate ice...
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) omega_t
omega_t(kt,j,i): Water content in the lower (kt) ice domain
real(dp) kei_r_incr
kei_r_incr: Increment of the argument r of the tabulated kei function
real(dp), dimension(0:ktmax) zeta_t
zeta_t(kt): Sigma coordinate zeta_t of grid point kt
real(dp) rho_sw
RHO_SW: Density of sea water.
logical, dimension(0:jmax, 0:imax) flag_calving_front_2
flag_calving_front_2(j,i): Calving front flag. .true.: calving front point (ocean point with at least...
logical, dimension(0:jmax, 0:imax) flag_shelfy_stream_y
flag_shelfy_stream_y(j,i): Shelfy stream flag in y-direction, at (i,j+1/2). .true.: shelfy stream point .false.: otherwise
real(dp), dimension(0:jmax, 0:imax) zb_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp) l
L: Latent heat of ice.
real(dp), parameter eps_sp_dp
eps_sp_dp: Small number to single-precision accuracy in double precision
real(dp), dimension(0:jmax, 0:imax) zm_neu
(.)_neu: New value of quantity (.) computed during an integration step
integer(i2b), dimension(0:jmax, 0:imax) mask_run
mask_run(j,i): mask indicating melt type. 2: visible (ocean, for later developments), 1: visible (grounded ice), -1: hidden on land, -2: hidden in ocean
real(dp), dimension(0:jmax, 0:imax) dh_t_dxi
dH_t_dxi(j,i): Derivative of H_t by xi (at i+1/2,j)
integer(i4b) n_data_kei
n_data_kei: Number of tabulated values of the kei function
character(len=256) errormsg
errormsg: Error-message string
real(dp) rho
RHO: Density of ice.
integer(i2b), dimension(0:jmax, 0:imax) n_cts_neu
(.)_neu: New value of quantity (.) computed during an integration step
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) sigma_c
sigma_c(kc,j,i): Effective stress in the upper (kc) ice domain
real(dp), dimension(0:jmax, 0:imax) vx_b
vx_b(j,i): Velocity in x-direction at the ice base, at (i+1/2,j)
real(dp), dimension(0:jmax, 0:imax) smb_corr_prescribed
smb_corr_prescribed(j,i): Prescribed SMB correction
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) sigma_t
sigma_t(kt,j,i): Effective stress in the lower (kt) ice domain
real(dp) rho_a
RHO_A: Density of the asthenosphere.
integer(i4b), dimension(0:jmax, 0:imax) p_weert
p_weert(j,i): Weertman exponent for the basal shear stress
real(dp), dimension(0:jmax, 0:imax) h_target
H_target(j,i): Target topography (ice thickness)
real(dp), dimension(:), allocatable lambda_core
lambda_core(n): Geographical longitude of the prescribed borehole positions
integer(i4b) n_core
n_core: Number of positions to be considered in the time-series file for deep boreholes ...
integer, parameter dp
Double-precision reals.
real(dp), dimension(0:jmax, 0:imax) zb
zb(j,i): Coordinate z of the ice base
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) omega_c_neu
(.)_neu: New value of quantity (.) computed during an integration step
logical, dimension(0:jmax, 0:imax) flag_grounding_line_2
flag_grounding_line_2(j,i): Grounding line flag. .true.: grounding line point (floating ice point wit...
real(dp), dimension(0:jmax, 0:imax, 12) precip_present
precip_present(j,i,n): Present-day mean monthly precipitation rate at the ice surface ...
real(dp), dimension(0:jmax, 0:imax) am_perp_st
am_perp_st(j,i): Steady-state part of am_perp (without contribution of dzm_dtau)
real(dp), dimension(0:jmax, 0:imax) dzb_dtau
dzb_dtau(j,i): Derivative of zb by tau (time)
integer(i2b), dimension(0:jmax, 0:imax) maske_target
maske_target(j,i): Target topography (ice-land-ocean mask)
real(dp), dimension(0:kcmax) zeta_c
zeta_c(kc): Sigma coordinate zeta_c of grid point kc
real(dp) lambda0
LAMBDA0: Reference longitude (central meridian) of the stereographic projection.
real(dp), dimension(0:jmax, 0:imax, 12) precip_lgm_anom
precip_lgm_anom(j,i,n): LGM anomaly (ratio LGM/present) of the mean monthly precipitation rate at the...
real(dp), dimension(0:jmax, 0:imax) h_t
H_t(j,i): Thickness of ice in the lower (kt) domain (thickness of the temperate layer for POLY...
real(dp), dimension(0:jmax, 0:imax, 12) temp_mm_lgm_anom
temp_mm_lgm_anom(j,i,n): LGM anomaly (difference LGM - present) of the mean monthly surface temperatu...
real(dp), dimension(0:jmax, 0:imax) h_w
H_w(j,i): Thickness of the water column under the ice base.
Declarations of global variables for SICOPOLIS.
real(dp), dimension(0:jmax, 0:imax) dzs_dtau
dzs_dtau(j,i): Derivative of zs by tau (time)
real(dp), dimension(0:jmax, 0:imax) flex_rig_lith
flex_rig_lith(j,i): Flexural rigidity of the lithosphere
real(dp), dimension(:), allocatable griptemp
griptemp(n): Data values for the surface temperature anomaly
real(dp), dimension(0:jmax, 0:imax) dzl_dtau
dzl_dtau(j,i): Derivative of zl by tau (time)
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) tyz_t
tyz_t(kt,j,i): Shear stress tyz in the lower (kt) ice domain (at (i,j+1/2,kt))
real(dp), dimension(0:jmax, 0:imax) sq_g22_g
sq_g22_g(j,i): Square root of the coefficient g22 of the metric tensor on grid point (i...
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) vx_t
vx_t(kt,j,i): Velocity in x-direction in the lower (kt) ice domain (at (i+1/2,j,kt)) ...
real(dp), dimension(0:jmax, 0:imax) dzb_dxi_g
(.)_g(j,i): Staggered-grid quantity (.) interpolated to grid point (i,j)
real(dp), dimension(0:jmax, 0:imax) qy
qy(j,i): Volume flux in y-direction (depth-integrated vy, at (i,j+1/2))