[問題] 產生連續檔名的檔案並寫入

看板Fortran作者 (I love Whisky)時間12年前 (2012/02/29 03:34), 編輯推噓2(203)
留言5則, 3人參與, 最新討論串1/1
寫了一段程式碼,目的是要能夠產生 連續檔名 的檔案並對其 重複接續寫入資料, 但是在VISUAL FORTRAN 6.6編譯執行沒問題, 在INTEL FORTRAN則執行會有錯誤,程式碼簡化後如下: PROGRAM TEST USE DFLIB IMPLICIT NONE INTEGER*4,PARAMETER:: IMIN = 1, IMAX = 1001, JMIN = 1, JMAX = 21 INTEGER*4,PARAMETER:: LTT = 50 INTEGER*4:: I, J, IT CHARACTER*16:: FILENAME LOGICAL*4:: DIR DIR = MAKEDIRQQ('PROB') DIR = MAKEDIRQQ('PT401') DIR = MAKEDIRQQ('PT481') DO IT = 1, LTT !---第一段--- DO J = JMAX, JMIN, -1 WRITE(FILENAME,'(A6,I6.6,A4)')'PT401\',J,'.TXT' OPEN (7100+J,FILE=FILENAME) WRITE(7100+J,*)IT ENDDO !---第二段--- DO J = JMAX, JMIN, -1 WRITE(FILENAME,'(A6,I6.6,A4)')'PT481\',J,'.TXT' OPEN (7200+J,FILE=FILENAME) WRITE(7200+J,*)IT ENDDO !---第三段--- DO I = IMIN, IMAX WRITE(FILENAME,'(A5,I6.6,A4)') 'PROB\', I, '.TXT' OPEN (500+I, FILE = FILENAME ) WRITE(500+I,*)IT ENDDO ENDDO STOP END 產生的錯誤訊息是 forrtl: severe (47): write to READONLY file, unit 7121, file D:\Grid\111\Console1\PT401\000021.TXT 有查詢過關於READONLY意思,但仍不知從何下手, 但是若屏蔽掉第三段部分,程式則可以正常執行無誤。 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.242.151

02/29 11:02, , 1F
看看那個檔案是不是設成唯讀了
02/29 11:02, 1F

02/29 12:41, , 2F
沒有,而且Fortran產生的檔案也不會直接唯讀吧
02/29 12:41, 2F

02/29 15:56, , 3F
open 的地方加個 status='unknown' 試試看。
02/29 15:56, 3F

02/29 17:16, , 4F
原本是Visual Studio2005、Intel Fortran10
02/29 17:16, 4F

02/29 17:17, , 5F
換成Visual Studio2008、Intel Fortran11就正常
02/29 17:17, 5F
文章代碼(AID): #1FJIn7vR (Fortran)
文章代碼(AID): #1FJIn7vR (Fortran)