在 Fortran 中调用子例程(分段错误)

2023-12-10

以下代码在 Linux 系统上使用 pgf90 编译时出现分段错误,而在 Windows 上使用 Intel Visual FORTRAN 时运行成功。

program main 
implicit none 
integer:: a(3), b(3) ,c(3)
a=[3, 4, 5]
b=[1, 2, 3]
call sub(a,b,c)
write(*,*)'a+b = ',c 
end program main

subroutine sub(a,b,c) 
implicit none 
integer, intent(in)::a(:),b(:)
integer, intent(out)::c(:)
c=a+b
end subroutine sub 

对此有何解释?


当您调用具有虚拟参数形状的子例程(如本程序中的情况)时,需要显式接口。实现这一点的最简单方法是将子程序放入模块中,并在主程序中使用该模块。

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

在 Fortran 中调用子例程(分段错误) 的相关文章

  • 如何用好Fortran语句标签?

    我正在开发一个用 Fortran 95 编写的模型 我对此完全陌生 语句标签的概念似乎很奇怪 到目前为止我只找到了标签可以由作者任意决定的解释 通常以 10 为增量 除了更容易地找出语句的结尾位置之外 这些标签还有其他实际用途吗 以及关于如
  • fortran中双引号和单引号的区别?

    我刚刚开始使用 Fortran 对双引号和单引号的使用感到困惑 它们是等价的 它们的用法没有区别 您可以使用它来打印引号字符之一 print print 首先打印 进而 注意 您还可以在一行中使用两个引号字符来打印一个 print prin
  • Fortran if stop 需要 endif 吗?

    在 fortran 90 中 if stop 语句是否需要结束 endif example if foo eq 1 stop do some stuff do some stuff 是循环的一部分还是 stop 意味着程序结束时 endif
  • gfortran 未定义的引用

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

    我正在分析 Fortran 代码并有一个简单的问题 我想知道下面代码中 100 和 200 处的 继续 语句的作用 它会增加 i 和 j 计数器吗 如果是这样的话 不会if not flg 那么条件包含flg循环中 flg 的 最后一个值
  • 如何调用模块中子程序内部的函数?

    我有一个包含子例程的模块 该子例程又包含一个函数 我说use themodule在我的主程序中 我可以call thesubroutine 但是如何访问子例程中包含的函数呢 代码如下所示 module useful integer para
  • 如何将mortran代码转换为fortran代码

    我有一些 Mortran 代码 来自 glmnet 我想阅读和编译 我知道在编译时 Mortran首先转换为Fortran 然后编译 如果有预处理器的话 如何安装 Mortran 预处理器 特别是 OS X 上的 Mortran3 我在以下
  • 如何在Fortran代码中将二维数组转换为一维数组?

    如何将 r i j 转换为一维数组以便可以轻松地对数字进行排序 program sort implicit none character CN 8 O 7 integer j iconf nconf integer i nbins t in
  • R:使用带有 .Call 和 C/C++ 包装器的 Fortran 子例程而不是 .Fortran 的优点?

    我有一个 R 包 它使用大量 Fortran 子例程来进行递归线性代数计算的嵌套循环 很大程度上依赖于 BLAS 和 LAPACK 例程 作为 Fortran 的接口 我使用 Fortran功能 我刚刚读过乔纳森卡拉汉的博客文章 http
  • Python 读取未格式化的直接访问 Fortran 90 给出不正确的输出

    这是数据的写入方式 它是一个二维浮点矩阵 我不确定大小 open unit 51 file rmsd nn output form unformatted access direct status replace recl Npoints
  • 有没有一种简单的方法来准备 Fortran 代码以进行并行调用

    我想使用 OpenMP 在 C 程序中并行求解多个大型 ODE 系统 由于某些原因 我需要使用 ODE 求解器 但我只能找到 Fortran 90 子例程 而且代码太大 无法简单地将其转换为 C 我知道 Fortran 广泛使用静态内存 因
  • 如何格式化整数以仅具有所需的大小?

    我一直在尝试以下代码 program hello write i9 10 end program hello 并改变格式字符串 尝试使写入输出的字符串大小恰好满足表示整数所需的大小 但到目前为止我无法管理它 如何在 Fortran 中编写
  • Fortran gfortran linux 中的“分段错误(核心转储)”错误

    我正在创建一个程序 该程序将分析目录中的文件 fits 然后它将在另一个目录中创建另一个文件 txt 它只是一个转换器 当我尝试执行该程序 编译正常 时 它给了我一条错误消息 程序收到信号 SIGSEGV 分段错误 无效的内存引用 此错误的
  • 我可以将文件指针移动到格式化文件中的特定(字节)位置吗?

    我正在读取格式化的 ascii 文件 该文件本质上是 ascii 编码的 看起来像这样 fieldname 1 header info 1 header info 2 header info 3 aruieopaurjjk 0uio3789
  • Fortran 内部计时例程,哪个更好? cpu_time 或 system_clock

    当对 FORTRAN 程序进行计时时 我通常只使用命令call cpu time t 然后我偶然发现call system clock count count rate count max 这似乎做了同样的事情 然而 在更加困难的庄园里 我
  • Fortran90 中 BLAS 函数返回零

    我正在学习在Fortran90中使用BLAS 并使用子例程编写了一个简单的程序SAXPY https software intel com en us mkl developer reference fortran axpy和函数SNRM2
  • Fortran :: (1) 处 OPEN 语句中存在语法错误

    我试图通过 顽固测试 来测试我的密码算法 http stat fsu edu pub diehard http stat fsu edu pub diehard 我意识到我的输入文件必须是未格式化的直接访问文件 所以我尝试用 Fortran
  • FORTRAN:数据多态

    我试图隐藏真实数据类型和复杂数据类型之间的差异 在 FORTRAN 2003 中 我认为可能有一种方法可以做到这一点 目标是定义一个多态可分配数组 其类型可以在运行时决定 另外 还有一个子例程 它使用多态数组来做一些代数 相同的方程适用于真
  • 使用 Fortran 90 正确读取输入文件中的注释行

    据我了解 Fortran 在从文件读取数据时 会跳过以星号 开头的行 假设它们是注释 好吧 我似乎在用我创建的一个非常简单的程序实现这种行为时遇到了问题 这是我的简单 Fortran 程序 1 program test 2 3 intege
  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数

