SICOPOLIS V5-dev  Revision 1173
sico_main_loop_m.F90
Go to the documentation of this file.
1 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 !
3 ! Module : s i c o _ m a i n _ l o o p _ m
4 !
5 !> @file
6 !!
7 !! Main loop of SICOPOLIS.
8 !!
9 !! @section Copyright
10 !!
11 !! Copyright 2009-2017 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 !> Main loop of SICOPOLIS.
34 !<------------------------------------------------------------------------------
36 
37  use sico_types_m
39  use sico_vars_m
40 
41  implicit none
42 
43  public
44 
45 contains
46 
47 !-------------------------------------------------------------------------------
48 !> Main routine of sico_main_loop_m: Main loop of SICOPOLIS.
49 !<------------------------------------------------------------------------------
50  subroutine sico_main_loop(delta_ts, glac_index, &
51  mean_accum, &
52  dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser, &
53  time, time_init, time_end, time_output, &
54  dxi, deta, dzeta_c, dzeta_t, dzeta_r, &
55  z_sl, dzsl_dtau, z_mar, &
56  ii, jj, nn, &
57  ndat2d, ndat3d, n_output, &
58  runname)
59 
60  use boundary_m
61 
62 #if (CALCMOD==0 || CALCMOD==1 || CALCMOD==-1)
63  use calc_temp_m
64 #elif (CALCMOD==2 || CALCMOD==3)
66 #endif
67 
68  use calc_enhance_m
69  use calc_vxy_m
70  use calc_vz_m
71  use calc_dxyz_m
72  use calc_gia_m
73  use calc_thk_m
75  use calc_bas_melt_m
77  use output_m
78 
79  implicit none
80 
81  integer(i4b), intent(in) :: ii((imax+1)*(jmax+1)), &
82  jj((imax+1)*(jmax+1)), &
83  nn(0:jmax,0:imax)
84  integer(i4b), intent(in) :: n_output
85  real(dp), intent(in) :: mean_accum
86  real(dp), intent(in) :: dtime, dtime_temp, dtime_wss, &
87  dtime_out, dtime_ser
88  real(dp), intent(in) :: time_init, time_end, time_output(100)
89  real(dp), intent(in) :: dxi, deta, dzeta_c, dzeta_t, dzeta_r
90  character(len=100), intent(in) :: runname
91 
92  integer(i4b), intent(inout) :: ndat2d, ndat3d
93  real(dp), intent(inout) :: delta_ts, glac_index
94  real(dp), intent(inout) :: time
95  real(dp), intent(inout) :: z_sl, dzsl_dtau, z_mar
96 
97  integer(i4b) :: i, j, kc, kt, kr, n
98  integer(i4b) :: itercount, itercount_max
99  integer(i4b) :: iter_temp, iter_wss, iter_ser, iter_out, iter_output(100)
100  real(dp) :: dtime_temp_inv
101  logical :: flag_3d_output
102 
103 !-------- Begin of main loop --------
104 
105  write(unit=6, fmt='(/a/)') ' -------- sico_main_loop --------'
106 
107  itercount_max = nint((time_end-time_init)/dtime)
108 
109  iter_temp = nint(dtime_temp/dtime)
110 #if (REBOUND==2)
111  iter_wss = nint(dtime_wss/dtime)
112 #endif
113  iter_ser = nint(dtime_ser/dtime)
114 #if (OUTPUT==1 || OUTPUT==3)
115  iter_out = nint(dtime_out/dtime)
116 #endif
117 #if (OUTPUT==2 || OUTPUT==3)
118  do n=1, n_output
119  iter_output(n) = nint((time_output(n)-time_init)/dtime)
120  end do
121 #endif
122 
123  main_loop : do itercount=1, itercount_max
124 
125  write(unit=6, fmt='(2x,i0)') itercount
126 
127 !-------- Update of time --------
128 
129  time = time_init + real(itercount,dp)*dtime
130 
131 !-------- Save old mask --------
132 
133  maske_old = maske
134 
135 !-------- Boundary conditions --------
136 
137  call boundary(time, dtime, dxi, deta, delta_ts, glac_index, &
138  z_sl, dzsl_dtau, z_mar)
139 
140 !-------- Temperature, water content, age, flow enhancement factor --------
141 
142  if ( mod(itercount, iter_temp) == 0 ) then
143 
144  write(unit=6, fmt='(10x,a)') 'Computation of T'
145 
146 ! ------ Temperature, water content, age
147 
148 #if (CALCMOD==1)
149  call calc_temp_poly(dxi, deta, dzeta_c, dzeta_t, dzeta_r, dtime_temp)
150  ! polythermal scheme (POLY)
151 
152 #elif (CALCMOD==0)
153  call calc_temp_cold(dxi, deta, dzeta_c, dzeta_t, dzeta_r, dtime_temp)
154  ! cold-ice scheme (COLD)
155 
156 #elif (CALCMOD==2 || CALCMOD==3)
157  call calc_temp_enth(dxi, deta, dzeta_c, dzeta_t, dzeta_r, dtime_temp)
158  ! enthalpy scheme (ENTC or ENTM)
159 
160 #elif (CALCMOD==-1)
161  call calc_temp_const() ! isothermal scheme (ISOT)
162 
163 #else
164  stop ' >>> sico_main_loop: Parameter CALCMOD must be between -1 and 3!'
165 #endif
166 
167 ! ------ Time derivative of H_t (further time derivatives are
168 ! computed in subroutine calc_thk_xxx)
169 
170  dtime_temp_inv = 1.0_dp/dtime_temp
171 
172  dh_t_dtau = (h_t_neu - h_t)*dtime_temp_inv
173 
174 ! ------ New values --> old values
175 
176  n_cts = n_cts_neu
178  zm = zm_neu
179  h_c = h_c_neu
180  h_t = h_t_neu
182  age_c = age_c_neu
184  age_t = age_t_neu
186 
187 #if (CALCMOD==2 || CALCMOD==3)
191 #endif
192 
193 ! ------ Flow enhancement factor
194 
195 #if (ENHMOD==1)
196  call calc_enhance_1()
197 #elif (ENHMOD==2)
198  call calc_enhance_2()
199 #elif (ENHMOD==3)
200  call calc_enhance_3(time)
201 #elif (ENHMOD==4)
202  call calc_enhance_4()
203 #elif (ENHMOD==5)
204  call calc_enhance_5()
205 #else
206  stop ' >>> sico_main_loop: Parameter ENHMOD must be between 1 and 5!'
207 #endif
208 
209  end if
210  ! End of computation of temperature, water content, age and
211  ! enhancement factor
212 
213 !-------- Velocity --------
214 
215 #if (DYNAMICS==1 || DYNAMICS==2)
216 
217  call calc_vxy_b_sia(time, z_sl)
218  call calc_vxy_sia(dzeta_c, dzeta_t)
219 
220 #if (MARGIN==3 || DYNAMICS==2)
221  call calc_vxy_ssa(z_sl, dxi, deta, dzeta_c, dzeta_t, ii, jj, nn)
222 #endif
223 
224  call calc_vz_grounded(dxi, deta, dzeta_c, dzeta_t)
225 
226 #if (MARGIN==3)
227  call calc_vz_floating(z_sl, dxi, deta, dzeta_c)
228 #endif
229 
230 #elif (DYNAMICS==0)
231 
232  call calc_vxy_static()
233  call calc_vz_static()
234 
235 #else
236  stop ' >>> sico_main_loop: DYNAMICS must be either 0, 1 or 2!'
237 #endif
238 
239  call calc_dxyz(dxi, deta, dzeta_c, dzeta_t)
240 
241 !-------- Glacial isostatic adjustment and ice topography --------
242 
243  call calc_gia(time, z_sl, dtime, dxi, deta, itercount, iter_wss)
244 
245  call calc_thk_init()
246 
247 #if ((MARGIN==3 || DYNAMICS==2) && (CALCTHK==1 || CALCTHK==2 || CALCTHK==3))
248  write(6, fmt='(a)') ' >>> sico_main_loop:'
249  write(6, fmt='(a)') ' Non-SIA dynamics combined with'
250  write(6, fmt='(a)') ' SIA ice thickness solver!'
251  stop
252 #endif
253 
254 #if (CALCTHK==1)
255  call calc_thk_sia_expl(time, dtime, dxi, deta, z_mar)
256 #elif (CALCTHK==2 || CALCTHK==3)
257  call calc_thk_sia_impl(time, dtime, dxi, deta, z_mar, mean_accum, ii, jj, nn)
258 #elif (CALCTHK==4)
259  call calc_thk_expl(time, dtime, dxi, deta, z_mar)
260 #elif (CALCTHK==5 || CALCTHK==6)
261  call calc_thk_impl(time, dtime, dxi, deta, z_mar, mean_accum, ii, jj, nn)
262 #else
263  stop ' >>> sico_main_loop: Parameter CALCTHK must be between 1 and 6!'
264 #endif
265 
266 #if (MARGIN==3) /* coupled SIA/SSA or SIA/SStA/SSA dynamics */
267  call calc_thk_mask_update(time, dtime, dxi, deta, z_sl, z_mar, 3_i2b)
268 #elif (DYNAMICS==2) /* hybrid SIA/SStA dynamics */
269  call calc_thk_mask_update(time, dtime, dxi, deta, z_sl, z_mar, 2_i2b)
270 #else /* SIA-only dynamics */
271 #if (CALCTHK==1 || CALCTHK==2 || CALCTHK==3)
272  call calc_thk_mask_update(time, dtime, dxi, deta, z_sl, z_mar, 1_i2b)
273 #elif (CALCTHK==4 || CALCTHK==5 || CALCTHK==6)
274  call calc_thk_mask_update(time, dtime, dxi, deta, z_sl, z_mar, 2_i2b)
275 #endif
276 #endif
277 
278 ! ------ New values --> old values
279 
280  zs = zs_neu
281  zm = zm_neu
282  zb = zb_neu
283  zl = zl_neu
284  h_c= h_c_neu
285  h_t= h_t_neu
286 
287 !-------- Melting temperature --------
288 
289  call calc_temp_melt()
290 
291 !-------- Basal temperature --------
292 
293  call calc_temp_bas()
294 
295 !-------- Basal melting rate --------
296 
297  call calc_qbm(time, z_sl, dzeta_c, dzeta_r)
298 
299 !-------- Effective thickness of subglacial water --------
300 
301  call calc_thk_water_bas(z_sl)
302 
303 !-------- Data output --------
304 
305 #if (OUTPUT==1)
306 
307  if ( mod(itercount, iter_out) == 0 ) then
308 
309 #if (ERGDAT==0)
310  flag_3d_output = .false.
311 #elif (ERGDAT==1)
312  flag_3d_output = .true.
313 #endif
314 
315  call output1(runname, time, delta_ts, glac_index, z_sl, &
316  flag_3d_output, ndat2d, ndat3d)
317 
318  end if
319 
320 #elif (OUTPUT==2)
321 
322  do n=1, n_output
323 
324  if (itercount == iter_output(n)) then
325 
326 #if (ERGDAT==0)
327  flag_3d_output = .false.
328 #elif (ERGDAT==1)
329  flag_3d_output = .true.
330 #endif
331 
332  call output1(runname, time, delta_ts, glac_index, z_sl, &
333  flag_3d_output, ndat2d, ndat3d)
334 
335  end if
336 
337  end do
338 
339 #elif (OUTPUT==3)
340 
341  if ( mod(itercount, iter_out) == 0 ) then
342 
343  flag_3d_output = .false.
344 
345  call output1(runname, time, delta_ts, glac_index, z_sl, &
346  flag_3d_output, ndat2d, ndat3d)
347 
348  end if
349 
350  do n=1, n_output
351 
352  if (itercount == iter_output(n)) then
353 
354  flag_3d_output = .true.
355 
356  call output1(runname, time, delta_ts, glac_index, z_sl, &
357  flag_3d_output, ndat2d, ndat3d)
358 
359  end if
360 
361  end do
362 
363 #endif
364 
365  if ( mod(itercount, iter_ser) == 0 ) then
366  call output2(time, dxi, deta, delta_ts, glac_index, z_sl)
367  call output4(time, dxi, deta, delta_ts, glac_index, z_sl)
368 #if (defined(ASF) && WRITE_SER_FILE_STAKES>0)
369  call output5(time, dxi, deta, delta_ts, glac_index, z_sl)
370 #endif
371 
372  end if
373 
374  end do main_loop ! End of main loop
375 
376  end subroutine sico_main_loop
377 
378 !-------------------------------------------------------------------------------
379 
380 end module sico_main_loop_m
381 !
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) temp_c
temp_c(kc,j,i): Temperature in the upper (kc) ice domain
subroutine, public calc_thk_water_bas(z_sl)
Main subroutine of calc_thk_water_bas_m: Computation of the thickness of the water column under the i...
Computation of the ice thickness.
Definition: calc_thk_m.F90:35
real(dp), dimension(0:krmax, 0:jmax, 0:imax) temp_r_neu
(.)_neu: New value of quantity (.) computed during an integration step
subroutine, public calc_thk_init()
Initialisations for the ice thickness computation.
Definition: calc_thk_m.F90:59
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...
subroutine, public calc_qbm(time, z_sl, dzeta_c, dzeta_r)
Computation of the basal melting rate Q_bm. Summation of Q_bm and Q_tld (water drainage rate from the...
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) age_t
age_t(kt,j,i): Age in the lower (kt) ice domain
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
subroutine, public calc_enhance_2()
Computation of the flow enhancement factor. Case ENHMOD==2: two different values depending on age for...
subroutine, public calc_vz_floating(z_sl, dxi, deta, dzeta_c)
Computation of the vertical velocity vz for floating ice.
Definition: calc_vz_m.F90:259
subroutine, public output1(runname, time, delta_ts, glac_index, z_sl, flag_3d_output, ndat2d, ndat3d)
Writing of time-slice files in native binary or NetCDF format.
Definition: output_m.F90:59
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) dh_t_dtau
dH_t_dtau(j,i): Derivative of H_t by tau (time)
Computation of the thickness of the water column under the ice base.
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 ...
Main loop of SICOPOLIS.
subroutine, public calc_thk_impl(time, dtime, dxi, deta, z_mar, mean_accum, ii, jj, nn)
Over-implicit solver for the general ice thickness equation.
Definition: calc_thk_m.F90:615
subroutine, public calc_temp_cold(dxi, deta, dzeta_c, dzeta_t, dzeta_r, dtime_temp)
Computation of temperature and age in cold-ice mode.
subroutine, public calc_thk_sia_expl(time, dtime, dxi, deta, z_mar)
Explicit solver for the diffusive SIA ice surface equation.
Definition: calc_thk_m.F90:137
Computation of all components of the strain-rate tensor, the full effective strain rate and the shear...
Definition: calc_dxyz_m.F90:37
real(dp), dimension(0:jmax, 0:imax) h_t_neu
(.)_neu: New value of quantity (.) computed during an integration step
subroutine, public calc_temp_const()
Isothermal mode: Setting of the temperature and age to constant values.
subroutine sico_main_loop(delta_ts, glac_index, mean_accum, dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser, time, time_init, time_end, time_output, dxi, deta, dzeta_c, dzeta_t, dzeta_r, z_sl, dzsl_dtau, z_mar, ii, jj, nn, ndat2d, ndat3d, n_output, runname)
Main routine of sico_main_loop_m: Main loop of SICOPOLIS.
subroutine, public calc_enhance_5()
Computation of the flow enhancement factor. Case ENHMOD==5: minimal anisotropic enhancement factor fo...
real(dp), dimension(0:jmax, 0:imax) zl
zl(j,i): Coordinate z of the lithosphere surface
subroutine, public calc_thk_expl(time, dtime, dxi, deta, z_mar)
Explicit solver for the general ice thickness equation.
Definition: calc_thk_m.F90:501
subroutine, public calc_vxy_static()
Computation of the horizontal velocity vx, vy, the horizontal volume flux qx, qy etc. for static ice.
subroutine, public output4(time, dxi, deta, delta_ts, glac_index, z_sl)
Writing of time-series data of the deep ice cores on file in ASCII format (and optionally in NetCDF f...
Definition: output_m.F90:4751
integer(i2b), dimension(0:jmax, 0:imax) kc_cts
kc_cts(j,i): Position kc of the CTS (for COLD, ENTC, ENTM)
subroutine, public calc_vxy_ssa(z_sl, dxi, deta, dzeta_c, dzeta_t, ii, jj, nn)
Computation of the horizontal velocity vx, vy, the horizontal volume flux qx, qy and the flux across ...
real(dp), dimension(0:jmax, 0:imax) zl_neu
(.)_neu: New value of quantity (.) computed during an integration step
Declarations of global variables for SICOPOLIS (for the ANT domain).
Definition: sico_vars_m.F90:35
Computation of the flow enhancement factor.
Computation of the horizontal velocity vx, vy.
Definition: calc_vxy_m.F90:35
subroutine, public calc_temp_melt()
Computation of the melting temperatures.
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) enth_c
enth_c(kc,j,i): Enthalpy in the upper (kc) ice domain
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) age_c_neu
(.)_neu: New value of quantity (.) computed during an integration step
subroutine, public calc_vz_grounded(dxi, deta, dzeta_c, dzeta_t)
Computation of the vertical velocity vz for grounded ice.
Definition: calc_vz_m.F90:52
subroutine, public calc_thk_mask_update(time, dtime, dxi, deta, z_sl, z_mar, n_calc_thk_mask_update_aux)
Update of the ice-land-ocean mask etc.
Declarations of kind types for SICOPOLIS.
real(dp), dimension(0:jmax, 0:imax) zs
zs(j,i): Coordinate z of the surface topography
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
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...
Computation of temperature, water content and age.
Definition: calc_temp_m.F90:35
subroutine, public calc_temp_bas()
Computation of the basal temperatures.
Computation of the melting and basal temperatures.
Computation of the vertical velocity vz.
Definition: calc_vz_m.F90:35
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) omega_t_neu
(.)_neu: New value of quantity (.) computed during an integration step
subroutine, public calc_gia(time, z_sl, dtime, dxi, deta, itercount, iter_wss)
Main subroutine of calc_gia_m: Computation of the glacial isostatic adjustment of the lithosphere sur...
Definition: calc_gia_m.F90:54
real(dp), dimension(0:kcmax, 0:jmax, 0:imax) omega_c
omega_c(kc,j,i): Water content 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: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) zs_neu
(.)_neu: New value of quantity (.) computed during an integration step
subroutine, public calc_vz_static()
Computation of the vertical velocity vz for static ice.
Definition: calc_vz_m.F90:374
real(dp), dimension(0:jmax, 0:imax) h_c_neu
(.)_neu: New value of quantity (.) computed during an integration step
subroutine, public calc_enhance_1()
Computation of the flow enhancement factor. Case ENHMOD==1: constant for grounded ice...
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 (...
Computation of temperature, water content and age with the enthalpy method.
subroutine, public calc_vxy_sia(dzeta_c, dzeta_t)
Computation of the shear stresses txz, tyz, the effective shear stress sigma, the depth-averaged flui...
Definition: calc_vxy_m.F90:478
subroutine boundary(time, dtime, dxi, deta, delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
Main routine of boundary_m: Computation of the surface temperature (must be less than 0 deg C!) and o...
Definition: boundary_m.F90:56
subroutine, public output2(time, dxi, deta, delta_ts, glac_index, z_sl)
Writing of time-series data on file in ASCII format (and optionally in NetCDF format).
Definition: output_m.F90:3407
subroutine, public calc_temp_enth(dxi, deta, dzeta_c, dzeta_t, dzeta_r, dtime_temp)
Main subroutine of calc_temp_enth_m: Computation of temperature, water content and age with the entha...
subroutine, public calc_enhance_3(time)
Computation of the flow enhancement factor. Case ENHMOD==3: two different values depending on time of...
real(dp), dimension(0:ktmax, 0:jmax, 0:imax) omega_t
omega_t(kt,j,i): Water content in the lower (kt) ice domain
subroutine, public calc_dxyz(dxi, deta, dzeta_c, dzeta_t)
Main subroutine of calc_dxyz_m: Computation of all components of the strain-rate tensor, the full effective strain rate and the shear fraction.
Definition: calc_dxyz_m.F90:56
subroutine, public calc_enhance_4()
Computation of the flow enhancement factor. Case ENHMOD==4: minimal anisotropic enhancement factor fo...
Computation of the basal melting rate.
real(dp), dimension(0:jmax, 0:imax) zb_neu
(.)_neu: New value of quantity (.) computed during an integration step
Computation of the surface temperature (must be less than 0 deg C!) and of the accumulation-ablation ...
Definition: boundary_m.F90:37
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) n_cts_neu
(.)_neu: New value of quantity (.) computed during an integration step
subroutine, public calc_thk_sia_impl(time, dtime, dxi, deta, z_mar, mean_accum, ii, jj, nn)
Over-implicit solver for the diffusive SIA ice surface equation.
Definition: calc_thk_m.F90:216
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
subroutine, public calc_temp_poly(dxi, deta, dzeta_c, dzeta_t, dzeta_r, dtime_temp)
Computation of temperature, water content and age in polythermal mode.
Definition: calc_temp_m.F90:53
Writing of output data on files.
Definition: output_m.F90:36
Computation of the glacial isostatic adjustment of the lithosphere surface.
Definition: calc_gia_m.F90:36
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...
subroutine, public calc_vxy_b_sia(time, z_sl)
Computation of the basal horizontal velocity vx_b, vy_b in the shallow ice approximation.
Definition: calc_vxy_m.F90:53
Declarations of global variables for SICOPOLIS.