PROGRAM hw
IMPLICIT NONE
INTEGER::IO_state
CHARACTER(LEN=128)::IO_msg
INTEGER::input_i
WRITE(*,*) 'Input an integer:'
IO_state=-1
IO_msg=''
DO
READ(*,*,IOSTAT=IO_state,IOMSG=IO_msg) input_i
IF(IO_state==0) EXIT
WRITE(*,*) TRIM(ADJUSTL(IO_msg))
WRITE(*,*) 'Correct your input:'
END DO
WRITE(*,*) input_i
END PROGRAM hw