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, &
54 integer(i4b),
intent(out) :: ii((imax+1)*(jmax+1)), &
55 jj((imax+1)*(jmax+1)), &
57 integer(i4b),
intent(out) :: ndat2d, ndat3d
58 integer(i4b),
intent(out) :: n_output
59 real(dp),
intent(out) :: delta_ts, glac_index
60 real(dp),
intent(out) :: mean_accum, mean_accum_inv
61 real(dp),
intent(out) :: dtime, dtime_temp, dtime_wss, &
63 real(dp),
intent(out) :: time, time_init, time_end, time_output(100)
64 real(dp),
intent(out) :: dxi, deta, dzeta_c, dzeta_t, dzeta_r
65 real(dp),
intent(out) :: z_sl, dzsl_dtau, z_mar
66 character(len=100),
intent(out) :: runname
68 integer(i4b) :: i, j, kc, kt, kr, m, n, ir, jr
69 integer(i4b) :: ios, ios1, ios2, ios3, ios4
71 real(dp) :: dtime0, dtime_temp0, dtime_wss0, dtime_out0, dtime_ser0
72 real(dp) :: time_init0, time_end0, time_output0(100)
74 character(len=100) :: anfdatname, target_topo_dat_name
75 character(len=256) :: shell_command
77 logical :: flag_3d_output
86 character(len=64),
parameter :: thisroutine =
'sico_init'
88 character(len=64),
parameter :: fmt1 =
'(a)', &
92 character(len= 8) :: ch_imax
93 character(len=128) :: fmt4
95 write(ch_imax, fmt=
'(i8)') imax
96 write(fmt4, fmt=
'(a)')
'('//trim(adjustl(ch_imax))//
'(i1),i1)'
116 #if (CALCZS==4 || MARGIN==3)
119 call lis_initialize(ierr)
129 if ( trim(version) /= trim(sico_version) ) &
130 stop
' sico_init: SICOPOLIS version not compatible with header file!'
135 #if (GRID==0 || GRID==1)
137 if (abs(dx-20.0_dp) < eps)
then
139 if ( (imax /= 75).or.(jmax /= 140) )
then
140 stop
' sico_init: IMAX and/or JMAX wrong!'
143 else if (abs(dx-10.0_dp) < eps)
then
145 if ( (imax /= 150).or.(jmax /= 280) )
then
146 stop
' sico_init: IMAX and/or JMAX wrong!'
149 else if (abs(dx-5.0_dp) < eps)
then
151 if ( (imax /= 300).or.(jmax /= 560) )
then
152 stop
' sico_init: IMAX and/or JMAX wrong!'
156 stop
' sico_init: DX wrong!'
161 stop
' sico_init: GRID==2 not allowed for this application!'
168 #if ((TSURFACE == 5) && (ACCSURFACE != 5))
169 stop
' sico_init: Options TSURFACE==5 and ACCSURFACE==5 must be used together!'
172 #if ((TSURFACE != 5) && (ACCSURFACE == 5))
173 stop
' sico_init: Options TSURFACE==5 and ACCSURFACE==5 must be used together!'
177 #if (ACCSURFACE != 6)
178 write(6, fmt=
'(a)')
' sico_init: Options TSURFACE==6, ACCSURFACE==6'
179 write(6, fmt=
'(a)')
' and NETCDF==2 must be used together!'
182 write(6, fmt=
'(a)')
' sico_init: Options TSURFACE==6, ACCSURFACE==6'
183 write(6, fmt=
'(a)')
' and NETCDF==2 must be used together!'
188 #if (ACCSURFACE == 6)
190 write(6, fmt=
'(a)')
' sico_init: Options TSURFACE==6, ACCSURFACE==6'
191 write(6, fmt=
'(a)')
' and NETCDF==2 must be used together!'
194 write(6, fmt=
'(a)')
' sico_init: Options TSURFACE==6, ACCSURFACE==6'
195 write(6, fmt=
'(a)')
' and NETCDF==2 must be used together!'
204 stop
' sico_init: Option ADV_HOR==1 (central differences) not defined!'
213 #elif (TSURFACE == 5)
217 #elif (TSURFACE == 6)
227 dtime_temp0 = dtime_temp0
229 dtime_wss0 = dtime_wss0
234 dzeta_c = 1.0_dp/
real(kcmax,dp)
235 dzeta_t = 1.0_dp/
real(ktmax,dp)
236 dzeta_r = 1.0_dp/
real(krmax,dp)
249 if ((i <= imax).and.(j <= jmax))
then
261 anfdatname = anfdatname
263 #if defined(YEAR_ZERO)
264 year_zero = year_zero
266 year_zero = 2000.0_dp
269 time_init0 = time_init0
270 time_end0 = time_end0
271 dtime_ser0 = dtime_ser0
273 #if ( OUTPUT==1 || OUTPUT==3 )
274 dtime_out0 = dtime_out0
277 #if ( OUTPUT==2 || OUTPUT==3 )
279 time_output0( 1) = time_out0_01
280 time_output0( 2) = time_out0_02
281 time_output0( 3) = time_out0_03
282 time_output0( 4) = time_out0_04
283 time_output0( 5) = time_out0_05
284 time_output0( 6) = time_out0_06
285 time_output0( 7) = time_out0_07
286 time_output0( 8) = time_out0_08
287 time_output0( 9) = time_out0_09
288 time_output0(10) = time_out0_10
289 time_output0(11) = time_out0_11
290 time_output0(12) = time_out0_12
291 time_output0(13) = time_out0_13
292 time_output0(14) = time_out0_14
293 time_output0(15) = time_out0_15
294 time_output0(16) = time_out0_16
295 time_output0(17) = time_out0_17
296 time_output0(18) = time_out0_18
297 time_output0(19) = time_out0_19
298 time_output0(20) = time_out0_20
303 shell_command =
'if [ ! -d'
304 shell_command = trim(shell_command)//
' '//outpath
305 shell_command = trim(shell_command)//
' '//
'] ; then mkdir'
306 shell_command = trim(shell_command)//
' '//outpath
307 shell_command = trim(shell_command)//
' '//
'; fi'
308 call system(trim(shell_command))
311 open(10, iostat=ios, &
312 file=outpath//
'/'//trim(runname)//
'.log', &
315 stop
' sico_init: Error when opening the log file!'
317 write(10, fmt=trim(fmt1))
'Computational domain:'
319 write(10, fmt=trim(fmt1))
'Antarctica'
321 write(10, fmt=trim(fmt1))
'Greenland'
323 write(10, fmt=trim(fmt1))
'Scandinavia and Eurasia'
325 write(10, fmt=trim(fmt1))
'Northern hemisphere'
326 #elif defined(EMTP2SGE)
327 write(10, fmt=trim(fmt1))
'EISMINT Phase 2 Simplified Geometry Experiment'
329 write(10, fmt=trim(fmt1))
'North polar cap of Mars'
331 write(10, fmt=trim(fmt1))
'South polar cap of Mars'
333 stop
' sico_init: No valid domain specified!'
335 write(10, fmt=trim(fmt1))
' '
337 write(10, fmt=trim(fmt2))
'imax =', imax
338 write(10, fmt=trim(fmt2))
'jmax =', jmax
339 write(10, fmt=trim(fmt2))
'kcmax =', kcmax
340 write(10, fmt=trim(fmt2))
'ktmax =', ktmax
341 write(10, fmt=trim(fmt2))
'krmax =', krmax
342 write(10, fmt=trim(fmt1))
' '
344 write(10, fmt=trim(fmt3))
'a =', deform
345 write(10, fmt=trim(fmt1))
' '
347 #if (GRID==0 || GRID==1)
348 write(10, fmt=trim(fmt3))
'x0 =', x0
349 write(10, fmt=trim(fmt3))
'y0 =', y0
350 write(10, fmt=trim(fmt3))
'dx =', dx
352 stop
' sico_init: GRID==2 not allowed for this application!'
354 write(10, fmt=trim(fmt1))
' '
356 write(10, fmt=trim(fmt3))
'year_zero =', year_zero
357 write(10, fmt=trim(fmt3))
'time_init =', time_init0
358 write(10, fmt=trim(fmt3))
'time_end =', time_end0
359 write(10, fmt=trim(fmt3))
'dtime =', dtime0
360 write(10, fmt=trim(fmt3))
'dtime_temp =', dtime_temp0
362 write(10, fmt=trim(fmt3))
'dtime_wss =', dtime_wss0
364 #if ( OUTPUT==1 || OUTPUT==3 )
365 write(10, fmt=trim(fmt3))
'dtime_out =', dtime_out0
367 write(10, fmt=trim(fmt3))
'dtime_ser =', dtime_ser0
368 write(10, fmt=trim(fmt1))
' '
370 write(10, fmt=trim(fmt1))
'zs_present file = '//zs_present_file
372 write(10, fmt=trim(fmt1))
'zl_present file = '//zl_present_file
374 write(10, fmt=trim(fmt1))
'zl0 file = '//zl0_file
375 write(10, fmt=trim(fmt1))
'mask_present file = '//mask_present_file
377 write(10, fmt=trim(fmt1))
'Initial-value file = '//anfdatname
378 write(10, fmt=trim(fmt1))
'Path to initial-value file = '//anfdatpath
380 write(10, fmt=trim(fmt1))
' '
383 write(10, fmt=trim(fmt3))
'time_target_topo_init =', time_target_topo_init0
384 write(10, fmt=trim(fmt3))
'time_target_topo_final =', time_target_topo_final0
385 write(10, fmt=trim(fmt1))
'Target-topography file = '//target_topo_dat_name
386 write(10, fmt=trim(fmt1))
'Path to target-topography file = '//target_topo_dat_path
387 write(10, fmt=trim(fmt1))
' '
391 write(10, fmt=trim(fmt1))
'Maximum ice extent mask file = '//mask_maxextent_file
392 write(10, fmt=trim(fmt1))
' '
395 write(10, fmt=trim(fmt1))
'Physical-parameter file = '//phys_para_file
396 write(10, fmt=trim(fmt1))
' '
398 #if (CALCZS==3 || CALCZS==4)
399 write(10, fmt=trim(fmt3))
'ovi_weight =', ovi_weight
401 write(10, fmt=trim(fmt3))
'omega_sor =', omega_sor
403 write(10, fmt=trim(fmt1))
' '
407 write(10, fmt=trim(fmt3))
'delta_ts0 =', delta_ts0
409 write(10, fmt=trim(fmt3))
'sine_amplit =', sine_amplit
410 write(10, fmt=trim(fmt3))
'sine_period =', sine_period
412 write(10, fmt=trim(fmt1))
'GRIP file = '//grip_temp_file
413 write(10, fmt=trim(fmt3))
'grip_temp_fact =', grip_temp_fact
415 write(10, fmt=trim(fmt1))
'Glacial-index file = '//glac_ind_file
416 write(10, fmt=trim(fmt1))
'temp_ma_anom file = '//temp_ma_anom_file
417 write(10, fmt=trim(fmt3))
'temp_ma_anom fact = ', temp_ma_anom_fact
418 write(10, fmt=trim(fmt1))
'temp_mj_anom file = '//temp_mj_anom_file
419 write(10, fmt=trim(fmt3))
'temp_mj_anom fact = ', temp_mj_anom_fact
421 write(10, fmt=trim(fmt1))
'temp_precip_anom file = '//temp_precip_anom_file
422 write(10, fmt=trim(fmt3))
'temp_ma_anom fact = ', temp_ma_anom_fact
423 write(10, fmt=trim(fmt3))
'temp_mj_anom fact = ', temp_mj_anom_fact
426 write(10, fmt=trim(fmt1))
'precip_present file = '//precip_present_file
428 write(10, fmt=trim(fmt3))
'accfact =', accfact
429 #elif ( ACCSURFACE==2 || ACCSURFACE==3 )
430 write(10, fmt=trim(fmt3))
'gamma_s =', gamma_s
431 #elif ( ACCSURFACE==5 )
432 write(10, fmt=trim(fmt1))
'precip_anom file = '//precip_anom_file
433 write(10, fmt=trim(fmt3))
'precip_anom fact = ', precip_anom_fact
434 #elif ( ACCSURFACE==6 )
435 write(10, fmt=trim(fmt1))
'temp_precip_anom file = '//temp_precip_anom_file
436 write(10, fmt=trim(fmt3))
'precip_anom fact = ', precip_anom_fact
438 #if (ACCSURFACE <= 3)
439 write(10, fmt=trim(fmt2))
'ELEV_DESERT =', elev_desert
440 #if (ELEV_DESERT == 1)
441 write(10, fmt=trim(fmt3))
'gamma_p =', gamma_p
442 write(10, fmt=trim(fmt3))
'zs_thresh =', zs_thresh
447 write(10, fmt=trim(fmt3))
'lambda_lti =', lambda_lti
448 write(10, fmt=trim(fmt3))
'temp_lti =', temp_lti
452 write(10, fmt=trim(fmt3))
'z_sl0 =', z_sl0
454 write(10, fmt=trim(fmt1))
'sea-level file = '//sea_level_file
456 write(10, fmt=trim(fmt1))
' '
459 #if ( MARINE_ICE_CALVING==2 || MARINE_ICE_CALVING==3 )
460 write(10, fmt=trim(fmt3))
'z_mar =', z_mar
461 write(10, fmt=trim(fmt1))
' '
462 #elif ( MARINE_ICE_CALVING==4 || MARINE_ICE_CALVING==5 \
463 || marine_ice_calving==6 || marine_ice_calving==7 )
464 write(10, fmt=trim(fmt3))
'fact_z_mar =', fact_z_mar
465 write(10, fmt=trim(fmt1))
' '
466 #elif ( ( MARINE_ICE_FORMATION==2 ) && ( MARINE_ICE_CALVING==9 ) )
467 write(10, fmt=trim(fmt3))
'calv_uw_coeff =', calv_uw_coeff
468 write(10, fmt=trim(fmt3))
'r1_calv_uw =', r1_calv_uw
469 write(10, fmt=trim(fmt3))
'r2_calv_uw =', r2_calv_uw
470 write(10, fmt=trim(fmt1))
' '
473 #if ICE_SHELF_CALVING==2
474 write(10, fmt=trim(fmt3))
'H_calv =', h_calv
475 write(10, fmt=trim(fmt1))
' '
479 write(10, fmt=trim(fmt3))
'c_slide =', c_slide
480 write(10, fmt=trim(fmt3))
'smw_coeff =', smw_coeff
481 write(10, fmt=trim(fmt2))
'r_smw =', r_smw
482 write(10, fmt=trim(fmt2))
's_smw =', s_smw
483 write(10, fmt=trim(fmt3))
'gamma_slide =', gamma_slide
484 write(10, fmt=trim(fmt2))
'p_weert =', p_weert
485 write(10, fmt=trim(fmt2))
'q_weert =', q_weert
487 write(10, fmt=trim(fmt3))
'red_pres_limit_fact =', red_pres_limit_fact
489 write(10, fmt=trim(fmt1))
' '
492 write(10, fmt=trim(fmt1))
'Sediment-mask file = '//mask_sedi_file
493 write(10, fmt=trim(fmt1))
' '
495 write(10, fmt=trim(fmt3))
'c_slide_sedi =', c_slide_sedi
496 write(10, fmt=trim(fmt3))
'smw_coeff_sedi =', smw_coeff_sedi
497 write(10, fmt=trim(fmt2))
'r_smw_sedi =', r_smw_sedi
498 write(10, fmt=trim(fmt2))
's_smw_sedi =', s_smw_sedi
499 write(10, fmt=trim(fmt3))
'gamma_slide_sedi =', gamma_slide_sedi
500 write(10, fmt=trim(fmt2))
'p_weert_sedi =', p_weert_sedi
501 write(10, fmt=trim(fmt2))
'q_weert_sedi =', q_weert_sedi
502 write(10, fmt=trim(fmt1))
' '
506 write(10, fmt=trim(fmt3))
'q_geo =', q_geo
508 write(10, fmt=trim(fmt1))
'q_geo file = '//q_geo_file
510 write(10, fmt=trim(fmt1))
' '
512 #if defined(MARINE_ICE_BASAL_MELTING)
513 write(10, fmt=trim(fmt2))
'MARINE_ICE_BASAL_MELTING =', marine_ice_basal_melting
514 #if ( MARINE_ICE_BASAL_MELTING==2 || MARINE_ICE_BASAL_MELTING==3 )
515 write(10, fmt=trim(fmt3))
'qbm_marine =', qbm_marine
517 write(10, fmt=trim(fmt1))
' '
521 write(10, fmt=trim(fmt3))
'frac_llra =', frac_llra
522 write(10, fmt=trim(fmt1))
' '
526 write(10, fmt=trim(fmt3))
'gr_size =', gr_size
527 write(10, fmt=trim(fmt1))
' '
530 write(10, fmt=trim(fmt3))
'sigma_res =', sigma_res
531 write(10, fmt=trim(fmt1))
' '
534 write(10, fmt=trim(fmt2))
'ENHMOD =', enhmod
535 write(10, fmt=trim(fmt3))
'enh_fact =', enh_fact
536 #if ( ENHMOD==2 || ENHMOD==3 )
537 write(10, fmt=trim(fmt3))
'enh_intg =', enh_intg
540 write(10, fmt=trim(fmt3))
'age_trans =', age_trans_0
543 write(10, fmt=trim(fmt3))
'date_trans1 =', date_trans1_0
544 write(10, fmt=trim(fmt3))
'date_trans2 =', date_trans2_0
545 write(10, fmt=trim(fmt3))
'date_trans3 =', date_trans3_0
548 write(10, fmt=trim(fmt3))
'enh_shelf =', enh_shelf
550 write(10, fmt=trim(fmt1))
' '
552 write(10, fmt=trim(fmt3))
'numdiff_H_t =', numdiff_h_t
553 write(10, fmt=trim(fmt3))
'tau_cts =', tau_cts
554 write(10, fmt=trim(fmt3))
'H_min =', h_min
555 write(10, fmt=trim(fmt3))
'vh_max =', vh_max
556 write(10, fmt=trim(fmt3))
'hd_min =', hd_min
557 write(10, fmt=trim(fmt3))
'hd_max =', hd_max
559 write(10, fmt=trim(fmt3))
'qbm_min =', qbm_min
560 #elif defined(QB_MIN) /* obsolete */
561 write(10, fmt=trim(fmt3))
'qb_min =', qb_min
564 write(10, fmt=trim(fmt3))
'qbm_max =', qbm_max
565 #elif defined(QB_MAX) /* obsolete */
566 write(10, fmt=trim(fmt3))
'qb_max =', qb_max
568 write(10, fmt=trim(fmt3))
'age_min =', age_min
569 write(10, fmt=trim(fmt3))
'age_max =', age_max
570 write(10, fmt=trim(fmt3))
'mean_accum =', mean_accum
572 write(10, fmt=trim(fmt3))
'age_diff =', agediff
574 write(10, fmt=trim(fmt1))
' '
576 write(10, fmt=trim(fmt2))
'GRID =', grid
577 write(10, fmt=trim(fmt2))
'CALCMOD =', calcmod
578 write(10, fmt=trim(fmt2))
'FLOW_LAW =', flow_law
579 write(10, fmt=trim(fmt2))
'FIN_VISC =', fin_visc
580 write(10, fmt=trim(fmt2))
'MARGIN =', margin
582 write(10, fmt=trim(fmt2))
'MARINE_ICE_FORMATION =', marine_ice_formation
583 write(10, fmt=trim(fmt2))
'MARINE_ICE_CALVING =', marine_ice_calving
585 write(10, fmt=trim(fmt2))
'ICE_SHELF_CALVING =', ice_shelf_calving
587 write(10, fmt=trim(fmt2))
'ANF_DAT =', anf_dat
588 write(10, fmt=trim(fmt2))
'REBOUND =', rebound
589 write(10, fmt=trim(fmt2))
'Q_LITHO =', q_litho
590 write(10, fmt=trim(fmt2))
'ZS_EVOL =', zs_evol
591 write(10, fmt=trim(fmt2))
'CALCZS =', calczs
592 write(10, fmt=trim(fmt2))
'ADV_HOR =', adv_hor
593 write(10, fmt=trim(fmt2))
'ADV_VERT =', adv_vert
594 write(10, fmt=trim(fmt2))
'TOPOGRAD =', topograd
595 write(10, fmt=trim(fmt1))
' '
596 write(10, fmt=trim(fmt2))
'TEMP_PRESENT_PARA =', temp_present_para
597 write(10, fmt=trim(fmt2))
'TSURFACE =', tsurface
598 write(10, fmt=trim(fmt2))
'ACCSURFACE =', accsurface
600 write(10, fmt=trim(fmt2))
'PRECIP_ANOM_INTERPOL =', precip_anom_interpol
602 write(10, fmt=trim(fmt2))
'SOLID_PRECIP =', solid_precip
603 write(10, fmt=trim(fmt2))
'ABLSURFACE =', ablsurface
604 #if ( ABLSURFACE==1 || ABLSURFACE==2 )
605 write(10, fmt=trim(fmt2))
'PDD_MODIFIER =', pdd_modifier
607 write(10, fmt=trim(fmt2))
'N_PDD_MOD =', n_pdd_mod
608 write(10, fmt=trim(fmt3))
'LON_W_E_SEP =', lon_w_e_sep
611 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_01 =', pdd_mod_lat_01
612 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_01 =', pdd_mod_fac_w_01
613 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_01 =', pdd_mod_fac_e_01
616 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_02 =', pdd_mod_lat_02
617 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_02 =', pdd_mod_fac_w_02
618 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_02 =', pdd_mod_fac_e_02
621 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_03 =', pdd_mod_lat_03
622 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_03 =', pdd_mod_fac_w_03
623 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_03 =', pdd_mod_fac_e_03
626 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_04 =', pdd_mod_lat_04
627 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_04 =', pdd_mod_fac_w_04
628 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_04 =', pdd_mod_fac_e_04
631 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_05 =', pdd_mod_lat_05
632 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_05 =', pdd_mod_fac_w_05
633 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_05 =', pdd_mod_fac_e_05
636 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_06 =', pdd_mod_lat_06
637 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_06 =', pdd_mod_fac_w_06
638 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_06 =', pdd_mod_fac_e_06
641 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_07 =', pdd_mod_lat_07
642 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_07 =', pdd_mod_fac_w_07
643 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_07 =', pdd_mod_fac_e_07
646 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_08 =', pdd_mod_lat_08
647 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_08 =', pdd_mod_fac_w_08
648 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_08 =', pdd_mod_fac_e_08
651 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_09 =', pdd_mod_lat_09
652 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_09 =', pdd_mod_fac_w_09
653 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_09 =', pdd_mod_fac_e_09
656 write(10, fmt=trim(fmt3))
'PDD_MOD_LAT_10 =', pdd_mod_lat_10
657 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_W_10 =', pdd_mod_fac_w_10
658 write(10, fmt=trim(fmt3))
'PDD_MOD_FAC_E_10 =', pdd_mod_fac_e_10
663 write(10, fmt=trim(fmt1))
' '
664 write(10, fmt=trim(fmt2))
'SEA_LEVEL =', sea_level
665 write(10, fmt=trim(fmt2))
'SLIDE_LAW =', slide_law
666 write(10, fmt=trim(fmt2))
'ICE_STREAM =', ice_stream
667 write(10, fmt=trim(fmt2))
'Q_GEO_MOD =', q_geo_mod
668 write(10, fmt=trim(fmt1))
' '
670 #if defined(OUT_TIMES)
671 write(10, fmt=trim(fmt2))
'OUT_TIMES =', out_times
673 write(10, fmt=trim(fmt2))
'OUTPUT =', output
674 write(10, fmt=trim(fmt2))
'OUTSER =', outser
675 #if defined(OUTSER_V_A)
676 write(10, fmt=trim(fmt2))
'OUTSER_V_A =', outser_v_a
678 #if ( OUTPUT==1 || OUTPUT==2 )
679 write(10, fmt=trim(fmt2))
'ERGDAT =', ergdat
681 write(10, fmt=trim(fmt2))
'NETCDF =', netcdf
682 write(10, fmt=trim(fmt1))
' '
683 #if ( OUTPUT==2 || OUTPUT==3 )
684 write(10, fmt=trim(fmt2))
'n_output =', n_output
686 write(10, fmt=trim(fmt3))
'time_output =', time_output0(n)
688 write(10, fmt=trim(fmt1))
' '
691 write(10, fmt=trim(fmt1))
'Program version and date: '//version//
' / '//date
693 close(10, status=
'keep')
697 year_zero = year_zero*year_sec
698 time_init = time_init0*year_sec
699 time_end = time_end0*year_sec
700 dtime = dtime0*year_sec
701 dtime_temp = dtime_temp0*year_sec
703 dtime_wss = dtime_wss0*year_sec
705 dtime_ser = dtime_ser0*year_sec
706 #if ( OUTPUT==1 || OUTPUT==3 )
707 dtime_out = dtime_out0*year_sec
709 #if ( OUTPUT==2 || OUTPUT==3 )
711 time_output(n) = time_output0(n)*year_sec
715 if (abs(dtime_temp/dtime-nint(dtime_temp/dtime)) > eps) &
716 stop
' sico_init: dtime_temp must be a multiple of dtime!'
719 if (abs(dtime_wss/dtime-nint(dtime_wss/dtime)) > eps) &
720 stop
' sico_init: dtime_wss must be a multiple of dtime!'
724 time_target_topo_init = time_target_topo_init0 *year_sec
725 time_target_topo_final = time_target_topo_final0*year_sec
732 #if (GRID==0 || GRID==1)
734 open(21, iostat=ios, &
735 file=inpath//
'/grl/'//precip_present_file, &
736 recl=8192, status=
'old')
740 stop
' sico_init: GRID==2 not allowed for this application!'
744 if (ios /= 0) stop
' sico_init: Error when opening the precip file!'
746 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
749 read(21, fmt=*) (precip_ma_present(j,i), i=0,imax)
752 close(21, status=
'keep')
754 precip_ma_present = precip_ma_present *(1.0e-03_dp/year_sec)*(rho_w/rho)
763 precip_present(j,i,n) = precip_ma_present(j,i)
772 #if (GRID==0 || GRID==1)
774 open(21, iostat=ios, &
775 file=inpath//
'/grl/'//precip_anom_file, &
776 recl=8192, status=
'old')
780 if (ios /= 0) stop
' sico_init: Error when opening the precip anomaly file!'
782 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
785 read(21, fmt=*) (precip_ma_lgm_anom(j,i), i=0,imax)
788 close(21, status=
'keep')
790 precip_ma_lgm_anom = precip_ma_lgm_anom * precip_anom_fact
799 precip_lgm_anom(j,i,n) = max(precip_ma_lgm_anom(j,i), eps)
802 #if (PRECIP_ANOM_INTERPOL==1)
803 gamma_precip_lgm_anom(j,i,n) = 0.0_dp
804 #elif (PRECIP_ANOM_INTERPOL==2)
805 gamma_precip_lgm_anom(j,i,n) = -log(precip_lgm_anom(j,i,n))
807 stop
' sico_init: Wrong value of switch PRECIP_ANOM_INTERPOL!'
818 mean_accum = mean_accum*(1.0e-03_dp/year_sec)*(rho_w/rho)
821 mean_accum_inv = 1.0_dp/mean_accum
825 #if (GRID==0 || GRID==1)
827 open(24, iostat=ios, &
828 file=inpath//
'/grl/'//mask_present_file, &
829 recl=8192, status=
'old')
833 stop
' sico_init: GRID==2 not allowed for this application!'
837 if (ios /= 0) stop
' sico_init: Error when opening the mask file!'
839 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
842 read(24, fmt=trim(fmt4)) (maske_help(j,i), i=0,imax)
845 close(24, status=
'keep')
851 open(24, iostat=ios, &
852 file=inpath//
'/grl/'//mask_sedi_file, &
853 recl=8192, status=
'old')
855 if (ios /= 0) stop
' sico_init: Error when opening the rock/sediment mask file!'
857 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
860 read(24, fmt=trim(fmt4)) (maske_sedi(j,i), i=0,imax)
863 close(24, status=
'keep')
869 #if (GRID==0 || GRID==1)
871 open(21, iostat=ios, &
872 file=inpath//
'/grl/'//zs_present_file, &
873 recl=8192, status=
'old')
877 stop
' sico_init: GRID==2 not allowed for this application!'
881 if (ios /= 0) stop
' sico_init: Error when opening the zs file!'
883 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
886 read(21, fmt=*) (zs_ref(j,i), i=0,imax)
889 close(21, status=
'keep')
896 if (maske_help(j,i) >= 2) zs_ref(j,i) = 0.0_dp
904 target_topo_dat_name = trim(target_topo_dat_name)
907 write(6, fmt=
'(a)')
' sico_init: Reading of target topography'
908 write(6, fmt=
'(a)')
' only implemented for NetCDF files (NETCDF==2)!'
913 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
922 #if (GRID==0 || GRID==1)
924 open(24, iostat=ios, &
925 file=inpath//
'/grl/'//mask_maxextent_file, &
926 recl=8192, status=
'old')
930 stop
' sico_init: GRID==2 not allowed for this application!'
935 stop
' sico_init: Error when opening the maximum ice extent mask file!'
937 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
940 read(24, fmt=trim(fmt4)) (maske_maxextent(j,i), i=0,imax)
943 close(24, status=
'keep')
952 #if (GRID==0 || GRID==1)
954 open(21, iostat=ios, &
955 file=inpath//
'/grl/'//temp_ma_anom_file, &
956 recl=8192, status=
'old')
960 if (ios /= 0) stop
' sico_init: Error when opening the temp_ma anomaly file!'
962 #if (GRID==0 || GRID==1)
964 open(22, iostat=ios, &
965 file=inpath//
'/grl/'//temp_mj_anom_file, &
966 recl=8192, status=
'old')
970 if (ios /= 0) stop
' sico_init: Error when opening the temp_mj anomaly file!'
972 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
973 do n=1, 6;
read(22, fmt=
'(a)') ch_dummy;
end do
976 read(21, fmt=*) (temp_ma_lgm_anom(j,i), i=0,imax)
977 read(22, fmt=*) (temp_mj_lgm_anom(j,i), i=0,imax)
980 close(21, status=
'keep')
981 close(22, status=
'keep')
983 temp_ma_lgm_anom = temp_ma_lgm_anom * temp_ma_anom_fact
984 temp_mj_lgm_anom = temp_mj_lgm_anom * temp_mj_anom_fact
992 open(21, iostat=ios, &
993 file=inpath//
'/general/'//grip_temp_file, &
996 stop
' sico_init: Error when opening the data file for delta_ts!'
998 read(21, fmt=*) ch_dummy, grip_time_min, grip_time_stp, grip_time_max
1000 if (ch_dummy /=
'#')
then
1001 write(6, fmt=*)
' sico_init: grip_time_min, grip_time_stp, grip_time_max'
1002 write(6, fmt=*)
' not defined in data file for delta_ts!'
1006 ndata_grip = (grip_time_max-grip_time_min)/grip_time_stp
1008 allocate(griptemp(0:ndata_grip))
1011 read(21, fmt=*) d_dummy, griptemp(n)
1014 close(21, status=
'keep')
1022 open(21, iostat=ios, &
1023 file=inpath//
'/general/'//glac_ind_file, status=
'old')
1024 if (ios /= 0) stop
' sico_init: Error when opening the glacial-index file!'
1026 read(21, fmt=*) ch_dummy, gi_time_min, gi_time_stp, gi_time_max
1028 if (ch_dummy /=
'#')
then
1029 write(6, fmt=*)
' sico_init: gi_time_min, gi_time_stp, gi_time_max'
1030 write(6, fmt=*)
' not defined in glacial-index file!'
1034 ndata_gi = (gi_time_max-gi_time_min)/gi_time_stp
1036 allocate(glacial_index(0:ndata_gi))
1039 read(21, fmt=*) d_dummy, glacial_index(n)
1042 close(21, status=
'keep')
1049 #if ( (TSURFACE==6) && (ACCSURFACE==6) )
1051 call
check( nf90_open(inpath//
'/grl/'//temp_precip_anom_file, &
1052 nf90_nowrite, ncid_temp_precip), thisroutine )
1054 call
check( nf90_inquire(ncid_temp_precip, unlimiteddimid = dimid), &
1057 call
check( nf90_inquire_dimension(ncid_temp_precip, dimid, &
1058 len = ndata_temp_precip), thisroutine )
1060 ndata_temp_precip = ndata_temp_precip-1
1062 allocate(temp_precip_time(0:ndata_temp_precip))
1064 call
check( nf90_inq_varid(ncid_temp_precip,
'time', ncv), thisroutine )
1065 call
check( nf90_get_var(ncid_temp_precip, ncv, temp_precip_time), thisroutine )
1068 temp_precip_time_min = temp_precip_time(0)
1069 temp_precip_time_stp = temp_precip_time(1)-temp_precip_time(0)
1071 temp_precip_time_max = temp_precip_time(ndata_temp_precip)
1079 open(21, iostat=ios, &
1080 file=inpath//
'/general/'//sea_level_file, &
1083 stop
' sico_init: Error when opening the data file for z_sl!'
1085 read(21, fmt=*) ch_dummy, specmap_time_min, specmap_time_stp, specmap_time_max
1087 if (ch_dummy /=
'#')
then
1088 write(6, fmt=*)
' sico_init: specmap_time_min, specmap_time_stp, specmap_time_max'
1089 write(6, fmt=*)
' not defined in data file for z_sl!'
1093 ndata_specmap = (specmap_time_max-specmap_time_min)/specmap_time_stp
1095 allocate(specmap_zsl(0:ndata_specmap))
1097 do n=0, ndata_specmap
1098 read(21, fmt=*) d_dummy, specmap_zsl(n)
1101 close(21, status=
'keep')
1113 q_geo(j,i) = q_geo *1.0e-03_dp
1121 open(21, iostat=ios, &
1122 file=inpath//
'/grl/'//q_geo_file, &
1123 recl=8192, status=
'old')
1125 if (ios /= 0) stop
' sico_init: Error when opening the qgeo file!'
1127 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
1130 read(21, fmt=*) (q_geo(j,i), i=0,imax)
1133 close(21, status=
'keep')
1137 q_geo(j,i) = q_geo(j,i) *1.0e-03_dp
1145 #if (REBOUND==0 || REBOUND==1)
1147 kei = 0.0_dp; n_data_kei = 0; kei_r_max = 0.0_dp; kei_r_incr = 0.0_dp
1165 call
boundary(time_init, dtime, dxi, deta, &
1166 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
1173 q_b_tot(j,i) = 0.0_dp
1179 temp_c(kc,j,i) = -10.0_dp
1180 age_c(kc,j,i) = 15000.0_dp*year_sec
1184 omega_t(kt,j,i) = 0.0_dp
1185 age_t(kt,j,i) = 15000.0_dp*year_sec
1189 temp_r(kr,j,i) = -10.0_dp+q_geo(j,i)*h_r/kappa_r &
1190 *(1.0_dp-
real(kr,dp)/
real(krmax,dp))
1208 call
boundary(time_init, dtime, dxi, deta, &
1209 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
1216 q_b_tot(j,i) = 0.0_dp
1222 temp_c(kc,j,i) = temp_s(j,i)
1223 age_c(kc,j,i) = 15000.0_dp*year_sec
1227 omega_t(kt,j,i) = 0.0_dp
1228 age_t(kt,j,i) = 15000.0_dp*year_sec
1232 temp_r(kr,j,i) = temp_s(j,i)+q_geo(j,i)*h_r/kappa_r &
1233 *(1.0_dp-
real(kr,dp)/
real(krmax,dp))
1252 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
1255 call
boundary(time_init, dtime, dxi, deta, &
1256 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
1258 q_b_tot = q_bm + q_tld
1266 #if (GRID==0 || GRID==1)
1270 dist_dxdy(jr,ir) = sqrt( (
real(ir,dp)*dxi)**2 + (
real(jr,dp)*deta)**2 )
1282 zeta_c(kc) = kc*dzeta_c
1283 eaz_c(kc) = exp(deform*zeta_c(kc))
1284 eaz_c_quotient(kc) = (eaz_c(kc)-1.0_dp)/(ea-1.0_dp)
1288 zeta_t(kt) = kt*dzeta_t
1299 call
calc_vxy_ssa(z_sl, dxi, deta, dzeta_c, ii, jj, nn)
1312 open(12, iostat=ios, &
1313 file=outpath//
'/'//trim(runname)//
'.ser', &
1316 stop
' sico_init: Error when opening the ser file!'
1318 if (forcing_flag == 1)
then
1323 #if ( !defined(OUTSER_V_A) || OUTSER_V_A==1 )
1325 1102
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
1326 ' H_max(m) zs_max(m) V_g(m^3)', &
1327 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1328 ' A_g(m^2) A_t(m^2) V_bm(m^3/a)', &
1329 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1330 1103
format(
'----------------------------------------------------', &
1331 '---------------------------------------')
1335 1102
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
1336 ' V(m^3) V_g(m^3) V_f(m^3)', &
1337 ' A(m^2) A_g(m^2) A_f(m^2)',/, &
1338 ' H_max(m) zs_max(m)', &
1339 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1340 ' A_t(m^2) V_bm(m^3/a)', &
1341 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1342 1103
format(
'----------------------------------------------------', &
1343 '---------------------------------------')
1346 stop
' sico_init: OUTSER_V_A must be either 1 or 2!'
1349 else if (forcing_flag == 2)
then
1354 #if ( !defined(OUTSER_V_A) || OUTSER_V_A==1 )
1356 1112
format(
' t(a) glac_ind(1) z_sl(m)',/, &
1357 ' H_max(m) zs_max(m) V_g(m^3)', &
1358 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1359 ' A_g(m^2) A_t(m^2) V_bm(m^3/a)', &
1360 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1361 1113
format(
'----------------------------------------------------', &
1362 '---------------------------------------')
1366 1112
format(
' t(a) glac_ind(1) z_sl(m)',/, &
1367 ' V(m^3) V_g(m^3) V_f(m^3)', &
1368 ' A(m^2) A_g(m^2) A_f(m^2)',/, &
1369 ' H_max(m) zs_max(m)', &
1370 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1371 ' A_t(m^2) V_bm(m^3/a)', &
1372 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1373 1113
format(
'----------------------------------------------------', &
1374 '---------------------------------------')
1377 stop
' sico_init: OUTSER_V_A must be either 1 or 2!'
1380 else if (forcing_flag == 3)
then
1385 #if ( !defined(OUTSER_V_A) || OUTSER_V_A==1 )
1387 1122
format(
' t(a) (Dummy)(1) z_sl(m)',/, &
1388 ' H_max(m) zs_max(m) V_g(m^3)', &
1389 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1390 ' A_g(m^2) A_t(m^2) V_bm(m^3/a)', &
1391 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1392 1123
format(
'----------------------------------------------------', &
1393 '---------------------------------------')
1397 1122
format(
' t(a) (Dummy)(1) z_sl(m)',/, &
1398 ' V(m^3) V_g(m^3) V_f(m^3)', &
1399 ' A(m^2) A_g(m^2) A_f(m^2)',/, &
1400 ' H_max(m) zs_max(m)', &
1401 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1402 ' A_t(m^2) V_bm(m^3/a)', &
1403 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1404 1123
format(
'----------------------------------------------------', &
1405 '---------------------------------------')
1408 stop
' sico_init: OUTSER_V_A must be either 1 or 2!'
1417 open(13, iostat=ios, &
1418 file=outpath//
'/'//trim(runname)//
'.thk', &
1420 if (ios /= 0) stop
' sico_init: Error when opening the thk file!'
1422 if (forcing_flag == 1)
then
1427 1104
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
1428 ' H(m): JMAX+1 records [j = JMAX (-1) 0] with',/, &
1429 ' IMAX+1 values [i = 0 (1) IMAX] in each record')
1430 1105
format(
'----------------------------------------------------')
1432 else if (forcing_flag == 2)
then
1437 1114
format(
' t(a) glac_ind(1) z_sl(m)',/, &
1438 ' H(m): JMAX+1 records [j = JMAX (-1) 0] with',/, &
1439 ' IMAX+1 values [i = 0 (1) IMAX] in each record')
1440 1115
format(
'----------------------------------------------------')
1442 else if (forcing_flag == 3)
then
1447 1124
format(
' t(a) (Dummy)(1) z_sl(m)',/, &
1448 ' H(m): JMAX+1 records [j = JMAX (-1) 0] with',/, &
1449 ' IMAX+1 values [i = 0 (1) IMAX] in each record')
1450 1125
format(
'----------------------------------------------------')
1462 allocate(lambda_core(n_core), phi_core(n_core), &
1463 x_core(n_core), y_core(n_core))
1465 phi_core(1) = 72.58722_dp *pi_180
1466 lambda_core(1) = -37.64222_dp *pi_180
1467 call
num_coord(lambda_core(1), phi_core(1), x_core(1), y_core(1))
1469 phi_core(2) = 72.58833_dp *pi_180
1470 lambda_core(2) = -38.45750_dp *pi_180
1471 call
num_coord(lambda_core(2), phi_core(2), x_core(2), y_core(2))
1473 phi_core(3) = 65.15139_dp *pi_180
1474 lambda_core(3) = -43.81722_dp *pi_180
1475 call
num_coord(lambda_core(3), phi_core(3), x_core(3), y_core(3))
1477 phi_core(4) = 77.17970_dp *pi_180
1478 lambda_core(4) = -61.10975_dp *pi_180
1479 call
num_coord(lambda_core(4), phi_core(4), x_core(4), y_core(4))
1481 phi_core(5) = 75.09694_dp *pi_180
1482 lambda_core(5) = -42.31956_dp *pi_180
1483 call
num_coord(lambda_core(5), phi_core(5), x_core(5), y_core(5))
1485 phi_core(6) = 77.5_dp *pi_180
1486 lambda_core(6) = -50.9_dp *pi_180
1487 call
num_coord(lambda_core(6), phi_core(6), x_core(6), y_core(6))
1489 open(14, iostat=ios, &
1490 file=outpath//
'/'//trim(runname)//
'.core', &
1492 if (ios /= 0) stop
' sico_init: Error when opening the core file!'
1494 if (forcing_flag == 1)
then
1499 1106
format(
' t(a) D_Ts(C) z_sl(m)',/, &
1500 ' H_GR(m) H_G2(m) H_D3(m)', &
1501 ' H_CC(m) H_NG(m) H_NE(m)',/, &
1502 ' v_GR(m/a) v_G2(m/a) v_D3(m/a)', &
1503 ' v_CC(m/a) v_NG(m/a) v_NE(m/a)',/, &
1504 ' T_GR(C) T_G2(C) T_D3(C)', &
1505 ' T_CC(C) T_NG(C) T_NE(C)',/, &
1506 ' Rb_GR(W/m2) Rb_G2(W/m2) Rb_D3(W/m2)', &
1507 ' Rb_CC(W/m2) Rb_NG(W/m2) Rb_NE(W/m2)')
1508 1107
format(
'----------------------------------------------------', &
1509 '---------------------------------------')
1511 else if (forcing_flag == 2)
then
1516 1116
format(
' t(a) glac_ind(1) z_sl(m)',/, &
1517 ' H_GR(m) H_G2(m) H_D3(m)', &
1518 ' H_CC(m) H_NG(m) H_NE(m)',/, &
1519 ' v_GR(m/a) v_G2(m/a) v_D3(m/a)', &
1520 ' v_CC(m/a) v_NG(m/a) v_NE(m/a)',/, &
1521 ' T_GR(C) T_G2(C) T_D3(C)', &
1522 ' T_CC(C) T_NG(C) T_NE(C)',/, &
1523 ' Rb_GR(W/m2) Rb_G2(W/m2) Rb_D3(W/m2)', &
1524 ' Rb_CC(W/m2) Rb_NG(W/m2) Rb_NE(W/m2)')
1525 1117
format(
'----------------------------------------------------', &
1526 '---------------------------------------')
1528 else if (forcing_flag == 3)
then
1533 1126
format(
' t(a) (Dummy)(1) z_sl(m)',/, &
1534 ' H_GR(m) H_G2(m) H_D3(m)', &
1535 ' H_CC(m) H_NG(m) H_NE(m)',/, &
1536 ' v_GR(m/a) v_G2(m/a) v_D3(m/a)', &
1537 ' v_CC(m/a) v_NG(m/a) v_NE(m/a)',/, &
1538 ' T_GR(C) T_G2(C) T_D3(C)', &
1539 ' T_CC(C) T_NG(C) T_NE(C)',/, &
1540 ' Rb_GR(W/m2) Rb_G2(W/m2) Rb_D3(W/m2)', &
1541 ' Rb_CC(W/m2) Rb_NG(W/m2) Rb_NE(W/m2)')
1542 1127
format(
'----------------------------------------------------', &
1543 '---------------------------------------')
1554 flag_3d_output = .false.
1556 flag_3d_output = .true.
1558 stop
' sico_init: ERGDAT must be either 0 or 1!'
1562 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
1563 flag_3d_output, ndat2d, ndat3d)
1565 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
1566 flag_3d_output, ndat2d, ndat3d)
1568 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
1573 if (time_output(1) <= time_init+eps)
then
1576 flag_3d_output = .false.
1578 flag_3d_output = .true.
1580 stop
' sico_init: ERGDAT must be either 0 or 1!'
1584 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
1585 flag_3d_output, ndat2d, ndat3d)
1587 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
1588 flag_3d_output, ndat2d, ndat3d)
1590 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
1597 flag_3d_output = .false.
1600 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
1601 flag_3d_output, ndat2d, ndat3d)
1603 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
1604 flag_3d_output, ndat2d, ndat3d)
1606 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
1609 if (time_output(1) <= time_init+eps)
then
1611 flag_3d_output = .true.
1614 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
1615 flag_3d_output, ndat2d, ndat3d)
1617 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
1618 flag_3d_output, ndat2d, ndat3d)
1620 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
1626 stop
' sico_init: OUTPUT must be either 1, 2 or 3!'
1629 call
output2(time_init, dxi, deta, delta_ts, glac_index, z_sl)
1631 call
output3(time_init, delta_ts, glac_index, z_sl)
1634 call
output4(time_init, dxi, deta, delta_ts, glac_index, z_sl)