Fortran 中指数函数的 DEXP 或 EXP?

2024-04-12

我有两个非常简短的问题:

1 - 我刚刚读到DEXP() is the archaic的形式EXP()。这是否意味着不应再使用它?我一直以为DEXP()双精度等于EXP().

2 - 指数函数的范围是多少?它依赖于编译器吗?


问题 1:

在现代 Fortran 中,最好使用通用函数(例如 EXP()),而不是过时的特定于类型的等效函数(例如 DEXP())。

在旧的(非常旧的)Fortran 版本(FORTRAN 77 之前)中,每种数据类型都需要不同的函数。因此,如果您想要指数函数,则需要:用于单精度数的 EXP()、用于双精度数的 DEXP() 或用于复数的 CEXP()。 Fortran 现在具有函数重载功能,因此单个函数适用于任何标准类型。

问题 2。

原则上,指数的可能范围取决于处理器和编译器。然而,大多数现代处理器和编译器将使用 IEEE 标准。

如果需要,可以在声明变量时指定变量所需的范围。要使用的函数是SELECTED_REAL_KIND([P,R]).

例如,假设您要确保x是小数精度至少为 10 位且小数指数范围至少为 100 的类型。

INTEGER, PARAMETER :: mytype = SELECTED_REAL_KIND(10, 100)
REAL(KIND=mytype) :: x

了解更多信息:SELECTED_REAL_KIND http://fortranwiki.org/fortran/show/selected_real_kind

