爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
123
返回列表 发新帖
楼主: yilaya

[求助] fortran 求50年站点最低气温 程序问题求助

[复制链接]

新浪微博达人勋

 楼主| 发表于 2015-9-23 22:30:44 | 显示全部楼层
mlqxj35674 发表于 2015-9-23 14:53
PARAMETER(i=50) 定义序列长度
IMPLICIT NONE  加上这一句
因为隐含规则是I是整型,被你定义成实型, ...

OOO{:eb502:}
program station_temperation
integer i,a,b,c,mean1,mean2,mean3,sum1,sum2,sum3
real sta(17685),yer(17685),mou(17685),day(17685),tem(17685),te(17685)



do i=1,17685
open(1,file='e:\temper\TD50353.txt')
open(11,file='e:\temper\11.txt')

        read (1,*)sta(i),yer(i),mou(i),day(i),tem(i)
        if (mou(i)==4)         then                                                !筛选4月
           if(day(i)<11)then                                                !上旬温度
              if(tem(i)>999)then                                        !缺省值判断
                     te(i)=(tem(i-1)+tem(i+1))/2
                         else
                         te(i)=tem(i)
                                                                       !插值法补缺省值
                  endif
            a=a+1                                                                        !筛选的数据数
                sum1=sum1+te(i)                                        !选后温度总和
           else if(day(i)>10.and.day(i)<21)then                !中旬温度
              if(tem(i)>999)then                                       
                     te(i)=(tem(i-1)+tem(i+1))/2
                         else
                         te(i)=tem(i)
                   endif

            b=b+1
                sum2=sum2+tem(i)
           else if(day(i)>20)then                                         !下旬温度
                   if(tem(i)>999)then
                         te(i)=(tem(i-1)+tem(i+1))/2
                           else
                             te(i)=tem(i)
                       endif

            c=c+1
                sum3=sum3+tem(i)
                endif

        end if
enddo
close(1)

        mean1=sum1/a                                                                 !上旬平均温度
    mean2=sum2/b
        mean3=sum3/c
write(11,*)mean1,mean2,mean3
close(11)

end

没有错误 但是运行出现
RUN TIME ERROR READ <E:\TEMPER\TD50353.TXT>

我还有些疑问
1.可以同时 声明integer a
                       real sta(a) 么 数组无界是不不可以
2.如果无界数组 怎么处理呢
  强制把它定义成 有界但是数值是我猜的一个远大于实际项数的数 对运行程序有没有影响呢
3.tem(i)=tem(i) 这样重复赋值可以么

  灰常感谢                        
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-23 23:03:17 | 显示全部楼层
yilaya 发表于 2015-9-23 22:23
看了一遍书 把程序改了一遍
program station_temperation
integer i,a,b,c,mean1,mean2,mean3,sum1,su ...

额,这个从报错看不出来,需要你检查read语句和数据存放格式是否匹配。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-24 12:21:38 | 显示全部楼层
lqouc 发表于 2015-9-23 23:03
额,这个从报错看不出来,需要你检查read语句和数据存放格式是否匹配。

我觉得挺配啊   
存放的是 txt文件 格式如下
50353 1954  1  1  -287
50353 1954  1  2  -344
50353 1954  1  3  -368
50353 1954  1  4  -393
50353 1954  1  5  -371
50353 1954  1  6  -374
50353 1954  1  7  -382
50353 1954  1  8  -295
50353 1954  1  9  -372
50353 1954  1 10  -402
50353 1954  1 11  -400
50353 1954  1 12  -300
。。。。。。。。。
难道read(1,*)  默认* 错了么
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-24 12:47:30 | 显示全部楼层
yilaya 发表于 2015-9-24 12:21
我觉得挺配啊   
存放的是 txt文件 格式如下
50353 1954  1  1  -287

额,*是没错,看上去也挺匹配。
话说报错信息就这些?后面没有具体描述了?
可以在read之后加一个  print*, i    来看看到底是读到哪一行出问题了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-24 20:43:50 | 显示全部楼层
lqouc 发表于 2015-9-24 12:47
额,*是没错,看上去也挺匹配。
话说报错信息就这些?后面没有具体描述了?
可以在read之后加一个  pri ...

木有 just
run-time errorF6501:read<......>

end of file encountered
press any key to continue
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-26 20:48:59 | 显示全部楼层
好复杂。。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2015-9-27 11:35:38 | 显示全部楼层
lqouc 发表于 2015-9-24 12:47
额,*是没错,看上去也挺匹配。
话说报错信息就这些?后面没有具体描述了?
可以在read之后加一个  pri ...

啊啊啊 做出来了
数组定义范围越界了 就是定多了&#128517;
程序小改了下 先读取再运算
世界又清静了
谢谢啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-10-1 10:07:38 | 显示全部楼层
多谢分享~~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2016-4-25 10:38:47 | 显示全部楼层
谢谢楼主分享!学习了~!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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