gfortran相关内容

为什么这是一个在模块内声明的函数,然后在链接器看不到的同一模块中的其他地方使用?

我有一个函数(如果有人感兴趣,它是 这个函数)看起来像这样的模块 模块 MYMODULE隐式无!一些随机的东西包含CHARACTER*255 FUNCTION strtok ( source_string, delimiters )[...]结束函数 strtok子程序 DO_SOMETHING ( )字符(长度=255)::strtok[...]!结束子程序 DO_SOMETHING结束模块 ..
发布时间:2022-01-14 09:24:01 其他开发

Fortran 90 - “分段错误 - 无效的内存引用"具有可扩展的 3D 阵列

我已经用 gfortran 编译了一个 fortran 90 程序,它以我想要的方式构建了一个可扩展的 3D 数组.运行时出现以下错误: 程序收到信号 SIGSEGV:分段错误 - 无效的内存引用.此错误的回溯:#0 0x10542ee42#1 0x10542f60e#2 0x7fff8d7895a9#3 0x10542575e#4 0x105425975#5 0x105425d0e分段错误:1 ..
发布时间:2022-01-12 16:13:23 其他开发

C 代码调用 Fortran 子程序时,子程序顶部出现分段错误

我在文件 test-Q.cpp 中有 C++ 代码,它调用文件 getqpf.F 中的 Fortran 子例程.在文件 test-Q.cpp 中,我已将 Fortran 代码声明为外部代码,并使用 getqpf_() 名称修改约定调用该函数.gcc 和 gfortran 编译器正在 GNU/Linux 上使用. 这是 C++ 文件顶部的片段: extern "C" {void getqpf ..
发布时间:2022-01-12 16:00:45 C/C++开发

输出格式:gfortran 中的空格过多

使用 gfortran 4.6.这段代码: 程序 f1隐式无整数 :: i=1, j=3WRITE(*,*) "整数 i 是 ", i, ", j 是 ", j, "."结束程序 f1 产生这个控制台输出,它有太多的空格: 整数 i 是 1 , j 是 3 . 我可以设置一些设置,以便在第一个标记(“整数")之前没有空格,因此标记之间的空格只是一个空格?我知道一个解决方法是 WRITE ..
发布时间:2022-01-12 08:56:06 其他开发

预处理器宏在 Fortran 代码中的 Windows 上不起作用

亲爱的,我有一个包含预处理器宏的小型 Fortran 程序.下面是一个最小的例子.在 mac os x 上,它运行良好,但是当我在 windows 7(64 位)上编译它时,它总是打印 unknown operating system.我在 Windows 7 上使用 gfortran-4.8.0 (mingw32). 程序 foo隐式整数(i-n),双精度(a-h,o-p),+ 字符*8(x ..
发布时间:2022-01-11 19:59:06 其他开发

使用 Fortran 预处理器连接扩展宏和单词

我正在尝试将源代码中的单词与预处理器宏的扩展连接起来.基本上我在代码中的某处有 foo,并且我想通过 #define EXPANSION bar 获得 foobar.但是,我正在努力寻找一种适用于所有编译器的方法.目前,如果它可以与 gfortran 和 ifort 一起使用,我会很高兴. 根据其 文档,gfortran预处理器是在“传统模式"下运行的 C 预处理器,它没有 ## 标记粘贴操 ..
发布时间:2022-01-11 19:57:41 其他开发

使用 gfortran 在宏中连接字符串

用于连接的 C 预处理器宏 (##) 似乎不适用于使用 gfortran 的 Mac.在其他系统上使用其他 Fortran 编译器可以工作,所以我正在寻找 gfortran 的解决方法.我必须使用 ## 来创建许多变量,所以我不能没有它们. 示例代码: #define CONCAT(x,y) x##y程序主整数,参数:: CONCAT(ID,2) = 3打印*,“你好",ID_2结束程序主 ..
发布时间:2022-01-11 19:31:09 其他开发

如何调用在单独文件中定义的 Fortran 函数?

我正在尝试编译一些非常古老的代码(1986 年及之前).此代码引用了一个外部函数.今天的编译器要求更多的代码来完成这项工作.而我一直失败.我现在创建了一个小的 hello world 程序来演示这个问题. 你好.for 程序你好使用功能打印 *,“Hello World!"打印 *, f ()结束程序你好 func.for MODULE 函数公共场所包含函数 f ()f='你好功能 ..
发布时间:2022-01-11 15:38:17 其他开发

gfortran 中的条件编译

我想知道是否可以选择我的 Fortran 95 例程的不同部分进行编译. 例如,如果我将某个标志传递给 gfortran,那么编译器会选择哪个部分用于某个函数.我知道我可以在例程中使用 if 来做到这一点,但缺点是由于速度问题,我不希望程序一直运行 if.我想解决方案应该类似于这个 我正在专门使用一个程序来计算多体系统(比如一百万)中的能量.然后我不想在每次编译时需要使用不同的能量定义 ..
发布时间:2022-01-04 21:32:32 其他开发

gfortran:尝试执行“f951"时出错:execvp:没有这样的文件或目录

我正在尝试编译在 Internet 上找到的代码.实际上,我正在尝试编译在 http://www.cs.berkeley 中找到的代码.edu/~fowlkes/BSE/. 我尝试安装 gfortran 以及在我的 MAC 中编译它所需的所有其他库.但是当我运行命令 ma​​ke 时,我收到以下错误: $ make(cd trlan && make -f Makefile.gcc)gfor ..
发布时间:2021-12-31 23:03:45 其他开发

gfortran openmp 分段错误发生在基本 do 循环上

我有一个程序可以将粒子分布到细胞内的云网格中.只需遍历粒子总数 (Ntot) 并填充 256^3 网格(即每个粒子分布在 8 个单元上). % gfortran -fopenmp cic.f90 -o ./cic 哪个编译得很好.但是当我运行它 (./cic) 时,我遇到了分段错误.我的循环是一个经典的 omp do 问题.当我不在 openmp 中编译该程序时,它可以工作. !$omp 并 ..
发布时间:2021-12-30 21:10:21 其他开发

如何在fortran中覆盖结构构造函数

目前是否可以覆盖 Fortran 中的结构构造函数?我见过这样的提议示例(例如在 Fortran 2003 规范中): 模块 mymod输入我的类型整数 :: x!其他的东西末端类型接口类型模块过程 init_mytype终端接口包含type(mytype) 函数 init_mytype(i)整数,意图(输入):: i如果(i > 0) 那么init_mytype%x = 1别的init_myt ..
发布时间:2021-12-30 15:23:53 其他开发

如何编译具有接口、模块和子程序的多文件夹 Fortran 项目

我是 Fortran 的新手.我正在从事一个研究项目,在该项目中我使用了一个开源项目,该项目具有分布在多个文件夹中的多个文件.我找到了每个程序的依赖,但不知道如何编译它们. 我将源代码分布在三个文件夹中.a) 模块b) 接口c) 子程序 我想在 subroutines 文件夹中运行一个名为“Main.f90"的程序,该程序依赖于模块和接口文件夹中的源代码. 我正在使用 eclip ..
发布时间:2021-12-29 14:04:10 其他开发

指定 gfortran 查找模块的目录

我目前基于模块编译程序(例如依赖于模块bar的主程序foo)如下: gfortran -c bar.f90gfortran -o foo.exe foo.f90 bar.o 当 foo.f90 和 bar.f90 在同一目录中时,这可以正常工作.当我在 foo.f90 中调用 use bar 时,如何指定 gfortran 应该在其中查找 bar.o 的目录?(即,我不想指定编译器应该具体链接 ..
发布时间:2021-12-29 14:01:38 其他开发

使用 Fortran 90 在输入文件中正确读取注释行

据我所知,Fortran 在从文件中读取数据时,会跳过以星号 (*) 开头的行,假设它们是注释.好吧,我似乎在使用我创建的一个非常简单的程序实现这种行为时遇到了问题.这是我的简单 Fortran 程序: 1 程序测试23 整数 dat145 打开(unit=1,file="file.inp")67 读(1,*)dat18910 结束程序测试 这是“file.inp": 1 *你好2 1 ..
发布时间:2021-12-29 12:19:33 其他开发

gfortran for dummies:mcmodel=medium 究竟做了什么?

我有一些代码在编译时给我重定位错误,下面是一个说明问题的例子: 程序主普通/baz/a,b,c真实的 a,b,cb = 0.0调用 foo()打印*, b结尾子程序 foo()普通/baz/a,b,c真实的 a,b,c整数,参数 :: nx = 450整数,参数 :: ny = 144整数,参数 :: nz = 144整数,参数 :: nf = 23*3真实::酒吧(nf,nx*ny*nz)! ..
发布时间:2021-12-24 16:48:22 其他开发

为什么我的随机数总是一样的?

我正在使用 Fortran 中的 random_number 子例程,但在不同的程序运行中,生成的数字不会改变.我应该在代码中包含什么,以便每次编译和运行程序时数字都会改变? 解决方案 随机数生成器产生伪随机数.要在每次运行中获得不同的数字,您需要在开始你的程序.这会在伪随机流中选择一个不同的起始位置. ..
发布时间:2021-12-21 15:50:03 其他开发

您为 GFORTRAN 调试器/编译器设置了哪些标志来捕获错误代码?

我想我不会在任何教科书中找到它,因为回答这个需要经验.我目前正处于测试/验证我的代码/寻找错误以使其进入生产状态的阶段,任何错误都会导致许多人遭受痛苦,例如阴暗面. 当您为 Fortran 编译程序以进行调试时,您设置了哪些标志? 您为生产系统设置了哪些标志? 在部署之前你会做什么? 生产版本使用 ifort 作为编译器,但我使用 gfortran 进行测试.我做错了吗? ..
发布时间:2021-12-14 08:32:24 其他开发