实际上,如果您正在编写一个需要给定精度的程序,并且可能在异国情调或旧系统上运行,那么以这种方式定义您的类型是一个非常好的主意。这里显示了一些常见的定义:真正的精度 http://fortranwiki.org/fortran/show/Real+precision

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fortran 中指数函数的 DEXP 或 EXP? 的相关文章

  • gfortran 中的清零

    有没有办法强制 gfortran 中的下溢清零 我不敢相信这是第一次有人问这个问题 但我在任何地方都找不到任何相关内容 如果这是重复的 我会承担责任 您可以使用支持 Fortran 2003 IEEE 模块的最新版本的 gfortran 来
  • 未知长度的字符返回函数

    如何使用结果最初长度未知的字符函数 The trim 据我了解 函数表明可以不指定返回字符串的长度 例如 write trim str 将仅返回不带尾随空格的字符串的一部分 该函数在调用之前不知道返回字符串的长度 Or trim 功能有限制
  • Fortran 95 数组中具有一维变量的二维数组

    我想在代码中将一些内容存储在二维数组中 然后想扫描该数组 有N 1 行 第一个索引的数量 比如说i 在数组中 然而 对于给定值i 数量j尽管我知道最大可能值 但值不是固定的j 说它是N 2 我当然可以创建大小的数组 N 1 N 2 来存储我
  • 如何在 R 中编写 .bin 文件并在 Fortran 中打开它

    我有一个 Fortran 模型 我想强制使用来自 R 开发的模型的数据 但我在两个环境之间传输数据时遇到问题 我正在考虑使用 bin 文件 我在 R 中所做的是使用writeBin将多维数组存储在 bin 文件中 a seq 1 150 1
  • ipython 和 ipython 笔记本之间奇怪的准确度差异,然后使用 fortran 模块和 f2py

    当使用用 f2py 编译的 fortran 模块时 我遇到了 ipython 和 ipython 笔记本之间奇怪的准确性差异 我的 Fortran 模块是 subroutine tt string fmt n num out implici
  • 使用 ctypes 从 Python 调用 fortran 函数

    我希望使用 ctypes 来调用一些旧的 Fortran 库 这些库是我老板几年前编写的 我按照中给出的例子进行操作上一个问题 https stackoverflow com questions 5811949 call functions
  • Fortran 接受来自 C 的字符串(?)

    我觉得这应该是一个简单的问题 但我无法让它发挥作用 我有一些 Fortran 代码 需要如下输入 SUBROUTINE TRACE X Y NAME XX YY EXTERNAL NAME CALL NAME X Y XX YY 我正在尝试
  • 从接口访问参数 (Fortran)

    我正在使用参数来修复所用类型的精度 在我尝试在接口中使用相同类型之前 这种方法工作得很好 考虑这个小例子 module Hello implicit none save integer parameter K selected real k
  • 将分配给 Fortran 数组的 C_PTR 传递给 C

    我在访问 C 中的数组时遇到段错误 该数组在下面的 Fortran 文件中分配 有一些调试问题 例如文件写入没有写入任何有意义的内容 并且我初始化了一个变量i我从来没有用过 但是 我发现了以下内容 未初始化i 但仍然声明 没有段错误 未在
  • Fortran 90 - 尝试读取文件末尾之后的内容

    我在 Fortran 90 中遇到读取问题 我尝试读取 31488 行数据 我正在使用 Portland Group Fortran 90 编译器 我的错误信息是这样的 PGFIO F 217 列表定向读取 单元 14 尝试读取文件末尾 文
  • 定义派生类型数组

    我正在尝试使用参数声明初始化派生类型 当我编译时 出现以下错误 1 处的 INTEGER 4 数组构造函数中的元素是 CHARACTER 1 用户定义的种类值ip and dp被发现于fasst global 他们是 integer par
  • 如何为 Fortran 95+ 模块库提供显式接口,并隐藏实现

    我正在使用 gfortran 的 95 扩展 我有一个实用程序模块库 我想链接到其他项目 即作为库或共享对象 dll 但是 在 Fortran 中 我不明白如何在不维护模块接口的两个副本的情况下将接口与 Fortran 中的实现分离 在 C
  • 在 Fortran 中确定循环后循环控制变量的值

    我有以下程序 program example implicit none integer i x1 real x 10 0 do i 10 1 2 x 10 i 2 i 1 enddo x1 i 2 1 end program exampl
  • Fortran:向文件添加列(即跳过不同数量的水平空格)

    我是 Fortran f90 的初学者 一些看似简单的问题结果却导致严重头痛 感谢您帮助我解决这个问题 我的代码运行一个循环 处理数据并将它们写入文件 我希望将这些数据写入同一文件的列中 直到循环完成 OPEN unit 11 file f
  • Fortran 2003,选择类型以区分“实数”和“实数数组”

    我的问题是 可以select type用块来区分real realInput from real realArrayInput 很清楚如何select type可以用于区分派生类型 但对我来说不太清楚它如何 或是否 可以用于内在类型 在 M
  • gfortran 未定义的引用

    我正在尝试编译一个依赖很多东西的程序 我使用并修改了提供的 makefile 来代表我的计算机设置 但在编译的最后一步中我不断收到许多未定义的引用 导致问题的命令行是 gfortran o cosmomc ParamNames o Matr
  • 纯 Fortran 过程中的 I/O

    我正在尝试将错误检查合并到我正在编写的纯过程中 我想要这样的东西 pure real function func1 output unit a implicit none integer a output unit if a lt 0 th
  • 如何在 Fortran 90 中迭代包含数字、单词和空格的字符串?

    文件说明 STL文件由以下部分组成 solid
  • 在一条语句中对多个变量进行相同的赋值

    有没有一种方法可以为不同的变量分配相同的值 而无需在单个语句中构造数组 例如 如果我有变量a b c d and e 我可以分配类似的东西吗 a b c d e 10 0 我知道我可以用一行来做 a 10 0 b 10 0 c 10 0 d
  • Fortran 在 gdb 中打印可分配数组

    我正在向开源科学代码添加一些功能 我使用很多可分配项 但在正确打印它们时遇到一些问题 例如 我声明并分配 然后使用 real dp allocatable psi n phi some other stuff here allocate p

