fortran相关内容

“初始"Fortran 派生类型的语句/自动构造函数

我想知道 Fortran 中是否有类似构造函数的机制用于派生类型,这样每当创建类型的实例时,构造函数就会自动调用.我阅读了 this 问题,但我并不满意. 完整性示意图: 模块模组整数 :: n=5类型数组真实的,维度(:),可分配的 :: val包含过程 :: 数组()端型子程序数组(this)分配(这个%val(n))结束子程序端模块 现在,当我创建 type(array) :: i ..
发布时间:2022-01-14 10:11:16 其他开发

使用 gfortran 无法在 Mac 上编译 Fortran 代码

我最近从 SGI、Sun 工作站环境转移到了 Mac.SGI 和 Sun 带有 Fortran 编译器,所以我可能有 100 个小 f77 代码,这些代码是我多年来编写的,用于对模拟数据进行后处理和分析.我希望使用 gfortran 在我的 iMac 上运行这些代码.其中大部分都是非常简单的代码,但我无法编译和执行它们.我尝试从基础开始,并从 gfortran 帮助页面编写 Hello World ..
发布时间:2022-01-14 10:10:36 其他开发

以用户身份在 Linux 中安装 gfortran

我是工作中的 Linux (CentOS 6.6) 服务器的非管理员用户.我通过 Windows 计算机上的终端程序登录.我的问题是 IT 对我升级 GCC/gfortran 感到不舒服,所以我只想从我的个人文件夹中运行它.他们声称最新的 yum(此操作系统版本的 devtoolset-3)将降级他们拥有的一些其他功能.反正它不是最新版本的 GCC. 我已经从 gfortran.com 下载 ..
发布时间:2022-01-14 10:10:20 其他开发

具有动态分配成员的动态分配结构的 MPI 派生数据类型

有一个动态分配的结构体: TYPE 结构体整数 :: N真实*8 :: A实数*8,可分配 :: B(:)结束类型结构 它有一个动态分配的成员:B(:) 当我尝试使用 MPI_TYPE_CREATE_STRUCT 为此类 Struct 创建派生数据类型时,不同的 CPU 会创建不一致的派生数据类型.这是因为相对于第一个成员 Struct%N,Struct%B(:) 可能位于不同的内存位置 ..
发布时间:2022-01-14 10:10:11 其他开发

Fortran:读取未知大小的文件时如何分配数组?

我对 Fortran 的典型使用始于读取一个未知大小(通常为 5-100MB)的文件.我目前的数组分配方法涉及两次读取文件.首先确定问题的大小(分配数组),然后第二次将数据读入这些数组. 是否有更好的方法来确定大小/数组分配?我刚刚在另一篇似乎更容易的文章中阅读了有关自动数组分配(下面的示例)的内容. array = [array,new_data] 所有选项及其优缺点是什么? 解 ..
发布时间:2022-01-14 10:09:52 其他开发

ISO_C_BINDING 从 Fortran 调用 C 例程(使用双精度和数组)

几周前我发布了一个类似的问题(iso_c_binding 使用来自 Fortran 数组的指针调用 C 例程),我找到了解决问题的方法.现在我修改了一些东西,我又遇到了一些问题.下面是我的问题的简化版本. 我在 fortran 中有一个主程序: 程序 main_dummy!编译:gcc -c dummy_trace.c!f95 光线追踪.f90 main_dummy.f90 dummy_t ..
发布时间:2022-01-14 10:09:42 其他开发

可以从 C 或 Fortran 读取 .Rdata 文件格式吗?

我正在编写一些关于 C 的 R 扩展(要从 R 调用的 C 函数). 我的代码需要同时使用 2 个不同的数据集计算统计数据,并且我需要使用所有可能的配对组合来执行此操作.然后,我需要所有这些统计数据(非常大的数组)来继续 C 端的计算.这些文件非常大,通常约为 40GB,这就是我的问题. 要在 R 调用的 C 上执行此操作,首先我需要加载 R 中的所有数据集以将它们传递给 C 函数调用 ..
发布时间:2022-01-14 10:09:32 其他开发

通过时调整多维数组的大小

本文中所有对数组的引用都是多维的. 我知道当一个数组被传递给一个子程序时,它可以被声明为不同的维度/大小作为调用者. 作为一个具体的例子,BMAIN 在主程序中用 DIMENSION(6,5) 声明.BMAIN 作为 BSUB 传递给子程序,声明为: INTEGER, INTENT(IN) :: BSUB(3,2,0:4) 问题: BSUB 中的条目是否只是从 SBMAIN 一个 ..
发布时间:2022-01-14 10:09:26 其他开发

对大型数组正确使用 FORTRAN INTENT()

我正在尝试找出使用 FORTRAN 子例程处理大型数据数组的最佳方法.我有一个适用于大型 3,4 或 5 维数组的代码.我正在使用许多子例程,并且想知道通过引用调用这些数组的最佳方法是什么,同时又要保证它们不被写入(显然,输出数组除外). 我已阅读 [this related intent() question]:fortran 意图 (in,out,inout) 之间的显式区别是什么? 我 ..
发布时间:2022-01-14 10:09:19 其他开发

