Fortran Coder

cdexp 指数函数使用报错

查看数: 3882 | 评论数: 8 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-2-24 20:26

正文摘要:

使用指数函数的时候 数据类型报错了,有同学知道原因吗求助

回复

fcode 发表于 2023-2-28 16:03:24
lili 发表于 2023-2-25 10:04
我用EXP算了一下,可以出结果,但是因为我的e指数是复数,老师想让我用CDEXP算,这样应该会更准确,但是 ...

请认真阅读 http://whyd.w.fcode.cn
lili 发表于 2023-2-25 10:04:51
fcode 发表于 2023-2-24 23:06
1. 试试直接改为 exp
2. 给出错误行代码,及对应变量的定义
3. 和 data fai 无关

我用EXP算了一下,可以出结果,但是因为我的e指数是复数,老师想让我用CDEXP算,这样应该会更准确,但是就会出现最开始我发帖的那种问题,不知道是为啥呢?
lili 发表于 2023-2-25 10:00:27
这是我们错误行的代码,和对应变量的定义,求大佬指点
        DO I=1,NNJ-1          
        A(I,I+1+NNJ)=-2*TSO*cos(0.50D0*FAI)*SIN(THETA1)
        &*EXP(-COMI*(I*FAI-0.50D0*FAI))

        COMPLEX*16                   A(NNJT,NNJT)
fcode 发表于 2023-2-24 23:06:14
1. 试试直接改为 exp
2. 给出错误行代码,及对应变量的定义
3. 和 data fai 无关
lili 发表于 2023-2-24 21:39:34
大佬,我们用的是complex*16,我们用CDEXP的时候显示数据类型错误是为啥呀,里面有一个data fai ,和这个有关系吗        DATA THETA,FAI/0.314159260D0,1.5707963D0/
fcode 发表于 2023-2-24 21:24:31
lili 发表于 2023-2-24 21:21
EXP是可以算虚数吗请问
我们用的是complex16

可以,只要你传入的是 complex 类型。
注意, complex*16 和 complex(16) 或 complex(kind=16) 不是一回事。
complex*16 等效于 complex(8) 或 complex(kind=8)
而 cdexp 只适合于 complex(8)

如果是 complex(16) ,需要用 cqexp。

其实,只要写 exp 就行了。详解上面的链接。
lili 发表于 2023-2-24 21:21:13
EXP是可以算虚数吗请问
我们用的是complex16
fcode 发表于 2023-2-24 21:08:25
因为 cdexp 只能用 complex(kind=8) 类型的输入。注意 complex*8 等效于 complex(kind=4)

其实,直接改成 exp 即可。
详解 http://whyd.w.fcode.cn

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

GMT+8, 2024-11-23 10:25

Powered by Tencent X3.4

© 2013-2024 Tencent

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