爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5323|回复: 4

[求助] 从文件里读取整数到数组出了问题,求助

[复制链接]

新浪微博达人勋

发表于 2011-12-7 19:29:57 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
是处理雾滴谱仪数据的一个程序
先把雾滴浓度选出来
再做平均


PROGRAM MM
IMPLICIT NONE

INTEGER I,J,K,L,M,N,Q,P
INTEGER(4) ER(1:64785,1:31),SAN(1:64785,1:11),SI(1:64785,1:10),WU(1:64785,1:10),RESU(1:64785,1:20),AVER(1:1080,1:20),ADD(1:20)

OPEN(10,FILE='C:/WUDI.TXT')
OPEN(2,FILE="C:/RESU.TXT")


DO I=1,64785, 1         
   READ (10,*)(ER(I,K),K=1,31)
   READ (10,*)(SAN(I,L),L=1,11)
   READ (10,*)(SI(I,M),M=1,10)
   READ (10,*)(WU(I,N),N=1,10)
END DO

CLOSE (10)

DO I=1,64785, 1         
WRITE(2,"(20(I5,1X))" ) SI(I,1),SI(I,2),SI(I,3),SI(I,4),SI(I,5),SI(I,6),SI(I,7),SI(I,8),SI(I,9),SI(I,10),WU(I,1),WU(I,2),WU(I,3),WU(I,4),WU(I,5),WU(I,6),WU(I,7),WU(I,8),WU(I,9),WU(I,10)
END DO
CLOSE (2)   

到这里为止是对的,雾滴的数浓度数据选出来放在resu.TXT文件里了,接下来求平均问题来了

OPEN(3,FILE="C:/RESU.TXT")
DO I=1,64785,1
   READ (3,*)(RESU(I,K),K=1,20)
END DO
CLOSE(3)        大概这边就出问题了,没法把文件里的数据读给resu数组,是不是和格式输入输出有关

OPEN(10,FILE="C:/JIANYAN.TXT")
DO I=1,64785, 1         
WRITE(2,"(20(I5,1X))" ) (RESU(I,J),J=1,20,1)
END DO
CLOSE (10)      这段是检验resu数组有没有赋值成功的



DO I=1,1079,1
P=(I-1)*60+1
Q=I*60

DO N=1,20,1  !累加器清空
ADD(N)=0
END DO

DO M=Q,P,1  !60秒累加过程
    DO N=1,20,1
    ADD(N)=RESU(M,N)+ADD(N)
    END DO
END DO

DO N=1,20,1  !求平均
   AVER(I,N)=ADD(N)/60
END DO

END DO
   

OPEN(3,FILE="C:/MINAVER.TXT")
DO I=1,1079,1
WRITE(3,"(20(I5,1X))" ) (AVER(I,K),K=1,20,1)
END DO


END

哪位可以帮我看看?
我也是新注册的,没有积分,就帮帮我吧




  • 工笔 (0)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2011-12-7 19:49:11 | 显示全部楼层
得贴一段你的数据文件,直接贴出来吧,不要传附件
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-12-7 20:03:15 | 显示全部楼层
1085    15     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
1146     7     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
1097    17     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
1197    15     3     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
1150    11     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0


这个是筛选后的雾滴个数,存在resu.txt文件里




2108 2106 3277 2369 3381 3255 2566 2336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12622 0 20 0 0 0 0 0 0 0 0
1146 7 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
2108 2105 3277 2370 3381 3255 2566 2336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12622 0 20 0 0 0 0 0 0 0 0
1146 7 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
2108 2105 3277 2370 3380 3254 2575 2336 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
12843 0 20 0 0 0 0 0 0 0 0
1097 17 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

这个是初始数据,wudi.txt
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2011-12-7 20:04:59 | 显示全部楼层
wudi.txt里每组里面第三第四行是有用的数据
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2011-12-7 21:20:13 | 显示全部楼层
哈哈,不说别的了,1.检验那边写错了,你open一个10号文件,但是写在2号文件里面,肯定么得用啊!
然后,2.楼主写的好辛苦啊很多东西都可以不要的,比如说do i=1,1079,1最后一个默认缺省的就是1;
还有3.write(2,*)那边,你居然写了20个?汗···不是可以隐循环嘛(si(i,j),j=1,10),(wu(i,j),j=1,10)

现在假定1没有问题,就是说呢数据读取正确,那么转到你求和的部分4.fortran里面不赋值默认为零,你的“累加器”没有必要清空;当然如果你不清空你会发现累计到很大值?可以在你注释60秒累计那个地方进行修改,你的解决方案使得你的程序看起来比较吃力,写的也很累

我的眼睛不行了,回头要是你还没有解决问题请说明白你要对什么求平均,数据如何,或者qq群里说,太累了···
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表