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