44 INTEGER :: I,I_MAX,ISKIP,PROGRESS
46 CHARACTER (LEN=9) :: TEXT
47 CHARACTER (LEN=4) :: BAR_STATUS
48 CHARACTER (LEN=BAR_WIDTH) :: PROGRESSBAR
49 CHARACTER (LEN=1) :: JUSTIFICATION
50 DOUBLE PRECISION :: PERCENT
58 IF((mod(i,iskip)/=0).AND.(i/=i_max))
RETURN 65 percent = float(i)/float(i_max) * 100.0
66 progress = int(0.01*percent *
bar_width) + 1
68 WRITE(text,10) percent
69 10
FORMAT(
' ',f5.1,
' % ')
79 SELECT CASE(justification)
82 WRITE(*,15,advance=
'NO')text,
'|',progressbar,
'|' 89 progressbar(p1:p2)= text
91 WRITE(*,20,advance=
'NO')
'|',progressbar,
'|' 95 WRITE(*,15,advance=
'NO')
'|',progressbar,
'|',text
99 WRITE(*,20,advance=
'NO')
'|',progressbar,
'|' 102 WRITE(*,*)
'SUBROUTINE: WRITE_PROGRESS_BAR.' 103 WRITE(*,*)
'INCORRECT JUSTIFICATION DESCRIPTOR:',justification
104 WRITE(*,*)
'ACCEPTABLE VALUES ARE:' 105 WRITE(*,*)
'L : LEFT JUSTIFICATION' 106 WRITE(*,*)
'C : CENTER JUSTIFICATION' 107 WRITE(*,*)
'R : RIGHT JUSTIFICATION' 108 WRITE(*,*)
'N : NO TEXT' 112 IF(percent>=100.0)
THEN 167 INTEGER :: I,BAR_WIDTH,NERASE
168 CHARACTER (LEN=4) :: BAR_STATUS
169 CHARACTER (LEN=1) :: JUSTIFICATION
173 IF(bar_status==
'DONE')
THEN 178 IF((bar_width<10).OR.(bar_width>80))
RETURN 181 SELECT CASE(justification)
183 nerase = bar_width + 11
185 nerase = bar_width + 2
187 nerase = bar_width + 11
189 nerase = bar_width + 2
191 WRITE(*,*)
'SUBROUTINE: WRITE_PROGRESS_BAR.' 192 WRITE(*,*)
'INCORRECT JUSTIFICATION DESCRIPTOR:',justification
193 WRITE(*,*)
'ACCEPTABLE VALUES ARE:' 194 WRITE(*,*)
'L : LEFT JUSTIFICATION' 195 WRITE(*,*)
'C : CENTER JUSTIFICATION' 196 WRITE(*,*)
'R : RIGHT JUSTIFICATION' 197 WRITE(*,*)
'N : NO TEXT' 202 WRITE(*,10,advance=
'NO')char(8)
double precision, dimension(:), allocatable a
subroutine mfix_exit(myID, normal_termination)
double precision bar_resolution
logical print_progress_bar
subroutine erase_progress_bar(BAR_WIDTH, BAR_STATUS, JUSTIFICATION)
subroutine write_progress_bar(I, I_MAX, JUSTIFICATION)
character(len=1) bar_char