gfortran相关内容

将内部过程作为参数传递

我想针对不同的参数多次求解微分方程.它比这更复杂,但为了清楚起见,假设 ODE 是 y'(x) = (y+a)*x 和 y(0) = 0,我想要 y(1).我从 netlib 中选择了 dverk 算法来求解 ODE,它期望右侧的函数具有某种形式.现在我用 Intel Fortran 编译器做了以下(简化): 子程序 f(x,a,ans)隐含无双精度 f,a,ans,y,tol,c(24),w( ..
发布时间:2022-01-14 10:06:17 其他开发

获取 fortran 运行时错误:文件结尾

我最近学习了如何在 Fortran 中处理基本文件我认为它很简单: open(unit=10,file="data.dat")读取(10,*) some_variable, somevar2关闭(10) 所以我不明白为什么我写的这个函数不起作用.它编译得很好,但是当我运行它时它会打印出来: fortran 运行时错误:文件结束 代码: 函数 Load_Names()字符(len=30) ..
发布时间:2022-01-14 10:05:42 其他开发

Fortran 运行时警告:临时数组

我在运行我的代码(使用 gfortran 编译)时收到 fortran 运行时警告“已创建临时数组",我想知道是否有更好的方法来解决此警告. 我的原始代码是这样的: 分配(flx_est(lsign,3))分配(flx_err(lsign,3))做 i=1,lsign调用 combflx_calc(flx_est(i,:),flx_err(i,:))结束 在子例程中,我这样定义变量: ..
发布时间:2022-01-14 10:05:36 其他开发

派生类型中的关联指针?gFortran 与英特尔

我想检查派生类型中的指针是否已经定义.我写了以下简单的代码来告诉你我的问题: 程序测试隐式无输入 y实数(8),指针 :: x(:)结束类型 y类型(y),指针::w(:)分配(w(2))分配(w(1)%x(2))写(*,*) 关联(w(1)%x), 关联(w(2)%x)结束程序测试 使用 gFortran 4.4.1 编译此代码并在 Ubuntu 上运行它会得到结果: T F 而在 Wi ..
发布时间:2022-01-14 10:05:25 其他开发

运行 gfortran 时巨大的 fort.# 文件

我将 gfortran 用于应用程序并通过 Matlab mex 文件运行 Fortran.我注意到,当我在我的 Mac 上运行 Fortran 文件时,它会在当前目录中创建一个 fort.9 或 fort.16 文件,其中 9 或 16是一些任意数字.最近,我注意到这些 fort. 文件可能有 GB 大!通常它们很小,例如几 kB.我只是想知道这些文件有什么用途?其次,我的代码中是否有一些错误导 ..
发布时间:2022-01-14 10:04:11 其他开发

gfortran 和随机数

我正在尝试使用来自 mac-ports (OS-X) 的 Gfortran 4.7 编译以下简单代码: 程序主程序隐式无整数 :: n = 1,时钟,我整数,维度(1):: iseed!初始化随机数生成器调用 random_seed(size = n)调用 system_clock(COUNT=clock)iseed = 时钟 + 37 * (/(i - 1, i = 1, n)/)!iseed ..
发布时间:2022-01-14 10:03:34 其他开发

fortran 运算符重载:函数或子例程

我最近将我的 .f90 代码更新为 .f03,我期待看到加速,因为我的旧版本在 do 循环内的每次迭代中涉及许多分配和解除分配(7 个 3D 数组--45x45x45)(总共 4000).使用派生类型,我在模拟开始时分配这些数组并在结束时释放它们.我以为我会看到加速,但实际上运行速度要慢得多(30 分钟而不是 23 分钟). 我运行了一个分析器,看起来加/减/乘/除运算符需要相对较长的时间. ..

强制 gfortran 在第一个 NaN 处停止程序

为了调试我的应用程序 (fortran 90),我想将所有 NaN 转换为信号 NaN. 使用默认设置,我的程序在没有任何信号的情况下工作,只在文件中输出 NaN 数据.我想找到生成 NaN 的点.如果我可以用信号 NaN 重新编译程序,我将在第一个错误浮动操作所在的第一个点得到一个 SIGFPE 信号. 解决方案 你要找的标志是 -ffpe-trap=invalid;我通常添加 , ..
发布时间:2022-01-14 10:00:02 其他开发

如何在fortran中的特定行写入

我想从文件夹中复制一个文件并使用 fortran 在文件的特定行写入.我正在使用 Windows,GNU fortran 编译器.这是示例文件和代码.file1.txt 1 *2 **3 ***4 ****5 *****6 ******7 *******8 ********9 *********10 ********** 代码如下:我定义了一些变量.只有当两个条件匹配(特定变量值和行号)时,我 ..
发布时间:2022-01-14 09:59:20 其他开发

zgeev() LAPACK 的结果不正确/不一致

