Fortran Coder

查看: 17508|回复: 9
打印 上一主题 下一主题

[求助] 关于FORTRAN的EXP函数

[复制链接]

237

帖子

0

主题

0

精华

版主

World Analyser

F 币
638 元
贡献
468 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
楼主
发表于 2021-5-8 10:54:17 | 显示全部楼层
1. 可以确定。
2. 整形变量是无误差的,不存在双精度,只存在长度(可以用 SELECTED_INT_KIND)
3. 上代码。

237

帖子

0

主题

0

精华

版主

World Analyser

F 币
638 元
贡献
468 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
沙发
发表于 2021-5-8 14:19:02 | 显示全部楼层
EXP((ev(i,j) - fermi)/kb / te)
=exp(-17.9840108474454/8.617333262145000E-005/30)
=exp(-6956.52573015480)
=6.5957E-3022

双精度可正常表达的精度范围是 -1.79E+308 到 +1.79E+308,最小精度 2.2250738585072014e-308
即,小于 2.2250738585072014e-308 的数字认为是 0

分母为0,则 1.0d0 /(EXP((ev(i,j) - fermi)/kb / te) 为无穷大。

237

帖子

0

主题

0

精华

版主

World Analyser

F 币
638 元
贡献
468 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
板凳
发表于 2021-5-8 14:31:05 | 显示全部楼层
试试用双双精度。
dp = SELECTED_REAL_KIND(30,3000)

代码中的 1.d0 改成 1.0_dp , 0.0d0 改成 0.0_dp  (其他常量类似)
DLOG 改成 Log
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-3 17:18

Powered by Tencent X3.4

© 2013-2024 Tencent

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