intel-fortran相关内容

用gfortran而不是ifort编译

我有一个针对ifort进行了优化的程序,但是我想改用gfortran编译它。以下是提供的标志: FCFLAGS= -Vaxlib -CB -mcmodel=large -O -openmp -DOMP 我已经查看了手册条目,试图找到相应的选项,但我找不到任何东西(除了我已经知道的-Open MP for-fOpenMP)。 推荐答案 这是按选项列出的选项等价表: if ..
发布时间:2022-08-26 17:41:26 其他开发

定义赋值和内在赋值(使用nagfor)之间存在冲突?

本征多态赋值是某些Fortran编译器(例如ifort 18、nagfor 6.2)的最新功能,在旧版本(例如ifort 17、gfortran 6.3)中不提供。适用于这些旧版本的一个众所周知的解决方案是使用以下示例中定义的赋值(取自《齐弗斯与史莱特姆》一书并改编自该书): module deftypes type, abstract :: shape_t int ..
发布时间:2022-08-26 17:37:39 其他开发

英特尔堆数组的gfortran标志[大小]

intel ifort's 对应的gfortran标志是什么 -heap-arrays [size] 推荐答案 这是一个旧问题,但接受的答案并不完全正确,我希望为像我这样遇到帖子寻找答案的未来用户添加上下文。 我相信英特尔的ifort和GCC的gfortran都有一定的字节限制,超过该限制的数组不会分配到堆栈上,而是在静态内存中。 Intel:-heap-arrays [ ..
发布时间:2022-08-26 17:24:12 其他开发

Gfortran线路长度限制

有没有办法在gfortran编译器中禁用行长度限制?我正在从ifort移植到gfortran,我想知道是否有一种简单的方法来做到这一点,而不需要遍历代码,并在需要的任何地方手动引入行继续。 推荐答案 调查选项 -ffixed-line-length -ffree-line-length GCC手册: -ffixed-line-length-n 设置列,在该列之后,将忽 ..
发布时间:2022-08-26 16:37:31 其他开发

编译函数和公共块具有相同名称的不同文件

我当前正在尝试在另一个第三方程序(程序B)中实现一些第三方代码(程序A)。不幸的是,似乎有一些COMMON块和子例程在两个代码之间共享名称。编译器没有检测到这一点(我怀疑这是因为编译过程涉及许多不同的文件并创建一个共享对象),但是当使用非常通用的名称(例如BASIS、JACOBIAN)访问某些公共块/子例程时,程序会崩溃,重命名它们可以缓解问题。但是,由于程序A的大小,重命名程序A中的所有公共块和 ..
发布时间:2022-03-01 16:24:58 其他开发

Fortran 2003 中的内在赋值和多态性

我尝试向这个模块,由 @VladimirF 编写,在 Fortran 2003 中实现了一个通用链表.我希望能够输出为方便起见,将列表的内容作为一个数组,所以我在一个名为 lists.f90 的文件中的列表模块中添加了以下过程: 子程序 list_as_array(self, arrayOut)类(列表),意图(输入)::自我类(*),维度(1:self%length),意图(out)::ar ..
发布时间:2022-01-24 16:43:35 其他开发

如何将一个巨大的矩阵逐行写入文件(fortran 90)

我想将包含大量数据的矩阵逐行写入文件.例如,我有一个 100*100 的矩阵,我想在文件中以 100*100 的形式拥有它.但是,它不起作用.以下是我的代码和一些描述.N 和 M 是大约数百个整数.RECL 是我设置文件的预期长度,但这里似乎这个命令不起作用.当 N 设置为 99 时,输出为 198 行M 设置为 200. Vec 是双精度复数矩阵.如何输出 Vec 的值并保持其原始格式 N*M? ..
发布时间:2022-01-14 10:22:28 其他开发

关于在 C 中通过 iso_c_binding 使用 Fortran 函数

我花了几天时间学习 Fortran 的 C 互操作性,以便从 C 调用 Fortran 函数 DLL.在这里我找到了这个链接:在 C 中使用 Fortran 代码 我尝试像这样创建一个 Fortran DLL,而我的编译器是 Intel Fortran 编译器: 模块集成隐式无包含函数积分(func,a,b,intsteps)结果(积分)!DEC$ 属性 DLLEXPORT :: 集成界面 ..

带有指针的 Fortran 函数导致正常赋值

在对此处找到的问题进行了一些讨论后 在 Fortran 中正确执行 Final 例程我认为了解具有指针结果的函数何时适合与普通或指针赋值一起使用会很有用.例如,给定这个简单的函数 函数 pointer_result(this)隐式无type(test_type),intent(in) 指针 :: this类型(测试类型),指针::pointer_result分配(指针结果)结束函数 我通常会 ..
发布时间:2022-01-14 10:16:28 其他开发

使用 Fortran 获取文件大小(以字节为单位)的好方法是什么?

有没有办法使用 Intel Fortran 在 Fortran 中获取文件大小? 我使用的是 stat,它在 gfortran 中效果很好,但在 ifort 中不可用. 解决方案 INQUIRE(FILE=filename, SIZE=file_size) filename 是一个字符标量,file_size 是一个整数标量,它将使用文件存储单元中的文件大小定义(ifort 上的“ ..
发布时间:2022-01-14 10:11:40 其他开发

在 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 其他开发

对变量的模糊引用

所以我正在做 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 其他开发

纯函数中的指针

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

Fortran 子例程返回错误值

嘿,我正在开发一个 fortran 程序,但遇到了一个奇怪的问题.当我尝试在调用特定子例程之前直接输出数组的一些值时,我得到了正确的值.然后我尝试在启动子程序时输出相同数组的一些值,它们为 0.我最终在子程序之后输出数组的值,并且这些值恢复到预期值.谁能帮我理解为什么?我的代码如下: 首先,在主函数中调用子程序,我想在写语句中输出值: if (iter .eq. 5) thenwrite( ..
发布时间:2022-01-14 09:32:15 其他开发

可分配数组值函数.gfortran 与 ifort

为什么这里的 ifort 和 gfortran 有不同的行为?使用 ifort 编译返回 false,使用 gfortran 返回 true.我之前在自己的代码中遇到过这个问题,并决定改用子例程,但最近的一个问题让我质疑这种行为. 函数 allocateArray(size)整数,可分配,维度(:) :: allocateArray整数大小分配(分配数组(大小))结束函数分配数组 从主程序 ..
发布时间:2022-01-14 09:28:54 其他开发