Fortran Coder

查看: 23695|回复: 2
打印 上一主题 下一主题

[数值问题] fortran计算中,real类型可以单精度和双精度混用吗?

[复制链接]

18

帖子

8

主题

0

精华

入门

F 币
83 元
贡献
47 点
跳转到指定楼层
楼主
发表于 2016-5-4 09:48:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如下程序,想让子程序用双精度计算,但是返回单精度,给主程序,行不行?
[Fortran] 纯文本查看 复制代码
program main
   Implicit None !// 非常重要
  real(kind=8)::x=8.0d0  !//常数要加 d0
   real(kind=4)::y , add  !要定义 add
   y=add(1,x)
   write(*,*)y
 end program main
 real(kind=4) function add(I,x)
   Implicit None !//非常重要
  integer :: i  !// 定义
  real(kind=8) :: x !//定义
  if(I==1) add=x+10.0d0 !//常数要加 d0
 end function add
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

69

帖子

7

主题

0

精华

专家

F 币
320 元
贡献
224 点
沙发
发表于 2016-5-4 12:08:51 | 只看该作者
编译运行下不就知道了吗?这样做是可以的,但一定要注意有效数字的损失问题。

18

帖子

8

主题

0

精华

入门

F 币
83 元
贡献
47 点
板凳
 楼主| 发表于 2016-5-6 12:15:06 | 只看该作者
好的,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-11-23 14:59

Powered by Tencent X3.4

© 2013-2024 Tencent

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