在 Fortran 中确定循环后循环控制变量的值

2024-04-10

我有以下程序:

program example
implicit none
integer::i, x1
real::x(10)=0
do i=10,1,-2
  x(10-i)=2*i+1
enddo
x1=i*2-1
end program example

我的问题是确定x1但由于变量i从未输入或指定,Fortran 如何确定 的值i用于计算x1?


“因为变量i从未输入或指定”

这个假设是错误的。在循环内部i采用精确定义的值 10、8、6、4、2。

循环结束后,Fortran 标准指定i应为循环计数器的下一个值,就好像循环仍在继续一样,因此i0.

所以价值x1将是 0*2 - 1 = -1 并且可以通过添加轻松验证print *, x1在程序的最后。


但正如 francescalus 发现的那样,您的程序存在另一个问题。第一次迭代时的值i是 10 并且您正在访问x(10-i)这是x(0)。该元素不存在,x仅包含来自的元素x(1) to x(10)所以访问x(0)是非法的,并且该点之后整个程序的行为是未定义的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Fortran 中确定循环后循环控制变量的值 的相关文章

  • 在 Eclipse-Photran 中为 Windows 上的 fortran 编译器配置 LAPACK

    Update 感谢弗拉基米尔对图书馆的有用见解 我采取了另一种方法 首先在 ubuntu 中开发 这比使用 Eclipse Cygwin 容易得多 现在我尝试移植到 Windows 这相当不错 但是我对此也有一些疑问 发布在这里 将 for
  • 如何从 R 调用 Fortran 程序

    我对 Fortran 完全陌生 但对 R 很熟悉 我得到了一个巨大的 Fortran 程序 其中包含大约 30 个子例程和大约 15 个函数以及许多其他代码行 有人告诉我需要从R中调用Fortran程序 我一直在网上寻找方法 在 R 和 F
  • ipython 和 ipython 笔记本之间奇怪的准确度差异,然后使用 fortran 模块和 f2py

    当使用用 f2py 编译的 fortran 模块时 我遇到了 ipython 和 ipython 笔记本之间奇怪的准确性差异 我的 Fortran 模块是 subroutine tt string fmt n num out implici
  • Intel Fortran 错误 #6633:实际参数的类型与虚拟参数的类型不同

    对于可能在这里提出这样一个基本问题 我深表歉意 我是使用英特尔 Fortran 编程的新手 所以我认为在这种情况下 我不知道有一些东西丢失或组织错误 如果有人能在这方面帮助我 我将不胜感激 问题是我在编译代码时看到以下错误 而我相信我已经声
  • fortran 中的多重定义链接错误(ifort - gfortran)

    嗯 我有这个问题 描述很长 但我认为很容易解决 我有三个文件 nrtype f90 它有一些愚蠢的定义 但它被以下文件使用 module nrtype integer parameter I4B SELECTED INT KIND 9 in
  • 在 Fortran 95 中按值传递参数

    如何在调用函数参数时保留其值而不创建新变量 这就是 如何按值传递参数 在此示例代码中 program what implicit none integer a b c d a 1 b 2 c 3 print a b c d f val a
  • Fortran 90 - 尝试读取文件末尾之后的内容

    我在 Fortran 90 中遇到读取问题 我尝试读取 31488 行数据 我正在使用 Portland Group Fortran 90 编译器 我的错误信息是这样的 PGFIO F 217 列表定向读取 单元 14 尝试读取文件末尾 文
  • 在 fortran 中生成序列数组

    Fortran中是否有一个内在函数可以生成一个包含从a到b的数字序列的数组 类似于python的range gt gt gt range 1 5 1 2 3 4 gt gt gt range 6 10 6 7 8 9 不 没有 但是 您可以
  • LAPACK 反演例程奇怪地混合了所有变量

    我正在使用 Fortran 进行编程 并尝试使用 Lapack 包中的 DGETRI 矩阵逆变器 http www netlib org lapack explore html df da4 dgetri 8f html http www
  • fortran 77 到 fortran 90 的转换器软件 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有 fortran 77 编码 但我想转换为 fortran 90 在哪里可以下载转换器软件 这是我帮
  • 如何为 Fortran 95+ 模块库提供显式接口,并隐藏实现

    我正在使用 gfortran 的 95 扩展 我有一个实用程序模块库 我想链接到其他项目 即作为库或共享对象 dll 但是 在 Fortran 中 我不明白如何在不维护模块接口的两个副本的情况下将接口与 Fortran 中的实现分离 在 C
  • C++/Fortran 中贝塞尔函数的集成 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在 Fortran 或 和 C 中对包含贝塞尔函数的方程进行从 0 到 无穷大 的数值积分 我在matlab中做了 但对于较大的输入和特
  • 将数据写入列中的文件 (Fortran)

    我需要在 Fortran 90 中写入一些数据到文件中 我应该如何使用WRITE input将值分组为columns WRITE总是放一个new line每次通话后 这就是问题所在 代码示例 open unit 4 file generat
  • 编译错误:无法打开模块文件

    我有这个代码 PROGRAM xfit driver for routine fit USE nrtype USE nrutil USE nr USE ran state ONLY ran seed IMPLICIT NONE INTEGE
  • Fortran 2003,选择类型以区分“实数”和“实数数组”

    我的问题是 可以select type用块来区分real realInput from real realArrayInput 很清楚如何select type可以用于区分派生类型 但对我来说不太清楚它如何 或是否 可以用于内在类型 在 M
  • 如何用好Fortran语句标签?

    我正在开发一个用 Fortran 95 编写的模型 我对此完全陌生 语句标签的概念似乎很奇怪 到目前为止我只找到了标签可以由作者任意决定的解释 通常以 10 为增量 除了更容易地找出语句的结尾位置之外 这些标签还有其他实际用途吗 以及关于如
  • Fortran 函数:指针作为实际参数,目标作为形式

    我正在尝试破译 Fortran 代码 它将指向函数的指针作为实际参数传递 而形式参数则是目标 它在主程序中定义并分配一个 globalDATA 类型的指针 然后调用一个传递该指针的函数 module dataGLOBAL type glob
  • Fortran PURE 函数可以使用全局参数吗?

    在我看来 Fortran 中所谓的纯函数对于那些使用函数式编程的人来说似乎不够纯粹 这是我的问题 假设我有以下代码 MODULE basics IMPLICIT NONE INTEGER PARAMETER dp kind 1 0d0 RE
  • 如何在 conda 中静音或抑制 gfortran (或 clang?)后端?

    我一直致力于构建一个非常特殊的 conda 环境 专为python and R与串扰使用rpy2 我想出的方法可以安装正确的R包如下 install main environment sh now date T echo Start Tim
  • Fortran 在 gdb 中打印可分配数组

    我正在向开源科学代码添加一些功能 我使用很多可分配项 但在正确打印它们时遇到一些问题 例如 我声明并分配 然后使用 real dp allocatable psi n phi some other stuff here allocate p

随机推荐