fortran90相关内容

对于三位指数,Fortran 在输出中删除“E"

我刚从 Python 进入 Fortran90,老实说,到目前为止,最难的部分是习惯于编写输出的格式化代码.我遇到了一个格式问题,我似乎无法通过谷歌搜索或解决问题,我已经在这个网站上搜索了答案,但没有发现任何有用的信息. 我正在计算并将输出写入文件.我正在使用以下代码格式化计算结果 写(文件,('13ES11.2)')卡帕 有些值非常小,所以我最终得到三位数的负值.所以应该是这样 ..
发布时间:2022-01-15 10:35:47 其他开发

如何在fortran中阻止评论?

我见过 /* 块注释 */ 用于 C++ 中的块注释.我知道我可以使用 ! 或 c 进行行注释,但是在 Fortran 中是否有任何用于块注释的选项? 解决方案 不,块注释这个奇怪的概念对 Fortran 来说是陌生的.您的编辑器或开发环境可能会提供一种一次性注释一行代码的方法. ..
发布时间:2022-01-14 10:23:29 其他开发

Fortran DO 循环,警告仅使用整数

我在我的 Ubuntu 15.04 系统上安装了 gfortran.在编译 Fortran 代码时,DO 循环要求只接受整数参数,而不是实数值或变量.这包括循环变量和步骤表达式.为什么它也不能取真实值? 下面的程序摘自这里,小节的练习3.5 嵌套的do循环. 程序 xytab隐式无! 为从 1 到 2 的 x 值构建一个 z=x/y 表,并且!y 从 1 到 4,步长为 0.5实数 :: ..
发布时间:2022-01-14 10:22:11 其他开发

Fortran 指针函数:为什么此代码的行为取决于函数调用的顺序?

上下文 下面发布的玩具 Fortran 代码调用了两个指针函数.也就是说,两个函数都返回一个指针.事实上,它们都是数组指针.它们都试图做同样的事情,即返回一个整数数组指针,该指针引用一个具有三个元素 1、2 和 3 的整数数组.第一个函数使用指针赋值运算符 (=>) 将函数指针指向保存数据的可分配数组.第二个函数通过指针直接分配一块动态内存,用于存储数据.调用程序只打印返回数组的元素. ..
发布时间:2022-01-14 10:18:42 其他开发

如何将 gfortran 用于带有 .for 文件扩展名的 Fortran 90?

我在 Ubuntu (16.04) 中安装 Gfortran 后指向 f95.我在 gfortran 手册中看到可以为 f95 和转发提供 -std 选项.我从手册中看到的默认 -std 选项值是“gnu".如果我将 f95 用于 f90 代码,我不确定编译内部的含义. 如何将 gfortran 用于扩展名为 .for 的 Fortran 90 文件?我不想为 Fortran 90 代码使用 ..
发布时间:2022-01-14 10:18:15 其他开发

文件位置的含义=“../"//文件名

文件位置 = "../"//文件名PRINT *,“试图打开",TRIM(文件名)打开(fh1,文件=文件位置,状态='旧',IOSTAT = io) 谁能告诉我第一行的“../"//是什么意思? 解决方案 字符串 ../ 是 Linux 的 当前工作目录的父目录.这在 Windows 机器上可能有效,也可能无效.两个字 // 表示用于字符串连接的 Fortran 运算符.所以 ..
发布时间:2022-01-14 10:17:20 其他开发

使用 Fortran 减少 Openmp 数组

我正在尝试并行化我编写的代码.我在对数组执行缩减时遇到问题.对于小型数组,这一切似乎都可以正常工作,但是当数组大小超过某个点时,我要么得到堆栈溢出错误,要么崩溃. 我尝试在编译时使用/F 增加堆栈大小,我在 Windows 上使用 ifort,我还尝试将 set KMP_STACKSIZE=xxx 传递给英特尔特定的堆栈大小减免.这有时会有所帮助并允许代码在我的循环中进一步前进,但最终并不能 ..
发布时间:2022-01-14 10:17:05 其他开发

我如何让 gfortran 或 ifort 告诉我它何时将 RE​​AL(4) 隐式提升为 REAL(8)?

我的任务是更改 HPC 应用程序部分的精度,记住它严重依赖自动矢量化.因此,编译器在发生任何类型的浮点转换时通知我很有用(因为这可能会对性能产生严重影响). -Wconversion 标志听起来应该适合我的需要: -Wconversion 警告不同类型之间的隐式转换. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gfortran/War ..
发布时间:2022-01-14 10:15:57 其他开发

使用常量参数调用函数时的段错误

我用 Fortran 编写了这个非常简单的代码: 程序苏隐式无真正的跑3写(*,*)运行3(0)结束程序 sureal*8 函数 ran3(iseed)隐式无整数iseed=iseed*153941+1跑3=浮点数(iseed)*2.328+0.5结束函数ran3 我在编译它时没有问题,但是当我执行代码时,我收到了这条消息: 程序收到信号 SIGSEGV:分段错误 - 无效的内存引用.此错误 ..
发布时间:2022-01-14 10:15:23 其他开发

以数组元素为参数的子程序

在我的程序子例程 stlstp 中,将 work(2,1) 作为参数传递给 stlfts(...) 子例程.work(2,1) 将是该索引处的双值,但子程序如何将其转换为一维数组 x(n)? 当我在 stlfts(...) 子程序中打印 x 值时,它正在打印 n 大小的元素,例如: STLFTS....X,,, 0.0000000000000000 1.4964418382246345E ..
发布时间:2022-01-14 10:14:49 其他开发

Fortran 语句函数的使用

我读到了语句函数,比如例子: C(F) = 5.0*(F - 32.0)/9.0 这不就是: C = 5.0*(F - 32.0)/9.0 即没有功能部分,或者我错过了什么? 如果不相同,什么时候需要使用语句函数? 解决方案 C = 5.0*(F - 32.0)/9.0 只是赋值给一个变量C,它可以在任何地方,每次程序流到达它时都会计算一次. C(F) = 5.0*(F ..
发布时间:2022-01-14 10:14:11 其他开发

从其他数组继承大小的简洁表示法?

在我的代码中,我有一个子例程,它接受一个 5 阶数组作为参数并使用一个局部变量,这是一个共享前 4 个索引的 4 阶数组. 我正在尝试找到一种更简洁的方式来表达尺寸声明 子程序 mysub(动量)复杂,意图(in)::动量(:,:,:,:,:)复杂的 :: prefactor( &&大小(动量,1),大小(动量,2),大小(动量,4)和&大小(动量,5))...结束子程序 mysub 冗 ..
发布时间:2022-01-14 10:13:55 其他开发

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

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

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

Fortran 90 如何编写不同长度的很长的输出行

我花了几个小时在互联网上搜寻解决此问题的方法,但找不到任何东西.我一直在尝试将未格式化的输出写入 CSV 输出文件,其中包含多行不同长度和多种数据类型的非常长的行.我正在尝试首先编写一个长标题,指示将在下面写入的变量,用逗号分隔.然后在下面的行中,我正在编写标题中指定的值.然而,通过顺序访问,长输出行被分成多个较短的行,这不是我所希望的.我尝试在 open 语句中使用 recl 控制行长,但是在输 ..
发布时间:2022-01-14 10:07:23 其他开发