Start bar.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(bar_object), | intent(inout) | :: | self | Bar. |
subroutine start(self)
!< Start bar.
class(bar_object), intent(inout) :: self !< Bar.
if (self%add_scale_bar) call add_scale_bar
call self%update(current=self%min_value)
self%is_stdout_locked_ = .true.
contains
subroutine add_scale_bar()
!< Add scale to the bar.
character(len=:), allocatable :: bar !< Bar line.
character(len=11) :: min_value !< Minimum_value.
character(len=11) :: max_value !< Maximum_value.
write(min_value, '(F5.2)') self%min_value ; min_value = trim(min_value)//' (min)'
write(max_value, '(F5.2)') self%max_value ; max_value = '(max) '//trim(max_value)
self%scale_bar%string = min_value//repeat(' ', self%width - len(min_value) - len(max_value))//max_value
bar = repeat(UCS4_' ', len(self%prefix%string))//self%bracket_left%output()//self%scale_bar%output()//&
self%bracket_right%output()
write(stdout, '(A)') bar
endsubroutine add_scale_bar
endsubroutine start