General wrapper to the init_level instance's specific change level method.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(init_level_type), | intent(inout) | :: | self | |||
type(init_type), | intent(in) | :: | current | |||
logical, | intent(in) | :: | going_up |
integer function init_level_change_level(self, current, going_up) result(new_level)
use job_manage, only: time_message
implicit none
class(init_level_type), intent(in out) :: self
type(init_type), intent(in) :: current
logical, intent(in) :: going_up
call self%generate_debug_message(going_up)
call time_message(.false., self%time_init, 'Init')
call self%change_level_specific(current, going_up)
call time_message(.false., self%time_init, 'Init')
if (going_up) then
new_level = self%level
else
new_level = self%level - 1
end if
end function init_level_change_level