在fortran中带有“假定大小数组”的“ DIMENSION”类型

时间:2020-07-21 06:53:34

标签: fortran

在处理旧的库和例程时,我经常遇到以下DIMENSION变量声明,这导致例程的奇怪行为。如果我将DIMENSION更改为REAL(dp),这些行为往往是固定的。

SUBROUTINE FFT(DATA_REAL, DATA_IMAGINARY, N)

   DIMENSION :: DATA_REAL(*), DATA_IMAGINARY(*)     ! The code behaves strangely.
(*)!REAL(dp) :: DATA_REAL(*), DATA_IMAGINARY(*)     ! If I use this commented declaration instead, the code behaves just fine.

...

起初我看到它们时,我认为这些只是一些小错误。但是,我仍然经常遇到许多库,子例程这样的DIMENSION声明。

因此,很可能这些不是在创建例程时所犯的错误,而奇怪的行为可能是由于标准的变更或从旧的fortran到相对新的fortrans的精确性(例如f90)引起的。但事实并非如此,因为据我所知,f90能够正确对待其哥哥的标准(例如f77)。

有人对这种代码的行为有想法吗?

0 个答案:

没有答案
相关问题