爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2746|回复: 4

[求助] 【已解决】Fortran程序出错,好像是精度问题

[复制链接]

新浪微博达人勋

发表于 2017-12-25 21:54:00 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 学而不厌 于 2019-7-15 08:56 编辑

非常简单的程序,用来求一个数组的和,但是出了问题。程序如下:
program main
   implicit none
   integer,parameter:: nx=28,nt=36,nn=11
   real b(nt),Rd(nx,nt),sum
   integer i,k,year(nt)

   open(21,file='Dec_1981-2016_Rd.txt',form='formatted')  
   do k=1,nt
       read(21,*) year(k),(Rd(i,k),i=1,nx)
   enddo
   close(21)

   open(22,file='sum.txt',form='formatted')  
   sum=0.0
   do k=1,nt
       b(k)=Rd(24,k)
       sum=sum+b(k)
       write(22,*) b(k),sum
   enddo
end

sum.f90 (430 Bytes, 下载次数: 0)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-12-26 08:38:44 | 显示全部楼层
哪位大神帮忙解惑一下吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-26 09:19:00 | 显示全部楼层
输入sum的时候定义一下只输出小数点后一位
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-12-26 09:48:00 | 显示全部楼层
香草拿铁 发表于 2017-12-26 09:19
输入sum的时候定义一下只输出小数点后一位

主要是想搞明白问题出在哪里了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-30 12:54:43 | 显示全部楼层
大体是你说的,但这不叫“错误”,是数值计算 一定会碰到的  数值精度的问题

如果真想尽量减少,可以考虑提升下变量精度,比如 real*8 之类的声明法
或者板凳建议的,格式输出一下,眼不见心不烦
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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