C
C  fortran example program 23
C
C  more on opening files
C
C  CWJ SDSU 2/16/2005
C
 
      implicit none

      character*15 filename
      integer ilast

      logical readflag,writeflag
      character*1 ychar
           
C...............  an example of opening an old file
C................checks to see if file exists
C................if not, loops back and asks again

      readflag = .true.

      do while(readflag)

         print*,' Please enter file name to read '
         read*,filename
         ilast=index(filename,' ')-1
         open(unit=77,file=filename(1:ilast)//'.wfn',status='old'
     & ,err=202)

         readflag=.false.     ! this will exit loop
  202    continue
         if(readflag)then
           print*,' That file does not exist '
         endif
      enddo


C...............an example of opening a new file
C...............if file already exists, asks if should overwrite

      writeflag=.true.

      do while(writeflag)
          print*,' Please enter file name to write '
          read*,filename
          ilast=index(filename,' ')-1
          open(unit=87,file=filename(1:ilast)//'.dat',status='new',
     & err=203)


          writeflag=.false.   ! this will end loop

  203     continue
          if(writeflag)then
             print*,' That file already exists; overwrite (y/n)?'
             read*,ychar
             if(ychar.eq.'y' .or. ychar.eq.'Y')then
                open(unit=87,file=filename(1:ilast)//'.dat',
     & status='unknown')
                writeflag=.false.  ! this will end loop

             endif
          endif


      enddo

      end


