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
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
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
75 character (len=256) :: shell_command
77 logical :: flag_3d_output
79 character(len=64),
parameter :: fmt1 =
'(a)', &
83 character(len= 8) :: ch_imax
84 character(len=128) :: fmt4
86 write(ch_imax, fmt=
'(i8)') imax
87 write(fmt4, fmt=
'(a)')
'('//trim(adjustl(ch_imax))//
'(i1),i1)'
92 ch_domain_long =
'Antarctica'
93 ch_domain_short =
'ant'
96 ch_domain_long =
'Austfonna'
97 ch_domain_short =
'asf'
99 #elif defined(EMTP2SGE)
100 ch_domain_long =
'EISMINT Phase 2 Simplified Geometry Experiment'
101 ch_domain_short =
'emtp2sge'
104 ch_domain_long =
'Greenland'
105 ch_domain_short =
'grl'
108 ch_domain_long =
'Northern hemisphere'
109 ch_domain_short =
'nhem'
112 ch_domain_long =
'Scandinavia and Eurasia'
113 ch_domain_short =
'scand'
116 ch_domain_long =
'Tibet'
117 ch_domain_short =
'tibet'
120 ch_domain_long =
'North polar cap of Mars'
121 ch_domain_short =
'nmars'
124 ch_domain_long =
'South polar cap of Mars'
125 ch_domain_short =
'smars'
128 ch_domain_long =
'XYZ'
129 ch_domain_short =
'xyz'
131 ch_domain_long = trim(ch_domain_long)//
'/ISMIP HEINO'
135 stop
' sico_init: No valid domain specified!'
156 #if (CALCZS==4 || MARGIN==3 || DYNAMICS==2)
159 call lis_initialize(ierr)
176 if ( trim(version) /= trim(sico_version) ) &
177 stop
' sico_init: SICOPOLIS version not compatible with header file!'
181 #if ( !defined(DYNAMICS) )
182 stop
' sico_init: DYNAMICS not defined in the header file!'
185 #if ( !defined(CALCMOD) )
186 stop
' sico_init: CALCMOD not defined in the header file!'
189 #if ( defined(ENTHMOD) )
190 write(6, fmt=
'(a)')
' sico_init: ENTHMOD must not be defined any more.'
191 write(6, fmt=
'(a)')
' Please update your header file!'
198 #if (GRID==0 || GRID==1)
200 if (abs(dx-4.0_dp) < eps)
then
202 if ((imax /= 34).or.(jmax /= 33))
then
203 stop
' sico_init: IMAX and/or JMAX wrong!'
206 else if (abs(dx-2.0_dp) < eps)
then
208 if ((imax /= 68).or.(jmax /= 66))
then
209 stop
' sico_init: IMAX and/or JMAX wrong!'
212 else if (abs(dx-1.0_dp) < eps)
then
214 if ((imax /= 136).or.(jmax /= 132))
then
215 stop
' sico_init: IMAX and/or JMAX wrong!'
219 stop
' sico_init: DX wrong!'
224 stop
' sico_init: GRID==2 not allowed for this application!'
232 #if (CALCMOD==0 || CALCMOD==2 || CALCMOD==3 || CALCMOD==-1)
235 write(6, fmt=
'(a)')
' sico_init: For options CALCMOD==0, 2, 3 or -1,'
236 write(6, fmt=
'(a)')
' the separate kt domain is redundant.'
237 write(6, fmt=
'(a)')
' Therefore, consider setting KTMAX to 1.'
238 write(6, fmt=
'(a)')
' '
247 #if ((TSURFACE == 5) && (ACCSURFACE != 5))
248 stop
' sico_init: Options TSURFACE==5 and ACCSURFACE==5 must be used together!'
251 #if ((TSURFACE != 5) && (ACCSURFACE == 5))
252 stop
' sico_init: Options TSURFACE==5 and ACCSURFACE==5 must be used together!'
259 stop
' sico_init: Option ADV_HOR==1 (central differences) not defined!'
267 #if ((MARGIN==3 && DYNAMICS==1) || DYNAMICS==2) /* requires SSA or SStA */
269 write(6, fmt=
'(a)')
' sico_init: Distortion correction not implemented'
270 write(6, fmt=
'(a)')
' for the shallow shelf approximation (SSA)'
271 write(6, fmt=
'(a)')
' or the shelfy stream approximation (SStA)'
272 write(6, fmt=
'(a)')
' -> GRID==0 required!'
283 #elif (TSURFACE == 5)
292 dtime_temp0 = dtime_temp0
294 dtime_wss0 = dtime_wss0
299 dzeta_c = 1.0_dp/
real(kcmax,dp)
300 dzeta_t = 1.0_dp/
real(ktmax,dp)
301 dzeta_r = 1.0_dp/
real(krmax,dp)
310 if (deform >= eps)
then
312 flag_aa_nonzero = .true.
320 eaz_c_quotient(kc) = 0.0_dp
323 zeta_c(kc) = kc*dzeta_c
324 eaz_c(kc) = exp(aa*zeta_c(kc))
325 eaz_c_quotient(kc) = (eaz_c(kc)-1.0_dp)/(ea-1.0_dp)
331 eaz_c_quotient(kc) = 1.0_dp
335 flag_aa_nonzero = .false.
343 eaz_c_quotient(kc) = 0.0_dp
346 zeta_c(kc) = kc*dzeta_c
348 eaz_c_quotient(kc) = zeta_c(kc)
354 eaz_c_quotient(kc) = 1.0_dp
364 zeta_t(kt) = kt*dzeta_t
376 zeta_r(kr) = kr*dzeta_r
390 if ((i <= imax).and.(j <= jmax))
then
402 anfdatname = anfdatname
404 #if defined(YEAR_ZERO)
405 year_zero = year_zero
407 year_zero = 2000.0_dp
410 time_init0 = time_init0
411 time_end0 = time_end0
412 dtime_ser0 = dtime_ser0
414 #if ( OUTPUT==1 || OUTPUT==3 )
415 dtime_out0 = dtime_out0
418 #if ( OUTPUT==2 || OUTPUT==3 )
420 time_output0( 1) = time_out0_01
421 time_output0( 2) = time_out0_02
422 time_output0( 3) = time_out0_03
423 time_output0( 4) = time_out0_04
424 time_output0( 5) = time_out0_05
425 time_output0( 6) = time_out0_06
426 time_output0( 7) = time_out0_07
427 time_output0( 8) = time_out0_08
428 time_output0( 9) = time_out0_09
429 time_output0(10) = time_out0_10
430 time_output0(11) = time_out0_11
431 time_output0(12) = time_out0_12
432 time_output0(13) = time_out0_13
433 time_output0(14) = time_out0_14
434 time_output0(15) = time_out0_15
435 time_output0(16) = time_out0_16
436 time_output0(17) = time_out0_17
437 time_output0(18) = time_out0_18
438 time_output0(19) = time_out0_19
439 time_output0(20) = time_out0_20
444 shell_command =
'if [ ! -d'
445 shell_command = trim(shell_command)//
' '//outpath
446 shell_command = trim(shell_command)//
' '//
'] ; then mkdir'
447 shell_command = trim(shell_command)//
' '//outpath
448 shell_command = trim(shell_command)//
' '//
'; fi'
449 call system(trim(shell_command))
452 open(10, iostat=ios, &
453 file=outpath//
'/'//trim(runname)//
'.log', &
456 stop
' sico_init: Error when opening the log file!'
458 write(10, fmt=trim(fmt1))
'Computational domain:'
459 write(10, fmt=trim(fmt1)) trim(ch_domain_long)
460 write(10, fmt=trim(fmt1))
' '
462 write(10, fmt=trim(fmt2))
'imax =', imax
463 write(10, fmt=trim(fmt2))
'jmax =', jmax
464 write(10, fmt=trim(fmt2))
'kcmax =', kcmax
465 write(10, fmt=trim(fmt2))
'ktmax =', ktmax
466 write(10, fmt=trim(fmt2))
'krmax =', krmax
467 write(10, fmt=trim(fmt1))
' '
469 write(10, fmt=trim(fmt3))
'a =', aa
470 write(10, fmt=trim(fmt1))
' '
472 #if (GRID==0 || GRID==1)
473 write(10, fmt=trim(fmt3))
'x0 =', x0
474 write(10, fmt=trim(fmt3))
'y0 =', y0
475 write(10, fmt=trim(fmt3))
'dx =', dx
477 stop
' sico_init: GRID==2 not allowed for this application!'
479 write(10, fmt=trim(fmt1))
' '
481 write(10, fmt=trim(fmt3))
'year_zero =', year_zero
482 write(10, fmt=trim(fmt3))
'time_init =', time_init0
483 write(10, fmt=trim(fmt3))
'time_end =', time_end0
484 write(10, fmt=trim(fmt3))
'dtime =', dtime0
485 write(10, fmt=trim(fmt3))
'dtime_temp =', dtime_temp0
487 write(10, fmt=trim(fmt3))
'dtime_wss =', dtime_wss0
489 #if ( OUTPUT==1 || OUTPUT==3 )
490 write(10, fmt=trim(fmt3))
'dtime_out =', dtime_out0
492 write(10, fmt=trim(fmt3))
'dtime_ser =', dtime_ser0
493 write(10, fmt=trim(fmt1))
' '
495 write(10, fmt=trim(fmt2))
'ANF_DAT =', anf_dat
496 write(10, fmt=trim(fmt1))
'zs_present file = '//zs_present_file
498 write(10, fmt=trim(fmt1))
'zl_present file = '//zl_present_file
500 write(10, fmt=trim(fmt1))
'zl0 file = '//zl0_file
501 write(10, fmt=trim(fmt1))
'mask_present file = '//mask_present_file
502 #if (ANF_DAT==1 && defined(TEMP_INIT))
503 write(10, fmt=trim(fmt2))
'TEMP_INIT =', temp_init
506 write(10, fmt=trim(fmt1))
'Initial-value file = '//anfdatname
507 write(10, fmt=trim(fmt1))
'Path to initial-value file = '//anfdatpath
509 write(10, fmt=trim(fmt1))
' '
511 write(10, fmt=trim(fmt1))
'Physical-parameter file = '//phys_para_file
512 write(10, fmt=trim(fmt1))
' '
514 #if (CALCZS==3 || CALCZS==4)
515 write(10, fmt=trim(fmt3))
'ovi_weight =', ovi_weight
517 write(10, fmt=trim(fmt3))
'omega_sor =', omega_sor
519 write(10, fmt=trim(fmt1))
' '
522 write(10, fmt=trim(fmt1))
'temp_mm_present file = '//temp_mm_present_file
524 write(10, fmt=trim(fmt3))
'delta_ts0 =', delta_ts0
525 write(10, fmt=trim(fmt1))
'temp_ma file = '//temp_ma_present_file
526 write(10, fmt=trim(fmt3))
'temp_ma fact = ', temp_ma_present_fact
528 write(10, fmt=trim(fmt3))
'sine_amplit =', sine_amplit
529 write(10, fmt=trim(fmt3))
'sine_period =', sine_period
531 write(10, fmt=trim(fmt1))
'GRIP file = '//grip_temp_file
532 write(10, fmt=trim(fmt3))
'grip_temp_fact =', grip_temp_fact
534 write(10, fmt=trim(fmt1))
'Glacial-index file = '//glac_ind_file
535 write(10, fmt=trim(fmt1))
'temp_mm_anom file = '//temp_mm_anom_file
536 write(10, fmt=trim(fmt3))
'temp_mm_anom fact = ', temp_mm_anom_fact
539 write(10, fmt=trim(fmt1))
'precip_mm_present file = '//precip_mm_present_file
541 write(10, fmt=trim(fmt3))
'accfact =', accfact
542 #elif ( ACCSURFACE==2 || ACCSURFACE==3 )
543 write(10, fmt=trim(fmt3))
'gamma_s =', gamma_s
544 #elif ( ACCSURFACE==5 )
545 write(10, fmt=trim(fmt1))
'precip_mm_anom file = '//precip_mm_anom_file
546 write(10, fmt=trim(fmt3))
'precip_mm_anom fact = ', precip_mm_anom_fact
548 #if (ACCSURFACE <= 3)
549 write(10, fmt=trim(fmt2))
'ELEV_DESERT =', elev_desert
550 #if (ELEV_DESERT == 1)
551 write(10, fmt=trim(fmt3))
'gamma_p =', gamma_p
552 write(10, fmt=trim(fmt3))
'zs_thresh =', zs_thresh
557 write(10, fmt=trim(fmt3))
'lambda_lti =', lambda_lti
558 write(10, fmt=trim(fmt3))
'temp_lti =', temp_lti
562 write(10, fmt=trim(fmt3))
'z_sl0 =', z_sl0
564 write(10, fmt=trim(fmt1))
'sea-level file = '//sea_level_file
566 write(10, fmt=trim(fmt1))
' '
569 #if ( MARINE_ICE_CALVING==2 || MARINE_ICE_CALVING==3 )
570 write(10, fmt=trim(fmt3))
'z_mar =', z_mar
571 write(10, fmt=trim(fmt1))
' '
572 #elif ( MARINE_ICE_CALVING==4 || MARINE_ICE_CALVING==5 \
573 || marine_ice_calving==6 || marine_ice_calving==7 )
574 write(10, fmt=trim(fmt3))
'fact_z_mar =', fact_z_mar
575 write(10, fmt=trim(fmt1))
' '
576 #elif ( ( MARINE_ICE_FORMATION==2 ) && ( MARINE_ICE_CALVING==9 ) )
577 write(10, fmt=trim(fmt3))
'calv_uw_coeff =', calv_uw_coeff
578 write(10, fmt=trim(fmt3))
'r1_calv_uw =', r1_calv_uw
579 write(10, fmt=trim(fmt3))
'r2_calv_uw =', r2_calv_uw
580 write(10, fmt=trim(fmt1))
' '
583 #if ICE_SHELF_CALVING==2
584 write(10, fmt=trim(fmt3))
'H_calv =', h_calv
585 write(10, fmt=trim(fmt1))
' '
589 write(10, fmt=trim(fmt3))
'c_slide =', c_slide
590 write(10, fmt=trim(fmt3))
'smw_coeff =', smw_coeff
591 write(10, fmt=trim(fmt3))
'gamma_slide =', gamma_slide
592 write(10, fmt=trim(fmt2))
'p_weert =', p_weert
593 write(10, fmt=trim(fmt2))
'q_weert =', q_weert
595 write(10, fmt=trim(fmt3))
'red_pres_limit_fact =', red_pres_limit_fact
597 write(10, fmt=trim(fmt1))
' '
600 write(10, fmt=trim(fmt1))
'Sediment-mask file = '//mask_sedi_file
601 write(10, fmt=trim(fmt1))
' '
603 write(10, fmt=trim(fmt3))
'c_slide_sedi =', c_slide_sedi
604 write(10, fmt=trim(fmt3))
'smw_coeff_sedi =', smw_coeff_sedi
605 write(10, fmt=trim(fmt3))
'gamma_slide_sedi =', gamma_slide_sedi
606 write(10, fmt=trim(fmt2))
'p_weert_sedi =', p_weert_sedi
607 write(10, fmt=trim(fmt2))
'q_weert_sedi =', q_weert_sedi
608 write(10, fmt=trim(fmt1))
' '
612 write(10, fmt=trim(fmt3))
'q_geo =', q_geo
614 write(10, fmt=trim(fmt1))
'q_geo file = '//q_geo_file
616 write(10, fmt=trim(fmt1))
' '
618 #if (defined(MARINE_ICE_BASAL_MELTING))
619 write(10, fmt=trim(fmt2))
'MARINE_ICE_BASAL_MELTING =', marine_ice_basal_melting
620 #if (MARINE_ICE_BASAL_MELTING==2 || MARINE_ICE_BASAL_MELTING==3)
621 write(10, fmt=trim(fmt3))
'qbm_marine =', qbm_marine
623 write(10, fmt=trim(fmt1))
' '
626 write(10, fmt=trim(fmt2))
'REBOUND =', rebound
628 write(10, fmt=trim(fmt3))
'frac_llra =', frac_llra
630 #if (REBOUND==1 || REBOUND==2)
631 write(10, fmt=trim(fmt2))
'TIME_LAG_MOD =', time_lag_mod
632 #if (TIME_LAG_MOD==1)
633 write(10, fmt=trim(fmt3))
'time_lag =', time_lag
634 #elif (TIME_LAG_MOD==2)
635 write(10, fmt=trim(fmt1))
'time_lag_file = '//time_lag_file
637 stop
' sico_init: TIME_LAG_MOD must be either 1 or 2!'
641 write(10, fmt=trim(fmt2))
'FLEX_RIG_MOD =', flex_rig_mod
642 #if (FLEX_RIG_MOD==1)
643 write(10, fmt=trim(fmt3))
'flex_rig =', flex_rig
644 #elif (FLEX_RIG_MOD==2)
645 write(10, fmt=trim(fmt1))
'flex_rig_file = '//flex_rig_file
647 stop
' sico_init: FLEX_RIG_MOD must be either 1 or 2!'
650 write(10, fmt=trim(fmt2))
'Q_LITHO =', q_litho
651 write(10, fmt=trim(fmt1))
' '
654 write(10, fmt=trim(fmt3))
'gr_size =', gr_size
655 write(10, fmt=trim(fmt1))
' '
658 write(10, fmt=trim(fmt3))
'sigma_res =', sigma_res
659 write(10, fmt=trim(fmt1))
' '
662 write(10, fmt=trim(fmt2))
'ENHMOD =', enhmod
663 #if (ENHMOD==1 || ENHMOD==2 || ENHMOD==3)
664 write(10, fmt=trim(fmt3))
'enh_fact =', enh_fact
666 #if (ENHMOD==2 || ENHMOD==3)
667 write(10, fmt=trim(fmt3))
'enh_intg =', enh_intg
670 write(10, fmt=trim(fmt3))
'age_trans =', age_trans_0
673 write(10, fmt=trim(fmt3))
'date_trans1 =', date_trans1_0
674 write(10, fmt=trim(fmt3))
'date_trans2 =', date_trans2_0
675 write(10, fmt=trim(fmt3))
'date_trans3 =', date_trans3_0
677 #if (ENHMOD==4 || ENHMOD==5)
678 write(10, fmt=trim(fmt3))
'enh_compr =', enh_compr
679 write(10, fmt=trim(fmt3))
'enh_shear =', enh_shear
681 #if ((ENHMOD==1 || ENHMOD==2 || ENHMOD==3 || ENHMOD==4) && MARGIN==3)
682 write(10, fmt=trim(fmt3))
'enh_shelf =', enh_shelf
684 write(10, fmt=trim(fmt1))
' '
686 write(10, fmt=trim(fmt3))
'numdiff_H_t =', numdiff_h_t
687 write(10, fmt=trim(fmt3))
'tau_cts =', tau_cts
688 write(10, fmt=trim(fmt3))
'H_min =', h_min
689 write(10, fmt=trim(fmt3))
'vh_max =', vh_max
690 write(10, fmt=trim(fmt3))
'hd_min =', hd_min
691 write(10, fmt=trim(fmt3))
'hd_max =', hd_max
693 write(10, fmt=trim(fmt3))
'qbm_min =', qbm_min
694 #elif defined(QB_MIN) /* obsolete */
695 write(10, fmt=trim(fmt3))
'qb_min =', qb_min
698 write(10, fmt=trim(fmt3))
'qbm_max =', qbm_max
699 #elif defined(QB_MAX) /* obsolete */
700 write(10, fmt=trim(fmt3))
'qb_max =', qb_max
702 write(10, fmt=trim(fmt3))
'age_min =', age_min
703 write(10, fmt=trim(fmt3))
'age_max =', age_max
704 write(10, fmt=trim(fmt3))
'mean_accum =', mean_accum
706 write(10, fmt=trim(fmt3))
'age_diff =', agediff
708 write(10, fmt=trim(fmt1))
' '
710 write(10, fmt=trim(fmt2))
'GRID =', grid
711 write(10, fmt=trim(fmt2))
'DYNAMICS =', dynamics
712 #if (DYNAMICS==2 && defined(RATIO_SL_THRESH))
713 write(10, fmt=trim(fmt3))
'ratio_sl_thresh =', ratio_sl_thresh
715 write(10, fmt=trim(fmt2))
'CALCMOD =', calcmod
716 #if ( CALCMOD==-1 && defined(TEMP_CONST) )
717 write(10, fmt=trim(fmt3))
'TEMP_CONST =', temp_const
719 #if ( CALCMOD==-1 && defined(AGE_CONST) )
720 write(10, fmt=trim(fmt3))
'AGE_CONST =', age_const
722 #if ( CALCMOD==1 && defined(CTS_MELTING_FREEZING) )
723 write(10, fmt=trim(fmt2))
'CTS_MELTING_FREEZING =', cts_melting_freezing
725 write(10, fmt=trim(fmt2))
'FLOW_LAW =', flow_law
726 write(10, fmt=trim(fmt2))
'FIN_VISC =', fin_visc
727 write(10, fmt=trim(fmt2))
'MARGIN =', margin
729 write(10, fmt=trim(fmt2))
'MARINE_ICE_FORMATION =', marine_ice_formation
730 write(10, fmt=trim(fmt2))
'MARINE_ICE_CALVING =', marine_ice_calving
732 write(10, fmt=trim(fmt2))
'ICE_SHELF_CALVING =', ice_shelf_calving
734 write(10, fmt=trim(fmt2))
'ZS_EVOL =', zs_evol
735 write(10, fmt=trim(fmt2))
'CALCZS =', calczs
736 write(10, fmt=trim(fmt2))
'ADV_HOR =', adv_hor
737 write(10, fmt=trim(fmt2))
'ADV_VERT =', adv_vert
738 write(10, fmt=trim(fmt2))
'TOPOGRAD =', topograd
739 write(10, fmt=trim(fmt2))
'TSURFACE =', tsurface
740 write(10, fmt=trim(fmt2))
'ACCSURFACE =', accsurface
742 write(10, fmt=trim(fmt2))
'PRECIP_ANOM_INTERPOL =', precip_anom_interpol
744 write(10, fmt=trim(fmt2))
'SOLID_PRECIP =', solid_precip
745 write(10, fmt=trim(fmt2))
'ABLSURFACE =', ablsurface
746 write(10, fmt=trim(fmt2))
'SEA_LEVEL =', sea_level
747 write(10, fmt=trim(fmt2))
'SLIDE_LAW =', slide_law
748 write(10, fmt=trim(fmt2))
'ICE_STREAM =', ice_stream
749 write(10, fmt=trim(fmt2))
'Q_GEO_MOD =', q_geo_mod
750 write(10, fmt=trim(fmt1))
' '
752 #if defined(OUT_TIMES)
753 write(10, fmt=trim(fmt2))
'OUT_TIMES =', out_times
755 write(10, fmt=trim(fmt2))
'OUTPUT =', output
756 write(10, fmt=trim(fmt2))
'OUTSER =', outser
757 #if defined(OUTSER_V_A)
758 write(10, fmt=trim(fmt2))
'OUTSER_V_A =', outser_v_a
760 #if ( OUTPUT==1 || OUTPUT==2 )
761 write(10, fmt=trim(fmt2))
'ERGDAT =', ergdat
763 write(10, fmt=trim(fmt2))
'NETCDF =', netcdf
764 write(10, fmt=trim(fmt1))
' '
765 #if ( OUTPUT==2 || OUTPUT==3 )
766 write(10, fmt=trim(fmt2))
'n_output =', n_output
768 write(10, fmt=trim(fmt3))
'time_output =', time_output0(n)
770 write(10, fmt=trim(fmt1))
' '
773 write(10, fmt=trim(fmt1))
'Program version and date: '//version//
' / '//date
775 close(10, status=
'keep')
779 year_zero = year_zero*year_sec
780 time_init = time_init0*year_sec
781 time_end = time_end0*year_sec
782 dtime = dtime0*year_sec
783 dtime_temp = dtime_temp0*year_sec
785 dtime_wss = dtime_wss0*year_sec
787 dtime_ser = dtime_ser0*year_sec
788 #if ( OUTPUT==1 || OUTPUT==3 )
789 dtime_out = dtime_out0*year_sec
791 #if ( OUTPUT==2 || OUTPUT==3 )
793 time_output(n) = time_output0(n)*year_sec
797 if (abs(dtime_temp/dtime-nint(dtime_temp/dtime)) > eps) &
798 stop
' sico_init: dtime_temp must be a multiple of dtime!'
801 if (abs(dtime_wss/dtime-nint(dtime_wss/dtime)) > eps) &
802 stop
' sico_init: dtime_wss must be a multiple of dtime!'
809 #if (GRID==0 || GRID==1)
811 open(21, iostat=ios, &
812 file=inpath//
'/'//trim(ch_domain_short)//
'/'//precip_mm_present_file, &
813 recl=16384, status=
'old')
817 stop
' sico_init: GRID==2 not allowed for Austfonna application!'
821 if (ios /= 0) stop
' sico_init: Error when opening the precip file!'
823 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
826 do m=1, 3;
read(21, fmt=
'(a)') ch_dummy;
end do
828 read(21, fmt=*) (precip_present(j,i,n), i=0,imax)
832 close(21, status=
'keep')
836 precip_present = precip_present *(1.0e-03_dp/year_sec)*(rho_w/rho)
843 #if (GRID==0 || GRID==1)
845 open(21, iostat=ios, &
846 file=inpath//
'/'//trim(ch_domain_short)//
'/'//precip_anom_mm_file, &
847 recl=16384, status=
'old')
851 if (ios /= 0) stop
' sico_init: Error when opening the precip anomaly file!'
853 do m=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
856 do m=1, 3;
read(21, fmt=
'(a)') ch_dummy;
end do
858 read(21, fmt=*) (precip_lgm_anom(j,i,n), i=0,imax)
862 close(21, status=
'keep')
864 precip_lgm_anom = precip_lgm_anom * precip_mm_anom_fact
869 #if (PRECIP_ANOM_INTERPOL==1)
871 gamma_precip_lgm_anom(j,i,n) = 0.0_dp
873 #elif (PRECIP_ANOM_INTERPOL==2)
875 gamma_precip_lgm_anom(j,i,n) = -log(precip_lgm_anom(j,i,n))
878 stop
' sico_init: Wrong value of switch PRECIP_ANOM_INTERPOL!'
888 mean_accum = mean_accum*(1.0e-03_dp/year_sec)*(rho_w/rho)
893 #if (GRID==0 || GRID==1)
895 open(24, iostat=ios, &
896 file=inpath//
'/'//trim(ch_domain_short)//
'/'//mask_present_file, &
897 recl=2048, status=
'old')
901 stop
' sico_init: GRID==2 not allowed for this application!'
905 if (ios /= 0) stop
' sico_init: Error when opening the mask file!'
907 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
910 read(24, fmt=trim(fmt4)) (maske_help(j,i), i=0,imax)
913 close(24, status=
'keep')
919 open(24, iostat=ios, &
920 file=inpath//
'/'//trim(ch_domain_short)//
'/'//mask_sedi_file, &
921 recl=2048, status=
'old')
923 if (ios /= 0) stop
' sico_init: Error when opening the rock/sediment mask file!'
925 do n=1, 6;
read(24, fmt=
'(a)') ch_dummy;
end do
928 read(24, fmt=trim(fmt4)) (maske_sedi(j,i), i=0,imax)
931 close(24, status=
'keep')
937 #if (GRID==0 || GRID==1)
939 open(21, iostat=ios, &
940 file=inpath//
'/'//trim(ch_domain_short)//
'/'//temp_mm_present_file, &
941 recl=16384, status=
'old')
945 stop
' sico_init: GRID==2 not allowed for the Austfonna application!'
949 if (ios /= 0) stop
' sico_init: Error when opening the temperature file!'
951 do m=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
954 do m=1, 3;
read(21, fmt=
'(a)') ch_dummy;
end do
956 read(21, fmt=*) (temp_mm_present(j,i,n), i=0,imax)
960 close(21, status=
'keep')
966 #if (GRID==0 || GRID==1)
968 open(21, iostat=ios, &
969 file=inpath//
'/'//trim(ch_domain_short)//
'/'//temp_mm_anom_file, &
970 recl=16384, status=
'old')
974 if (ios /= 0) stop
' sico_init: Error when opening the temperature anomaly file!'
976 do m=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
979 do m=1, 3;
read(21, fmt=
'(a)') ch_dummy;
end do
981 read(21, fmt=*) (temp_mm_lgm_anom(j,i,n), i=0,imax)
985 close(21, status=
'keep')
987 temp_mm_lgm_anom = temp_mm_lgm_anom * temp_mm_anom_fact
995 #if (GRID==0 || GRID==1)
997 open(21, iostat=ios, &
998 file=inpath//
'/'//trim(ch_domain_short)//
'/'//zs_present_file, &
999 recl=8192, status=
'old')
1003 stop
' sico_init: GRID==2 not allowed for the Austfonna application!'
1007 if (ios /= 0) stop
' sico_init: Error when opening the zs file!'
1009 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
1012 read(21, fmt=*) (zs_ref(j,i), i=0,imax)
1015 close(21, status=
'keep')
1022 if (maske_help(j,i) >= 2) zs_ref(j,i) = 0.0_dp
1031 #if (GRID==0 || GRID==1)
1033 open(21, iostat=ios, &
1034 file=inpath//
'/'//trim(ch_domain_short)//
'/'//temp_ma_present_file, &
1035 recl=8192, status=
'old')
1039 if (ios /= 0) stop
' sico_init: Error when opening the temp_ma_present file!'
1041 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
1044 read(21, fmt=*) (temp_ma_present(j,i), i=0,imax)
1047 close(21, status=
'keep')
1049 temp_ma_present = temp_ma_present * temp_ma_present_fact
1057 open(21, iostat=ios, &
1058 file=inpath//
'/general/'//grip_temp_file, &
1061 stop
' sico_init: Error when opening the data file for delta_ts!'
1063 read(21, fmt=*) ch_dummy, grip_time_min, grip_time_stp, grip_time_max
1065 if (ch_dummy /=
'#')
then
1066 write(6, fmt=*)
' sico_init: grip_time_min, grip_time_stp, grip_time_max'
1067 write(6, fmt=*)
' not defined indata file for delta_ts!'
1071 ndata_grip = (grip_time_max-grip_time_min)/grip_time_stp
1073 allocate(griptemp(0:ndata_grip))
1076 read(21, fmt=*) d_dummy, griptemp(n)
1079 close(21, status=
'keep')
1087 open(21, iostat=ios, &
1088 file=inpath//
'/general/'//glac_ind_file, status=
'old')
1089 if (ios /= 0) stop
' sico_init: Error when opening the glacial-index file!'
1091 read(21, fmt=*) ch_dummy, gi_time_min, gi_time_stp, gi_time_max
1093 if (ch_dummy /=
'#')
then
1094 write(6, fmt=*)
' sico_init: gi_time_min, gi_time_stp, gi_time_max'
1095 write(6, fmt=*)
' not defined inglacial-index file!'
1099 ndata_gi = (gi_time_max-gi_time_min)/gi_time_stp
1101 allocate(glacial_index(0:ndata_gi))
1104 read(21, fmt=*) d_dummy, glacial_index(n)
1107 close(21, status=
'keep')
1115 open(21, iostat=ios, &
1116 file=inpath//
'/general/'//sea_level_file, &
1119 stop
' sico_init: Error when opening the data file for z_sl!'
1121 read(21, fmt=*) ch_dummy, specmap_time_min, specmap_time_stp, specmap_time_max
1123 if (ch_dummy /=
'#')
then
1124 write(6, fmt=*)
' sico_init: specmap_time_min, specmap_time_stp, specmap_time_max'
1125 write(6, fmt=*)
' not defined in data file for z_sl!'
1129 ndata_specmap = (specmap_time_max-specmap_time_min)/specmap_time_stp
1131 allocate(specmap_zsl(0:ndata_specmap))
1133 do n=0, ndata_specmap
1134 read(21, fmt=*) d_dummy, specmap_zsl(n)
1137 close(21, status=
'keep')
1149 q_geo(j,i) = q_geo *1.0e-03_dp
1157 open(21, iostat=ios, &
1158 file=inpath//
'/'//trim(ch_domain_short)//
'/'//q_geo_file, &
1159 recl=8192, status=
'old')
1161 if (ios /= 0) stop
' sico_init: Error when opening the qgeo file!'
1163 do n=1, 6;
read(21, fmt=
'(a)') ch_dummy;
end do
1166 read(21, fmt=*) (q_geo(j,i), i=0,imax)
1169 close(21, status=
'keep')
1173 q_geo(j,i) = q_geo(j,i) *1.0e-03_dp
1181 #if (REBOUND==0 || REBOUND==1)
1183 kei = 0.0_dp; n_data_kei = 0; kei_r_max = 0.0_dp; kei_r_incr = 0.0_dp
1194 #if (REBOUND==1 || REBOUND==2)
1196 #if (TIME_LAG_MOD==1)
1198 time_lag_asth = time_lag*year_sec
1200 #elif (TIME_LAG_MOD==2)
1202 open(29, iostat=ios, &
1203 file=inpath//
'/'//trim(ch_domain_short)//
'/'//time_lag_file, &
1204 recl=8192, status=
'old')
1206 if (ios /= 0) stop
' sico_init: Error when opening the time-lag file!'
1208 do n=1, 6;
read(29, fmt=
'(a)') ch_dummy;
end do
1211 read(29, fmt=*) (time_lag_asth(j,i), i=0,imax)
1214 close(29, status=
'keep')
1216 time_lag_asth = time_lag_asth*year_sec
1222 time_lag_asth = 0.0_dp
1230 #if (FLEX_RIG_MOD==1)
1232 flex_rig_lith = flex_rig
1234 #elif (FLEX_RIG_MOD==2)
1236 open(29, iostat=ios, &
1237 file=inpath//
'/'//trim(ch_domain_short)//
'/'//flex_rig_file, &
1238 recl=8192, status=
'old')
1240 if (ios /= 0) stop
' sico_init: Error when opening the flex-rig file!'
1242 do n=1, 6;
read(29, fmt=
'(a)') ch_dummy;
end do
1245 read(29, fmt=*) (flex_rig_lith(j,i), i=0,imax)
1248 close(29, status=
'keep')
1252 #elif (REBOUND==0 || REBOUND==1)
1254 flex_rig_lith = 0.0_dp
1268 call
boundary(time_init, dtime, dxi, deta, &
1269 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
1290 call
boundary(time_init, dtime, dxi, deta, &
1291 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
1313 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
1316 call
boundary(time_init, dtime, dxi, deta, &
1317 delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
1319 q_b_tot = q_bm + q_tld
1325 flag_grounding_line_1 = .false.
1326 flag_grounding_line_2 = .false.
1328 flag_calving_front_1 = .false.
1329 flag_calving_front_2 = .false.
1331 #if (MARGIN==1 || MARGIN==2)
1340 if ( (maske(j,i)==0_i2b) &
1342 ( (maske(j,i+1)==3_i2b) &
1343 .or.(maske(j,i-1)==3_i2b) &
1344 .or.(maske(j+1,i)==3_i2b) &
1345 .or.(maske(j-1,i)==3_i2b) ) &
1347 flag_grounding_line_1(j,i) = .true.
1349 if ( (maske(j,i)==3_i2b) &
1351 ( (maske(j,i+1)==0_i2b) &
1352 .or.(maske(j,i-1)==0_i2b) &
1353 .or.(maske(j+1,i)==0_i2b) &
1354 .or.(maske(j-1,i)==0_i2b) ) &
1356 flag_grounding_line_2(j,i) = .true.
1358 if ( (maske(j,i)==3_i2b) &
1360 ( (maske(j,i+1)==2_i2b) &
1361 .or.(maske(j,i-1)==2_i2b) &
1362 .or.(maske(j+1,i)==2_i2b) &
1363 .or.(maske(j-1,i)==2_i2b) ) &
1365 flag_calving_front_1(j,i) = .true.
1367 if ( (maske(j,i)==2_i2b) &
1369 ( (maske(j,i+1)==3_i2b) &
1370 .or.(maske(j,i-1)==3_i2b) &
1371 .or.(maske(j+1,i)==3_i2b) &
1372 .or.(maske(j-1,i)==3_i2b) ) &
1374 flag_calving_front_2(j,i) = .true.
1382 if ( (maske(j,i)==2_i2b) &
1383 .and. (maske(j+1,i)==3_i2b) &
1385 flag_calving_front_2(j,i) = .true.
1388 if ( (maske(j,i)==2_i2b) &
1389 .and. (maske(j-1,i)==3_i2b) &
1391 flag_calving_front_2(j,i) = .true.
1398 if ( (maske(j,i)==2_i2b) &
1399 .and. (maske(j,i+1)==3_i2b) &
1401 flag_calving_front_2(j,i) = .true.
1404 if ( (maske(j,i)==2_i2b) &
1405 .and. (maske(j,i-1)==3_i2b) &
1407 flag_calving_front_2(j,i) = .true.
1412 stop
' sico_init: MARGIN must be either 1, 2 or 3!'
1417 #if (GRID==0 || GRID==1)
1421 dist_dxdy(jr,ir) = sqrt( (
real(ir,dp)*dxi)**2 + (
real(jr,dp)*deta)**2 )
1432 #if (DYNAMICS==1 || DYNAMICS==2)
1437 #if (MARGIN==3 || DYNAMICS==2)
1438 call
calc_vxy_ssa(z_sl, dxi, deta, dzeta_c, dzeta_t, ii, jj, nn)
1453 stop
' sico_init: DYNAMICS must be either 0, 1 or 2!'
1456 call
calc_dxyz(dxi, deta, dzeta_c, dzeta_t)
1460 #if (CALCMOD==0 || CALCMOD==-1)
1470 enth_t(kt,j,i) = enth_c(0,j,i)
1485 if ( (maske(j,i) == 0_i2b).and.(n_cts(j,i) == 1_i2b) )
then
1491 enth_t(kt,j,i) = enth_c(0,j,i)
1498 #elif (CALCMOD==2 || CALCMOD==3)
1508 enth_t(kt,j,i) = enth_c(0,j,i)
1516 stop
' sico_init: Parameter CALCMOD must be either -1, 0, 1, 2 or 3!'
1524 open(12, iostat=ios, &
1525 file=outpath//
'/'//trim(runname)//
'.ser', &
1528 stop
' sico_init: Error when opening the ser file!'
1530 if (forcing_flag == 1)
then
1535 #if ( !defined(OUTSER_V_A) || OUTSER_V_A==1 )
1537 1102
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
1538 ' H_max(m) zs_max(m) V_g(m^3)', &
1539 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1540 ' A_g(m^2) A_t(m^2) V_bm(m^3/a)', &
1541 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1542 1103
format(
'----------------------------------------------------', &
1543 '---------------------------------------')
1547 1102
format(
' t(a) D_Ts(deg C) z_sl(m)',/, &
1548 ' V(m^3) V_g(m^3) V_f(m^3)', &
1549 ' A(m^2) A_g(m^2) A_f(m^2)',/, &
1550 ' H_max(k) zs_max(m)', &
1551 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1552 ' A_t(m^2) V_bm(m^3/a)', &
1553 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1554 1103
format(
'----------------------------------------------------', &
1555 '---------------------------------------')
1558 stop
' sico_init: OUTSER_V_A must be either 1 or 2!'
1561 else if (forcing_flag == 2)
then
1566 #if ( !defined(OUTSER_V_A) || OUTSER_V_A==1 )
1568 1112
format(
' t(a) glac_ind(1) z_sl(m)',/, &
1569 ' H_max(m) zs_max(m) V_g(m^3)', &
1570 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1571 ' A_g(m^2) A_t(m^2) V_bm(m^3/a)', &
1572 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1573 1113
format(
'----------------------------------------------------', &
1574 '---------------------------------------')
1578 1112
format(
' t(a) glac_ind(1) z_sl(m)',/, &
1579 ' V(m^3) V_g(m^3) V_f(m^3)', &
1580 ' A(m^2) A_g(m^2) A_f(m^2)',/, &
1581 ' H_max(m) zs_max(m)', &
1582 ' V_t(m^3) V_fw(m^3/a) V_sle(m)',/, &
1583 ' A_t(m^2) V_bm(m^3/a)', &
1584 ' V_tld(m^3/a) H_t_max(m) vs_max(m/a)')
1585 1113
format(
'----------------------------------------------------', &
1586 '---------------------------------------')
1589 stop
' sico_init: OUTSER_V_A must be either 1 or 2!'
1598 open(13, iostat=ios, &
1599 file=outpath//
'/'//trim(runname)//
'.thk', &
1601 if (ios /= 0) stop
' sico_init: Error when opening the thk file!'
1603 if (forcing_flag == 1)
then
1608 1104
format(
'% t(a) D_Ts(deg C) z_sl(m)',/, &
1609 ' H(m): JMAX+1 records [j = JMAX (-1) 0] with',/, &
1610 ' IMAX+1 values [i = 0 (1) IMAX] in each record')
1611 1105
format(
'%----------------------------------------------------')
1613 else if (forcing_flag == 2)
then
1618 1114
format(
'% t(a) glac_ind(1) z_sl(m)',/, &
1619 ' H(m): JMAX+1 records [j = JMAX (-1) 0] with',/, &
1620 ' IMAX+1 values [i = 0 (1) IMAX] in each record')
1621 1115
format(
'%----------------------------------------------------')
1633 allocate(lambda_core(n_core), phi_core(n_core), &
1634 x_core(n_core), y_core(n_core))
1636 phi_core(1) = 72.58722_dp *pi_180
1637 lambda_core(1) = -37.64222_dp *pi_180
1638 call
num_coord(lambda_core(1), phi_core(1), x_core(1), y_core(1))
1640 phi_core(2) = 72.58833_dp *pi_180
1641 lambda_core(2) = -38.45750_dp *pi_180
1642 call
num_coord(lambda_core(2), phi_core(2), x_core(2), y_core(2))
1644 phi_core(3) = 65.15139_dp *pi_180
1645 lambda_core(3) = -43.81722_dp *pi_180
1646 call
num_coord(lambda_core(3), phi_core(3), x_core(3), y_core(3))
1648 phi_core(4) = 77.17970_dp *pi_180
1649 lambda_core(4) = -61.10975_dp *pi_180
1650 call
num_coord(lambda_core(4), phi_core(4), x_core(4), y_core(4))
1652 phi_core(5) = 75.09694_dp *pi_180
1653 lambda_core(5) = -42.31956_dp *pi_180
1654 call
num_coord(lambda_core(5), phi_core(5), x_core(5), y_core(5))
1656 phi_core(6) = 77.5_dp *pi_180
1657 lambda_core(6) = -50.9_dp *pi_180
1658 call
num_coord(lambda_core(6), phi_core(6), x_core(6), y_core(6))
1660 open(14, iostat=ios, &
1661 file=outpath//
'/'//trim(runname)//
'.core', &
1663 if (ios /= 0) stop
' sico_init: Error when opening the core file!'
1665 if (forcing_flag == 1)
then
1670 1106
format(
'% t(a) D_Ts(C) z_sl(m)',/, &
1671 ' H_GR(m) H_G2(m) H_D3(m)', &
1672 ' H_CC(m) H_NG(m) H_NE(m)',/, &
1673 ' v_GR(m/a) v_G2(m/a) v_D3(m/a)', &
1674 ' v_CC(m/a) v_NG(m/a) v_NE(m/a)',/, &
1675 ' T_GR(C) T_G2(C) T_D3(C)', &
1676 ' T_CC(C) T_NG(C) T_NE(C)',/, &
1677 ' Rb_GR(W/m2) Rb_G2(W/m2) Rb_D3(W/m2)', &
1678 ' Rb_CC(W/m2) Rb_NG(W/m2) Rb_NE(W/m2)')
1679 1107
format(
'%----------------------------------------------------', &
1680 '---------------------------------------')
1682 else if (forcing_flag == 2)
then
1687 1116
format(
'% t(a) glac_ind(1) z_sl(m)',/, &
1688 ' H_GR(m) H_G2(m) H_D3(m)', &
1689 ' H_CC(m) H_NG(m) H_NE(m)',/, &
1690 ' v_GR(m/a) v_G2(m/a) v_D3(m/a)', &
1691 ' v_CC(m/a) v_NG(m/a) v_NE(m/a)',/, &
1692 ' T_GR(C) T_G2(C) T_D3(C)', &
1693 ' T_CC(C) T_NG(C) T_NE(C)',/, &
1694 ' Rb_GR(W/m2) Rb_G2(W/m2) Rb_D3(W/m2)', &
1695 ' Rb_CC(W/m2) Rb_NG(W/m2) Rb_NE(W/m2)')
1696 1117
format(
'%----------------------------------------------------', &
1697 '---------------------------------------')
1711 allocate(lambda_surf(n_surf), phi_surf(n_surf), &
1712 x_surf(n_surf), y_surf(n_surf))
1716 phi_surf(1) = 79.8322_dp *pi_180
1717 lambda_surf(1) = 24.0043_dp *pi_180
1719 call
num_coord(lambda_surf(1), phi_surf(1), x_surf(1), y_surf(1))
1721 phi_surf(2) = 79.3613_dp *pi_180
1722 lambda_surf(2) = 23.5622_dp *pi_180
1724 call
num_coord(lambda_surf(2), phi_surf(2), x_surf(2), y_surf(2))
1726 phi_surf(3) = 79.4497_dp *pi_180
1727 lambda_surf(3) = 23.6620_dp *pi_180
1729 call
num_coord(lambda_surf(3), phi_surf(3), x_surf(3), y_surf(3))
1731 phi_surf(4) = 79.5388_dp *pi_180
1732 lambda_surf(4) = 23.7644_dp *pi_180
1734 call
num_coord(lambda_surf(4), phi_surf(4), x_surf(4), y_surf(4))
1736 phi_surf(5) = 79.6421_dp *pi_180
1737 lambda_surf(5) = 23.8834_dp *pi_180
1739 call
num_coord(lambda_surf(5), phi_surf(5), x_surf(5), y_surf(5))
1741 phi_surf(6) = 79.7302_dp *pi_180
1742 lambda_surf(6) = 23.9872_dp *pi_180
1744 call
num_coord(lambda_surf(6), phi_surf(6), x_surf(6), y_surf(6))
1746 phi_surf(7) = 79.5829_dp *pi_180
1747 lambda_surf(7) = 24.6716_dp *pi_180
1749 call
num_coord(lambda_surf(7), phi_surf(7), x_surf(7), y_surf(7))
1751 phi_surf(8) = 79.7171_dp *pi_180
1752 lambda_surf(8) = 22.1832_dp *pi_180
1754 call
num_coord(lambda_surf(8), phi_surf(8), x_surf(8), y_surf(8))
1756 phi_surf(9) = 79.7335_dp *pi_180
1757 lambda_surf(9) = 22.4169_dp *pi_180
1759 call
num_coord(lambda_surf(9), phi_surf(9), x_surf(9), y_surf(9))
1761 phi_surf(10) = 79.7519_dp *pi_180
1762 lambda_surf(10) = 22.6407_dp *pi_180
1764 call
num_coord(lambda_surf(10), phi_surf(10), x_surf(10), y_surf(10))
1766 phi_surf(11) = 79.7670_dp *pi_180
1767 lambda_surf(11) = 22.8271_dp *pi_180
1769 call
num_coord(lambda_surf(11), phi_surf(11), x_surf(11), y_surf(11))
1771 phi_surf(12) = 79.7827_dp *pi_180
1772 lambda_surf(12) = 23.1220_dp *pi_180
1774 call
num_coord(lambda_surf(12), phi_surf(12), x_surf(12), y_surf(12))
1776 phi_surf(13) = 79.5884_dp *pi_180
1777 lambda_surf(13) = 25.5511_dp *pi_180
1779 call
num_coord(lambda_surf(13), phi_surf(13), x_surf(13), y_surf(13))
1781 phi_surf(14) = 79.6363_dp *pi_180
1782 lambda_surf(14) = 25.3582_dp *pi_180
1784 call
num_coord(lambda_surf(14), phi_surf(14), x_surf(14), y_surf(14))
1786 phi_surf(15) = 80.0638_dp *pi_180
1787 lambda_surf(15) = 24.2605_dp *pi_180
1789 call
num_coord(lambda_surf(15), phi_surf(15), x_surf(15), y_surf(15))
1791 phi_surf(16) = 79.9426_dp *pi_180
1792 lambda_surf(16) = 24.2433_dp *pi_180
1794 call
num_coord(lambda_surf(16), phi_surf(16), x_surf(16), y_surf(16))
1796 phi_surf(17) = 79.8498_dp *pi_180
1797 lambda_surf(17) = 26.6449_dp *pi_180
1799 call
num_coord(lambda_surf(17), phi_surf(17), x_surf(17), y_surf(17))
1801 phi_surf(18) = 79.8499_dp *pi_180
1802 lambda_surf(18) = 26.1354_dp *pi_180
1804 call
num_coord(lambda_surf(18), phi_surf(18), x_surf(18), y_surf(18))
1806 phi_surf(19) = 79.8499_dp *pi_180
1807 lambda_surf(19) = 25.7261_dp *pi_180
1809 call
num_coord(lambda_surf(19), phi_surf(19), x_surf(19), y_surf(19))
1813 phi_surf(20) = 79.833333_dp *pi_180
1814 lambda_surf(20) = 24.935833_dp *pi_180
1816 call
num_coord(lambda_surf(20), phi_surf(20), x_surf(20), y_surf(20))
1819 phi_surf(21) = 79.783333_dp *pi_180
1820 lambda_surf(21) = 25.400000_dp *pi_180
1822 call
num_coord(lambda_surf(21), phi_surf(21), x_surf(21), y_surf(21))
1825 phi_surf(22) = 79.750000_dp *pi_180
1826 lambda_surf(22) = 23.866667_dp *pi_180
1828 call
num_coord(lambda_surf(22), phi_surf(22), x_surf(22), y_surf(22))
1831 phi_surf(23) = 79.615000_dp *pi_180
1832 lambda_surf(23) = 23.490556_dp *pi_180
1834 call
num_coord(lambda_surf(23), phi_surf(23), x_surf(23), y_surf(23))
1837 phi_surf(24) = 79.797778_dp *pi_180
1838 lambda_surf(24) = 23.997500_dp *pi_180
1840 call
num_coord(lambda_surf(24), phi_surf(24), x_surf(24), y_surf(24))
1843 phi_surf(25) = 79.765000_dp *pi_180
1844 lambda_surf(25) = 24.809722_dp *pi_180
1846 call
num_coord(lambda_surf(25), phi_surf(25), x_surf(25), y_surf(25))
1849 phi_surf(26) = 79.874722_dp *pi_180
1850 lambda_surf(26) = 23.541667_dp *pi_180
1852 call
num_coord(lambda_surf(26), phi_surf(26), x_surf(26), y_surf(26))
1855 phi_surf(27) = 79.697778_dp *pi_180
1856 lambda_surf(27) = 25.096111_dp *pi_180
1858 call
num_coord(lambda_surf(27), phi_surf(27), x_surf(27), y_surf(27))
1860 phi_surf(28) = 79.897500_dp *pi_180
1861 lambda_surf(28) = 23.230278_dp *pi_180
1863 call
num_coord(lambda_surf(28), phi_surf(28), x_surf(28), y_surf(28))
1866 phi_surf(29) = 79.874444_dp *pi_180
1867 lambda_surf(29) = 24.046111_dp *pi_180
1869 call
num_coord(lambda_surf(29), phi_surf(29), x_surf(29), y_surf(29))
1872 phi_surf(30) = 79.962500_dp *pi_180
1873 lambda_surf(30) = 24.169722_dp *pi_180
1875 call
num_coord(lambda_surf(30), phi_surf(30), x_surf(30), y_surf(30))
1878 phi_surf(31) = 79.664444_dp *pi_180
1879 lambda_surf(31) = 25.235833_dp *pi_180
1881 call
num_coord(lambda_surf(31), phi_surf(31), x_surf(31), y_surf(31))
1884 phi_surf(32) = 79.681111_dp *pi_180
1885 lambda_surf(32) = 23.713056_dp *pi_180
1887 call
num_coord(lambda_surf(32), phi_surf(32), x_surf(32), y_surf(32))
1890 phi_surf(33) = 79.554167_dp *pi_180
1891 lambda_surf(33) = 23.796944_dp *pi_180
1893 call
num_coord(lambda_surf(33), phi_surf(33), x_surf(33), y_surf(33))
1896 phi_surf(34) = 79.511667_dp *pi_180
1897 lambda_surf(34) = 24.032778_dp *pi_180
1899 call
num_coord(lambda_surf(34), phi_surf(34), x_surf(34), y_surf(34))
1902 phi_surf(35) = 79.552222_dp *pi_180
1903 lambda_surf(35) = 22.799167_dp *pi_180
1905 call
num_coord(lambda_surf(35), phi_surf(35), x_surf(35), y_surf(35))
1908 phi_surf(36) = 79.847778_dp *pi_180
1909 lambda_surf(36) = 25.788611_dp *pi_180
1911 call
num_coord(lambda_surf(36), phi_surf(36), x_surf(36), y_surf(36))
1914 phi_surf(37) = 79.830000_dp *pi_180
1915 lambda_surf(37) = 24.001389_dp *pi_180
1917 call
num_coord(lambda_surf(37), phi_surf(37), x_surf(37), y_surf(37))
1922 phi_surf(38) = 80.1427268586056_dp *pi_180
1923 lambda_surf(38) = 23.9534492294493_dp *pi_180
1925 call
num_coord(lambda_surf(38), phi_surf(38), x_surf(38), y_surf(38))
1928 phi_surf(39) = 80.1124108950185_dp *pi_180
1929 lambda_surf(39) = 24.0629399381155_dp *pi_180
1931 call
num_coord(lambda_surf(39), phi_surf(39), x_surf(39), y_surf(39))
1934 phi_surf(40) = 80.0765637664780_dp *pi_180
1935 lambda_surf(40) = 24.0481674197519_dp *pi_180
1937 call
num_coord(lambda_surf(40), phi_surf(40), x_surf(40), y_surf(40))
1940 phi_surf(41) = 80.0409891299823_dp *pi_180
1941 lambda_surf(41) = 24.0074110976581_dp *pi_180
1943 call
num_coord(lambda_surf(41), phi_surf(41), x_surf(41), y_surf(41))
1946 phi_surf(42) = 80.0049393359201_dp *pi_180
1947 lambda_surf(42) = 23.9894145095442_dp *pi_180
1949 call
num_coord(lambda_surf(42), phi_surf(42), x_surf(42), y_surf(42))
1952 phi_surf(43) = 79.4994665039616_dp *pi_180
1953 lambda_surf(43) = 25.4790616341716_dp *pi_180
1955 call
num_coord(lambda_surf(43), phi_surf(43), x_surf(43), y_surf(43))
1958 phi_surf(44) = 79.4973763443781_dp *pi_180
1959 lambda_surf(44) = 25.2826485444194_dp *pi_180
1961 call
num_coord(lambda_surf(44), phi_surf(44), x_surf(44), y_surf(44))
1964 phi_surf(45) = 79.5028080484427_dp *pi_180
1965 lambda_surf(45) = 25.0844021770897_dp *pi_180
1967 call
num_coord(lambda_surf(45), phi_surf(45), x_surf(45), y_surf(45))
1970 phi_surf(46) = 79.5131051861579_dp *pi_180
1971 lambda_surf(46) = 24.8934874838598_dp *pi_180
1973 call
num_coord(lambda_surf(46), phi_surf(46), x_surf(46), y_surf(46))
1976 phi_surf(47) = 79.5275754154375_dp *pi_180
1977 lambda_surf(47) = 24.7125320718015_dp *pi_180
1979 call
num_coord(lambda_surf(47), phi_surf(47), x_surf(47), y_surf(47))
1984 phi_surf(48) = 79.6232572730302_dp *pi_180
1985 lambda_surf(48) = 22.4297425686265_dp *pi_180
1987 call
num_coord(lambda_surf(48), phi_surf(48), x_surf(48), y_surf(48))
1990 phi_surf(49) = 79.6355048663362_dp *pi_180
1991 lambda_surf(49) = 22.5023513660534_dp *pi_180
1993 call
num_coord(lambda_surf(49), phi_surf(49), x_surf(49), y_surf(49))
1996 phi_surf(50) = 79.6477359930900_dp *pi_180
1997 lambda_surf(50) = 22.5751300038166_dp *pi_180
1999 call
num_coord(lambda_surf(50), phi_surf(50), x_surf(50), y_surf(50))
2002 phi_surf(51) = 79.6599505942585_dp *pi_180
2003 lambda_surf(51) = 22.6480788556811_dp *pi_180
2005 call
num_coord(lambda_surf(51), phi_surf(51), x_surf(51), y_surf(51))
2008 phi_surf(52) = 79.6730674725108_dp *pi_180
2009 lambda_surf(52) = 22.7116449352996_dp *pi_180
2011 call
num_coord(lambda_surf(52), phi_surf(52), x_surf(52), y_surf(52))
2014 phi_surf(53) = 79.6907455504277_dp *pi_180
2015 lambda_surf(53) = 22.7278148586532_dp *pi_180
2017 call
num_coord(lambda_surf(53), phi_surf(53), x_surf(53), y_surf(53))
2020 phi_surf(54) = 79.7084227767215_dp *pi_180
2021 lambda_surf(54) = 22.7440404597164_dp *pi_180
2023 call
num_coord(lambda_surf(54), phi_surf(54), x_surf(54), y_surf(54))
2026 phi_surf(55) = 79.7260991471427_dp *pi_180
2027 lambda_surf(55) = 22.7603220234687_dp *pi_180
2029 call
num_coord(lambda_surf(55), phi_surf(55), x_surf(55), y_surf(55))
2032 phi_surf(56) = 79.7437746574126_dp *pi_180
2033 lambda_surf(56) = 22.7766598368173_dp *pi_180
2035 call
num_coord(lambda_surf(56), phi_surf(56), x_surf(56), y_surf(56))
2038 phi_surf(57) = 79.7615003936967_dp *pi_180
2039 lambda_surf(57) = 22.7895141723757_dp *pi_180
2041 call
num_coord(lambda_surf(57), phi_surf(57), x_surf(57), y_surf(57))
2044 phi_surf(58) = 79.7794141201101_dp *pi_180
2045 lambda_surf(58) = 22.7893415392149_dp *pi_180
2047 call
num_coord(lambda_surf(58), phi_surf(58), x_surf(58), y_surf(58))
2050 phi_surf(59) = 79.7973278451020_dp *pi_180
2051 lambda_surf(59) = 22.7891690597211_dp *pi_180
2053 call
num_coord(lambda_surf(59), phi_surf(59), x_surf(59), y_surf(59))
2056 phi_surf(60) = 79.8152415686728_dp *pi_180
2057 lambda_surf(60) = 22.7889967333372_dp *pi_180
2059 call
num_coord(lambda_surf(60), phi_surf(60), x_surf(60), y_surf(60))
2062 phi_surf(61) = 79.8331552908230_dp *pi_180
2063 lambda_surf(61) = 22.7888245595023_dp *pi_180
2065 call
num_coord(lambda_surf(61), phi_surf(61), x_surf(61), y_surf(61))
2068 phi_surf(62) = 79.8504448969531_dp *pi_180
2069 lambda_surf(62) = 22.8027142916594_dp *pi_180
2071 call
num_coord(lambda_surf(62), phi_surf(62), x_surf(62), y_surf(62))
2074 phi_surf(63) = 79.8662041154283_dp *pi_180
2075 lambda_surf(63) = 22.8510765245997_dp *pi_180
2077 call
num_coord(lambda_surf(63), phi_surf(63), x_surf(63), y_surf(63))
2080 phi_surf(64) = 79.8819561232071_dp *pi_180
2081 lambda_surf(64) = 22.8995882814793_dp *pi_180
2083 call
num_coord(lambda_surf(64), phi_surf(64), x_surf(64), y_surf(64))
2086 phi_surf(65) = 79.8977008864609_dp *pi_180
2087 lambda_surf(65) = 22.9482501953580_dp *pi_180
2089 call
num_coord(lambda_surf(65), phi_surf(65), x_surf(65), y_surf(65))
2092 phi_surf(66) = 79.9134383711667_dp *pi_180
2093 lambda_surf(66) = 22.9970629023954_dp *pi_180
2095 call
num_coord(lambda_surf(66), phi_surf(66), x_surf(66), y_surf(66))
2098 phi_surf(67) = 79.9291685431056_dp *pi_180
2099 lambda_surf(67) = 23.0460270418662_dp *pi_180
2101 call
num_coord(lambda_surf(67), phi_surf(67), x_surf(67), y_surf(67))
2104 phi_surf(68) = 79.9448913678619_dp *pi_180
2105 lambda_surf(68) = 23.0951432561750_dp *pi_180
2107 call
num_coord(lambda_surf(68), phi_surf(68), x_surf(68), y_surf(68))
2110 phi_surf(69) = 79.9606068108212_dp *pi_180
2111 lambda_surf(69) = 23.1444121908719_dp *pi_180
2113 call
num_coord(lambda_surf(69), phi_surf(69), x_surf(69), y_surf(69))
2116 phi_surf(70) = 79.9741572381786_dp *pi_180
2117 lambda_surf(70) = 23.2092211687201_dp *pi_180
2119 call
num_coord(lambda_surf(70), phi_surf(70), x_surf(70), y_surf(70))
2122 phi_surf(71) = 79.9859141894524_dp *pi_180
2123 lambda_surf(71) = 23.2868821248161_dp *pi_180
2125 call
num_coord(lambda_surf(71), phi_surf(71), x_surf(71), y_surf(71))
2128 phi_surf(72) = 79.9976529206869_dp *pi_180
2129 lambda_surf(72) = 23.3647236505600_dp *pi_180
2131 call
num_coord(lambda_surf(72), phi_surf(72), x_surf(72), y_surf(72))
2133 phi_surf(73) = 80.0093733670701_dp *pi_180
2134 lambda_surf(73) = 23.4427461021207_dp *pi_180
2136 call
num_coord(lambda_surf(73), phi_surf(73), x_surf(73), y_surf(73))
2139 phi_surf(74) = 80.0201320622880_dp *pi_180
2140 lambda_surf(74) = 23.5253067161782_dp *pi_180
2142 call
num_coord(lambda_surf(74), phi_surf(74), x_surf(74), y_surf(74))
2145 phi_surf(75) = 80.0308022109253_dp *pi_180
2146 lambda_surf(75) = 23.6083570802514_dp *pi_180
2148 call
num_coord(lambda_surf(75), phi_surf(75), x_surf(75), y_surf(75))
2150 phi_surf(76) = 80.0414516357850_dp *pi_180
2151 lambda_surf(76) = 23.6915833394057_dp *pi_180
2153 call
num_coord(lambda_surf(76), phi_surf(76), x_surf(76), y_surf(76))
2156 phi_surf(77) = 80.0520802696857_dp *pi_180
2157 lambda_surf(77) = 23.7749857156754_dp *pi_180
2159 call
num_coord(lambda_surf(77), phi_surf(77), x_surf(77), y_surf(77))
2162 phi_surf(78) = 80.0547633949370_dp *pi_180
2163 lambda_surf(78) = 23.8736736708044_dp *pi_180
2165 call
num_coord(lambda_surf(78), phi_surf(78), x_surf(78), y_surf(78))
2168 phi_surf(79) = 80.0548013447126_dp *pi_180
2169 lambda_surf(79) = 23.9773687987851_dp *pi_180
2171 call
num_coord(lambda_surf(79), phi_surf(79), x_surf(79), y_surf(79))
2174 phi_surf(80) = 80.0548073397268_dp *pi_180
2175 lambda_surf(80) = 24.0810636270044_dp *pi_180
2177 call
num_coord(lambda_surf(80), phi_surf(80), x_surf(80), y_surf(80))
2180 phi_surf(81) = 80.0547813803758_dp *pi_180
2181 lambda_surf(81) = 24.1847574925018_dp *pi_180
2183 call
num_coord(lambda_surf(81), phi_surf(81), x_surf(81), y_surf(81))
2186 phi_surf(82) = 80.0646160588300_dp *pi_180
2187 lambda_surf(82) = 24.2700368789878_dp *pi_180
2189 call
num_coord(lambda_surf(82), phi_surf(82), x_surf(82), y_surf(82))
2192 phi_surf(83) = 80.0750999374003_dp *pi_180
2193 lambda_surf(83) = 24.3542380951582_dp *pi_180
2195 call
num_coord(lambda_surf(83), phi_surf(83), x_surf(83), y_surf(83))
2198 phi_surf(84) = 80.0846920877530_dp *pi_180
2199 lambda_surf(84) = 24.4407004402100_dp *pi_180
2201 call
num_coord(lambda_surf(84), phi_surf(84), x_surf(84), y_surf(84))
2204 phi_surf(85) = 80.0875193831616_dp *pi_180
2205 lambda_surf(85) = 24.5434121380084_dp *pi_180
2207 call
num_coord(lambda_surf(85), phi_surf(85), x_surf(85), y_surf(85))
2210 phi_surf(86) = 80.0903153574351_dp *pi_180
2211 lambda_surf(86) = 24.6461808494348_dp *pi_180
2213 call
num_coord(lambda_surf(86), phi_surf(86), x_surf(86), y_surf(86))
2216 phi_surf(87) = 80.0924166470023_dp *pi_180
2217 lambda_surf(87) = 24.7486469216956_dp *pi_180
2219 call
num_coord(lambda_surf(87), phi_surf(87), x_surf(87), y_surf(87))
2222 phi_surf(88) = 80.0864319373603_dp *pi_180
2223 lambda_surf(88) = 24.8467147281595_dp *pi_180
2225 call
num_coord(lambda_surf(88), phi_surf(88), x_surf(88), y_surf(88))
2228 phi_surf(89) = 80.0804188683848_dp *pi_180
2229 lambda_surf(89) = 24.9446644540260_dp *pi_180
2231 call
num_coord(lambda_surf(89), phi_surf(89), x_surf(89), y_surf(89))
2234 phi_surf(90) = 80.0743774931913_dp *pi_180
2235 lambda_surf(90) = 25.0424957604751_dp *pi_180
2237 call
num_coord(lambda_surf(90), phi_surf(90), x_surf(90), y_surf(90))
2240 phi_surf(91) = 80.0713340422000_dp *pi_180
2241 lambda_surf(91) = 25.1439126047994_dp *pi_180
2243 call
num_coord(lambda_surf(91), phi_surf(91), x_surf(91), y_surf(91))
2246 phi_surf(92) = 80.0700730909331_dp *pi_180
2247 lambda_surf(92) = 25.2475056357563_dp *pi_180
2249 call
num_coord(lambda_surf(92), phi_surf(92), x_surf(92), y_surf(92))
2252 phi_surf(93) = 80.0687803205250_dp *pi_180
2253 lambda_surf(93) = 25.3510715226335_dp *pi_180
2255 call
num_coord(lambda_surf(93), phi_surf(93), x_surf(93), y_surf(93))
2258 phi_surf(94) = 80.0647501708291_dp *pi_180
2259 lambda_surf(94) = 25.4519066363393_dp *pi_180
2261 call
num_coord(lambda_surf(94), phi_surf(94), x_surf(94), y_surf(94))
2263 phi_surf(95) = 80.0595181102431_dp *pi_180
2264 lambda_surf(95) = 25.5506489732496_dp *pi_180
2266 call
num_coord(lambda_surf(95), phi_surf(95), x_surf(95), y_surf(95))
2268 phi_surf(96) = 80.0494857323914_dp *pi_180
2269 lambda_surf(96) = 25.6365356440635_dp *pi_180
2271 call
num_coord(lambda_surf(96), phi_surf(96), x_surf(96), y_surf(96))
2274 phi_surf(97) = 80.0394316265850_dp *pi_180
2275 lambda_surf(97) = 25.7222505219501_dp *pi_180
2277 call
num_coord(lambda_surf(97), phi_surf(97), x_surf(97), y_surf(97))
2280 phi_surf(98) = 80.0293558606091_dp *pi_180
2281 lambda_surf(98) = 25.8077937609009_dp *pi_180
2283 call
num_coord(lambda_surf(98), phi_surf(98), x_surf(98), y_surf(98))
2286 phi_surf(99) = 80.0192585021221_dp *pi_180
2287 lambda_surf(99) = 25.8931655175225_dp *pi_180
2289 call
num_coord(lambda_surf(99), phi_surf(99), x_surf(99), y_surf(99))
2292 phi_surf(100) = 80.0091396186553_dp *pi_180
2293 lambda_surf(100) = 25.9783659510134_dp *pi_180
2295 call
num_coord(lambda_surf(100), phi_surf(100), x_surf(100), y_surf(100))
2298 phi_surf(101) = 79.9989992776120_dp *pi_180
2299 lambda_surf(101) = 26.0633952231408_dp *pi_180
2301 call
num_coord(lambda_surf(101), phi_surf(101), x_surf(101), y_surf(101))
2304 phi_surf(102) = 79.9888375462661_dp *pi_180
2305 lambda_surf(102) = 26.1482534982178_dp *pi_180
2307 call
num_coord(lambda_surf(102), phi_surf(102), x_surf(102), y_surf(102))
2310 phi_surf(103) = 79.9786544917617_dp *pi_180
2311 lambda_surf(103) = 26.2329409430807_dp *pi_180
2313 call
num_coord(lambda_surf(103), phi_surf(103), x_surf(103), y_surf(103))
2316 phi_surf(104) = 79.9683923353960_dp *pi_180
2317 lambda_surf(104) = 26.3172101192864_dp *pi_180
2319 call
num_coord(lambda_surf(104), phi_surf(104), x_surf(104), y_surf(104))
2321 phi_surf(105) = 80.0241705082505_dp *pi_180
2322 lambda_surf(105) = 26.7558248932553_dp *pi_180
2324 call
num_coord(lambda_surf(105), phi_surf(105), x_surf(105), y_surf(105))
2327 phi_surf(106) = 80.0069243536208_dp *pi_180
2328 lambda_surf(106) = 26.7836310921011_dp *pi_180
2330 call
num_coord(lambda_surf(106), phi_surf(106), x_surf(106), y_surf(106))
2333 phi_surf(107) = 79.9896760170551_dp *pi_180
2334 lambda_surf(107) = 26.8113433337043_dp *pi_180
2336 call
num_coord(lambda_surf(107), phi_surf(107), x_surf(107), y_surf(107))
2339 phi_surf(108) = 79.9723667157507_dp *pi_180
2340 lambda_surf(108) = 26.8350524380302_dp *pi_180
2342 call
num_coord(lambda_surf(108), phi_surf(108), x_surf(108), y_surf(108))
2345 phi_surf(109) = 79.9545472297622_dp *pi_180
2346 lambda_surf(109) = 26.8248911276131_dp *pi_180
2348 call
num_coord(lambda_surf(109), phi_surf(109), x_surf(109), y_surf(109))
2351 phi_surf(110) = 79.9367274171506_dp *pi_180
2352 lambda_surf(110) = 26.8147665774914_dp *pi_180
2354 call
num_coord(lambda_surf(110), phi_surf(110), x_surf(110), y_surf(110))
2357 phi_surf(111) = 79.9189072796258_dp *pi_180
2358 lambda_surf(111) = 26.8046785944172_dp *pi_180
2360 call
num_coord(lambda_surf(111), phi_surf(111), x_surf(111), y_surf(111))
2363 phi_surf(112) = 79.9009446914988_dp *pi_180
2364 lambda_surf(112) = 26.7957185084455_dp *pi_180
2366 call
num_coord(lambda_surf(112), phi_surf(112), x_surf(112), y_surf(112))
2369 phi_surf(113) = 79.8843576455373_dp *pi_180
2370 lambda_surf(113) = 26.7616970403497_dp *pi_180
2372 call
num_coord(lambda_surf(113), phi_surf(113), x_surf(113), y_surf(113))
2375 phi_surf(114) = 79.8676428266616_dp *pi_180
2376 lambda_surf(114) = 26.7251472990965_dp *pi_180
2378 call
num_coord(lambda_surf(114), phi_surf(114), x_surf(114), y_surf(114))
2381 phi_surf(115) = 79.8509238637717_dp *pi_180
2382 lambda_surf(115) = 26.6887177159393_dp *pi_180
2384 call
num_coord(lambda_surf(115), phi_surf(115), x_surf(115), y_surf(115))
2387 phi_surf(116) = 79.8342007771708_dp *pi_180
2388 lambda_surf(116) = 26.6524077251556_dp *pi_180
2390 call
num_coord(lambda_surf(116), phi_surf(116), x_surf(116), y_surf(116))
2393 phi_surf(117) = 79.8189961177120_dp *pi_180
2394 lambda_surf(117) = 26.6017802396904_dp *pi_180
2396 call
num_coord(lambda_surf(117), phi_surf(117), x_surf(117), y_surf(117))
2399 phi_surf(118) = 79.8054200039019_dp *pi_180
2400 lambda_surf(118) = 26.5357666498664_dp *pi_180
2402 call
num_coord(lambda_surf(118), phi_surf(118), x_surf(118), y_surf(118))
2405 phi_surf(119) = 79.7918304753589_dp *pi_180
2406 lambda_surf(119) = 26.4699273874801_dp *pi_180
2408 call
num_coord(lambda_surf(119), phi_surf(119), x_surf(119), y_surf(119))
2411 phi_surf(120) = 79.7782275858515_dp *pi_180
2412 lambda_surf(120) = 26.4042619219016_dp *pi_180
2414 call
num_coord(lambda_surf(120), phi_surf(120), x_surf(120), y_surf(120))
2417 phi_surf(121) = 79.7646113889145_dp *pi_180
2418 lambda_surf(121) = 26.3387697236600_dp *pi_180
2420 call
num_coord(lambda_surf(121), phi_surf(121), x_surf(121), y_surf(121))
2423 phi_surf(122) = 79.7518386380187_dp *pi_180
2424 lambda_surf(122) = 26.2683717557144_dp *pi_180
2426 call
num_coord(lambda_surf(122), phi_surf(122), x_surf(122), y_surf(122))
2429 phi_surf(123) = 79.7395107596368_dp *pi_180
2430 lambda_surf(123) = 26.1954158840248_dp *pi_180
2432 call
num_coord(lambda_surf(123), phi_surf(123), x_surf(123), y_surf(123))
2435 phi_surf(124) = 79.7271664326874_dp *pi_180
2436 lambda_surf(124) = 26.1226336416600_dp *pi_180
2438 call
num_coord(lambda_surf(124), phi_surf(124), x_surf(124), y_surf(124))
2441 phi_surf(125) = 79.7148057168060_dp *pi_180
2442 lambda_surf(125) = 26.0500246274899_dp *pi_180
2444 call
num_coord(lambda_surf(125), phi_surf(125), x_surf(125), y_surf(125))
2447 phi_surf(126) = 79.7024286714212_dp *pi_180
2448 lambda_surf(126) = 25.9775884402940_dp *pi_180
2450 call
num_coord(lambda_surf(126), phi_surf(126), x_surf(126), y_surf(126))
2453 phi_surf(127) = 79.6900353557545_dp *pi_180
2454 lambda_surf(127) = 25.9053246787703_dp *pi_180
2456 call
num_coord(lambda_surf(127), phi_surf(127), x_surf(127), y_surf(127))
2459 phi_surf(128) = 79.6776258288211_dp *pi_180
2460 lambda_surf(128) = 25.8332329415456_dp *pi_180
2462 call
num_coord(lambda_surf(128), phi_surf(128), x_surf(128), y_surf(128))
2465 phi_surf(129) = 79.6652001494302_dp *pi_180
2466 lambda_surf(129) = 25.7613128271851_dp *pi_180
2468 call
num_coord(lambda_surf(129), phi_surf(129), x_surf(129), y_surf(129))
2471 phi_surf(130) = 79.6527583761852_dp *pi_180
2472 lambda_surf(130) = 25.6895639342015_dp *pi_180
2474 call
num_coord(lambda_surf(130), phi_surf(130), x_surf(130), y_surf(130))
2477 phi_surf(131) = 79.6403005674845_dp *pi_180
2478 lambda_surf(131) = 25.6179858610658_dp *pi_180
2480 call
num_coord(lambda_surf(131), phi_surf(131), x_surf(131), y_surf(131))
2483 phi_surf(132) = 79.6272788783125_dp *pi_180
2484 lambda_surf(132) = 25.5497696493382_dp *pi_180
2486 call
num_coord(lambda_surf(132), phi_surf(132), x_surf(132), y_surf(132))
2489 phi_surf(133) = 79.6138476738577_dp *pi_180
2490 lambda_surf(133) = 25.4840259325117_dp *pi_180
2492 call
num_coord(lambda_surf(133), phi_surf(133), x_surf(133), y_surf(133))
2495 phi_surf(134) = 79.6004029370116_dp *pi_180
2496 lambda_surf(134) = 25.4184506246986_dp *pi_180
2498 call
num_coord(lambda_surf(134), phi_surf(134), x_surf(134), y_surf(134))
2501 phi_surf(135) = 79.5869447205062_dp *pi_180
2502 lambda_surf(135) = 25.3530432378053_dp *pi_180
2504 call
num_coord(lambda_surf(135), phi_surf(135), x_surf(135), y_surf(135))
2507 phi_surf(136) = 79.5734730768545_dp *pi_180
2508 lambda_surf(136) = 25.2878032846200_dp *pi_180
2510 call
num_coord(lambda_surf(136), phi_surf(136), x_surf(136), y_surf(136))
2513 phi_surf(137) = 79.5599880583521_dp *pi_180
2514 lambda_surf(137) = 25.2227302788170_dp *pi_180
2516 call
num_coord(lambda_surf(137), phi_surf(137), x_surf(137), y_surf(137))
2519 phi_surf(138) = 79.5464897170775_dp *pi_180
2520 lambda_surf(138) = 25.1578237349623_dp *pi_180
2522 call
num_coord(lambda_surf(138), phi_surf(138), x_surf(138), y_surf(138))
2525 phi_surf(139) = 79.5340825476013_dp *pi_180
2526 lambda_surf(139) = 25.0873713598923_dp *pi_180
2528 call
num_coord(lambda_surf(139), phi_surf(139), x_surf(139), y_surf(139))
2531 phi_surf(140) = 79.5231871974923_dp *pi_180
2532 lambda_surf(140) = 25.0091720580033_dp *pi_180
2534 call
num_coord(lambda_surf(140), phi_surf(140), x_surf(140), y_surf(140))
2537 phi_surf(141) = 79.5122726145574_dp *pi_180
2538 lambda_surf(141) = 24.9311335486110_dp *pi_180
2540 call
num_coord(lambda_surf(141), phi_surf(141), x_surf(141), y_surf(141))
2543 phi_surf(142) = 79.5013388593293_dp *pi_180
2544 lambda_surf(142) = 24.8532556096146_dp *pi_180
2546 call
num_coord(lambda_surf(142), phi_surf(142), x_surf(142), y_surf(142))
2549 phi_surf(143) = 79.4881304535468_dp *pi_180
2550 lambda_surf(143) = 24.7885573077964_dp *pi_180
2552 call
num_coord(lambda_surf(143), phi_surf(143), x_surf(143), y_surf(143))
2555 phi_surf(144) = 79.4734132097634_dp *pi_180
2556 lambda_surf(144) = 24.7326565135170_dp *pi_180
2558 call
num_coord(lambda_surf(144), phi_surf(144), x_surf(144), y_surf(144))
2561 phi_surf(145) = 79.4586860312332_dp *pi_180
2562 lambda_surf(145) = 24.6769105936574_dp *pi_180
2564 call
num_coord(lambda_surf(145), phi_surf(145), x_surf(145), y_surf(145))
2567 phi_surf(146) = 79.4439489597131_dp *pi_180
2568 lambda_surf(146) = 24.6213190006049_dp *pi_180
2570 call
num_coord(lambda_surf(146), phi_surf(146), x_surf(146), y_surf(146))
2573 phi_surf(147) = 79.4321693404700_dp *pi_180
2574 lambda_surf(147) = 24.5500779464491_dp *pi_180
2576 call
num_coord(lambda_surf(147), phi_surf(147), x_surf(147), y_surf(147))
2579 phi_surf(148) = 79.4223453273505_dp *pi_180
2580 lambda_surf(148) = 24.4684716320257_dp *pi_180
2582 call
num_coord(lambda_surf(148), phi_surf(148), x_surf(148), y_surf(148))
2585 phi_surf(149) = 79.4125002037095_dp *pi_180
2586 lambda_surf(149) = 24.3870150299917_dp *pi_180
2588 call
num_coord(lambda_surf(149), phi_surf(149), x_surf(149), y_surf(149))
2591 phi_surf(150) = 79.4026340289842_dp *pi_180
2592 lambda_surf(150) = 24.3057080421768_dp *pi_180
2594 call
num_coord(lambda_surf(150), phi_surf(150), x_surf(150), y_surf(150))
2597 phi_surf(151) = 79.3927468625203_dp *pi_180
2598 lambda_surf(151) = 24.2245505685362_dp *pi_180
2600 call
num_coord(lambda_surf(151), phi_surf(151), x_surf(151), y_surf(151))
2603 phi_surf(152) = 79.3909641358607_dp *pi_180
2604 lambda_surf(152) = 24.1356247611452_dp *pi_180
2606 call
num_coord(lambda_surf(152), phi_surf(152), x_surf(152), y_surf(152))
2609 phi_surf(153) = 79.3950618239069_dp *pi_180
2610 lambda_surf(153) = 24.0409163942958_dp *pi_180
2612 call
num_coord(lambda_surf(153), phi_surf(153), x_surf(153), y_surf(153))
2615 phi_surf(154) = 79.3991312122811_dp *pi_180
2616 lambda_surf(154) = 23.9461351693152_dp *pi_180
2618 call
num_coord(lambda_surf(154), phi_surf(154), x_surf(154), y_surf(154))
2621 phi_surf(155) = 79.4031722671433_dp *pi_180
2622 lambda_surf(155) = 23.8512815066396_dp *pi_180
2624 call
num_coord(lambda_surf(155), phi_surf(155), x_surf(155), y_surf(155))
2627 phi_surf(156) = 79.4071849548373_dp *pi_180
2628 lambda_surf(156) = 23.7563558291274_dp *pi_180
2630 call
num_coord(lambda_surf(156), phi_surf(156), x_surf(156), y_surf(156))
2633 phi_surf(157) = 79.4111692418918_dp *pi_180
2634 lambda_surf(157) = 23.6613585620463_dp *pi_180
2636 call
num_coord(lambda_surf(157), phi_surf(157), x_surf(157), y_surf(157))
2639 phi_surf(158) = 79.4127149901435_dp *pi_180
2640 lambda_surf(158) = 23.5647431017868_dp *pi_180
2642 call
num_coord(lambda_surf(158), phi_surf(158), x_surf(158), y_surf(158))
2645 phi_surf(159) = 79.4129320057492_dp *pi_180
2646 lambda_surf(159) = 23.4672773246991_dp *pi_180
2648 call
num_coord(lambda_surf(159), phi_surf(159), x_surf(159), y_surf(159))
2651 phi_surf(160) = 79.4131190508990_dp *pi_180
2652 lambda_surf(160) = 23.3698071241014_dp *pi_180
2654 call
num_coord(lambda_surf(160), phi_surf(160), x_surf(160), y_surf(160))
2657 phi_surf(161) = 79.4132761235192_dp *pi_180
2658 lambda_surf(161) = 23.2723330506382_dp *pi_180
2660 call
num_coord(lambda_surf(161), phi_surf(161), x_surf(161), y_surf(161))
2662 phi_surf(162) = 79.4134032217989_dp *pi_180
2663 lambda_surf(162) = 23.1748556552727_dp *pi_180
2665 call
num_coord(lambda_surf(162), phi_surf(162), x_surf(162), y_surf(162))
2668 phi_surf(163) = 79.4135003441905_dp *pi_180
2669 lambda_surf(163) = 23.0773754892604_dp *pi_180
2671 call
num_coord(lambda_surf(163), phi_surf(163), x_surf(163), y_surf(163))
2676 open(41, iostat=ios, &
2677 file=outpath//
'/'//trim(runname)//
'_zb.dat', &
2679 if (ios /= 0) stop
' sico_init: Error when opening the _zb file!'
2684 4001
format(
'%Time series of the bedrock for 163 surface points')
2685 4002
format(
'%------------------------------------------------')
2687 open(42, iostat=ios, &
2688 file=outpath//
'/'//trim(runname)//
'_zs.dat', &
2690 if (ios /= 0) stop
' sico_init: Error when opening the _zs file!'
2695 4011
format(
'%Time series of the surface for 163 surface points')
2697 open(43, iostat=ios, &
2698 file=outpath//
'/'//trim(runname)//
'_accum.dat', &
2700 if (ios /= 0) stop
' sico_init: Error when opening the _accum file!'
2705 4021
format(
'%Time series of the accumulation for 163 surface points')
2707 open(44, iostat=ios, &
2708 file=outpath//
'/'//trim(runname)//
'_as_perp.dat', &
2710 if (ios /= 0) stop
' sico_init: Error when opening the _as_perp file!'
2715 4031
format(
'%Time series of the as_perp for 163 surface points')
2717 open(45, iostat=ios, &
2718 file=outpath//
'/'//trim(runname)//
'_snowfall.dat', &
2720 if (ios /= 0) stop
' sico_init: Error when opening the _snowfall file!'
2725 4041
format(
'%Time series of the snowfall for 163 surface points')
2727 open(46, iostat=ios, &
2728 file=outpath//
'/'//trim(runname)//
'_rainfall.dat', &
2730 if (ios /= 0) stop
' sico_init: Error when opening the _rainfall file!'
2735 4051
format(
'%Time series of the rainfall for 163 surface points')
2737 open(47, iostat=ios, &
2738 file=outpath//
'/'//trim(runname)//
'_runoff.dat', &
2740 if (ios /= 0) stop
' sico_init: Error when opening the _runoff file!'
2745 4061
format(
'%Time series of the runoff for 163 surface points')
2747 open(48, iostat=ios, &
2748 file=outpath//
'/'//trim(runname)//
'_vx_s.dat', &
2750 if (ios /= 0) stop
' sico_init: Error when opening the _vx_s file!'
2755 4071
format(
'%Time series of the x-component of the horizontal surface velocity for 163 surface points')
2757 open(49, iostat=ios, &
2758 file=outpath//
'/'//trim(runname)//
'_vy_s.dat', &
2760 if (ios /= 0) stop
' sico_init: Error when opening the _vy_s file!'
2765 4081
format(
'%Time series of the y-component of the horizontal surface velocity for 163 surface points')
2768 open(50, iostat=ios, &
2769 file=outpath//
'/'//trim(runname)//
'_vz_s.dat', &
2771 if (ios /= 0) stop
' sico_init: Error when opening the _vz_s file!'
2776 4091
format(
'%Time series of the vertical surface velocity component for 163 surface points')
2778 open(51, iostat=ios, &
2779 file=outpath//
'/'//trim(runname)//
'_vx_b.dat', &
2781 if (ios /= 0) stop
' sico_init: Error when opening the _vx_b file!'
2786 4101
format(
'%Time series of the x-component of the horizontal basal velocity for 163 surface points')
2788 open(52, iostat=ios, &
2789 file=outpath//
'/'//trim(runname)//
'_vy_b.dat', &
2791 if (ios /= 0) stop
' sico_init: Error when opening the _vy_b file!'
2796 4111
format(
'%Time series of the y-component of the horizontal basal velocity for 163 surface points')
2799 open(53, iostat=ios, &
2800 file=outpath//
'/'//trim(runname)//
'_vz_b.dat', &
2802 if (ios /= 0) stop
' sico_init: Error when opening the _vz_b file!'
2807 4121
format(
'%Time series of the vertical basal velocity component for 163 surface points')
2810 open(54, iostat=ios, &
2811 file=outpath//
'/'//trim(runname)//
'_temph_b.dat', &
2813 if (ios /= 0) stop
' sico_init: Error when opening the _temph_b file!'
2818 4131
format(
'%Time series of the basal temperature relative to pressure melting point for 163 surface points')
2827 flag_3d_output = .false.
2829 flag_3d_output = .true.
2831 stop
' sico_init: ERGDAT must be either 0 or 1!'
2835 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
2836 flag_3d_output, ndat2d, ndat3d)
2838 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
2839 flag_3d_output, ndat2d, ndat3d)
2841 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
2846 if (time_output(1) <= time_init+eps)
then
2849 flag_3d_output = .false.
2851 flag_3d_output = .true.
2853 stop
' sico_init: ERGDAT must be either 0 or 1!'
2857 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
2858 flag_3d_output, ndat2d, ndat3d)
2860 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
2861 flag_3d_output, ndat2d, ndat3d)
2863 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
2870 flag_3d_output = .false.
2873 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
2874 flag_3d_output, ndat2d, ndat3d)
2876 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
2877 flag_3d_output, ndat2d, ndat3d)
2879 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
2882 if (time_output(1) <= time_init+eps)
then
2884 flag_3d_output = .true.
2887 call
output1(runname, time_init, delta_ts, glac_index, z_sl, &
2888 flag_3d_output, ndat2d, ndat3d)
2890 call
output_nc(runname, time_init, delta_ts, glac_index, z_sl, &
2891 flag_3d_output, ndat2d, ndat3d)
2893 stop
' sico_init: Parameter NETCDF must be either 1 or 2!'
2899 stop
' sico_init: OUTPUT must be either 1, 2 or 3!'
2902 call
output2(time_init, dxi, deta, delta_ts, glac_index, z_sl)
2904 call
output3(time_init, delta_ts, glac_index, z_sl)
2907 call
output4(time_init, dxi, deta, delta_ts, glac_index, z_sl)
2910 call
output5(time, dxi, deta, delta_ts, glac_index, z_sl)
subroutine calc_vz_ssa(z_sl, dxi, deta, dzeta_c)
Computation of the vertical velocity vz in the shallow shelf approximation.
subroutine calc_vxy_static()
Computation of the horizontal velocity vx, vy, the horizontal volume flux qx, qy etc. for static ice.
subroutine calc_vxy_sia(dzeta_c, dzeta_t)
Computation of the shear stresses txz, tyz, the effective shear stress sigma, the depth-averaged flui...
subroutine topography1(dxi, deta)
Definition of the initial surface and bedrock topography (including gradients) and of the horizontal ...
subroutine, public ice_mat_eqs_pars(RF_table, R_T_val, KAPPA_table, C_table, n_temp_min, n_temp_max, RHO_I_val, RHO_C_val, KAPPA_C_val, C_C_val)
Setting of required physical parameters.
subroutine output2(time, dxi, deta, delta_ts, glac_index, z_sl)
Writing of time-series data on file in ASCII format.
subroutine phys_para()
Reading of physical parameters.
Declarations of kind types for SICOPOLIS.
subroutine topography3(dxi, deta, z_sl, anfdatname)
Definition of the initial surface and bedrock topography (including gradients) and of the horizontal ...
subroutine output3(time, delta_ts, glac_index, z_sl)
Writing of time-series data of the ice thickness field on file in ASCII format.
subroutine num_coord(lambda_val, phi_val, x_val, y_val)
Computation of position (x,y) in the numerical domain for longitude lambda and latitude phi (in rad)...
subroutine topography3_nc(dxi, deta, z_sl, anfdatname)
Definition of the initial surface and bedrock topography (including gradients) and of the horizontal ...
subroutine calc_temp_melt()
Computation of the melting temperatures.
subroutine output_nc(runname, time, delta_ts, glac_index, z_sl, flag_3d_output, ndat2d, ndat3d)
Writing of time-slice files in NetCDF format.
subroutine 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 ...
Declarations of global variables for SICOPOLIS (for the ANT domain).
subroutine topography2(dxi, deta)
Definition of the initial surface and bedrock topography (including gradients) and of the horizontal ...
subroutine calc_vz_static()
Computation of the vertical velocity vz for static ice.
subroutine calc_dxyz(dxi, deta, dzeta_c, dzeta_t)
Computation of all components of the strain-rate tensor, the full effective strain rate and the shear...
subroutine calc_enhance(time)
Computation of the flow enhancement factor.
subroutine, public calc_c_int_table(c_table, n_tmp_min, n_tmp_max, L_val)
Computation of the temperature integral of the specific heat of ice as a table (c_int_table). Further, definition of the latent heat of ice.
subroutine output5(time, dxi, deta, delta_ts, glac_index, z_sl)
Writing of time-series data for all defined surface points on file in ASCII format. Modification of Tolly's output7 by Thorben Dunse.
subroutine calc_vxy_b_sia(time, z_sl)
Computation of the basal horizontal velocity vx_b, vy_b in the shallow ice approximation.
subroutine sico_init(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)
Initialisations for SICOPOLIS.
subroutine boundary(time, dtime, dxi, deta, delta_ts, glac_index, z_sl, dzsl_dtau, z_mar)
Computation of the surface temperature (must be less than 0 deg C!) and of the accumulation-ablation ...
subroutine read_kei()
Reading of the tabulated kei function.
subroutine init_temp_water_age()
Initial temperature, water content and age.
Material quantities of ice: Rate factor, heat conductivity, specific heat (heat capacity).
subroutine 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.
Declarations of global variables for SICOPOLIS.
subroutine, public calc_c_int_inv_table()
Computation of the inverse of the temperature integral of the specific heat of ice as a table (c_int_...
Conversion from temperature (temp) and water content (omega) to enthalpy (enth) and vice versa...
subroutine calc_vz_sia(dxi, deta, dzeta_c, dzeta_t)
Computation of the vertical velocity vz in the shallow ice approximation.
subroutine output1(runname, time, delta_ts, glac_index, z_sl, flag_3d_output, ndat2d, ndat3d)
Writing of time-slice files in binary format.
real(dp) function, public enth_fct_temp_omega(temp_val, omega_val)
Enthalpy as a function of temperature and water content.