| 查看: 1426 | 回复: 11 | |||
| 当前主题已经存档。 | |||
[交流]
【求助】求fortran达人解答fortran读取数据问题
|
|||
|
我想用fortran实现我以下的要求 比如说有数据文件data.txt 文件如这样格式 1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 (数据格式整齐) 我想依次读取1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 但每次只要读一个,因为在读取一个数据后还有一个巨大的循环体进行运算 因此简单的说可以表达为 读取1.1赋予a——运行循环体——读取1.2再赋予a——运行循环体……直到所有数据都读完。 另外,我也不希望用数组的方式一次性把数据都读出来,因为这里是一行4个数据,我的运算中可能有1000个或者一万个数据,这样占用内存可能引起溢出。因此想求一个好一点的方法! 谢谢 急求!!!若有人肯帮忙写出程序,愿再出20金币悬赏 [ Last edited by jjdg on 2010-1-21 at 16:27 ] |
» 猜你喜欢
极限拉扯,如何抉择
已经有15人回复
申请科研项目纯靠实力能成功吗?
已经有8人回复
中科院海洋所招收海洋材料相关领域博士研究生及研究助理
已经有4人回复
40+中年人失业后,还能找到好工作吗?
已经有3人回复
二审4个多月了还是Awaiting Reviewer Scores
已经有4人回复
OpenAI又攻克数学难题了,离AI做有机合成还有多远?
已经有13人回复
课题组会帮你通过考核么?
已经有7人回复
入职后第一次管课题组的专利缴费,对账才发现官费比别人多掏了一倍
已经有6人回复
售一区SCI文章T0P,我:8O.551.O54,科目全,可十急
已经有9人回复
售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急
已经有10人回复
2楼2010-01-21 13:42:55
nono2009
超级版主 (文学泰斗)
No gains, no pains.
-

专家经验: +21105 - 应助: 28684 (院士)
- 贵宾: 513.911
- 金币: 2555230
- 散金: 27828
- 红花: 2148
- 沙发: 66666
- 帖子: 1602255
- 在线: 65200.9小时
- 虫号: 827383
- 注册: 2009-08-13
- 性别: GG
- 专业: 工程热物理与能源利用
- 管辖: 科研家筹备委员会
3楼2010-01-21 14:25:38

4楼2010-01-21 16:28:26
5楼2010-01-21 17:05:15
6楼2010-01-21 17:06:22
tjyl
金虫 (正式写手)
- 程序强帖: 2
- 应助: 0 (幼儿园)
- 金币: 3218.1
- 红花: 2
- 帖子: 576
- 在线: 156.6小时
- 虫号: 765184
- 注册: 2009-05-07
- 专业: 生物无机化学
- 管辖: 程序语言
7楼2010-01-21 18:46:55
tjyl
金虫 (正式写手)
- 程序强帖: 2
- 应助: 0 (幼儿园)
- 金币: 3218.1
- 红花: 2
- 帖子: 576
- 在线: 156.6小时
- 虫号: 765184
- 注册: 2009-05-07
- 专业: 生物无机化学
- 管辖: 程序语言
8楼2010-01-21 18:48:48
9楼2010-01-21 19:08:24
hakekill
木虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1709.3
- 帖子: 131
- 在线: 19小时
- 虫号: 246017
- 注册: 2006-04-29
- 性别: GG
- 专业: 水环境与生态水利
★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+3,VIP+0):谢谢应助,辛苦了! 1-22 11:33
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+3,VIP+0):谢谢应助,辛苦了! 1-22 11:33
|
我写了一个,不过对数据文件的格式要求比较严,不过数据格式可以根据具体的情况来做修改,贴出来请大家指正一下: program main integer :: cur_num, num_eachline open(unit = 10, file = "test.dat", action = "read" ![]() num_eachline = 4 cur_num = 1 do if ( cur_num == num_eachline ) then read(unit = 10, fmt = "(f3.1)", advance = "yes", iostat = ios ) a else read(unit = 10, fmt = "(f3.1, 1x)", advance = "no", iostat = ios ) a end if if (ios < 0 ) then close( 10 ) exit else print *, a if ( cur_num < num_eachline ) then cur_num = cur_num + 1 else cur_num = 1 end if end if end do end program --test.dat---- 1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 4.1 4.2 4.3 4.4 result: 1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 4.1 4.2 4.3 4.4 |
10楼2010-01-22 10:36:15










回复此楼

200