24小时热门版块排行榜    

查看: 2033  |  回复: 10

gmtang1212

铜虫 (初入文坛)

[求助] fortran real(kind=16)

求助,如果fortran的精度提高到kind=16的时候,调用fortran程序内部的函数(例如求正余弦)和调用intel 编译器的mkl数学库,需要注意什么吗? 我把我以前的开始写的kind=8的定义直接改成kind=16的时候,程序算出的结果竟然是NAN...
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
gmtang1212: 金币+3, 有帮助 2013-08-15 09:54:03
你是什么编译器?有些编译器,比如cvf6.6, 好像不支持 real*16。不过有FM 可以拓展到任意位数。complex*16 倒是常见
2楼2013-08-13 21:40:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

gmtang1212

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by pippi6 at 2013-08-13 21:40:03
你是什么编译器?有些编译器,比如cvf6.6, 好像不支持 real*16。不过有FM 可以拓展到任意位数。complex*16 倒是常见

用的是intel的编译器。
3楼2013-08-14 08:55:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gmtang1212

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by pippi6 at 2013-08-13 21:40:03
你是什么编译器?有些编译器,比如cvf6.6, 好像不支持 real*16。不过有FM 可以拓展到任意位数。complex*16 倒是常见

还有就是ifort带的mkl库,不知道到了四精度该怎么使用。
4楼2013-08-14 11:07:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

iamsad

至尊木虫 (著名写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
gmtang1212: 金币+2, ★★★很有帮助 2013-08-15 09:53:48
我猜楼主调用ifort的mkl库是想要用里面的lapack.可惜的是lapack只支持single and double precision. 你要的kind=16会带来问题。至于fortran程序内部的函数(例如求正余弦),应该没有什么问题,只要我们不要画蛇添足在sin,cos前面加个d。
5楼2013-08-14 20:51:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

引用回帖:
3楼: Originally posted by gmtang1212 at 2013-08-14 08:55:04
用的是intel的编译器。...

新的 intel fortran 支持 real*16 吗?
6楼2013-08-15 09:07:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gmtang1212

铜虫 (初入文坛)

引用回帖:
6楼: Originally posted by pippi6 at 2013-08-15 09:07:43
新的 intel fortran 支持 real*16 吗?...

好像不支持,PDF里都没有提到怎么用。只能自己写函数了。
7楼2013-08-15 09:49:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gmtang1212

铜虫 (初入文坛)

引用回帖:
5楼: Originally posted by iamsad at 2013-08-14 20:51:06
我猜楼主调用ifort的mkl库是想要用里面的lapack.可惜的是lapack只支持single and double precision. 你要的kind=16会带来问题。至于fortran程序内部的函数(例如求正余弦),应该没有什么问题,只要我们不要画蛇添足 ...

那是不是fortran内部的函数前面加个 d 都算是画蛇添足?像dsin, dcos, datan.还有dble和real的功能是不是重叠了?刚用fortran不是很了解。我现在用双精度还是四精度,我都在所用到的小数后加_8或者_16了,保险一点感觉。拿不准。
8楼2013-08-15 09:53:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

iamsad

至尊木虫 (著名写手)

引用回帖:
8楼: Originally posted by gmtang1212 at 2013-08-15 09:53:24
那是不是fortran内部的函数前面加个 d 都算是画蛇添足?像dsin, dcos, datan.还有dble和real的功能是不是重叠了?刚用fortran不是很了解。我现在用双精度还是四精度,我都在所用到的小数后加_8或者_16了,保险一点 ...

要看你用什么版本的fortran语言,要是77的话,还是加个 d 为好。不过我用的都是90以后的,只要你的变量定义好了,sin, cos, atan算出来的函数值就是你要的那个精度。
9楼2013-08-15 10:38:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gmtang1212

铜虫 (初入文坛)

引用回帖:
9楼: Originally posted by iamsad at 2013-08-15 10:38:53
要看你用什么版本的fortran语言,要是77的话,还是加个 d 为好。不过我用的都是90以后的,只要你的变量定义好了,sin, cos, atan算出来的函数值就是你要的那个精度。...

o. soga
10楼2013-08-16 00:23:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gmtang1212 的主题更新
信息提示
请填处理意见