46 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske
48 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_help
50 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_neu
56 integer(i2b),
dimension(0:JMAX,0:IMAX) :: n_cts
58 integer(i2b),
dimension(0:JMAX,0:IMAX) :: n_cts_neu
60 integer(i4b),
dimension(0:JMAX,0:IMAX) :: kc_cts
66 logical,
dimension(0:JMAX,0:IMAX) :: flag_grounding_line
72 logical,
dimension(0:JMAX,0:IMAX) :: flag_calving_front
76 logical,
dimension(0:JMAX,0:IMAX) :: flag_sf
78 real(dp),
dimension(0:IMAX) :: xi
80 real(dp),
dimension(0:JMAX) :: eta
82 real(dp),
dimension(0:KCMAX) :: zeta_c
84 real(dp),
dimension(0:KCMAX) :: eaz_c
86 real(dp),
dimension(0:KCMAX) :: eaz_c_quotient
88 real(dp),
dimension(0:KTMAX) :: zeta_t
93 real(dp),
dimension(0:JMAX,0:IMAX) :: lambda
95 real(dp),
dimension(0:JMAX,0:IMAX) :: phi
97 real(dp),
dimension(0:JMAX,0:IMAX) :: area
100 real(dp),
dimension(0:JMAX,0:IMAX) :: sq_g11_g
103 real(dp),
dimension(0:JMAX,0:IMAX) :: sq_g22_g
105 real(dp),
dimension(0:JMAX,0:IMAX) :: insq_g11_g
107 real(dp),
dimension(0:JMAX,0:IMAX) :: insq_g22_g
109 real(dp),
dimension(0:JMAX,0:IMAX) :: sq_g11_sgx
111 real(dp),
dimension(0:JMAX,0:IMAX) :: sq_g11_sgy
113 real(dp),
dimension(0:JMAX,0:IMAX) :: sq_g22_sgx
115 real(dp),
dimension(0:JMAX,0:IMAX) :: sq_g22_sgy
117 real(dp),
dimension(0:JMAX,0:IMAX) :: insq_g11_sgx
119 real(dp),
dimension(0:JMAX,0:IMAX) :: insq_g22_sgy
121 real(dp),
dimension(0:JMAX,0:IMAX) :: zs
123 real(dp),
dimension(0:JMAX,0:IMAX) :: zm
125 real(dp),
dimension(0:JMAX,0:IMAX) :: zb
127 real(dp),
dimension(0:JMAX,0:IMAX) :: zl
129 real(dp),
dimension(0:JMAX,0:IMAX) :: zl0
131 real(dp),
dimension(0:JMAX,0:IMAX) :: wss
133 real(dp),
dimension(0:JMAX,0:IMAX) :: H_c
135 real(dp),
dimension(0:JMAX,0:IMAX) :: H_t
137 real(dp),
dimension(0:JMAX,0:IMAX) :: dzs_dxi
139 real(dp),
dimension(0:JMAX,0:IMAX) :: dzm_dxi
141 real(dp),
dimension(0:JMAX,0:IMAX) :: dzb_dxi
143 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_c_dxi
145 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_t_dxi
147 real(dp),
dimension(0:JMAX,0:IMAX) :: dzs_deta
149 real(dp),
dimension(0:JMAX,0:IMAX) :: dzm_deta
151 real(dp),
dimension(0:JMAX,0:IMAX) :: dzb_deta
153 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_c_deta
155 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_t_deta
157 real(dp),
dimension(0:JMAX,0:IMAX) :: dzs_dxi_g
159 real(dp),
dimension(0:JMAX,0:IMAX) :: dzm_dxi_g
161 real(dp),
dimension(0:JMAX,0:IMAX) :: dzb_dxi_g
163 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_c_dxi_g
165 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_t_dxi_g
167 real(dp),
dimension(0:JMAX,0:IMAX) :: dzs_deta_g
169 real(dp),
dimension(0:JMAX,0:IMAX) :: dzm_deta_g
171 real(dp),
dimension(0:JMAX,0:IMAX) :: dzb_deta_g
173 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_c_deta_g
175 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_t_deta_g
177 real(dp),
dimension(0:JMAX,0:IMAX) :: dzs_dtau
179 real(dp),
dimension(0:JMAX,0:IMAX) :: dzm_dtau
181 real(dp),
dimension(0:JMAX,0:IMAX) :: dzb_dtau
183 real(dp),
dimension(0:JMAX,0:IMAX) :: dzl_dtau
185 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_c_dtau
187 real(dp),
dimension(0:JMAX,0:IMAX) :: dH_t_dtau
189 real(dp),
dimension(0:JMAX,0:IMAX) :: d_help_b
191 real(dp),
dimension(0:JMAX,0:IMAX) :: p_b_w
193 real(dp),
dimension(0:JMAX,0:IMAX) :: vx_b
195 real(dp),
dimension(0:JMAX,0:IMAX) :: vy_b
197 real(dp),
dimension(0:JMAX,0:IMAX) :: vx_m
199 real(dp),
dimension(0:JMAX,0:IMAX) :: vy_m
201 real(dp),
dimension(0:JMAX,0:IMAX) :: vx_b_g
203 real(dp),
dimension(0:JMAX,0:IMAX) :: vy_b_g
205 real(dp),
dimension(0:JMAX,0:IMAX) :: vz_b
207 real(dp),
dimension(0:JMAX,0:IMAX) :: vx_s_g
209 real(dp),
dimension(0:JMAX,0:IMAX) :: vy_s_g
211 real(dp),
dimension(0:JMAX,0:IMAX) :: vz_s
213 real(dp),
dimension(0:JMAX,0:IMAX) :: flui_ave_sia
215 real(dp),
dimension(0:JMAX,0:IMAX) :: h_diff
217 real(dp),
dimension(0:JMAX,0:IMAX) :: qx
219 real(dp),
dimension(0:JMAX,0:IMAX) :: qy
221 real(dp),
dimension(0:JMAX,0:IMAX) :: q_gl_g
223 real(dp),
dimension(0:JMAX,0:IMAX) :: q_geo
225 real(dp),
dimension(0:JMAX,0:IMAX) :: temp_b
227 real(dp),
dimension(0:JMAX,0:IMAX) :: temph_b
229 real(dp),
dimension(0:JMAX,0:IMAX) :: Q_bm
231 real(dp),
dimension(0:JMAX,0:IMAX) :: Q_tld
233 real(dp),
dimension(0:JMAX,0:IMAX) :: Q_b_tot
235 real(dp),
dimension(0:JMAX,0:IMAX) :: H_w
238 real(dp),
dimension(0:JMAX,0:IMAX) :: accum
240 real(dp),
dimension(0:JMAX,0:IMAX) :: evap
242 real(dp),
dimension(0:JMAX,0:IMAX) :: runoff
244 real(dp),
dimension(0:JMAX,0:IMAX) :: as_perp
246 real(dp),
dimension(0:JMAX,0:IMAX) :: temp_s
248 real(dp),
dimension(0:JMAX,0:IMAX) :: am_perp
251 real(dp),
dimension(0:JMAX,0:IMAX) :: am_perp_st
253 real(dp),
dimension(0:JMAX,0:IMAX) :: zs_neu
255 real(dp),
dimension(0:JMAX,0:IMAX) :: zm_neu
257 real(dp),
dimension(0:JMAX,0:IMAX) :: zb_neu
259 real(dp),
dimension(0:JMAX,0:IMAX) :: zl_neu
261 real(dp),
dimension(0:JMAX,0:IMAX) :: H_c_neu
263 real(dp),
dimension(0:JMAX,0:IMAX) :: H_t_neu
267 real(dp),
dimension(0:JMAX,0:IMAX) :: zs_ref
272 real(dp),
dimension(0:JMAX,0:IMAX) :: accum_present
275 real(dp),
dimension(0:JMAX,0:IMAX) :: precip_ma_present
278 real(dp),
dimension(0:JMAX,0:IMAX) :: precip_ma_lgm_anom
280 real(dp),
dimension(0:JMAX,0:IMAX) :: temp_ma_present
283 real(dp),
dimension(0:JMAX,0:IMAX) :: temp_mj_present
286 real(dp),
dimension(0:JMAX,0:IMAX) :: temp_ma_lgm_anom
290 real(dp),
dimension(0:JMAX,0:IMAX) :: temp_mj_lgm_anom
293 real(dp),
dimension(-JMAX:JMAX,-IMAX:IMAX) :: dist_dxdy
297 real(dp),
dimension(0:JMAX,0:IMAX,12) :: precip_present
300 real(dp),
dimension(0:JMAX,0:IMAX,12) :: precip_lgm_anom
303 real(dp),
dimension(0:JMAX,0:IMAX,12) :: gamma_precip_lgm_anom
305 real(dp),
dimension(0:JMAX,0:IMAX,12) :: temp_mm_present
308 real(dp),
dimension(0:JMAX,0:IMAX,12) :: temp_mm_lgm_anom
311 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: d_help_c
313 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: vx_c
315 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: vy_c
317 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: vz_c
319 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: temp_c
321 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: temp_c_neu
323 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: temp_c_m
325 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: age_c
327 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: age_c_neu
329 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: txz_c
331 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: tyz_c
333 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: sigma_c
335 real(dp),
dimension(0:KCMAX,0:JMAX,0:IMAX) :: enh_c
338 real(dp),
dimension(0:JMAX,0:IMAX) :: de_ssa
340 real(dp),
dimension(0:JMAX,0:IMAX) :: vis_int_g
342 real(dp),
dimension(0:JMAX,0:IMAX) :: vx_g
344 real(dp),
dimension(0:JMAX,0:IMAX) :: vy_g
347 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: d_help_t
349 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: vx_t
351 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: vy_t
353 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: vz_t
355 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: omega_t
357 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: omega_t_neu
359 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: temp_t_m
361 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: age_t
363 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: age_t_neu
365 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: txz_t
367 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: tyz_t
369 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: sigma_t
371 real(dp),
dimension(0:KTMAX,0:JMAX,0:IMAX) :: enh_t
374 real(dp),
dimension(0:KRMAX,0:JMAX,0:IMAX) :: temp_r
376 real(dp),
dimension(0:KRMAX,0:JMAX,0:IMAX) :: temp_r_neu
396 real(dp) :: DELTA_TM_SW
398 real(dp) :: OMEGA_MAX
406 real(dp) :: FLEX_RIG_L
431 real(dp) :: BETA1_LT_0
433 real(dp) :: BETA1_HT_0
437 real(dp) :: BETA2_LT_0
439 real(dp) :: BETA2_HT_0
444 real(dp) :: PHI_SEP_0
450 #if ( defined(NMARS) \
451 || defined(smars) ) /* martian ice sheet */
465 real(dp),
dimension(-190:10) :: RF
467 real(dp),
dimension(-190:10) :: KAPPA
469 real(dp),
dimension(-190:10) :: C
475 real(dp) :: year_zero
477 #if ( defined(NMARS) \
478 || defined(smars) ) /* martian ice sheet */
480 integer(i4b) :: insol_time_min
482 integer(i4b) :: insol_time_stp
484 integer(i4b) :: insol_time_max
487 real(dp),
dimension(0:100000) :: insol_ma_90
489 real(dp),
dimension(0:100000) :: obl_data
491 real(dp),
dimension(0:100000) :: ecc_data
494 real(dp),
dimension(0:100000) :: ave_data
500 real(dp),
dimension(0:100000) :: cp_data
505 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_chasm
507 real(dp) :: time_chasm_init
509 real(dp) :: time_chasm_end
511 real(dp),
dimension(0:JMAX,0:IMAX) :: q_geo_normal
514 #if defined(EMTP2SGE) /* EISMINT Phase 2 Simplified Geometry Experiment */
529 #elif defined(HEINO) /* ISMIP HEINO */
534 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_sedi
549 #elif ( defined(GRL) && ICE_STREAM==2 ) /* Greenland with ice streams */
554 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_sedi
555 #elif ( defined(ANT) \
556 && defined(sedi_slide) \
557 && sedi_slide==2 ) /* antarctica with sediment sliding */
562 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_sedi
565 #if defined(ASF) /* Austfonna */
567 integer(i4b) :: n_surf
569 real(dp),
dimension(:),
allocatable,
save :: lambda_surf
571 real(dp),
dimension(:),
allocatable,
save :: phi_surf
573 real(dp),
dimension(:),
allocatable,
save :: x_surf
575 real(dp),
dimension(:),
allocatable,
save :: y_surf
577 real(dp),
dimension(0:JMAX,0:IMAX) :: snowfall
579 real(dp),
dimension(0:JMAX,0:IMAX) :: rainfall
580 #if ( ICE_STREAM==2 ) /* Austfonna with ice streams */
585 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_sedi
595 integer(i2b) :: forcing_flag
599 integer(i4b) :: n_core
601 real(dp),
dimension(:),
allocatable,
save :: lambda_core
603 real(dp),
dimension(:),
allocatable,
save :: phi_core
605 real(dp),
dimension(:),
allocatable,
save :: x_core
607 real(dp),
dimension(:),
allocatable,
save :: y_core
611 integer(i4b) :: grip_time_min
614 integer(i4b) :: grip_time_stp
617 integer(i4b) :: grip_time_max
619 integer(i4b) :: ndata_grip
621 real(dp),
dimension(:),
allocatable,
save :: griptemp
624 integer(i4b) :: gi_time_min
626 integer(i4b) :: gi_time_stp
628 integer(i4b) :: gi_time_max
630 integer(i4b) :: ndata_gi
632 real(dp),
dimension(:),
allocatable,
save :: glacial_index
635 integer(i4b) :: specmap_time_min
637 integer(i4b) :: specmap_time_stp
639 integer(i4b) :: specmap_time_max
641 integer(i4b) :: ndata_specmap
643 real(dp),
dimension(:),
allocatable,
save :: specmap_zsl
646 real(dp) :: time_target_topo_init
648 real(dp) :: time_target_topo_final
650 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_target
652 real(dp),
dimension(0:JMAX,0:IMAX) :: zs_target
654 real(dp),
dimension(0:JMAX,0:IMAX) :: zb_target
656 real(dp),
dimension(0:JMAX,0:IMAX) :: zl_target
658 real(dp),
dimension(0:JMAX,0:IMAX) :: H_target
663 integer(i2b),
dimension(0:JMAX,0:IMAX) :: maske_maxextent
668 integer(i4b) :: ncid_temp_precip
671 integer(i4b) :: ndata_temp_precip
674 real(dp) :: temp_precip_time_min
677 real(dp) :: temp_precip_time_stp
680 real(dp) :: temp_precip_time_max
683 real(dp),
dimension(:),
allocatable,
save :: temp_precip_time
686 real(dp),
dimension(-10000:10000) :: kei
688 integer(i4b):: n_data_kei
690 real(dp) :: kei_r_max
692 real(dp) :: kei_r_incr
695 real(dp),
parameter :: pi = 3.141592653589793_dp
697 real(dp),
parameter :: pi_inv = 1.0_dp/pi
699 real(dp),
parameter :: pi_180 = pi/180.0_dp
701 real(dp),
parameter :: pi_180_inv = 180.0_dp/pi
703 real(dp),
parameter :: eps = 1.0e-05_dp