Load general treelm settings from the Lua script in conf.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_general_type), | intent(inout) | :: | me |
global general parameter |
||
type(flu_State) | :: | conf |
Handle to the Lua script containing the configuration. |
|||
character(len=*), | intent(in), | optional | :: | timingFile |
Default timing filename provided by the caller, overwritten by config file. |
|
class(tem_solverAborts_type), | intent(inout), | optional | :: | solverAborts |
Solver specific abort criteria to load. See tem_abortCriteria_module for details on this additional abortCriteria parameters, that the solver may define to be loaded from the configuration. |
subroutine tem_load_general( me, conf, timingFile, solverAborts )
! ----------------------------------------------------------------------
!> global general parameter
type( tem_general_type ), intent(inout) :: me
!> Handle to the Lua script containing the configuration.
type(flu_state) :: conf
!> Default timing filename provided by the caller, overwritten by config
!! file.
character(len=*), optional, intent(in) :: timingFile
!> Solver specific abort criteria to load.
!!
!! See [[tem_abortCriteria_module]] for details on this additional
!! abortCriteria parameters, that the solver may define to be loaded
!! from the configuration.
class(tem_solverAborts_type), intent(inout), optional :: solverAborts
! ----------------------------------------------------------------------
integer :: iError
character(len=pathLen) :: def_timingFile
! ----------------------------------------------------------------------
if ( me%proc%isRoot ) then
call tem_horizontalSpacer(fUnit = logUnit(1))
write(logUnit(1),"(A)") 'Loading general parameters:'
end if
! load global enviromental parameters from config file
call tem_load_env_params(conf)
if ( me%proc%isRoot ) then
write(logUnit(1),"(A)") 'Using '//trim(null_device)//' as null device.'
if (printRuntimeInfo) then
write(logUnit(1),"(A)") 'Will print run time info in the end'
write(logUnit(1),"(A)") '(/proc/self/status).'
else
write(logUnit(1),"(A)") 'Will NOT print run time info.'
end if
write(logUnit(1),"(A,I0)") 'Size of the IO Buffer (MB): ', &
& (io_buffer_size*8/1024/1024)
end if
! load simulation name
call aot_get_val( L = conf, &
& key = 'simulation_name', &
& val = me%solver%simName, &
& ErrCode = iError, &
& default = 'simulation' )
if ( me%proc%isRoot ) then
write(logUnit(1),"(A)") 'Simulation Name: ' // trim( me%solver%simName )
end if
! load simulation time control
call tem_simControl_load( me = me%simControl, &
& conf = conf, &
& solverAborts = solverAborts )
if ( me%proc%isRoot ) then
call tem_simControl_dump(me = me%simControl, outUnit = logUnit(1))
end if
! Get the setting, whether to use sparse communication patterns or not.
call tem_sparse_comm_load(conf)
! load communication pattern and initialize commuication
! infrastructure
call tem_load_commpattern(conf = conf, me = me%commpattern)
! load timing filename
if (present(timingFile)) then
def_timingFile = timingFile
else
def_timingFile = 'timing.res'
end if
call aot_get_val( L = conf, &
& key = 'timing_file', &
& val = me%timingFile, &
& default = def_timingFile, &
& ErrCode = iError )
write(logUnit(1),"(A)") 'Write timings to: ' // trim( me%timingFile )
! Get load balancing config
call tem_balance_load( conf = conf, &
& me = me%balance )
! Load configuration of timer output from timer table.
call tem_timer_loadconfig_glob( conf )
! load precice if available
if (precice_available) then
write(logUnit(1),"(A)") 'Loading precice data'
call tem_precice_load(conf = conf)
end if
call tem_horizontalSpacer(fUnit = logUnit(1))
end subroutine tem_load_general