program demo_process_readline use M_process ,ONLY: process_open_read, process_readline use M_process ,ONLY: streampointer, process_close implicit none type(streampointer) :: fp ! line of data to read (assumed long enough to hold any output line) character(len=4096) :: line integer :: ierr ! open process to read from call process_open_read('ls -l',fp,ierr) write(*,*)'READLINE: process is opened with status ',ierr ierr=0 do while(ierr .eq. 0) ! read a line from the process call process_readline(line,fp,ierr) if(ierr.ne.0)then write(*,*)'READLINE: ierr is ',ierr exit endif write(*,*)'READLINE: ',trim(line) enddo call process_close(fp,ierr) write(*,*)'READLINE: process closed with status ',ierr end program demo_process_readline