6 #define MODEL_SICOPOLIS 8 #define DATE '2017-08-03' 129 #include "sico_specs.h" 134 #if (CALCTHK==3 || CALCTHK==6 || MARGIN==3 || DYNAMICS==2) 140 #include "subroutines/general/sico_types_m.F90" 141 #include "subroutines/general/sico_variables_m.F90" 144 #include "subroutines/ant/sico_vars_m.F90" 146 #include "subroutines/asf/sico_vars_m.F90" 147 #elif (defined(EMTP2SGE)) 148 #include "subroutines/emtp2sge/sico_vars_m.F90" 150 #include "subroutines/grl/sico_vars_m.F90" 151 #elif (defined(NHEM)) 152 #include "subroutines/nhem/sico_vars_m.F90" 153 #elif (defined(NMARS)) 154 #include "subroutines/nmars/sico_vars_m.F90" 155 #elif (defined(SCAND)) 156 #include "subroutines/scand/sico_vars_m.F90" 157 #elif (defined(SMARS)) 158 #include "subroutines/smars/sico_vars_m.F90" 159 #elif (defined(TIBET)) 160 #include "subroutines/tibet/sico_vars_m.F90" 162 #include "subroutines/xyz/sico_vars_m.F90" 165 #include "subroutines/general/ice_material_properties_m.F90" 166 #include "subroutines/general/stereo_proj_m.F90" 167 #include "subroutines/general/metric_m.F90" 168 #include "subroutines/general/sico_maths_m.F90" 169 #include "subroutines/general/compare_float_m.F90" 172 #include "subroutines/general/nc_check_m.F90" 175 #include "subroutines/general/read_m.F90" 176 #include "subroutines/general/init_temp_water_age_m.F90" 178 #include "subroutines/general/mask_update_sea_level_m.F90" 179 #include "subroutines/general/pdd_m.F90" 182 && (marine_ice_formation==2) \
183 && (marine_ice_calving==9))
184 #include "subroutines/general/calving_underwater_ice_m.F90" 189 #include "subroutines/grl/discharge_workers_m.F90" 193 #include "subroutines/general/calc_vxy_m.F90" 194 #include "subroutines/general/calc_vz_m.F90" 195 #include "subroutines/general/calc_dxyz_m.F90" 197 #include "subroutines/general/calc_gia_m.F90" 198 #include "subroutines/general/topograd_m.F90" 199 #include "subroutines/general/calc_thk_m.F90" 201 #include "subroutines/general/enth_temp_omega_m.F90" 203 #if (CALCMOD==0 || CALCMOD==1 || CALCMOD==-1) 204 #include "subroutines/general/calc_temp_m.F90" 205 #elif (CALCMOD==2 || CALCMOD==3) 206 #include "subroutines/general/calc_temp_enth_m.F90" 209 #include "subroutines/general/calc_enhance_m.F90" 211 #if (BASAL_HYDROLOGY==1) 212 #include "subroutines/non-foss/hydro_m.F90" 215 #if (defined(NMARS) || defined(SMARS)) 216 #include "subroutines/general/mars_instemp_m.f90" 219 #include "subroutines/general/calc_temp_melt_bas_m.F90" 220 #include "subroutines/general/calc_bas_melt_m.F90" 221 #include "subroutines/general/calc_thk_water_bas_m.F90" 223 #include "subroutines/general/output_m.F90" 226 #include "subroutines/ant/boundary_m.F90" 228 #include "subroutines/asf/boundary_m.F90" 229 #elif (defined(EMTP2SGE)) 230 #include "subroutines/emtp2sge/boundary_m.F90" 232 #include "subroutines/grl/boundary_m.F90" 233 #elif (defined(NHEM)) 234 #include "subroutines/nhem/boundary_m.F90" 235 #elif (defined(NMARS)) 236 #include "subroutines/nmars/boundary_m.F90" 237 #elif (defined(SCAND)) 238 #include "subroutines/scand/boundary_m.F90" 239 #elif (defined(SMARS)) 240 #include "subroutines/smars/boundary_m.F90" 241 #elif (defined(TIBET)) 242 #include "subroutines/tibet/boundary_m.F90" 244 #include "subroutines/xyz/boundary_m.F90" 248 #include "subroutines/ant/sico_init_m.F90" 250 #include "subroutines/asf/sico_init_m.F90" 251 #elif (defined(EMTP2SGE)) 252 #include "subroutines/emtp2sge/sico_init_m.F90" 254 #include "subroutines/grl/sico_init_m.F90" 255 #elif (defined(NHEM)) 256 #include "subroutines/nhem/sico_init_m.F90" 257 #elif (defined(NMARS)) 258 #include "subroutines/nmars/sico_init_m.F90" 259 #elif (defined(SCAND)) 260 #include "subroutines/scand/sico_init_m.F90" 261 #elif (defined(SMARS)) 262 #include "subroutines/smars/sico_init_m.F90" 263 #elif (defined(TIBET)) 264 #include "subroutines/tibet/sico_init_m.F90" 266 #include "subroutines/xyz/sico_init_m.F90" 269 #include "subroutines/general/sico_main_loop_m.F90" 270 #include "subroutines/general/sico_end_m.F90" 349 integer(i4b) :: ndat2d, ndat3d
350 integer(i4b) :: n_output
351 integer(i4b),
dimension((IMAX+1)*(JMAX+1)) :: ii, jj
352 integer(i4b),
dimension(0:JMAX,0:IMAX) :: nn
353 real(dp) :: delta_ts, glac_index
354 real(dp) :: mean_accum
355 real(dp) :: dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser
356 real(dp) :: time, time_init, time_end
357 real(dp),
dimension(100) :: time_output
358 real(dp) :: dxi, deta, dzeta_c, dzeta_t, dzeta_r
359 real(dp) :: z_sl, dzsl_dtau, z_mar
360 character(len=100) :: runname
366 dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser, &
367 time, time_init, time_end, time_output, &
368 dxi, deta, dzeta_c, dzeta_t, dzeta_r, &
369 z_sl, dzsl_dtau, z_mar, &
371 ndat2d, ndat3d, n_output, &
378 dtime, dtime_temp, dtime_wss, dtime_out, dtime_ser, &
379 time, time_init, time_end, time_output, &
380 dxi, deta, dzeta_c, dzeta_t, dzeta_r, &
381 z_sl, dzsl_dtau, z_mar, &
383 ndat2d, ndat3d, n_output, &
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)
Main routine of sico_init_m: Initialisations for SICOPOLIS.
program sicopolis
Main program of SICOPOLIS.
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 routine of sico_main_loop_m: Main loop of SICOPOLIS.
subroutine sico_end()
Main routine of sico_end_m: Ending of SICOPOLIS.
Declarations of global variables for SICOPOLIS (for the ANT domain).
Initialisations for SICOPOLIS.
Declarations of kind types for SICOPOLIS.
Declarations of global variables for SICOPOLIS.