随机推荐

  • 在R中合并多个栅格

    我一直在尝试找到一种省时的方法来在 R 中合并多个光栅图像 这些是来自乞力马扎罗南部地区的相邻 ASTER 场景 我的目标是将它们放在一起以获得一张大图像 这是我到目前为止得到的 对象 ast14dmo 代表 RasterLayer 对象列
  • 使用node.js核心zlib模块压缩成.zip文件

    如何压缩一个或多个文件并将其保存到 zip包含所提供的 node js 的扩展文件zlib https nodejs org api zlib html模块 我想出了如何保存到 gz使用 gzip 如下 const gzip zlib cr
  • 堆叠子图的对齐

    EDIT 我找到了自己的答案 见下文 如何在子图中对齐图像 for ax in axes ax set anchor W EDIT END 我有一些用 imshow 绘制的数据 它在 x 方向上很长 因此我通过在垂直堆叠的子图中绘制数据切片
  • 如何在 IntelliJ IDEA 中自定义 SonarLint 规则?

    是否可以让 SonarLint for IntelliJ IDEA 仅强制执行我在 Sonar 服务器上启用的规则 因为现在可以使用当前版本的 SonarLint 我使用的版本3 0 0 2041 https plugins jetbrai
  • Rust 中的函数是第一类对象吗?

    函数可以作为参数传递吗 例如 在 JavaScript 中 您可以将函数作为参数传递 如下所示 setInterval function 1000 他们是一流的 与 JavaScript 不同 Rust 有两种类型 函数和闭包 fn fir
  • 在 Clojure 中使用 http://foobar.mp3 重定向到 http://fizzbar.mp3

    我正在尝试以编程方式下载 mp3 文件这个 RSS 提要 http podcast menlo church feed 当我打开一个网址时 例如 http menlohurch podbean com mf feed 5gv2gb 1702
  • 如何找到任何活动应用程序的闪烁光标位置?

    我正在为 Mac OS 开发一个应用程序 我想找到当前应用程序的文本光标 插入符号导航 的位置 到目前为止 我已经让它请求可访问权限 并且我也可以监视 keyEvents 但是如何找到闪烁的光标位置 我不是在寻找鼠标光标位置 我想要文本光标
  • 非实例化 C++ 模板函数的语义正确性

    以下 C 代码无法编译 例如使用 g 4 7 或 clang 3 2 struct Bar template
  • 如何在Python中的多个进程之间共享字典而无需锁定

    我需要在多个进程之间共享一个巨大的字典 大小约为 1 GB 但是因为所有进程都将始终从中读取 我不需要锁定 有没有办法在不锁定的情况下共享字典 python中的多处理模块提供了一个Array类 它允许通过设置共享而无需锁定锁 假然而 多处理
  • 什么是铁轨的良好伐木替代品?

    所以 我一直在研究登录我的 Rails 应用程序 我发现 感谢像这样的帖子this https stackoverflow com questions 462651 rails logger format string configurat
  • Laravel Echo - 允许访客连接到状态通道

    我正在使用 laravel echo server 运行 Laravel Echo 来广播事件 我有一个用户计数器频道 显示应用程序上的所有用户 为此 我使用了存在通道 这对于登录用户来说效果很好 但访客永远无法连接 我在 Broadcas
  • Xml序列化顺序问题

    通常 所有这些都非常适合将我的对象序列化为 Xml 字符串 然后再序列化回对象 然而 不同最终用户之间存在这种不一致 我似乎无法追踪 基本上 当我序列化一个对象时 一旦转换为 Xml 它看起来就像这样
  • 安卓。在对话框中调用关闭

    你打电话时dismiss 在对话框上 除了隐藏它之外 它还会将其从内存中删除吗 它是否会删除放置在对话框内的所有对象 例如ImageViews Buttons等等 凭记忆吗 有没有一种方法可以让我自己释放这些对象的内存 而不是等待垃圾收集器
  • 拖动未修饰的 JFrame 并调整其大小

    目前 我正在使用以下代码来拖动和移动未装饰的 JFrame private void initialiseGUI Component component
  • 使用不同的行终止符在Python中读取csv文件

    我有一个 CSV 格式的文件 其中分隔符是 ASCII 单位分隔符 行终止符是 ASCII 记录分隔符 显然 由于这些是非打印字符 我只是使用了此处编写它们的标准方法之一 我已经编写了大量读取和写入 CSV 文件的代码 因此我的问题不在于
  • Node.js ws 包上的正确错误处理

    我正在努力将基于 REST 的数据管道替换为基于 Websocket 的数据管道 但我无法找到所有可能出错的地方 该系统是生产系统 因此如果出现故障并且无法恢复 将会发生非常糟糕的情况 这是我到目前为止所得到的 客户端 let server
  • 路径组件应该是“/”

    我正在尝试创建一个FileSystem保存 ext2 文件系统的对象 我的URI似乎无效 给我一个路径组件应该是 运行时错误 我使用的是 Windows 我的项目位于 Eclipse 中 有一个名为 fs 的子目录 用于保存文件系统映像 我
  • 如何将 Zend Framework 2 集成到 Netbeans 7.2 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Actor 中的 WebSocket.acceptWithActor 和 @Inject()(播放 2.5)

    WebSocket acceptWithActor不使用 Guice 实例化一个新的 Akka actor 在 Play 2 4 中 仍然可以通过导入来为我的 actor 使用注入器play api Play current 片段来自Rea
  • Fortran 中指数函数的 DEXP 或 EXP?

    我有两个非常简短的问题 1 我刚刚读到DEXP is the archaic的形式EXP 这是否意味着不应再使用它 我一直以为DEXP 双精度等于EXP 2 指数函数的范围是多少 它依赖于编译器吗 问题 1 在现代 Fortran 中 最好