I would like to know if in Fortran it is possible to use just a single command (with options/specifiers) to do the following:
open a file if it exists and append some data (this can be done with:
open(unit=40,file='data.data',Access = 'append',Status='old')
but if the file does not exist a runtime error is issued)create the file if it does not exist and write some data.
I am currently using inquire
to check whether the file exist or not but then I still have to use the open
statement to append or write data.
As far as I am aware of, the only safe solution is to do the way you're already doing it, using different
open
statements for the different cases:You may be interested in my Fortran interface library to libc file system calls (modFileSys), which could at least spare you the logical variable and the
inquire
statement by querying the file status directly:but of course you can program a similar function easily yourself, and especially it won't save you from the two
open
statements...In open statement add the attribute
access
as follows;The above statement will open the file without destroying old data and write command will append the new lines in the file. The simplest solution for fortran 90.
if you replace the status from 'old' to 'unknown' then you will not get the run time error if the file exists or now.
Thanks
This will append to an existing file, otherwise create and write. Adding
status='unknown'
would be equivalent.