随机推荐

  • javascript 上下文问题 - 参数未定义

    我有这个代码 targetMu function programmeCode muId Parameter values are fine here targetMuController targetMuView on targetMu a
  • PHP - MySQL 准备好的语句来插入数组[重复]

    这个问题在这里已经有答案了 我正在编辑一个使用 MySQLi 的脚本 我需要使用准备好的语句将一些值插入数据库 我的数组的形式为 insert array column1 gt value1 column2 gt value2 column
  • @-moz-document url-prefix() 不起作用

    我有一个网页和一个 CSS 文件 我使用时的问题出在 CSS 文件中 moz 文档 url 前缀 在我的计算机上 CSS 规则适用 但在另一台计算机上它不起作用 使用相同版本的 Firefox 进行测试 这真的很奇怪 这是我的确切 CSS
  • PHP 调用时引用传递不可避免?

    给出以下接口 interface ISoapInterface public static function registerSoapTypes wsdl public static function registerSoapOperati
  • 在 for 循环中写入文件仅写入最后一个值

    text file open new txt r lines text file readlines for line in lines var1 var2 line split myfile open xyz txt w myfile w
  • 如何手动将 twitter bootstrap 包含在我的 Rails 项目中(不使用任何 gem)?

    我正在学习 Rails 并且想使用 Rails 和 Twitter Bootstrap 我的 Rails 项目布局是 assets images javascripts stylesheets controllers helpers mai
  • iOS UITableView 中的多列

    我有多行和多列数据 但 iPhone UITableView 仅包含单列和多行 如何按照 Apple 的人机界面指南显示多列数据 您可能需要自己构建它 或者使用库 例如UI网格视图 我是创造者 你可以学习一下源码UI网格视图 真的很短
  • 无法使用 Laravel 连接到本地 MySQL 服务器

    当我运行这个命令时find name my cnf我找到了两个位置my cnf opt lampp etc my cnf etc mysql my cnf 我不明白MySQL服务器使用的是哪一个 而且 当我运行命令时php artisan
  • 模拟器还是仿真器?有什么不同?

    虽然我了解模拟和仿真的一般含义 但我几乎总是对它们感到困惑 假设我创建了一个模仿现有硬件 软件的软件 我应该称呼它什么 模拟器还是仿真器 谁能解释一下编程方面的区别吗 额外提示 这两个术语在英语中有什么区别 抱歉 我不是母语人士 仿真是模仿
  • 按钮在主活动中不可见

    我在主要活动中创建了三个按钮 我对按钮一使用了以下代码 btn setOnClickListener new View OnClickListener Override public void onClick View v btn setV
  • matlab条件矩阵赋值

    我有一个关于矩阵分配的问题 假设我有三个矩阵A B和C 我想根据规则将矩阵C的元素分配给A和B的元素 C i j A i j if abs C i j A i j lt abs C i j B i j C i j B i j if abs
  • Mysql:“select from”的结果顺序与“select * from”的结果顺序不同

    我有一个 mysql 数据库 其中有一个表 困难 其中有一些记录 如果我 从困难中选择 我会按照添加的顺序返回它们 并按主键 ID 排序 mysql gt select from difficulties id value name let
  • 如何让这个 jQuery 动画代码永远循环?

    我正在尝试在滑块上创建文本动画循环 我尝试循环但它不起作用 你能告诉我如何永远循环这个脚本吗 谢谢
  • RouteCollection”不包含“MapMvcAttributeRoutes”的定义

    我只需要降级我的ASP NET 4 5 2申请到ASP NET 4 0 当然 这会带来问题 比如引用安装不正确 我已经解决了其中一些问题 但我无法解决错误 CS106 RouteCollection 不包含定义 MapMvcAttribut
  • 美丽汤 find() 返回 None?

    我正在尝试解析 HTMLwebsite 我想从所有这些中获取文本span元素与class post subject 例子 span class post subject Set of 20 moving boxes 20009 or 200
  • 菜单背景改变滚动颜色

    我想做的是 当用户到达网站的下一部分时 将菜单的背景从透明淡入浅灰色 我到处搜索脚本 并在这里尝试了多个脚本 但似乎根本不起作用 任何帮助将不胜感激 Thanks HTML
  • std:: 引用对

    拥有一个有效吗std pair参考文献 特别是 赋值运算符是否存在问题 根据这个链接 好像没有对operator 进行特殊处理 所以默认的赋值运算符将无法生成 我想要一个pair
  • 指数曲线拟合matlab

    我有以下等式 我想使用 MATLAB 对上述方程进行指数曲线拟合 其中y f u a y是我的输出 u a 是我的输入 我想求系数A B对于一组提供的数据 我知道如何通过定义状态来对简单多项式执行此操作 举个例子 如果states ones
  • 如何保存tf.data.Dataset对象?

    如上 我尝试对其进行酸洗 但出现以下错误 Maybe arr self cpu nograd numpy pylint 禁用 受保护的访问 运行时错误 Tensorflow 类型 21 无法转换为 numpy dtype tf data D
  • 在 Fortran 中调用子例程(分段错误)

    以下代码在 Linux 系统上使用 pgf90 编译时出现分段错误 而在 Windows 上使用 Intel Visual FORTRAN 时运行成功 program main implicit none integer a 3 b 3 c