我想檢查一個派生類型內的指針是否已經定義或不。我寫了下面簡單的代碼向你展示我的問題:派生類型中的關聯指針? gFortran與英特爾
program test
implicit none
type y
real(8), pointer :: x(:)
end type y
type(y), pointer :: w(:)
allocate(w(2))
allocate(w(1)%x(2))
write(*,*) associated(w(1)%x), associated(w(2)%x)
end program test
編譯此代碼與gFortran 4.4.1和運行在Ubuntu上它給出結果:
T F
,而在Windows編譯相同的代碼Vista與英特爾Fortran編譯器11.0提供:
T T
第一個結果(gFortran)就是我所期望的。但是,英特爾編譯器提供了不同的結果,這讓我擔心我的代碼可能不正確。我在做這個例子中的指針有什麼問題嗎?任何想法或解釋?
非常感謝您的幫助!
非常感謝!這確實是問題所在。英特爾編譯器和gFortran都可以很好地解決您的問題。 – remek 2009-12-15 20:01:52