| 查看: 1331 | 回复: 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 ] |
» 猜你喜欢
国社科又开始会评了,不知道这次命运如何
已经有12人回复
麻烦专家们看看评委们的意见(F口面上)
已经有13人回复
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有4人回复
售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急
已经有6人回复
为什么资助数各大高校都创新高,自己申请怎么就这么难
已经有15人回复
科研人应该花精力去思考如何解决问题,而不是去凝练问题
已经有14人回复
要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够
已经有17人回复
基金系统什么内容也没有
已经有10人回复
学科评审组评审是指会评吗?
已经有5人回复
面上函评意见出来了,像什么等级?
已经有17人回复
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










回复此楼

30