jpc*_*dre 5 fortran file fortran77
我需要打开一个文件,每次执行打开操作时我都不知道它是否存在。如果它存在,我想打开它并将其中的信息存储到一个数组中,进行一些计算,清理打开的文件并将新信息写入其中。如果它不存在,我想将其保持打开状态以向其写入信息。
我必须使用 fortran 77。
我的代码是:
OPEN(7, FILE = "C:/Abaqus_JOBS/mELF.txt",
1 action = "READ", status = "UNKNOWN")
Run Code Online (Sandbox Code Playgroud)
我的问题是status = "UNKNOWN",如果该文件存在,我需要清理它(删除所有数据)。怎么能做到这一点呢?
谢谢
您可以使用以下inquire语句来执行此操作:
logical :: file_exists
! ...
inquire(file='filename.txt',exist=file_exists)
if ( file_exists ) then
! Do stuff
else
! Do other stuff
endif
Run Code Online (Sandbox Code Playgroud)
或者,由于您无论如何都要擦除文件,只需使用 ;-) 打开它即可。和status='replace'之间的区别是,如果文件不存在,将创建一个新文件。'unknown''replace''replace'
对于 FORTRAN 77,status='replace'不存在。那么,open声明可以这样写:
open(1234, file='filename.txt', status='unknown', iostat=ierr)
if ( ierr .eq. 0) then
c file opened successfully, delete
close(1234, status='delete')
endif
c Open a new file
open(1234, file='filename.txt', status='new', iostat=ierr)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6644 次 |
| 最近记录: |