我正在修改一些舊的Fortran代碼(我想是F77),以便與英特爾編譯器一起編譯。我以這種形式遇到一些SLATEC例程來了:Fortran隱式更改類型
subroutine cffti (n,wsave)
dimension wsave(1)
iw1 = n+n+1
iw2 = iw1+n+n
call cffti1 (n,wsave(iw1),wsave(iw2))
return
end subroutine cffti
subroutine cffti1 (n,wa,ifac)
....
....
end subroutine cffti
Wsave是一個數組,其第一個部分是應該存儲浮點數,而第二(從IW2)來存儲整數。
所有的變量都是隱式的,所以當wsave(iw2)被傳遞給ifac被解釋爲一個整數並且ifac中的值沒有意義時。
我感到困惑:所有這些東西怎麼能正確工作? 我該如何克服這個問題?