fortran95相关内容

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

包含的子例程中的变量和函数的范围规则

我无法理解为什么在子例程中声明的变量 (i) 会在包含的子例程中看到,但对于函数 (fie) 导致编译错误.我搜索了一个答案,并试图看看我是否可以在 Fortran 95 标准中找到一些东西,但徒劳无功. 我写了一个小例子程序: 程序 pgm打电话给结尾子程序a隐式无整数 :: 我双精度 :: fie我 = 7呼叫 b!write(*,*) fie(9)包含子程序 b双精度 :: x!双精 ..
发布时间:2022-01-14 10:15:13 其他开发

如何在 fortran 90/95 中使用内部类型进行一些通用编程

我想编写一些适用于不同类型的程序.我打算使用 here 和 这里.我这里举一个简单的例子. !-------------------------------------------------------------- !模块数据类型输入值整数 :: v端型输入右值实数(8) :: v端型结束模块数据类型!--------------------------------------------- ..
发布时间:2022-01-14 10:03:08 其他开发

正确使用 PURE 关键字 Fortran

我目前正在研究 Fortran,我遇到了 pure 关键字指定没有副作用的函数/子例程. 我有一本书,Fortran 90/95,作者是 S Chapman,它介绍了 pure 关键字,但奇怪的是没有提供“良好的编码实践"用途. 我想知道在他们的程序中应该如何自由地使用这个关键字.环顾四周,对我来说很明显大多数没有副作用的程序都没有必要包含 pure 关键字. 那么它最好用在哪里 ..
发布时间:2022-01-14 10:02:52 其他开发

Fortran:最大和最小整数

Fortran 对我来说是全新的,有人可以帮我解决以下问题吗?我想在我的电脑上找出所有整数种类数以及每个种类数的最大值和最小值.我的代码如下: 程序类型隐式无整数 :: n=1整数 :: integer_range =1做 while(integer_range/= -1)print*, "kind_number", selected_int_kind(n)通话响铃(integer_range) ..
发布时间:2022-01-14 09:46:01 其他开发

在 fortran 中获取免费单元号

