永发信息网

fortran read读取一个real数组时,丢失第一行的数据.

答案:2  悬赏:20  手机版
解决时间 2021-03-26 01:20
  • 提问者网友:眉目添风霜
  • 2021-03-25 10:29
fortran read读取一个real数组时,丢失第一行的数据.
最佳答案
  • 五星知识达人网友:等灯
  • 2021-03-25 11:55
read(11,*) nt1,nt2,nt3,nt4, ( h(1),1:48)

这一句语法是错的,不能编译
如果你写的是read(11,*) nt1,nt2,nt3,nt4, h(1:48)这样的,因为h(1:48)等效于(h(i),i=1,48),那么系统将会读取h(i)48次,根据你的数据将会读到第三行(第二行是空白)直到读到48个数据为止。因为你是无格式的读取,那么系统会根据空格判断两个空格之间的数据为单个数据并读取第一个字符赋值给h,也就是说h(1)="P",h(2)="0",h(3)="0"。。。
要避免这个错误,首先你得定义character(len=48)::h
read(11,*)nt1,nt2,nt3,nt4,h

read(11,*)
read(11,'某格式') A

这样应该能读出来追问谢谢
我这边白天不能上网,刚刚用手机看到,不好意思
我那个确实是写的 (h(1),1,48),昨晚写错了,刚刚试过了按照你说的改成h就OK了,谢谢
全部回答
  • 1楼网友:詩光轨車
  • 2021-03-25 12:13
1、( h(1),1:48) 这个导致 h(1) 多读了47次;
2、印象中,f77的数组优先存放顺序是列优先,即按列存放 ?!追问谢谢回答,就是h那里出错了,只是我知道错了但是不会改。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