For Programmers: Free Programming Magazines  


Home > Archive > Fortran > February 2005 > Re: non advancing write statement (hour glass) BY THE WAY HOW "SLEEP" WORK









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Re: non advancing write statement (hour glass) BY THE WAY HOW "SLEEP" WORK
gtg531e

2005-02-01, 4:01 am

PROGRAM COUNTER

CALL ROTOR_COUNT(.true.,100)
CALL DIGIT_COUNT(.true.,100)


CONTAINS

SUBROUTINE DIGIT_COUNT(trigger,i_max)
IMPLICIT NONE
LOGICAL , INTENT(IN):: trigger
INTEGER , INTENT(IN):: i_max

INTEGER :: i_
CHARACTER :: DIG(10)
CHARACTER :: SDIG(10)

DIG=(/ '0','1','2','3','4','5','6','7','8','9' /)
WRITE(*,*) CHAR(27), '[2J'
i_=1
DO WHILE(trigger .AND. (i_ .le. i_max))
WRITE(*,*) CHAR(27), '[2J'
WRITE(*,*) CHAR(27), '[1;1H'
SDIG=CSHIFT(DIG,i_)
WRITE(*,*) SDIG(1)
call sleep(1) ! your program doing something
i_=i_+1
END DO
print*,'i final',i_

END SUBROUTINE DIGIT_COUNT



SUBROUTINE ROTOR_COUNT(trigger,i_max)
IMPLICIT NONE
LOGICAL , INTENT(IN):: trigger
INTEGER , INTENT(IN):: i_max

INTEGER :: i_
CHARACTER(3) :: BAR(4)
CHARACTER(3) :: SBAR(4)

BAR=(/ ' | ',' / ','---',' \ ' /)
WRITE(*,*) CHAR(27), '[2J'
i_=1
DO WHILE(trigger .AND. (i_ .le. i_max))
WRITE(*,*) CHAR(27), '[2J'
WRITE(*,*) CHAR(27), '[1;1H'
SBAR=CSHIFT(BAR,i_)
WRITE(*,*) SBAR(1)
call sleep(1) ! your program doing something
i_=i_+1
END DO
print*,'i final',i_

END SUBROUTINE ROTOR_COUNT


END PROGRAM COUNTER


ENJOY!



BY THE WAY HOW "SLEEP" WORKS? I CANNOT MAKE IT FASTER

--
igor.



Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com