Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran READ语句出错:错误90文件访问和属性不兼容_Fortran_Fortran77 - Fatal编程技术网

Fortran READ语句出错:错误90文件访问和属性不兼容

Fortran READ语句出错:错误90文件访问和属性不兼容,fortran,fortran77,Fortran,Fortran77,我收到错误消息: 错误90文件访问和属性不兼容 给出错误的代码如下所示: PARAMETER (NPT=250, NPR=9) IMPLICIT REAL*8 (A-H,O-Z) CHARACTER*255 ARQDAT DIMENSION Z(NPT,NPT,NPR) COMMON/CPROP/ TMIN,TMAX,DT,PMIN,PMAX,DP,VMIN,VMAX,DX,DX2,DY,DY2,Z REAL*4 RGAS !* Read ma

我收到错误消息:

错误90文件访问和属性不兼容

给出错误的代码如下所示:

  PARAMETER (NPT=250, NPR=9)
  IMPLICIT  REAL*8 (A-H,O-Z)
  CHARACTER*255 ARQDAT
  DIMENSION Z(NPT,NPT,NPR) 
  COMMON/CPROP/ TMIN,TMAX,DT,PMIN,PMAX,DP,VMIN,VMAX,DX,DX2,DY,DY2,Z
  REAL*4 RGAS        
!*     Read matrix
  OPEN(UNIT=10,FILE=ARQDAT,FORM='UNFORMATTED', ACCESS='DIRECT',RECL=1)
  READ(10) Z !this is the statement giving error ARQDAT is a binary file
  CLOSE(UNIT=10)

为什么或应该怎么做?

您打开了文件ACCESS='DIRECT',但正在对其进行顺序读取-这是不允许的。通常,当人们访问class='DIRECT',RECL='1'时,他们希望一次读取一个字节,但您必须将其与read语句中的REC=值结合起来。在现代Fortran中,还有其他更好的方法(如ACCESS='STREAM')


您正在使用什么编译器,在什么操作系统上?

您打开了文件ACCESS='DIRECT',但正在对其进行顺序读取-这是不允许的。通常,当人们访问class='DIRECT',RECL='1'时,他们希望一次读取一个字节,但您必须将其与read语句中的REC=值结合起来。在现代Fortran中,还有其他更好的方法(如ACCESS='STREAM')


你在使用什么编译器,在什么操作系统上?

将记录长度更改为8将记录长度更改为8哇,史蒂夫·莱昂内尔本人现在正在使用!嗨,我正在使用Silverfrost Plato IDE。因此它不接受access=stream。只能接受直接、顺序、透明和附加。我还尝试了顺序访问,但得到的错误是,它试图读取文件末尾以外的内容。很抱歉提出这样的业余问题,我更像是一个用户而不是一个程序员。旧的Fortran77程序只写了OPEN(UNIT=10,FILE=ARQDAT,FORM='BINARY')。由于我必须对源代码进行更改,我遇到了这些问题。有什么提示吗?我还尝试过使用MS visual studio 2010和intel visual fortran composer XE 2013进行编译。当我尝试调试时,MSVS编译器给了我以下错误:程序“[22360]SCROLLV2.exe:Native”已退出,代码为24(0x18)。这意味着程序出现了“读取期间文件结束”错误。在变量Z中,你到底想要什么?是什么写入了文件,文件有多大(如果可以的话,请以确切的字节数表示)?READ语句现在看起来像什么?您可以在英特尔Visual Fortran中使用FORM=“BINARY”(或替换为FORM=“UNFORMATTED”,ACCESS=“STREAM”)数据文件中是否有250x250x250双精度实数?我现在可以使用英特尔Visual Fortran中的FORM=BINARY绕过这个问题。谢谢你。哇,史蒂夫·莱昂内尔自己现在也上了!嗨,我正在使用Silverfrost Plato IDE。因此它不接受access=stream。只能接受直接、顺序、透明和附加。我还尝试了顺序访问,但得到的错误是,它试图读取文件末尾以外的内容。很抱歉提出这样的业余问题,我更像是一个用户而不是一个程序员。旧的Fortran77程序只写了OPEN(UNIT=10,FILE=ARQDAT,FORM='BINARY')。由于我必须对源代码进行更改,我遇到了这些问题。有什么提示吗?我还尝试过使用MS visual studio 2010和intel visual fortran composer XE 2013进行编译。当我尝试调试时,MSVS编译器给了我以下错误:程序“[22360]SCROLLV2.exe:Native”已退出,代码为24(0x18)。这意味着程序出现了“读取期间文件结束”错误。在变量Z中,你到底想要什么?是什么写入了文件,文件有多大(如果可以的话,请以确切的字节数表示)?READ语句现在看起来像什么?您可以在英特尔Visual Fortran中使用FORM=“BINARY”(或替换为FORM=“UNFORMATTED”,ACCESS=“STREAM”)数据文件中是否有250x250x250双精度实数?我现在可以使用英特尔Visual Fortran中的FORM=BINARY绕过这个问题。非常感谢。