调用函数时Fortran无限循环

漩涡状

为什么我陷入无限循环?

PROGRAM tayls
  USE kertoma
  USE tforexp
  IMPLICIT NONE
  INTEGER :: n= 5
  INTEGER :: i
  REAL :: x
  WRITE(*,*) "f1(x)= (e**x-1)/x"
  DO i=1,10
    x= 0.01*i
    WRITE(*,*)x, (taylexp(x,n)-1)/x
  END DO
END PROGRAM tayls

MODULE tforexp
  USE kertoma
  IMPLICIT NONE
    CONTAINS
      FUNCTION taylexp(x,ord)
        REAL :: taylexp, x, sum
        INTEGER :: ord, i
        sum= 1.0
        DO i=1,ord
          sum= sum+ x**i/fact(i)
        END DO
        taylexp= sum
      END FUNCTION taylexp
END MODULE tforexp

MODULE kertoma
  IMPLICIT NONE
CONTAINS
  FUNCTION fact(n)
    INTEGER :: fact,n,y=1
    DO WHILE (n>1)
      y= y*n
      n= n-1
    END DO
    fact = y
  END FUNCTION fact
END MODULE kertoma

无限循环从第一次打印“ f1(x)= ...”开始。因此,我认为首次调用taylexp-function时会进入无限循环,但是我不明白为什么。我认为这与使用公共变量的fortran有关系,但是我不知道如何始终避免这种情况。首先,我尝试仅使用“ 0.01 * i”而不定义x来调用该函数,并且我认为问题可能在于该函数对虚拟索引使用了相同的名称,但显然它不能解决问题。

亚历山大·沃格特

问题是在里面然后函数fact(n)

n= n-1

改变了说法,因此,循环计数器itaylexp在您的代码中i永不超过2我很惊讶编译器没有发出警告(我的也没有),因为在这种情况下可能会发生任何事情。

最好指定intent伪参数的值,以避免将来出现类似问题:

  FUNCTION fact(n)
    integer,intent(in)  :: n
    INTEGER :: fact,nn,y

    y=1 ! Avoid the implicit save and assign variables separately
    nn=n
    DO WHILE (nn>1)
      y= y*nn
      nn= nn-1
    END DO
    fact = y
  END FUNCTION fact

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调用函数时 AngularJS 无限循环调用?

来自分类Dev

在heightForRowAtIndexPath中调用函数时发生无限循环

来自分类Dev

Angular.js无限循环调用函数

来自分类Dev

Angular.js无限循环调用函数

来自分类Dev

React:在useEffect中调用上下文函数时防止无限循环

来自分类Dev

即使在基本情况下调用递归函数时也是无限循环

来自分类Dev

ng-repeat / ng-class调用一个调用$ http的函数时出现无限循环

来自分类Dev

当在 Node.js 中调用我的一个函数时,程序首先调用 emitHookFactory 并陷入无限循环

来自分类Dev

从index.html调用函数,并且该函数无限循环

来自分类Dev

从index.html调用函数,并且该函数无限循环

来自分类Dev

调用“ groupingGroupBy”函数会使jqGrid进入无限循环。更好的建议?

来自分类Dev

为什么在无限循环中调用我的Angular函数?

来自分类Dev

为什么对简单辅助函数的此调用导致无限循环?

来自分类Dev

在地图函数内部调用useState挂钩导致无限循环

来自分类Dev

如何停止用myFunc&调用的无限循环函数

来自分类Dev

TCL-如果脚本进入无限循环,则调用特定函数

来自分类Dev

函数陷入无限循环

来自分类Dev

didFinishPickingMediaWithInfo 函数无限循环

来自分类Dev

SIGSEGV 无限函数循环

来自分类Dev

Angularjs 在触发 $http 函数时进入无限循环

来自分类Dev

循环时使用新值调用函数

来自分类Dev

这是fortran语法中的无限循环吗?

来自分类Dev

递归函数陷入无限循环。即使在返回语句评估之后,控制也会返回到函数调用

来自分类Dev

BFS函数中的无限循环

来自分类Dev

TypeError:循环调用函数时'str'对象不可调用

来自分类Dev

角平移函数被无限调用

来自分类Dev

遍历链表时的无限循环

来自分类Dev

输入字符时无限循环

来自分类Dev

遍历链表时的无限循环

Related 相关文章

  1. 1

    调用函数时 AngularJS 无限循环调用?

  2. 2

    在heightForRowAtIndexPath中调用函数时发生无限循环

  3. 3

    Angular.js无限循环调用函数

  4. 4

    Angular.js无限循环调用函数

  5. 5

    React:在useEffect中调用上下文函数时防止无限循环

  6. 6

    即使在基本情况下调用递归函数时也是无限循环

  7. 7

    ng-repeat / ng-class调用一个调用$ http的函数时出现无限循环

  8. 8

    当在 Node.js 中调用我的一个函数时,程序首先调用 emitHookFactory 并陷入无限循环

  9. 9

    从index.html调用函数,并且该函数无限循环

  10. 10

    从index.html调用函数,并且该函数无限循环

  11. 11

    调用“ groupingGroupBy”函数会使jqGrid进入无限循环。更好的建议?

  12. 12

    为什么在无限循环中调用我的Angular函数?

  13. 13

    为什么对简单辅助函数的此调用导致无限循环?

  14. 14

    在地图函数内部调用useState挂钩导致无限循环

  15. 15

    如何停止用myFunc&调用的无限循环函数

  16. 16

    TCL-如果脚本进入无限循环,则调用特定函数

  17. 17

    函数陷入无限循环

  18. 18

    didFinishPickingMediaWithInfo 函数无限循环

  19. 19

    SIGSEGV 无限函数循环

  20. 20

    Angularjs 在触发 $http 函数时进入无限循环

  21. 21

    循环时使用新值调用函数

  22. 22

    这是fortran语法中的无限循环吗?

  23. 23

    递归函数陷入无限循环。即使在返回语句评估之后,控制也会返回到函数调用

  24. 24

    BFS函数中的无限循环

  25. 25

    TypeError:循环调用函数时'str'对象不可调用

  26. 26

    角平移函数被无限调用

  27. 27

    遍历链表时的无限循环

  28. 28

    输入字符时无限循环

  29. 29

    遍历链表时的无限循环

热门标签

归档