错误57:尝试读取fortran中的文件末尾

时间:2013-12-26 17:15:17

标签: fortran fortran90

我写了一个fortran代码来读取存储为复杂变量的2D数组并在屏幕上输出的文件中的数据。但在执行期间出现错误消息错误57:尝试读取过去的文件结尾。

PROGRAM IMPORTFILE

IMPLICIT NONE

INTEGER,    PARAMETER           :: DP = SELECTED_REAL_KIND(15,60)
COMPLEX(DP),DIMENSION(:,:),ALLOCATABLE :: A,B
INTEGER             :: I,J,M,N

N = 12; M = 3

ALLOCATE(A(N,N),B(N,M))

OPEN(UNIT = 20, FILE ='C:\Users\Hp\Desktop\A_matrix.dat', &
    ACCESS='SEQUENTIAL', STATUS='OLD', FORM='FORMATTED')
DO I = 1,N  
    READ(20,FMT = '(2F20.10)')(A(I,J),J = 1,N)
END DO

OPEN(UNIT = 30, FILE ='C:\Users\Hp\Desktop\B_vector.dat',&
     ACCESS='SEQUENTIAL', STATUS='OLD', FORM='FORMATTED')
DO I = 1, N
    READ(30,FMT = '(2F20.10)')(B(I,J),J = 1, M)
END DO

DO J = 1, N
    WRITE(*,*) (B(J,I), I = 1,M)
END DO

DO J = 1, N
    WRITE(*,*) (A(J,I), I = 1,N)
END DO

CLOSE(20)

CLOSE(30)

END PROGRAM IMPORTFILE 

1 个答案:

答案 0 :(得分:0)

此格式

  '(2F20.10)'

说只读2个值。您需要将重复说明符放在大于或大于数组的位置, 例如:

 '(144F20.10)'

太大了 确定.. ,如果需要,请输入10000f20.10。 在f2008中,您可以使用* F20.10

指定无限重复

..关于时间..

如果不能解决问题,您应该发布数据文件的样本。