forlab_io_progress_perc.f90 Source File


Contents


Source Code

submodule(forlab_io) forlab_io_progress_perc

    implicit none

contains

    module subroutine progress_perc_int8(iter, itermax, prefix)

        integer(int8), intent(in) :: iter, itermax
        character(*), intent(in), optional :: prefix

        real(sp) :: percentage
        character(:), allocatable :: prefix_

        prefix_ = optval(prefix, "")
        percentage = real(iter, sp)/real(itermax, sp)*100.0_sp
        write (*, "(a1,A,f6.2,A)", advance="no") achar(13), prefix_, percentage, "%"

    end subroutine progress_perc_int8
    module subroutine progress_perc_int16(iter, itermax, prefix)

        integer(int16), intent(in) :: iter, itermax
        character(*), intent(in), optional :: prefix

        real(sp) :: percentage
        character(:), allocatable :: prefix_

        prefix_ = optval(prefix, "")
        percentage = real(iter, sp)/real(itermax, sp)*100.0_sp
        write (*, "(a1,A,f6.2,A)", advance="no") achar(13), prefix_, percentage, "%"

    end subroutine progress_perc_int16
    module subroutine progress_perc_int32(iter, itermax, prefix)

        integer(int32), intent(in) :: iter, itermax
        character(*), intent(in), optional :: prefix

        real(sp) :: percentage
        character(:), allocatable :: prefix_

        prefix_ = optval(prefix, "")
        percentage = real(iter, sp)/real(itermax, sp)*100.0_sp
        write (*, "(a1,A,f6.2,A)", advance="no") achar(13), prefix_, percentage, "%"

    end subroutine progress_perc_int32
    module subroutine progress_perc_int64(iter, itermax, prefix)

        integer(int64), intent(in) :: iter, itermax
        character(*), intent(in), optional :: prefix

        real(sp) :: percentage
        character(:), allocatable :: prefix_

        prefix_ = optval(prefix, "")
        percentage = real(iter, sp)/real(itermax, sp)*100.0_sp
        write (*, "(a1,A,f6.2,A)", advance="no") achar(13), prefix_, percentage, "%"

    end subroutine progress_perc_int64

end submodule forlab_io_progress_perc