Fortran Coder

查看: 90|回复: 5

[求助] 复型变量的赋值问题

[复制链接]

13

帖子

3

主题

0

精华

入门

F 币
53 元
贡献
31 点
发表于 2022-9-9 10:11:49 | 显示全部楼层 |阅读模式
我定义了一个双精度的复型变量    COMPLEX*16 T,看书上定义双精度复数存储开销为16字节,实部虚部各8字节,其范围为两个双精度实数范围。但是实际运行过程中发现,当实部或虚部输入数据超过10的38次方时,显示“infinity”,也就是实际运行实部、虚部相当于只有4字节。请问为什么会出现这种情况呢?

13

帖子

3

主题

0

精华

入门

F 币
53 元
贡献
31 点
 楼主| 发表于 2022-9-9 10:22:10 | 显示全部楼层
1.jpg
[Fortran] 纯文本查看 复制代码
PROGRAM MAIN
COMPLEX*16 T
DOUPLE PRECISION A,B
OPEN(10,FILE='INPUT.TXT',STATUS='OLD')
READ(10,*)A,B
T=CMPLX(A,B)
WRITE(*,*)T,A,B
END PROGRAM


683

帖子

2

主题

0

精华

大宗师

F 币
3351 元
贡献
2071 点
发表于 2022-9-9 10:58:02 | 显示全部楼层
T=CMPLX(A,B,8)另外,不建议用 complex*16  ,改用 complex(8)

13

帖子

3

主题

0

精华

入门

F 币
53 元
贡献
31 点
 楼主| 发表于 2022-9-9 11:06:48 | 显示全部楼层
li913 发表于 2022-9-9 10:58
T=CMPLX(A,B,8)另外,不建议用 complex*16  ,改用 complex(8)

已解决,太感谢您了,上一个求助贴也是您回复的。因为需要计算的数据里很多都特别大,所以用的CMPLX*16,请问为什么不建议用16字节的呢?

683

帖子

2

主题

0

精华

大宗师

F 币
3351 元
贡献
2071 点
发表于 2022-9-9 11:12:47 | 显示全部楼层
ivf中,complex*16等同complex(8),后者是标准。
QQ截图20220909110452.png

评分

参与人数 1F 币 +3 收起 理由
fcode + 3

查看全部评分

13

帖子

3

主题

0

精华

入门

F 币
53 元
贡献
31 点
 楼主| 发表于 2022-9-9 16:05:43 | 显示全部楼层
li913 发表于 2022-9-9 11:12
ivf中,complex*16等同complex(8),后者是标准。

多谢指教!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2022-9-28 17:56

Powered by Tencent X3.4

© 2013-2022 Tencent

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