gpt4 book ai didi

fortran - 如何根据用户输入变量(fortran90)执行多条语句?

转载 作者:行者123 更新时间:2023-12-01 15:37:47 26 4
gpt4 key购买 nike

我正在编写一个 Fortran90 子例程,但语言对于这个问题的目的并不重要。如果更方便,请随时使用伪代码提供答案。

我有一些语句(或语句组)要根据输入参数执行。设输入变量为 x,我们称这些语句为 A、B、C、...、N。这些语句没有足够的共同属性以进行组合,因此应单独执行。

条件是:

if ( x .eq. 1 ) then
! execute A
endif
if ( x .eq. 2 ) then
! execute A
! execute B
if ( x .eq. 3 ) then
! execute A
! execute B
! execute C
endif
.
.
.

等等……

(注意所有的!execute语句都是数学计算和变量赋值。什么都不打印,什么函数都不调用等等...)

我试图简化代码将其变成:

if ( x .ge. 1 ) then
! execute A
endif
if ( x .ge. 2 ) then
! execute B
endif
if ( x .ge. 3 ) then
! execute C
endif
.
.
.

对于较大的 x 值,这仍然是太多的编码工作。我知道我必须对所有 execute 语句进行编码(而且我已经这样做了),但我希望仍然有一种更快的方法来只运行用户指定的数字而不必输入一百多个 if 语句。对此有什么想法吗?

最佳答案

哦,computed go to 不受欢迎真是太可惜了。没有自尊的 C21 Fortran 程序员会写这样的东西

      ...
read(*,*) x
go to (3,2,1) x

1 call C()
2 call B()
3 call A()

当然,这会以与问题中指定的顺序相反的顺序执行调用,但问题也暗示顺序无关紧要。

我将通过提醒读者这绝对是令人讨厌的旧 FORTRAN 来结束这篇文章。我们不要再提这个了

关于fortran - 如何根据用户输入变量(fortran90)执行多条语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24696769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com