您好,遇到一个比较急的问题,关于Fortran90的直接文件读取,希望向您请教!谢谢!
csv数据格式如下:a,b,year,month,day0.4324756287533950,0.9,1980,1,10.3428334118681960,0,1980,...
csv数据格式如下:
a,b,year,month,day
0.4324756287533950 ,0.9,1980,1,1
0.3428334118681960 ,0,1980,1,2
0.7745397378446070 ,0,1980,1,3
0.8918107602794460 ,0,1980,1,4
。。。
包括表头共1828行,希望能从这个csv文件中直接读取某一行某一列的值赋给某个参数用于计算。请问应怎么做呢?
另外,为了测试,自己写了个程序来读取这个文件,但输出结果都是0,请问问题出在哪里?应如何解决呢?
代码如下
program test
implicit none
integer::i
real::a(1827)
open(1,file='aa.csv',access='direct',recl=18,action='readwrite',form='formatted')
read(1,*)
do i=1,3
write(*,*) a(i),b(i)
enddo
end program
谢谢您!
抱歉,程序real一行少打了。应为
real::a(1827),b(1827)
在下本意是用两个函数a(i),b(i)直接获取文件中对应位置的a、b值用于计算。望不吝赐教!谢谢! 展开
a,b,year,month,day
0.4324756287533950 ,0.9,1980,1,1
0.3428334118681960 ,0,1980,1,2
0.7745397378446070 ,0,1980,1,3
0.8918107602794460 ,0,1980,1,4
。。。
包括表头共1828行,希望能从这个csv文件中直接读取某一行某一列的值赋给某个参数用于计算。请问应怎么做呢?
另外,为了测试,自己写了个程序来读取这个文件,但输出结果都是0,请问问题出在哪里?应如何解决呢?
代码如下
program test
implicit none
integer::i
real::a(1827)
open(1,file='aa.csv',access='direct',recl=18,action='readwrite',form='formatted')
read(1,*)
do i=1,3
write(*,*) a(i),b(i)
enddo
end program
谢谢您!
抱歉,程序real一行少打了。应为
real::a(1827),b(1827)
在下本意是用两个函数a(i),b(i)直接获取文件中对应位置的a、b值用于计算。望不吝赐教!谢谢! 展开
1个回答
推荐于2016-11-21
展开全部
program test
c implicit none
integer i
real b(1827),c(1827),d(1827),e(1827)
double precision a(1827)
c open(1,file='aa.csv',access='direct',recl=99,form='formatted')
open(1,file='aa.csv',status='old')
read(1,*)
do 5 i=1,3
read(1,*)a(i),b(i),c(i),d(i),e(i)
5 continue
close(1)
do 10 i=1,3
write(*,100)a(i),b(i),c(i),d(i),e(i)
10 continue
100 format(1x,1f18.15,1f10.7,3f10.0)
end
以上为fortran77代码。调试通过,供参考。
program test
c implicit none
integer i
real b(1827),c(1827),d(1827),e(1827)
double precision a(1827)
open(1,file='aa.csv',access='direct',recl=99,form='formatted')
c open(1,file='aa.csv',status='old')
read(1,*)
do 5 i=1,3
read(1,*)a(i),b(i),c(i),d(i),e(i)
5 continue
close(1)
do 10 i=1,3
write(*,100)a(i),b(i),c(i),d(i),e(i)
10 continue
100 format(1x,1f18.15,1f10.7,3f10.0)
end
以上一样调试通过。
更多追问追答
追答
这样的数据文件,还是以顺序文件处理为宜!
追问
您好!我用自由格式(只会这个)改写后编译ok,但跑不出。forrtl:severe(59):list-direct I/O syntax error。文件本身是excel转的,应该没问题的。若顺序文件,如何用函数子程序a(i)获取文件中对应位置的a呢?谢谢!
浙江启扬智能科技有限公司
2023-08-23 广告
2023-08-23 广告
在ARM开发板上完成开发后,要将其变成成品,需要进行以下步骤:1. 硬件集成:将开发板上的各种硬件组件集成到一个完整的硬件系统中,以便能够进行后续的制造和测试。2. 软件编译:将开发板上运行的软件代码编译成可执行文件,并在最终硬件系统上测试...
点击进入详情页
本回答由浙江启扬智能科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询