6 #define DATE '2016-03-02'
553 #include "sico_specs.h"
557 #include "subroutines/general/sico_types.F90"
558 #include "subroutines/general/sico_variables.F90"
561 #include "subroutines/ant/sico_vars.F90"
563 #include "subroutines/asf/sico_vars.F90"
564 #elif (defined(EMTP2SGE))
565 #include "subroutines/emtp2sge/sico_vars.F90"
567 #include "subroutines/grl/sico_vars.F90"
568 #elif (defined(NHEM))
569 #include "subroutines/nhem/sico_vars.F90"
570 #elif (defined(NMARS))
571 #include "subroutines/nmars/sico_vars.F90"
572 #elif (defined(SCAND))
573 #include "subroutines/scand/sico_vars.F90"
574 #elif (defined(SMARS))
575 #include "subroutines/smars/sico_vars.F90"
576 #elif (defined(TIBET))
577 #include "subroutines/tibet/sico_vars.F90"
579 #include "subroutines/xyz/sico_vars.F90"
585 #include "subroutines/general/ice_material_quantities.F90"
590 #include "subroutines/general/sico_sle_solvers.F90"
595 #include "subroutines/general/nc_check.F90"
601 #include "subroutines/general/enth_temp_omega.F90"
607 #include "subroutines/nmars/instemp.f90"
608 #elif (defined(SMARS))
609 #include "subroutines/smars/instemp.f90"
685 integer(i4b) :: ndat2d, ndat3d
686 integer(i4b) :: n_output
687 integer(i4b),
dimension((IMAX+1)*(JMAX+1)) :: ii, jj
688 integer(i4b),
dimension(0:JMAX,0:IMAX) :: nn
689 real(dp) :: delta_ts, glac_index
690 real(dp) :: mean_accum
691 real(dp) :: dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser
692 real(dp) :: time, time_init, time_end
693 real(dp),
dimension(100) :: time_output
694 real(dp) :: dxi, deta, dzeta_c, dzeta_t, dzeta_r
695 real(dp) :: z_sl, dzsl_dtau, z_mar
696 character(len=100) :: runname
702 dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser, &
703 time, time_init, time_end, time_output, &
704 dxi, deta, dzeta_c, dzeta_t, dzeta_r, &
705 z_sl, dzsl_dtau, z_mar, &
707 ndat2d, ndat3d, n_output, &
714 dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser, &
715 time, time_init, time_end, time_output, &
716 dxi, deta, dzeta_c, dzeta_t, dzeta_r, &
717 z_sl, dzsl_dtau, z_mar, &
719 ndat2d, ndat3d, n_output, &
731 #include "subroutines/nhem/sico_init.F90"
732 #elif (defined(SCAND))
733 #include "subroutines/scand/sico_init.F90"
735 #include "subroutines/grl/sico_init.F90"
736 #elif (defined(NMARS))
737 #include "subroutines/nmars/sico_init.F90"
738 #elif (defined(SMARS))
739 #include "subroutines/smars/sico_init.F90"
740 #elif (defined(EMTP2SGE))
741 #include "subroutines/emtp2sge/sico_init.F90"
743 #include "subroutines/ant/sico_init.F90"
744 #elif (defined(TIBET))
745 #include "subroutines/tibet/sico_init.F90"
747 #include "subroutines/asf/sico_init.F90"
749 #include "subroutines/xyz/sico_init.F90"
752 #include "subroutines/general/sico_main_loop.F90"
753 #include "subroutines/general/sico_end.F90"
756 #include "subroutines/nhem/phys_para.F90"
757 #elif (defined(SCAND))
758 #include "subroutines/scand/phys_para.F90"
760 #include "subroutines/grl/phys_para.F90"
761 #elif (defined(NMARS))
762 #include "subroutines/nmars/phys_para.F90"
763 #elif (defined(SMARS))
764 #include "subroutines/smars/phys_para.F90"
765 #elif (defined(EMTP2SGE))
766 #include "subroutines/emtp2sge/phys_para.F90"
768 #include "subroutines/ant/phys_para.F90"
769 #elif (defined(TIBET))
770 #include "subroutines/tibet/phys_para.F90"
772 #include "subroutines/asf/phys_para.F90"
774 #include "subroutines/xyz/phys_para.F90"
777 #include "subroutines/general/read_phys_para_value.F90"
778 #include "subroutines/general/read_kei.F90"
781 #include "subroutines/nhem/topography2.F90"
782 #include "subroutines/nhem/topography3.F90"
784 #include "subroutines/nhem/topography3_nc.F90"
786 #elif (defined(SCAND))
787 #include "subroutines/scand/topography2.F90"
788 #include "subroutines/scand/topography3.F90"
790 #include "subroutines/scand/topography3_nc.F90"
793 #include "subroutines/grl/topography1.F90"
794 #include "subroutines/grl/topography2.F90"
795 #include "subroutines/grl/topography3.F90"
797 #include "subroutines/grl/topography3_nc.F90"
799 #include "subroutines/grl/read_target_topo_nc.F90"
802 #elif (defined(NMARS))
803 #include "subroutines/nmars/topography1.F90"
804 #include "subroutines/nmars/topography2.F90"
805 #include "subroutines/nmars/topography3.F90"
807 #include "subroutines/nmars/topography3_nc.F90"
809 #elif (defined(SMARS))
810 #include "subroutines/smars/topography1.F90"
811 #include "subroutines/smars/topography2.F90"
812 #include "subroutines/smars/topography3.F90"
814 #include "subroutines/smars/topography3_nc.F90"
816 #elif (defined(EMTP2SGE))
817 #include "subroutines/emtp2sge/topography2.F90"
818 #include "subroutines/emtp2sge/topography3.F90"
820 #include "subroutines/emtp2sge/topography3_nc.F90"
823 #include "subroutines/ant/topography1.F90"
824 #include "subroutines/ant/topography2.F90"
825 #include "subroutines/ant/topography3.F90"
827 #include "subroutines/ant/topography3_nc.F90"
829 #include "subroutines/ant/read_target_topo_nc.F90"
832 #elif (defined(TIBET))
833 #include "subroutines/tibet/topography2.F90"
834 #include "subroutines/tibet/topography3.F90"
836 #include "subroutines/tibet/topography3_nc.F90"
839 #include "subroutines/asf/topography1.F90"
840 #include "subroutines/asf/topography2.F90"
841 #include "subroutines/asf/topography3.F90"
843 #include "subroutines/asf/topography3_nc.F90"
846 #include "subroutines/xyz/topography1.F90"
847 #include "subroutines/xyz/topography2.F90"
848 #include "subroutines/xyz/topography3.F90"
850 #include "subroutines/xyz/topography3_nc.F90"
855 #include "subroutines/nhem/boundary.F90"
856 #elif (defined(SCAND))
857 #include "subroutines/scand/boundary.F90"
859 #include "subroutines/grl/boundary.F90"
860 #elif (defined(NMARS))
861 #include "subroutines/nmars/boundary.F90"
862 #elif (defined(SMARS))
863 #include "subroutines/smars/boundary.F90"
864 #elif (defined(EMTP2SGE))
865 #include "subroutines/emtp2sge/boundary.F90"
867 #include "subroutines/ant/boundary.F90"
868 #elif (defined(TIBET))
869 #include "subroutines/tibet/boundary.F90"
871 #include "subroutines/asf/boundary.F90"
873 #include "subroutines/xyz/boundary.F90"
876 #include "subroutines/general/mask_update.F90"
877 #include "subroutines/general/pdd.F90"
878 #include "subroutines/general/erfcc.F90"
879 #include "subroutines/general/init_temp_water_age.F90"
880 #include "subroutines/general/calc_temp_poly.F90"
881 #include "subroutines/general/calc_temp_cold.F90"
882 #include "subroutines/general/calc_temp_const.F90"
883 #if (CALCMOD==2 || CALCMOD==3)
884 #include "subroutines/general/calc_temp_enth.F90"
885 #include "subroutines/general/calc_temp_enth_1.F90"
886 #include "subroutines/general/calc_temp_enth_2.F90"
888 #include "subroutines/general/calc_temp1.F90"
889 #include "subroutines/general/calc_temp2.F90"
890 #include "subroutines/general/calc_temp3.F90"
891 #include "subroutines/general/calc_temp_r.F90"
892 #include "subroutines/general/shift_cts_upward.F90"
893 #include "subroutines/general/shift_cts_downward.F90"
894 #include "subroutines/general/calc_enhance.F90"
895 #include "subroutines/general/calc_vxy_b_sia.F90"
896 #include "subroutines/general/calc_vxy_sia.F90"
897 #include "subroutines/general/calc_vz_sia.F90"
898 #include "subroutines/general/calc_vxy_static.F90"
899 #include "subroutines/general/calc_vz_static.F90"
900 #if (MARGIN==3 || DYNAMICS==2)
901 #include "subroutines/general/calc_temp_ssa.F90"
902 #if (CALCMOD==2 || CALCMOD==3)
903 #include "subroutines/general/calc_temp_enth_ssa.F90"
905 #include "subroutines/general/calc_vxy_ssa.F90"
906 #include "subroutines/general/calc_vxy_ssa_matrix.F90"
907 #include "subroutines/general/calc_vis_ssa.F90"
908 #include "subroutines/general/calc_vz_ssa.F90"
909 #include "subroutines/general/viscosity.F90"
911 #include "subroutines/general/calc_dxyz.F90"
912 #include "subroutines/general/calc_qbm.F90"
914 #include "subroutines/ant/sub_ice_shelf_melting_param.F90"
916 #include "subroutines/general/calc_water_bas.F90"
917 #include "subroutines/general/calc_gia.F90"
918 #include "subroutines/general/calc_top_1.F90"
919 #include "subroutines/general/calc_top_2.F90"
920 #include "subroutines/general/calc_top_3.F90"
921 #include "subroutines/general/calc_elra.F90"
922 #include "subroutines/general/topograd_1.F90"
923 #include "subroutines/general/topograd_2.F90"
924 #include "subroutines/general/calc_temp_melt.F90"
925 #include "subroutines/general/calc_temp_bas.F90"
926 #include "subroutines/general/creep.F90"
927 #include "subroutines/general/metric.F90"
928 #include "subroutines/general/geo_coord.F90"
929 #include "subroutines/general/num_coord.F90"
930 #include "subroutines/general/output1.F90"
931 #include "subroutines/general/output2.F90"
932 #include "subroutines/general/output3.F90"
933 #include "subroutines/general/output4.F90"
936 #include "subroutines/asf/output5.F90"
940 #include "subroutines/general/output_nc.F90"
943 #include "subroutines/general/borehole.F90"
945 #if (defined(EXEC_MAKE_ZL0))
946 #include "subroutines/general/make_zl0.F90"
subroutine sico_end()
Ending of SICOPOLIS.
Declarations of kind types for SICOPOLIS.
program sicopolis
Main program of SICOPOLIS.
Declarations of global variables for SICOPOLIS (for the ANT domain).
subroutine sico_main_loop(delta_ts, glac_index, mean_accum, dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser, time, time_init, time_end, time_output, dxi, deta, dzeta_c, dzeta_t, dzeta_r, z_sl, dzsl_dtau, z_mar, ii, jj, nn, ndat2d, ndat3d, n_output, runname)
Main loop of SICOPOLIS.
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.
Declarations of global variables for SICOPOLIS.