matmul 内在函数的 Fortran 数组排名

以下链接 https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gfortran/MATMUL.html 明确指出 gfortran 期望输入到 matmul 的矩阵的等级为 1 或 2.但是以下代码段无法编译: 程序草稿真实(种类=8)::A(10)=(/0,1,2,3,4,5,6,7,8,9/)真实(种类=8)::B(10)=(/0,1,2,3,4,5,6,7,8 ..
发布时间:2022-01-14 10:09:12 其他开发

模块和多个文件的 GFortran 和 CodeBlocks 问题

我正在使用 GFortran 和 CodeBlocks,但我遇到了关于模块和多个文件的问题.我不断收到此错误: 致命错误:无法打开模块文件“mesh.mod"以在 (1) 处读取:没有这样的文件或目录 出于某种原因,GFortran 没有构建“mesh.mod"文件.当我将所有代码放在一个 .f90 文件中时,不会出现此问题. 下面是发生此错误的代码示例. main.f90 模块 ..
发布时间:2022-01-14 10:09:06 其他开发

ISO_FORTRAN_ENV 或 -fdefault-real-8 将实数提升为双精度

我一直在使用 gfortran 的 -fdefault-real-8 选项来自动提升在程序到双精度,连同任何常数,例如 1.23.如果我想切换回单精度,我只需要删除该选项并重新编译,而无需更改源代码中的单个字符. 我开始使用 ISO_FORTRAN_ENV 模块,因为它允许我使用 INPUT|OUTPUT|ERROR_UNIT 等常量,以及 IOSTAT_END 和 IOSTAT_EOR 和 ..
发布时间:2022-01-14 10:08:57 其他开发

在 Fortran 中使用 ZGETRI 的逆矩阵错误

我正在尝试使用 ZGETRI 计算复杂矩阵的逆矩阵,但是即使它执行没有错误(info = 0),它没有给我正确的逆矩阵,我绝对有不知道错误来自哪里. 程序求解线性隐式无整数 :: i,j,info,lwork整数,维度(3)::ipiv复杂(16),维度(3,3)::C,Cinv,M,LU复杂(16),可分配 :: 工作(:)信息=0lwork=100分配(工作(lwork))ipiv=0工作= ..
发布时间:2022-01-14 10:08:49 其他开发

GAMMA 的结果低于同类

我想使用以下程序计算 gamma(-170.1): 程序算术!程序进行计算实数(8) :: xx = 伽马(-170.1)打印 *, x结束程序 但我得到了错误: test.f95:4.10: x = GAMMA(-170.1)1错误:GAMMA 的结果在 (1) 处下溢 当我用 gfortran 编译时.根据 Maple gamma(-170.1) = 5.19196320 ..
发布时间:2022-01-14 10:08:39 其他开发

numpy.f2py 从 fortran 的子程序返回时发生错误

我使 hoge 尽可能简单,但仍然会出现错误.请告诉我有什么问题. 这是我的 Fortran 子程序代码. 子程序 hoge(d)复杂(种类(0d0)),意图(出)::d(5,10,15)!5 10 15 没有特殊含义..!这两行有效..!整数,参数 :: dp = kind(0d0)!复杂(dp),意图(out)::d(5,10,15)做我=1,15做 j=1,10做 k=1,5d(k, ..
发布时间:2022-01-14 10:08:31 Python

为 LF 编译器识别此代码的 Fortran 版本

我是 Fortran 新手.我得到了一个应该在 Fortran 90 中的文件,但编写为使用 Lahey Fujitsu 编译器进行编译(稀疏文档指出它应该使用 lf95 filename.f -out compiled_name @imsllf95.cmd).但是,有些行用 c 注释,据我了解,这是在 Fortran 77 中注释的方式.此外,矩阵声明为 REAL*8, DIMENSION(23 ..
发布时间:2022-01-14 10:08:03 其他开发

“数据INT/'字符串'/"使用 gfortran 编译时的问题

我有一些旧的(~1995 年)遗留 fortran 代码,这些代码是用 g77 编译器编译的,但在 gfortran 上失败了.问题出在以下几行(不兼容的类型转换,字符到整数): 整数 CKYAN数据 CKYAN/'KYAN'/ 变量 CKYAN 仅作为触发器使用一次: IF(IWVTX.EQ.CKYAN)THEN调用 FDCVERTEXSWTCHTOKYAN()万一 整数 IWVTX 从 ..
发布时间:2022-01-14 10:07:56 其他开发

在 fortran 中定义长参数向量的巧妙方法

好吧,我现在遇到了这个问题.我有一组(大量)参数,我想将它们组织成一个向量. 当然,我可以这样做: real, dimension(64):: CONST常数(1) = 2.4常数(2) = 1.4...常数(n) = 常数(1)*常数(14)**常数(7)...常数(64) = ABS(常数(18)) (请注意,有些常量与其他常量相关). 但在这种情况下,我不会在变量中拥有 pa ..
发布时间:2022-01-14 10:07:48 其他开发