我在運行時出現此錯誤:在分析的開始發生的Fortran錯誤I/O
forrtl: severe (10): Cannot overwrite existing file, unit
27, file C:\Abaqus_JOBS\w.txt
錯誤。 開始時,文件w.txt
已創建,但最初爲空。然後1
被寫入w.txt
並且在我得到上述錯誤之後。
我的代碼是:
SUBROUTINE MAIN(....)
C
C UPDATE w counter
C
flag = 0
OPEN(2700, action = "READWRITE", FILE = "C:/Abaqus_JOBS/w.txt", status = "UNKNOWN")
C
READ(2700, *, iostat=stat) w
CALL del_file(2700, stat, flag)
C
w = w + 1
IF (w.GT.nELEM) THEN
nInc = KINC !Update nInc: to check IF failure occurred
ELSE
nInc = 0
ENDIF
C
OPEN(2700, FILE = "C:/Abaqus_JOBS/w.txt",
1 action = "READWRITE", status = "new")
C If I change ´status = "new"´ to `status = "unknown"´ it works...
WRITE(2700,*) w
CLOSE(2700)
C
C computations
C
RETURN
END
SUBROUTINE WMOD(....)
C Subroutine WMOD is called at the end of subroutine MAIN
C
C UPDATE w
OPEN(27, FILE = "C:/Abaqus_JOBS/w.txt",
1 action = "READWRITE", status = "UNKNOWN")
w1 = 0.D0
WRITE(27,*) w1
CLOSE(27)
C
RETURN
END
SUBROUTINE del_file(uFile, stat, flag)
C
IMPLICIT NONE
INTEGER uFile, stat, flag
IF (stat.NE.0 .OR. flag.EQ.1) THEN
C If the unit is not open, stat will be non-zero
CLOSE(unit=uFile, status='delete', iostat=stat)
ELSE
CLOSE(unit=uFile, iostat=stat)
ENDIF
C
END SUBROUTINE
我的問題是,爲什麼我要改變status = "new"
到status = "unknown"
在MAIN
,使這項工作?
經過一段時間我也得到了severe (9): permission to access file denied
,所以對這些錯誤感到困惑。任何幫助表示讚賞 感謝
?你爲什麼要從_empty_文件讀取? – ja72
@ ja72:可能是爲了測試他在'Ref''d SO問題中從Alexander Vogt複製的'del_file'子例程。 –
我認爲編譯時不會出現這種錯誤,它對我來說看起來像是運行時錯誤。 –