36 mean_accum, mean_accum_inv, &
37 dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser, &
38 time, time_init, time_end, time_output, &
39 dxi, deta, dzeta_c, dzeta_t, dzeta_r, &
40 z_sl, dzsl_dtau, z_mar, &
42 ndat2d, ndat3d, n_output, &
50 integer(i4b),
intent(out) :: ii((imax+1)*(jmax+1)), &
51 jj((imax+1)*(jmax+1)), &
53 integer(i4b),
intent(out) :: ndat2d, ndat3d
54 integer(i4b),
intent(out) :: n_output
55 real(dp),
intent(out) :: delta_ts, glac_index
56 real(dp),
intent(out) :: mean_accum, mean_accum_inv
57 real(dp),
intent(out) :: dtime, dtime_temp, dtime_wss, &
59 real(dp),
intent(out) :: time, time_init, time_end, time_output(100)
60 real(dp),
intent(out) :: dxi, deta, dzeta_c, dzeta_t, dzeta_r
61 real(dp),
intent(out) :: z_sl, dzsl_dtau, z_mar
62 character(len=100),
intent(out) :: runname
64 integer(i4b) :: i, j, kc, kt, kr, m, n, ir, jr
65 integer(i4b) :: ios, ios1, ios2, ios3, ios4
67 real(dp) :: dtime0, dtime_temp0, dtime_wss0, dtime_out0, dtime_ser0
68 real(dp) :: time_init0, time_end0, time_output0(100)
70 character (len=100) :: anfdatname
71 character (len=256) :: shell_command
73 logical :: flag_3d_output
75 character(len=64),
parameter :: fmt1 =
'(a)', &
79 character(len= 8) :: ch_imax
80 character(len=128) :: fmt4
82 write(ch_imax, fmt=
'(i8)') imax
83 write(fmt4, fmt=
'(a)')
'('//trim(adjustl(ch_imax))//
'(i1),i1)'
103 #if (CALCZS==4 || MARGIN==3)
106 call lis_initialize(ierr)
115 s_t = s_t *1.0e-09_dp
116 x_hat = x_hat *1.0e+03_dp
117 y_hat = y_hat *1.0e+03_dp
118 rad = rad *1.0e+03_dp
119 b_min = b_min /year_sec
120 b_max = b_max /year_sec
124 if ( trim(version) /= trim(sico_version) ) &
125 stop
' sico_init: SICOPOLIS version not compatible with header file!'
132 if (abs(dx-50.0_dp) < eps)
then
134 if ((imax /= 80).or.(jmax /= 80))
then
135 stop
' sico_init: IMAX and/or JMAX wrong!'
138 else if (abs(dx-25.0_dp) < eps)
then
140 if ((imax /= 160).or.(jmax /= 160))
then
141 stop
' sico_init: IMAX and/or JMAX wrong!'
145 stop
' sico_init: DX wrong!'
150 stop
' sico_init: GRID==1 not allowed for this application!'
154 stop
' sico_init: GRID==2 not allowed for this application!'
162 stop
' sico_init: Option ADV_HOR==1 (central differences) not defined!'
172 dtime_temp0 = dtime_temp0
176 dzeta_c = 1.0_dp/
real(kcmax,dp)
177 dzeta_t = 1.0_dp/
real(ktmax,dp)
178 dzeta_r = 1.0_dp/
real(krmax,dp)
191 if ((i <= imax).and.(j <= jmax))
then
203 anfdatname = anfdatname
205 #if defined(YEAR_ZERO)
206 year_zero = year_zero
208 year_zero = 2000.0_dp
211 time_init0 = time_init0
212 time_end0 = time_end0
213 dtime_ser0 = dtime_ser0
215 #if ( OUTPUT==1 || OUTPUT==3 )
216 dtime_out0 = dtime_out0
219 #if ( OUTPUT==2 || OUTPUT==3 )
221 time_output0( 1) = time_out0_01
222 time_output0( 2) = time_out0_02
223 time_output0( 3) = time_out0_03
224 time_output0( 4) = time_out0_04
225 time_output0( 5) = time_out0_05
226 time_output0( 6) = time_out0_06
227 time_output0( 7) = time_out0_07
228 time_output0( 8) = time_out0_08
229 time_output0( 9) = time_out0_09
230 time_output0(10) = time_out0_10
231 time_output0(11) = time_out0_11
232 time_output0(12) = time_out0_12
233 time_output0(13) = time_out0_13
234 time_output0(14) = time_out0_14
235 time_output0(15) = time_out0_15
236 time_output0(16) = time_out0_16
237 time_output0(17) = time_out0_17
238 time_output0(18) = time_out0_18
239 time_output0(19) = time_out0_19
240 time_output0(20) = time_out0_20
245 shell_command =
'if [ ! -d'
246 shell_command = trim(shell_command)//
' '//outpath
247 shell_command = trim(shell_command)//
' '//
'] ; then mkdir'
248 shell_command = trim(shell_command)//
' '//outpath
249 shell_command = trim(shell_command)//
' '//
'; fi'
250 call system(trim(shell_command))
253 open(10, iostat=ios, &
254 file=outpath//
'/'//trim(runname)//
'.log', &
256 if (ios /= 0) stop
' sico_init: Error when opening the log file!'
258 write(10, fmt=trim(fmt1))
'Computational domain:'
260 write(10, fmt=trim(fmt1))
'Antarctica'
262 write(10, fmt=trim(fmt1))
'Greenland'
264 write(10, fmt=trim(fmt1))
'Scandinavia and Eurasia'
266 write(10, fmt=trim(fmt1))
'Northern hemisphere'
267 #elif defined(EMTP2SGE)
268 write(10, fmt=trim(fmt1))
'EISMINT Phase 2 Simplified Geometry Experiment'
270 write(10, fmt=trim(fmt1))
'ISMIP HEINO'
272 write(10, fmt=trim(fmt1))
'North polar cap of Mars'
274 write(10, fmt=trim(fmt1))
'South polar cap of Mars'
276 stop
' sico_init: Subroutine sico_init: No valid domain specified!'
278 write(10, fmt=trim(fmt1))
' '
280 write(10, fmt=trim(fmt2))
'imax =', imax
281 write(10, fmt=trim(fmt2))
'jmax =', jmax
282 write(10, fmt=trim(fmt2))
'kcmax =', kcmax
283 write(10, fmt=trim(fmt2))
'ktmax =', ktmax
284 write(10, fmt=trim(fmt2))
'krmax =', krmax
285 write(10, fmt=trim(fmt1))
' '
287 write(10, fmt=trim(fmt3))
'a =', deform
288 write(10, fmt=trim(fmt1))
' '
290 #if (GRID==0 || GRID==1)
291 write(10, fmt=trim(fmt3))
'x0 =', x0
292 write(10, fmt=trim(fmt3))
'y0 =', y0
293 write(10, fmt=trim(fmt3))
'dx =', dx
295 write(10, fmt=trim(fmt3))
'dlambda =', dlambda
296 write(10, fmt=trim(fmt3))
'dphi =', dphi
298 write(10, fmt=trim(fmt1))
' '
300 write(10, fmt=trim(fmt3))
'year_zero =', year_zero
301 write(10, fmt=trim(fmt3))
'time_init =', time_init0
302 write(10, fmt=trim(fmt3))
'time_end =', time_end0
303 write(10, fmt=trim(fmt3))
'dtime =', dtime0
304 write(10, fmt=trim(fmt3))
'dtime_temp =', dtime_temp0
305 #if ( OUTPUT==1 || OUTPUT==3 )
306 write(10, fmt=trim(fmt3))
'dtime_out =', dtime_out0
308 write(10, fmt=trim(fmt3))
'dtime_ser =', dtime_ser0
309 write(10, fmt=trim(fmt1))
' '
311 write(10, fmt=trim(fmt1))
'mask_present file = '//mask_present_file
312 write(10, fmt=trim(fmt1))
' '
314 write(10, fmt=trim(fmt1))
'Physical-parameter file = '//phys_para_file
315 write(10, fmt=trim(fmt1))
' '
317 #if (CALCZS==3 || CALCZS==4)
318 write(10, fmt=trim(fmt3))
'ovi_weight =', ovi_weight
320 write(10, fmt=trim(fmt3))
'omega_sor =', omega_sor
322 write(10, fmt=trim(fmt1))
' '
325 write(10, fmt=trim(fmt3))
'temp_min =', temp_min
326 write(10, fmt=trim(fmt3))
's_t =', s_t
327 write(10, fmt=trim(fmt3))
'x_hat =', x_hat
328 write(10, fmt=trim(fmt3))
'y_hat =', y_hat
329 write(10, fmt=trim(fmt3))
'rad =', rad
330 write(10, fmt=trim(fmt3))
'b_min =', b_min
331 write(10, fmt=trim(fmt3))
'b_max =', b_max
332 write(10, fmt=trim(fmt1))
' '
335 write(10, fmt=trim(fmt3))
'delta_ts0 =', delta_ts0
337 write(10, fmt=trim(fmt3))
'sine_amplit =', sine_amplit
338 write(10, fmt=trim(fmt3))
'sine_period =', sine_period
340 write(10, fmt=trim(fmt1))
'GRIP file = '//grip_temp_file
341 write(10, fmt=trim(fmt3))
'grip_temp_fact =', grip_temp_fact
345 write(10, fmt=trim(fmt3))
'z_sl0 =', z_sl0
347 write(10, fmt=trim(fmt1))
'sea-level file = '//sea_level_file
349 write(10, fmt=trim(fmt1))
' '
352 #if ( MARINE_ICE_CALVING==2 || MARINE_ICE_CALVING==3 )
353 write(10, fmt=trim(fmt3))
'z_mar =', z_mar
354 write(10, fmt=trim(fmt1))
' '
355 #elif ( MARINE_ICE_CALVING==4 || MARINE_ICE_CALVING==5 \
356 || marine_ice_calving==6 || marine_ice_calving==7 )
357 write(10, fmt=trim(fmt3))
'fact_z_mar =', fact_z_mar
358 write(10, fmt=trim(fmt1))
' '
359 #elif ( ( MARINE_ICE_FORMATION==2 ) && ( MARINE_ICE_CALVING==9 ) )
360 write(10, fmt=trim(fmt3))
'calv_uw_coeff =', calv_uw_coeff
361 write(10, fmt=trim(fmt3))
'r1_calv_uw =', r1_calv_uw
362 write(10, fmt=trim(fmt3))
'r2_calv_uw =', r2_calv_uw
363 write(10, fmt=trim(fmt1))
' '
366 #if ICE_SHELF_CALVING==2
367 write(10, fmt=trim(fmt3))
'H_calv =', h_calv
368 write(10, fmt=trim(fmt1))
' '
372 write(10, fmt=trim(fmt1))
'Sediment-mask file = '//mask_sedi_file
373 write(10, fmt=trim(fmt1))
' '
375 write(10, fmt=trim(fmt3))
'c_slide =', c_slide
376 write(10, fmt=trim(fmt3))
'gamma_slide =', gamma_slide
377 write(10, fmt=trim(fmt2))
'p_weert =', p_weert
378 write(10, fmt=trim(fmt2))
'q_weert =', q_weert
380 write(10, fmt=trim(fmt3))
'red_pres_limit_fact =', red_pres_limit_fact
382 write(10, fmt=trim(fmt1))
' '
384 write(10, fmt=trim(fmt3))
'c_slide_sedi =', c_slide_sedi
385 write(10, fmt=trim(fmt3))
'gamma_slide_sedi =', gamma_slide_sedi
386 write(10, fmt=trim(fmt2))
'p_weert_sedi =', p_weert_sedi
387 write(10, fmt=trim(fmt2))
'q_weert_sedi =', q_weert_sedi
388 write(10, fmt=trim(fmt1))
' '
391 write(10, fmt=trim(fmt3))
'q_geo =', q_geo
392 write(10, fmt=trim(fmt1))
' '
396 write(10, fmt=trim(fmt3))
'frac_llra =', frac_llra
397 write(10, fmt=trim(fmt1))
' '
401 write(10, fmt=trim(fmt3))
'gr_size =', gr_size
402 write(10, fmt=trim(fmt1))
' '
405 write(10, fmt=trim(fmt3))
'sigma_res =', sigma_res
406 write(10, fmt=trim(fmt1))
' '
409 write(10, fmt=trim(fmt2))
'ENHMOD =', enhmod
410 write(10, fmt=trim(fmt3))
'enh_fact =', enh_fact
411 #if ( ENHMOD==2 || ENHMOD==3 )
412 write(10, fmt=trim(fmt3))
'enh_intg =', enh_intg
415 write(10, fmt=trim(fmt3))
'age_trans =', age_trans_0
418 write(10, fmt=trim(fmt3))
'date_trans1 =', date_trans1_0
419 write(10, fmt=trim(fmt3))
'date_trans2 =', date_trans2_0
420 write(10, fmt=trim(fmt3))
'date_trans3 =', date_trans3_0
423 write(10, fmt=trim(fmt3))
'enh_shelf =', enh_shelf
425 write(10, fmt=trim(fmt1))
' '
427 write(10, fmt=trim(fmt3))
'numdiff_H_t =', numdiff_h_t
428 write(10, fmt=trim(fmt3))
'tau_cts =', tau_cts
429 write(10, fmt=trim(fmt3))
'H_min =', h_min
430 write(10, fmt=trim(fmt3))
'vh_max =', vh_max
431 write(10, fmt=trim(fmt3))
'hd_min =', hd_min
432 write(10, fmt=trim(fmt3))
'hd_max =', hd_max
434 write(10, fmt=trim(fmt3))
'qbm_min =', qbm_min
435 #elif defined(QB_MIN) /* obsolete */
436 write(10, fmt=trim(fmt3))
'qb_min =', qb_min
439 write(10, fmt=trim(fmt3))
'qbm_max =', qbm_max
440 #elif defined(QB_MAX) /* obsolete */
441 write(10, fmt=trim(fmt3))
'qb_max =', qb_max
443 write(10, fmt=trim(fmt3))
'age_min =', age_min
444 write(10, fmt=trim(fmt3))
'age_max =', age_max
445 write(10, fmt=trim(fmt3))
'mean_accum =', mean_accum
447 write(10, fmt=trim(fmt3))
'age_diff =', agediff
449 write(10, fmt=trim(fmt1))
' '
451 write(10, fmt=trim(fmt2))
'GRID =', grid
452 write(10, fmt=trim(fmt2))
'CALCMOD =', calcmod
453 write(10, fmt=trim(fmt2))
'FLOW_LAW =', flow_law
454 write(10, fmt=trim(fmt2))
'FIN_VISC =', fin_visc
455 write(10, fmt=trim(fmt2))
'MARGIN =', margin
457 write(10, fmt=trim(fmt2))
'MARINE_ICE_FORMATION =', marine_ice_formation
458 write(10, fmt=trim(fmt2))
'MARINE_ICE_CALVING =', marine_ice_calving
460 write(10, fmt=trim(fmt2))
'ICE_SHELF_CALVING =', ice_shelf_calving
462 write(10, fmt=trim(fmt2))
'ANF_DAT =', anf_dat
463 write(10, fmt=trim(fmt2))
'REBOUND =', rebound
464 write(10, fmt=trim(fmt2))
'Q_LITHO =', q_litho
465 write(10, fmt=trim(fmt2))
'ZS_EVOL =', zs_evol
466 write(10, fmt=trim(fmt2))
'CALCZS =', calczs
467 write(10, fmt=trim(fmt2))
'ADV_HOR =', adv_hor
468 write(10, fmt=trim(fmt2))
'ADV_VERT =', adv_vert
469 write(10, fmt=trim(fmt2))
'TOPOGRAD =', topograd
470 write(10, fmt=trim(fmt2))
'TSURFACE =', tsurface
471 write(10, fmt=trim(fmt2))
'SEA_LEVEL =', sea_level
472 write(10, fmt=trim(fmt2))
'SLIDE_LAW =', slide_law
473 write(10, fmt=trim(fmt2))
'Q_GEO_MOD =', q_geo_mod
474 write(10, fmt=trim(fmt1))
' '
476 #if defined(OUT_TIMES)
477 write(10, fmt=trim(fmt2))
'OUT_TIMES =', out_times
479 write(10, fmt=trim(fmt2))
'OUTPUT =', output
480 write(10, fmt=trim(fmt2))
'OUTSER =', outser
481 #if defined(OUTSER_V_A)
482 write(10, fmt=trim(fmt2))
'OUTSER_V_A =', outser_v_a
484 #if ( OUTPUT==1 || OUTPUT==2 )
485 write(10, fmt=trim(fmt2))
'ERGDAT =', ergdat
487 write(10, fmt=trim(fmt2))
'NETCDF =', netcdf
488 write(10, fmt=trim(fmt1))
' '
489 #if ( OUTPUT==2 || OUTPUT==3 )
490 write(10, fmt=trim(fmt2))
'n_output =', n_output
492 write(10, fmt=trim(fmt3))
'time_output =', time_output0(n)
494 write(10, fmt=trim(fmt1))
' '
497 write(10, fmt=trim(fmt1))
'Program version and date: '//version//
' / '//date
499 close(10, status=
'keep')
503 year_zero = year_zero*year_sec
504 time_init = time_init0*year_sec
505 time_end = time_end0*year_sec
506 dtime = dtime0*year_sec
507 dtime_temp = dtime_temp0*year_sec
508 dtime_ser = dtime_ser0*year_sec
509 #if ( OUTPUT==1 || OUTPUT==3 )
510 dtime_out = dtime_out0*year_sec
512 #if ( OUTPUT==2 || OUTPUT==3 )
514 time_output(n) = time_output0(n)*year_sec
518 if (abs(dtime_temp/dtime-nint(dtime_temp/dtime)) > eps) &
519 stop
' sico_init: dtime_temp must be a multiple of dtime!'
525 mean_accum = mean_accum*(1.0e-03_dp/year_sec)*(rho_w/rho)
528 mean_accum_inv = 1.0_dp/mean_accum
532 open(24, iostat=ios, &
533 file=inpath//
'/heino/'//mask_present_file, &
534 recl=8192, status=
'old')
536 if (ios /= 0) stop
' sico_init: Error when opening the mask file!'
538 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
541 read(24, fmt=trim(fmt4)) (maske_help(j,i), i=0,imax)
544 close(24, status=
'keep')
548 open(24, iostat=ios, &
549 file=inpath//
'/heino/'//mask_sedi_file, &
550 recl=8192, status=
'old')
552 if (ios /= 0) stop
' sico_init: Error when opening the rock/sediment mask file!'
554 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
557 read(24, fmt=trim(fmt4)) (maske_sedi(j,i), i=0,imax)
560 close(24, status=
'keep')
566 open(21, iostat=ios, &
567 file=inpath//
'/general/'//grip_temp_file, &
569 if (ios /= 0) stop
' sico_init: Error when opening the data file for delta_ts!'
571 read(21, fmt=*) ch_dummy, grip_time_min, grip_time_stp, grip_time_max
573 if (ch_dummy /=
'#')
then
574 write(6, fmt=*)
' sico_init: grip_time_min, grip_time_stp, grip_time_max'
575 write(6, fmt=*)
' not defined in data file for delta_ts!'
579 ndata_grip = (grip_time_max-grip_time_min)/grip_time_stp
581 allocate(griptemp(0:ndata_grip))
584 read(21, fmt=*) d_dummy, griptemp(n)
587 close(21, status=
'keep')
595 open(21, iostat=ios, &
596 file=inpath//
'/general/'//sea_level_file, &
598 if (ios /= 0) stop
' sico_init: Error when opening the data file for z_sl!'
600 read(21, fmt=*) ch_dummy, specmap_time_min, specmap_time_stp, specmap_time_max
602 if (ch_dummy /=
'#')
then
603 write(6, fmt=*)
' sico_init: specmap_time_min, specmap_time_stp, specmap_time_max'
604 write(6, fmt=*)
' not defined in data file for z_sl!'
608 ndata_specmap = (specmap_time_max-specmap_time_min)/specmap_time_stp
610 allocate(specmap_zsl(0:ndata_specmap))
612 do n=0, ndata_specmap
613 read(21, fmt=*) d_dummy, specmap_zsl(n)
616 close(21, status=
'keep')
628 q_geo(j,i) = q_geo *1.0e-03_dp
634 stop
' sico_init: Option Q_GEO_MOD==2 not available for this application!'
648 call
boundary(time_init, dtime, dxi, deta, &
649 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
656 q_b_tot(j,i) = 0.0_dp
662 temp_c(kc,j,i) = temp_s(j,i)
663 age_c(kc,j,i) = 15000.0_dp*year_sec
667 omega_t(kt,j,i) = 0.0_dp
668 age_t(kt,j,i) = 15000.0_dp*year_sec
672 temp_r(kr,j,i) = temp_s(j,i)+q_geo(j,i)*h_r/kappa_r &
673 *(1.0_dp-
real(kr,dp)/
real(krmax,dp))
691 call
boundary(time_init, dtime, dxi, deta, &
692 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
699 q_b_tot(j,i) = 0.0_dp
705 temp_c(kc,j,i) = temp_s(j,i)
706 age_c(kc,j,i) = 15000.0_dp*year_sec
710 omega_t(kt,j,i) = 0.0_dp
711 age_t(kt,j,i) = 15000.0_dp*year_sec
715 temp_r(kr,j,i) = temp_s(j,i)+q_geo(j,i)*h_r/kappa_r &
716 *(1.0_dp-
real(kr,dp)/
real(krmax,dp))
735 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
738 call
boundary(time_init, dtime, dxi, deta, &
739 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
741 q_b_tot = q_bm + q_tld
749 #if (GRID==0 || GRID==1)
753 dist_dxdy(jr,ir) = sqrt( (
real(ir,dp)*dxi)**2 + (
real(jr,dp)*deta)**2 )
765 zeta_c(kc) = kc*dzeta_c
766 eaz_c(kc) = exp(deform*zeta_c(kc))
767 eaz_c_quotient(kc) = (eaz_c(kc)-1.0_dp)/(ea-1.0_dp)
771 zeta_t(kt) = kt*dzeta_t
795 open(12, iostat=ios, &
796 file=outpath//
'/'//trim(runname)//
'.ser', &
798 if (ios /= 0) stop
' sico_init: Error when opening the ser file!'
803 #if ( !defined(OUTSER_V_A) || OUTSER_V_A==1 )
805 1102
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
806 ' H_max(m) zs_max(m) V_g(m^3)', &
807 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
808 ' A_g(m^2) A_t(m^2) V_bm(m^3/a)', &
809 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
810 1103
format(
'----------------------------------------------------', &
811 '---------------------------------------')
815 1102
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
816 ' V(m^3) V_g(m^3) V_f(m^3)', &
817 ' A(m^2) A_g(m^2) A_f(m^2)',/, &
818 ' H_max(m) zs_max(m)', &
819 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
820 ' A_t(m^2) V_bm(m^3/a)', &
821 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
822 1103
format(
'----------------------------------------------------', &
823 '---------------------------------------')
826 stop
' sico_init: OUTSER_V_A must be either 1 or 2!'
831 open(15, iostat=ios, &
832 file=outpath//
'/'//trim(runname)//
'.sed', &
834 if (ios /= 0) stop
' sico_init: Error when opening the sed file!'
839 1108
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
840 ' H_ave(m) Tbh_ave(C) Atb(m^2)')
841 1109
format(
'----------------------------------------------------')
847 open(13, iostat=ios, &
848 file=outpath//
'/'//trim(runname)//
'.thk', &
850 if (ios /= 0) stop
' sico_init: Error when opening the thk file!'
855 1104
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
856 ' H(m): JMAX+1 records [j = JMAX (-1) 0] with',/, &
857 ' IMAX+1 values [i = 0 (1) IMAX] in each record')
858 1105
format(
'----------------------------------------------------')
868 allocate(lambda_core(n_core), phi_core(n_core), &
869 x_core(n_core), y_core(n_core))
871 lambda_core(1) = 0.0_dp
873 x_core(1) = 3900.0_dp *1.0e+03_dp
874 y_core(1) = 2000.0_dp *1.0e+03_dp
876 lambda_core(2) = 0.0_dp
878 x_core(2) = 3800.0_dp *1.0e+03_dp
879 y_core(2) = 2000.0_dp *1.0e+03_dp
881 lambda_core(3) = 0.0_dp
883 x_core(3) = 3700.0_dp *1.0e+03_dp
884 y_core(3) = 2000.0_dp *1.0e+03_dp
886 lambda_core(4) = 0.0_dp
888 x_core(4) = 3500.0_dp *1.0e+03_dp
889 y_core(4) = 2000.0_dp *1.0e+03_dp
891 lambda_core(5) = 0.0_dp
893 x_core(5) = 3200.0_dp *1.0e+03_dp
894 y_core(5) = 2000.0_dp *1.0e+03_dp
896 lambda_core(6) = 0.0_dp
898 x_core(6) = 2900.0_dp *1.0e+03_dp
899 y_core(6) = 2000.0_dp *1.0e+03_dp
901 lambda_core(7) = 0.0_dp
903 x_core(7) = 2600.0_dp *1.0e+03_dp
904 y_core(7) = 2000.0_dp *1.0e+03_dp
906 open(14, iostat=ios, &
907 file=outpath//
'/'//trim(runname)//
'.core', &
909 if (ios /= 0) stop
' sico_init: Error when opening the core file!'
911 if (forcing_flag == 1)
then
916 1106
format(
' t(a) D_Ts(C) z_sl(m)',/, &
917 ' H_P1(m) H_P2(m) H_P3(m) H_P4(m)', &
918 ' H_P5(m) H_P6(m) H_P7(m)',/, &
919 ' v_P1(m/a) v_P2(m/a) v_P3(m/a) v_P4(m/a)', &
920 ' v_P5(m/a) v_P6(m/a) v_P7(m/a)',/, &
921 ' T_P1(C) T_P2(C) T_P3(C) T_P4(C)', &
922 ' T_P5(C) T_P6(C) T_P7(C)',/, &
923 ' Rb_P1(W/m2) Rb_P2(W/m2) Rb_P3(W/m2) Rb_P4(W/m2)', &
924 ' Rb_P5(W/m2) Rb_P6(W/m2) Rb_P7(W/m2)')
925 1107
format(
'-----------------------------------------------------------------', &
926 '---------------------------------------')
937 flag_3d_output = .false.
939 flag_3d_output = .true.
941 stop
' sico_init: ERGDAT must be either 0 or 1!'
945 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
946 flag_3d_output, ndat2d, ndat3d)
948 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
949 flag_3d_output, ndat2d, ndat3d)
951 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
956 if (time_output(1) <= time_init+eps)
then
959 flag_3d_output = .false.
961 flag_3d_output = .true.
963 stop
' sico_init: ERGDAT must be either 0 or 1!'
967 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
968 flag_3d_output, ndat2d, ndat3d)
970 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
971 flag_3d_output, ndat2d, ndat3d)
973 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
980 flag_3d_output = .false.
983 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
984 flag_3d_output, ndat2d, ndat3d)
986 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
987 flag_3d_output, ndat2d, ndat3d)
989 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
992 if (time_output(1) <= time_init+eps)
then
994 flag_3d_output = .true.
997 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
998 flag_3d_output, ndat2d, ndat3d)
1000 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
1001 flag_3d_output, ndat2d, ndat3d)
1003 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
1009 stop
' sico_init: OUTPUT must be either 1, 2 or 3!'
1012 call
output2(time_init, dxi, deta, delta_ts, glac_index, z_sl)
1014 call
output3(time_init, delta_ts, glac_index, z_sl)
1017 call
output4(time_init, dxi, deta, delta_ts, glac_index, z_sl)