看板 Fortran 關於我們 聯絡資訊
寫了一段程式碼,目的是要能夠產生 連續檔名 的檔案並對其 重複接續寫入資料, 但是在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
terryys:看看那個檔案是不是設成唯讀了 02/29 11:02
Ballantine:沒有,而且Fortran產生的檔案也不會直接唯讀吧 02/29 12:41
jsb: open 的地方加個 status='unknown' 試試看。 02/29 15:56
Ballantine:原本是Visual Studio2005、Intel Fortran10 02/29 17:16
Ballantine:換成Visual Studio2008、Intel Fortran11就正常 02/29 17:17