作爲HighPerformanceMark評論,能夠以限定內部程序在包含另一個程序
SUBROUTINE test1(...)
! do some stuff
CALL test2(...)
CONTAINS
SUBROUTINE test2(...)
! do some stuff
END SUBROUTINE test2
END SUBROUTINE test1
內部程序test2
通過主機獲取訪問主機程序test1
中定義的所有實體的部分協會。它還可以訪問test1
有權訪問的所有實體。這些規則與主程序中的內部程序規則相似。
內部程序無法託管另一個內部程序。
指向內部過程的過程指針僅在執行主機過程期間有效,並且只能在Fortran 2008和更高版本中使用。這是一項高級功能。
該主機關聯有時可以是惱人,你一定要提高警惕,以避免類似的錯誤:
SUBROUTINE test1(...)
integer :: i
do i = 1, n
CALL test2(...)
end do
CONTAINS
SUBROUTINE test2(...)
do i = 1, n
!i here is the same variable as i in test1!!
end do
END SUBROUTINE test2
END SUBROUTINE test1
用Fortran 2015年將有功能更改主機關聯行爲。
如果您想在某個特定位置將Fortran作爲標題的一部分,請繼續,但不應使用「Fortran:」。標籤不應該被複制到標題中。 –
@agentp如果你在較大型的工作上,可以考慮使用類似於[tag:intel-fortran]和[tag:nag-fortran]的'silverfrost-fortran'而不是'silverfrost'。 –
@VladimirF同意。有沒有辦法編輯標籤,或者我做一個新的並切換它們? – agentp