init_3d - initialise 3D related stuff

INTERFACE:

    subroutine init_3d(runtype,timestep,hotstart)
    IMPLICIT NONE
INPUT PARAMETERS:
    integer, intent(in)                 :: runtype
    REALTYPE, intent(in)                :: timestep
    logical, intent(in)                 :: hotstart
DESCRIPTION:

Here, the m3d namelist is read from getm.inp, and the initialisation of variables is called (see routine init_variables described on page [*]). Furthermore, a number of consistency checks are made for the choices of the momentum advection schemes. When higher-order advection schemes are chosen for the momentum advection, the compiler option UV_TVD has to be set. Here, the macro time step $\Delta t$ is calculated from the micro time step $\Delta t_m$ and the split factor M. Then, in order to have the vertical coordinate system present already here, coordinates (see page [*]) needs to be called, in order to enable proper interpolation of initial values for potential temperature $\theta$ and salinity $S$ for cold starts. Those initial values are afterwards read in via the routines init_temperature (page [*]) and init_salinity (page [*]). Finally, in order to prepare for the first time step, the momentum advection and internal pressure gradient routines are initialised and the internal pressure gradient routine is called. LOCAL VARIABLES:

    integer         :: rc
    NAMELIST /m3d/ &
              M,cnpar,cord_relax,adv_ver_iterations,       &
              bdy3d,bdyfmt_3d,bdy3d_ramp,bdyfile_3d,       &
              bdy3d_tmrlx,bdy3d_tmrlx_ucut,                &
              bdy3d_tmrlx_max,bdy3d_tmrlx_min,             &
              vel3d_adv_split,vel3d_adv_hor,vel3d_adv_ver, &
              turb_adv_split,turb_adv_hor,turb_adv_ver,    &
              calc_temp,calc_salt,                         &
              avmback,avhback,                             &
              ip_method,ip_ramp,                           &
              vel_check,min_vel,max_vel