Fortran Coder

标题: 复型变量的赋值问题 [打印本页]

作者: zy_cd    时间: 2022-9-9 10:11
标题: 复型变量的赋值问题
我定义了一个双精度的复型变量    COMPLEX*16 T,看书上定义双精度复数存储开销为16字节,实部虚部各8字节,其范围为两个双精度实数范围。但是实际运行过程中发现,当实部或虚部输入数据超过10的38次方时,显示“infinity”,也就是实际运行实部、虚部相当于只有4字节。请问为什么会出现这种情况呢?


作者: zy_cd    时间: 2022-9-9 10:22

[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



作者: li913    时间: 2022-9-9 10:58
T=CMPLX(A,B,8)另外,不建议用 complex*16  ,改用 complex(8)

作者: zy_cd    时间: 2022-9-9 11:06
li913 发表于 2022-9-9 10:58
T=CMPLX(A,B,8)另外,不建议用 complex*16  ,改用 complex(8)

已解决,太感谢您了,上一个求助贴也是您回复的。因为需要计算的数据里很多都特别大,所以用的CMPLX*16,请问为什么不建议用16字节的呢?
作者: li913    时间: 2022-9-9 11:12
ivf中,complex*16等同complex(8),后者是标准。

QQ截图20220909110452.png (133.03 KB, 下载次数: 127)

QQ截图20220909110452.png

作者: zy_cd    时间: 2022-9-9 16:05
li913 发表于 2022-9-9 11:12
ivf中,complex*16等同complex(8),后者是标准。

多谢指教!




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2