爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3016|回复: 7

[求助] 为什么运行程序的时候显示文件不存在呢

[复制链接]

新浪微博达人勋

发表于 2016-5-1 12:15:24 | 显示全部楼层 |阅读模式

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

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

x
程序是为了求出1959~2014年每年6、7、8月份的平均气温
QQ图片20160501120942.png
program main
implicit none
integer i,a,k,sum,j
real sta(20450),yer(20450),mou(20450),day(20450),tem(20450),ave(57)
k=0
open(1,file='e:\temper\old.txt')
do j=1959,2014
  do i=1,20449
    read(1,*)sta(i),yer(i),mou(i),day(i),tem(i)
      if(yer(i)==j)then
          if(mou(i)==6.or.mou(i)==7.or.mou(i)==8)then
           sum=sum+tem(i)
           a=a+1
          endif
       endif
   enddo
close(1)
k=k+1
ave(k)=sum/a
enddo
open(2,file='e:\temper\new.txt')
write(2,"(56f4.1)") (ave(k),k=1,56)
close(2)
end

为什么运行后出现这样的情况,路径应该是放对的,那是哪里出问题了呢,拜托各位前辈指点~
QQ图片20160501121205.jpg

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-1 13:18:38 | 显示全部楼层
close(1)放end前面,你这第一个循环完了就把文件关了,还有到底是20450行还是20499行?怎么循环的时候i=1,20499。另外提醒你,sum和a是INTEGER型,ave(k)是REAL型,如果数据涉及到计算,最好别设成INTEGER型,不然数据易丢失精度。是否还有其他问题还需要继续调试才知道呢。

评分

参与人数 1金钱 +6 收起 理由
lqouc + 6

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-1 14:10:51 | 显示全部楼层
sunnyLeech 发表于 2016-5-1 13:18
close(1)放end前面,你这第一个循环完了就把文件关了,还有到底是20450行还是20499行?怎么循环的时候i=1 ...

噢噢~ 按照您说的,把程序修改以后,没有文件不存在的提示了,但变成就是dos窗口一闪而过,在new文件里也没有内容输出,是程序逻辑不对还是什么原因呢
program main
implicit none
integer i,a,k,j
real sta(20449),yer(20449),mou(20449),day(20449),tem(20449),ave(56),sum
k=0
open(1,file='e:\temper\old.txt')
do j=1959,2014
  do i=1,20449
    read(1,*)sta(i),yer(i),mou(i),day(i),tem(i)
      if(yer(i)==j)then
          if(mou(i)==6.or.mou(i)==7.or.mou(i)==8)then
           sum=sum+tem(i)
           a=a+1
          endif
       endif
   enddo
k=k+1
ave(k)=sum/a
enddo
close(1)

open(2,file='e:\temper\new.txt')
write(2,"(56f4.1)") (ave(k),k=1,56)
close(2)
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-1 14:17:05 | 显示全部楼层
还有一个细节修改一下
write(2,"(56f3.1)") (ave(k),k=1,56)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-1 14:42:10 | 显示全部楼层
我觉得问题就出现在write语句上面,但是不怎么哪里错了,恳请大神指导
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-1 17:12:22 | 显示全部楼层
你可以把数据发我邮箱吗?我给你调试一下,我也只是半斤八两,不想大神可以一眼就看出什么问题来 1215978499@qq.com
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-1 21:37:58 | 显示全部楼层
本帖最后由 Masterpiece 于 2016-5-1 21:44 编辑

你在程序里边加一下语句,试着输出看看
看看是在那一步停了

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-4 09:34:40 | 显示全部楼层
我觉得你可以在每一步计算的时候把结果输出一下,可以用write(*,*)再加你的结果名字,看看哪一步出错了,这是一个很好的检查fortran结果错误的方法,百试百灵。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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