Initialize the environment. Should be the very first call in the program.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | codeName |
name of code |
||
character(len=*), | intent(in) | :: | version |
version of the code |
||
type(tem_general_type), | intent(out) | :: | general |
encapsulates global parameters which are common for all solvers |
||
integer, | intent(in), | optional | :: | comm |
mpi communicator if it is predefined as in apesmate |
|
type(tem_simControl_type), | intent(out), | optional | :: | simControl |
simulation control to initialize |
subroutine tem_start(codeName, version, general, comm, simControl) ! ---------------------------------------------------------------------- !> name of code character(len=*), intent(in) :: codeName !> version of the code character(len=*), intent(in) :: version !> encapsulates global parameters which are common for all solvers type(tem_general_type), intent(out) :: general !> mpi communicator if it is predefined as in apesmate integer, intent(in), optional :: comm !> simulation control to initialize type(tem_simControl_type), intent(out), optional :: simControl ! ---------------------------------------------------------------------- integer :: nProcs, nThreads ! ---------------------------------------------------------------------- ! Initialize all logunits to point to the stdout unit. logunit = stdoutunit ! if comm is present initialize environment already called ! so should not be called again if(.not. present(comm)) call init_env() ! initialize mpi environment call tem_comm_env_init(general%proc, comm) nProcs = general%proc%comm_size nThreads = general%proc%nThreads ! initialize solverHead call tem_init_solveHead( me = general%solver, & & solName = codeName, & & version = version ) if (present(simControl)) call tem_simControl_start(simControl) if ( general%proc%isRoot ) then write(logUnit(1),*) "Starting up " // trim(codeName) & & // " with nprocs: ", nProcs !$ write(logUnit(1),*)" and nThreads pp: ", nThreads end if call tem_addTimer( timerHandle = general%solver%timerHandle, & & timerName = trim(codeName) ) call tem_startTimer(timerHandle = general%solver%timerHandle ) end subroutine tem_start