start Subroutine

private subroutine start(self)

Start bar.

Arguments

Type IntentOptional AttributesName
class(bar_object), intent(inout) :: self

Bar.


Source Code


Source Code

   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