### 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 is calculated from the micro time step 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 and salinity 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/ &