我需要开发一个可以打开文件并解析内容的库.单元号,由于fortran IO风格,必须由我来决定,但我不知道客户端代码中还有哪些单元是开放的.有没有像 give_me_any_unit_number_that_is_free() 这样的标准函数? 解决方案 在 fortran 2008 中,有一个可以打开的 newunit 子句供您使用 整数 :: myunit..打开(newunit= ..
发布时间:2022-01-14 09:45:55 其他开发

Fortran forall 限制

我尝试使用 forall 来分配动态数组,但 gfortran 不喜欢这样.我还发现 write 语句在 forall 块中是被禁止的,我怀疑 read 语句也是如此. forall 块中不允许有哪些其他功能/操作? 除了在顺序无关紧要时有时替换 do 循环之外,这个构造究竟是做什么用的?我认为它会使编码更加清晰和优雅,尤其是在操作顺序不重要时显示,但是对于可以在 forall 中完成 ..
发布时间:2022-01-14 09:44:32 其他开发

在 Fortran 90/95 中是否有检查 Infinite 和 NaN 的标准方法?

我一直在尝试找到一种符合标准的方法来检查 Fortran 90/95 中的 Infinite 和 NaN 值,但事实证明它比我想象的要难. 我尝试使用 IEEE 754 中描述的二进制表示手动创建 Inf 和 NaN 变量,但我发现没有这样的功能. 我知道 Fortran 2003 中带有 ieee_is_nan() 和 ieee_is_finite() 内部函数的内部 ieee_arit ..
发布时间:2022-01-14 09:38:34 其他开发

在 Fortran 中编写多个输出文件

亲爱的,我正在编写一个代码,它将输出写入多个名为 1.dat、2.dat 的文件中......这是我的代码,但它给出了一些不寻常的输出.你能告诉我我的代码有什么问题吗?基本上我无法获得正确的语法来打开多个文件,在它们上写入并在打开下一个文件之前关闭.谢谢你.我的代码: 隐式双精度 (a-h,o-z),integer(i-n)尺寸 b(3300,78805),bb(78805)字符*70,fn字符 ..
发布时间:2022-01-14 09:35:53 其他开发

Fortran 中结果变量的用途是什么?

在 Fortran 中,有两种标准方法可以从函数返回结果.第一种是将函数的返回值赋给函数名. 函数 foo()整数 :: foo富 = 10结束函数 foo 在 Fortran 90 中标准化的第二种形式是通过“结果"变量. 函数 foo 结果(res)整数 :: res水库 = 10结束函数 foo 调用任一形式的函数都会返回值 10.我的问题是,Fortran 90 委员会引入结果变量 ..
发布时间:2022-01-14 09:30:59 其他开发

行被截断,参数列表中的语法错误

当我编译下面的程序时,在 call Coor_Trans 命令行中出现错误和警告 警告:行被截断 错误:参数列表中的语法错误 我编译了好几次程序,但还是不行.可能我的调用命令有问题. 程序 3D隐式无整数 :: i,j,k整数,参数 :: FN=2,FML=5,FMH=5整数,参数 :: NBE=FN*FML*FMH实数,参数 :: pi = 4*atan(1.0)真实(种类= ..
发布时间:2022-01-14 09:27:56 其他开发

模块何时超出 Fortran 90/95 的范围?

我的预期用途是 程序主使用模组外部子呼叫子结束程序主子程序子!这里的代码调用 mod 中的子程序结束子程序子 具体来说,module mod 会在subroutine sub 的范围内吗?另外,我有兴趣更广泛地了解模块何时处于/超出范围.如果重要的话,我正在使用 gfortran 4.6.1. 解决方案 它不在子程序 sub 的范围内,因为 sub 不能调用程序或使用来自 mod 的变 ..
发布时间:2021-12-29 14:07:14 其他开发

Fortran 函数返回意外的类型和值

我正在从事一个需要在 Fortran 中实现一些数值方法的项目.为此,我需要编写一些递归函数.这是我的代码. !!文件:main.F95!递归函数积分(n) 结果(rv)隐式无双精度 :: rv整数,意图(输入):: n双精度,参数::minusone = -1.0如果 (n == 1) 那么rv = 10 !exp(minusone)返回别的rv = 1 - (n * 积分(n - 1))返回 ..
发布时间:2021-12-16 08:57:01 其他开发

Fortran 90 模块的神秘本质

Fortran 90 模块是渐逝的生物.我使用了一段时间的(单一)模块并取得了一些成功(使用 Intel Visual Fortran 和 Visual Studio 2010 编译).然后我写了另一个模块并尝试在另一个函数中使用它,然后收到此错误: 错误 #7002:打开编译的模块文件时出错.检查包含路径. 所以我删除了违规模块.但是现在我在尝试访问我的原始模块后收到同样的错误! 我 ..

用写打印时如何去除前导空间?

假设我有以下代码 程序fortran打开(900,FILE ='SOMETHING')写(900,*)'21'结束程序fortran 文件格式为 21 ,即数字前有一个空格.如何摆脱这个空间? 解决方案 您可以将其写为字符串: PROGRAM fortranOPEN(900,FILE ='SOMETHING')写(900,'(a)')'21'结束程序FORTRAN > ..
发布时间:2021-05-09 19:17:05 其他开发

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

我在Ubuntu 15.04系统上安装了gfortran.在编译Fortran代码时,DO循环要求仅采用整数参数,而不是实数值或变量.这包括循环变量和步骤表达式.为什么它也不能采用真实的价值? 以下是摘自此处的程序,该练习是本节的嵌套执行循环. 程序xytab隐式无!为x的值从1到2构造一个z = x/y的表,并且!y从1到4,步长为.5实数:: x,y,z打印*,'x y z'做x = ..
发布时间:2021-05-09 19:14:56 其他开发

如何在Fortran中实现数组结构而不是结构数组?

我正在用Fortran编写有关CFD主题的代码.与计算机科学领域的一些朋友讨论后,他们告诉我,如果在其代码上实施数组结构(SoA)而不是结构数组(AoS),则可以缩短计算时间. 我已经看到许多有关此主题的实现的示例,但大多数都是C或C ++的. (例如 https://software.intel.com/zh-cn/articles/how-to-manipulate-data-struc ..
发布时间:2020-11-13 22:29:03 其他开发

列出Fortran中目录的内容

如何在Fortran 95中获取目录的内容? 解决方案 如果我们将所有文件都保存在"inFiles"文件夹中,请先查找其中的文件数量,然后将其名称读入数组,检查出来: real :: r integer :: i,reason,NstationFiles,iStation character(LEN=100), dimension(:), allocatable :: s ..
发布时间:2020-11-10 07:01:31 其他开发

每次以不同的函数作为参数多次调用子例程

我是个新手,不知道该术语,所以我无法在网络上找到答案. 在编程中,我不止一次想要做这样的事情. A和B是子例程,c和d是函数. A和B各自在其中多次调用一个函数. call A(c(x)) call A(d(x)) call B(c(x)) call B(d(x)) 此结构不起作用.有人告诉我,至少在这种情况下,Fortran不支持函数别名. (大多数涉及“别名"的搜索结果都 ..
发布时间:2020-11-10 06:57:46 其他开发