请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5771|回复: 28

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

[复制链接]

新浪微博达人勋

发表于 2015-9-22 12:50:14 | 显示全部楼层 |阅读模式

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

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

x
求大神帮忙
好久不用fortran  突然留的作业 要把27个站点50年4月份最低气温分别按照 上旬、中旬、下旬求出平均值,再以grads画图
fortran规则忘了挺多的

file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps867E.tmp.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsD634.tmp.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wpsAD71.tmp.jpg
program station_temperation
integer sta(i),yer(i),mou(i),day(i),tem(i),sum1(a),sum2(b),sum3(c)
real i,a,b,c,mean1,mean2,mean3

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     !缺省值判断
       tem(i)=(tem(i-1)+tem(i+1))/2  !插值法补缺省值
    endif
     a=a+1         !筛选的数据数
  sum1(a)=sum1(a)+tem(i)     !选后温度总和
    else if(day(i)>10.and.day(i)<21)then  !中旬温度
       if(tem(i)>999)then     
       tem(i)=(tem(i-1)+tem(i+1))/2
     endif
     b=b+1
  sum2(b)=sum2(b)+tem(i)
    else if(day(i)>20)then      !下旬温度
            if(tem(i)>999)then
           tem(i)=(tem(i-1)+tem(i+1))/2
         endif

     c=c+1
  sum3(c)=sum3(c)+tem(i)
  endif
end if
enddo
close(1)
mean1=sum1(a)/a         !上旬平均温度
    mean2=sum1(b)/b
mean3=sum1(c)/c
write(11,*)mean1,mean2,mean3
close(11)
end program

在机房电脑上的问题是 symbol i has already been implicityly typed between i and,

又在自己电脑上 看了一下 问题又换成了
error FOR3852: syntax error detected at <end of file>
error FOR1768: missing END statement or missing program unit (possibly free-form source in fixed-form file) detected at <end of file>


跪求 指错 谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-22 13:37:29 | 显示全部楼层
变量声明就有问题,整形和实型考虑对调下吧。
后面计算没看。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-22 14:40:12 | 显示全部楼层
声明变量试试实数,
是否应该将sum1(a)赋初值为0,
求平均值时mean2=sum2(b)/b,你写成mean2=sum1(b)/b了,sum3也错了。
你仔细调调哈。我也新手,可能说的是错的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-22 17:57:09 | 显示全部楼层
按照楼主的数组定义,我这边的CVF提示全部有问题。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-22 21:50:43 | 显示全部楼层
四叶草 发表于 2015-9-22 17:57
按照楼主的数组定义,我这边的CVF提示全部有问题。

瞬间捂脸。。。。。
我这边也是一开始定义的问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-22 21:52:13 | 显示全部楼层
wangyeqxjy 发表于 2015-9-22 14:40
声明变量试试实数,
是否应该将sum1(a)赋初值为0,
求平均值时mean2=sum2(b)/b,你写成mean2=sum1(b)/b了 ...

好细心 均值着急 直接复制粘贴了

加油 {:eb348:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-22 21:58:16 | 显示全部楼层
lqouc 发表于 2015-9-22 13:37
变量声明就有问题,整形和实型考虑对调下吧。
后面计算没看。

恩 对调了一下
但是 还是出现类似问题
symbol A has already been implicitly typed detected between A and ,
symbol B has already been implicitly typed detected between B and ,
symbol C has already been implicitly typed detected between C and ,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-22 22:01:08 | 显示全部楼层
四叶草 发表于 2015-9-22 17:57
按照楼主的数组定义,我这边的CVF提示全部有问题。

我把 数组前面全改成 real
依旧symbol I has already been implicitly typed detected between I and ,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-22 22:01:59 | 显示全部楼层
lqouc 发表于 2015-9-22 13:37
变量声明就有问题,整形和实型考虑对调下吧。
后面计算没看。

我又试了一次把 变量都 声明real
现在的问题 还是 symbol I has already been implicitly typed detected between I and ,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-9-22 22:04:19 | 显示全部楼层
wangyeqxjy 发表于 2015-9-22 14:40
声明变量试试实数,
是否应该将sum1(a)赋初值为0,
求平均值时mean2=sum2(b)/b,你写成mean2=sum1(b)/b了 ...

改了一下把变量声明全 改成REAL 但是又出现了
symbol I has already been implicitly typed detected between I and ,
恩 我记得初始数不赋值默认从0开始 所以a sum1(a)就没赋值 可能我记得不对豪
当然 我又赋值0 试了一下 错误还是开始那个
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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