Fortran 90读取文件

时间:2015-01-10 20:43:43

标签: fortran

我正在用Fortran弄湿手,我想把一个txt文件读成一个数组。我觉得我已经尝试了一切。 txt文件以逗号分隔11行,每行有1个数字。

这是我的代码

program test

real:: obs1,i,jj,count,x_1
real,allocatable:: x(:)

open(1,file='data1.txt',status='old',action='read')
read(1,*) obs1 

allocate(x(obs1))

do i=1, obs1
read(1,*) x_1
x(i)=x_1
end do

do jj=1, obs1
print*,x(jj)
end do 

end program test

这是我收到的错误:

The highest data type rank permitted is INTEGER(KIND=8)

1 个答案:

答案 0 :(得分:1)

本声明

allocate(x(obs1))

包含错误,但我不确定它是否与您报告的错误消息相匹配。 obs1real变量,但数组维度(和索引)必须是整数。将obs1的声明更改为

integer :: obs1

您的编译器也应该抱怨在do循环控件中使用real变量,do i=1, obs1。再次,使用整数。

顺便说一句,由于您是Fortran的新手,请学习在程序的每个范围内使用implicit none。 SO将提供许多问题和答案来解释它意味着什么以及它为什么重要,所以你最喜欢的Fortran教程也是如此。