INTERFACE:
subroutine init_3d(runtype,timestep,hotstart) IMPLICIT NONEINPUT PARAMETERS:
integer, intent(in) :: runtype REALTYPE, intent(in) :: timestep logical, intent(in) :: hotstartDESCRIPTION:
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/ & 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