1

如果虚拟变量是意图(IN),那么调用带有别名的fortran子例程是否合法(或者它是否可以提供麻烦)?我必须在我的代码中做这样的事情:

  program myprogram
     ......
     ......
     call check(itstrt, itstrt )
     do k= itstrt,itend
        call check(itstrt, k)
     enddo
  end

  subroutine check(itstrt, k)
  integer , intent(in)    :: itstrt, k
     if(k==itstrt) write(*,*) 'I gotta do something'
  end 

我知道我可以很容易地使用一个额外的变量 varPROV=itstrt 来调用第一个检查作为调用 check(itstrt, varPROV) 但我想知道标准说什么以及这样做有什么麻烦。谢谢。

4

1 回答 1

2

这是合法的。别名问题和INTENT(IN)(分别)与试图定义虚拟变量的程序有关 - 可能是出现在赋值语句或类似语句左侧的变量。

于 2013-04-16T20:05:55.093 回答