我正在尝试使用 ZGEEV 来计算特征值和特征向量,但是在输出不正确并且在不同优化级别使用时也不一致时遇到了一些问题.下面是我的 Fortran 代码,其结果为 -O1 和 -O2 优化级别.我还包含了 Python 代码以进行比较. 我只能假设我以某种方式错误地调用了 zgeev(),但是我无法确定如何.我相信我的 LAPACK 安装不太可能出现问题,因为我比较了两台不同计算机(Windo ..
发布时间:2022-01-14 09:58:35 Python

对变量的模糊引用

所以我正在做 2 个链接到主程序的模块.第一个定义了所有变量,第二个定义了函数. 模块1: 模块 zmienne隐式无整数,参数::ngauss = 8整数,参数 :: out_unit=1000整数,参数 :: out_unit1=1001整数,参数 :: out_unit2=1002, out_unit3=1003实数(10),参数 :: error=0.000001real(10): ..
发布时间:2022-01-14 09:58:09 其他开发

从 g95 移动到 gfortran 时,“可分配数组必须具有延迟形状"

从使用 g95 编译器转换到 gfortran 时,当我尝试编译以前的工作代码时出现以下错误 错误:(1) 处的可分配数组“"必须具有延迟形状 这发生在我所有可分配数组的所有子例程中.下面是一个例子. SUBROUTINE TEST(name,ndimn,ntype,nelem,npoin,nface,inpoel,coord,face)隐式无整数:: i, j,测试整数,INTENT(O ..
发布时间:2022-01-14 09:57:12 其他开发

gfortran IEEE 异常不准确

我们在一台新的 64 b 机器上使用 gfortran (5.3.1)、Fedora 23.使用简单的 gfortran -o 进行编译(我们没有使用 -ffpe-trap 选项!),会引发“classical-trivial"警告: 注意:以下浮点异常是信号:IEEE_INVALID_FLAG 这是由于 INEXACT 异常(类型 2.0/3.0).DDD 调试器指向一个实常数 (180d0 ..
发布时间:2022-01-14 09:57:05 其他开发

结合 F77 和 F95 fortran 代码

我正在编写一些科学代码,主要是 F77,但也有一些 F95.在某些地方,我需要将 F77 代码包含到我的 F95 代码中.有没有办法通过使用特定的编译器标志或其他东西让这段代码在我的代码中很好地发挥作用?我正在使用 gfortran,偶尔使用 ifort.我可以修改遗留代码,但我需要以一种合理的方式进行修改,以保持与其他 F77 代码的向后兼容性,同时还要向前兼容 F95 代码. 我收到如下 ..
发布时间:2022-01-14 09:56:18 其他开发

Fortran 中的 CPP 预处理语句可以缩进吗?

我对使用 Fortran 预处理语句还很陌生,并且有一个可能非常原生的问题.Fortran 预处理语句可以缩进吗?我在 Linux (openSUSE Leap) 上使用 Gfortran 4.8.1 进行了测试,结果发现它根本不能缩进. 以下代码 main.f90 与 gfortran -cpp main.f90 -o main 一起使用: 程序主程序隐式无#ifdef 调试print ..

如何将具有多个参数的函数传递给期望只有一个参数的函数的子例程?

我有一个子程序(最小的例子) 子程序treatfunction(f,input,output)外部的,真实的::f真实的,意图(in)::输入真实的,意图(out)::输出输出 = f(输入) + f(1.0) !即 f 只有一个参数结束子程序 一个有两个参数的函数 真正的函数 fun(x,a)真实的,意图(in)::x,a 现在对于在运行时固定的给定 a,我想将 fun 传递给 trea ..
发布时间:2022-01-14 09:55:29 其他开发

长度参数化的传递对象到类型绑定过程有 gfortran 抱怨

我正在学习 Fortran,我想将一个数组和一个子例程封装在一个类型中.问题似乎出在自对象的类型定义中. 这是我想出的最小测试用例: 模块测试隐式无型式试验(段)整数,len :: para真实的,维度(para)::权重包含程序::测试=>testing_test端型包含子程序 testing_test(self)类(测试(*))::自我结束子程序端模块 用 gfortran 编译会引 ..
发布时间:2022-01-14 09:53:00 其他开发

纯函数中的指针

为了在 Fortran 中遍历链表,我使用指向当前元素的指针,该指针在循环中移动到下一个元素.尝试在对所述链表进行操作的 pure 函数中应用它会导致错误. 例子: 模块列表隐式无!节点输入 n_list整数 :: val类型(n_list),指针::下一个=>;空值()端型!链表键入 t_list类型(n_list),指针::头端型包含纯函数 in_list(list, val) 结果( ..
发布时间:2022-01-14 09:49:46 其他开发

复数的 fortran 格式说明符

我可以在 fortran 中为复数指定格式说明符吗?我有一个简单的程序. 程序 complx1隐式无复杂 :: var1var1 = (10,20)写 (*,*) var1写 (*,'(F0.0)') var1写 (*,'(F0.0,A,F0.0)') 实数(var1), ' + i' , aimag(var1)结束程序 complx1 输出: ( 10.0000000 , 20.0000 ..
发布时间:2022-01-14 09:47:56 其他开发

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

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