procedure to open filename as a sequential “text” file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | filename | |||
integer, | intent(out) | :: | lun | |||
integer, | intent(out), | optional | :: | ier |
subroutine fileopen(filename,lun,ier)
character(len=*),intent(in) :: filename
integer,intent(out) :: lun
integer,intent(out),optional :: ier
integer :: ios
character(len=256) :: message
message=' '
ios=0
if(filename/=' ')then
open(file=filename, &
& newunit=lun, &
& form='formatted', & ! FORM = FORMATTED | UNFORMATTED
& access='sequential', & ! ACCESS = SEQUENTIAL| DIRECT | STREAM
& action='write', & ! ACTION = READ|WRITE| READWRITE
& position='rewind', & ! POSITION= ASIS | REWIND | APPEND
& status='new', & ! STATUS = NEW| REPLACE| OLD| SCRATCH| UNKNOWN
& iostat=ios, &
& iomsg=message)
else
lun=stdout
ios=0
endif
if(ios/=0)then
lun=-1
if(present(ier))then
ier=ios
else
call fpm_stop(3,'*fileopen*:'//filename//':'//trim(message))
endif
endif
end subroutine fileopen