作者Ballantine (I love Whisky)
看板Fortran
标题[问题] 产生连续档名的档案并写入
时间Wed Feb 29 03:34:28 2012
写了一段程式码,目的是要能够产生 连续档名 的档案并对其 重复接续写入资料,
但是在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
1F:推 terryys:看看那个档案是不是设成唯读了 02/29 11:02
2F:→ Ballantine:没有,而且Fortran产生的档案也不会直接唯读吧 02/29 12:41
3F:推 jsb: open 的地方加个 status='unknown' 试试看。 02/29 15:56
4F:→ Ballantine:原本是Visual Studio2005、Intel Fortran10 02/29 17:16
5F:→ Ballantine:换成Visual Studio2008、Intel Fortran11就正常 02/29 17:17