Fortran Coder

查看: 498|回复: 4
打印 上一主题 下一主题

[求助] 函数运算问题

[复制链接]

27

帖子

11

主题

0

精华

入门

F 币
78 元
贡献
65 点
跳转到指定楼层
楼主
发表于 2023-12-25 21:42:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
求助,程序语句如下,其中Amm=9,Bmm=3,Cmm=6,都是整数常量
在计算循环时,当I=Amm*Bmm*Cmm,即I=162时,应该会有D=ceiling(I/o1) =6才对,但是运行结果却是7,检查了很多次,但是不知道原因,望大佬解惑

Do I=1,Amm*Bmm*Cmm
  o1=Amm*Bmm    !即o1=27
  D=ceiling(I/o1)     !对层数向上取整
  Pref(I,H)=Pref(I,H)-densitys(I,H)*9.81*rZoneheight(1)*D
  densitys(I,H)=Pref(I,H)/((rT_room_air(I,H)+273.15)*Ra+9.81*Haverage(1))
  write(*,*)I,o1,H,D,Pref(I,H)
  END DO
END DO
stop


35681e0422953eb55f26ea8646cb67f.png (44.68 KB, 下载次数: 58)

35681e0422953eb55f26ea8646cb67f.png

9a80e70f2a08e988ead54a2e7429d9d.png (97.77 KB, 下载次数: 57)

9a80e70f2a08e988ead54a2e7429d9d.png
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

沙发
发表于 2023-12-25 22:07:50 | 只看该作者
显示一下数值 I/o1 看看。

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2023-12-26 09:50:32 | 只看该作者
数值不正确的问题,建议你学习一下单步Debug调试
http://v.fcode.cn/video-debugger.html
视频教程,应用篇《调试器的使用》这个章节

27

帖子

11

主题

0

精华

入门

F 币
78 元
贡献
65 点
地板
 楼主| 发表于 2024-1-10 17:17:35 | 只看该作者
fcode 发表于 2023-12-26 09:50
数值不正确的问题,建议你学习一下单步Debug调试
http://v.fcode.cn/video-debugger.html
视频教程,应用篇 ...

好的,谢谢!

54

帖子

0

主题

0

精华

实习版主

F 币
653 元
贡献
214 点

元老勋章新人勋章

QQ
5#
发表于 2024-1-10 18:09:59 | 只看该作者
浮点数有误差,你可以把 o1 定义为整数。并且去掉 ceiling 函数。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-30 08:03

Powered by Tencent X3.4

© 2013-2024 Tencent

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