最近インテルのFortranの新Versionが正式に発表され Ver.11となりました。
インストーラも妙にハイカラに変わりましたが、Win2000にはインストールできなくなってしまいました。
http://www.intel.com/cd/software/products/asmo-na/eng/compilers/278834.htm
Fortran2003の機能がだいぶインプリメントされましたが、掲示板などを見ると問題があふれているようです。近頃少し新機能を試しています。
John Reid による Fortran2003 のまとめ。
"The new features of Fortran 2003"
ftp://ftp.nag.co.uk/sc22wg5/N1551-N1600/N1579.pdf
直リン(すんません)
Fortran2003での関数ポインタの使用例。
MODULE m_type IMPLICIT NONE ABSTRACT INTERFACE REAL FUNCTION proc(x, y) REAL, INTENT(IN) :: x, y END FUNCTION END INTERFACE END MODULE m_type !=========================== MODULE m_test USE m_type IMPLICIT NONE CONTAINS !--------------------------- REAL FUNCTION xsum(x, y) REAL, INTENT(IN) :: x, y xsum = x + y RETURN END FUNCTION xsum !--------------------------- REAL FUNCTION xprod(x, y) REAL, INTENT(IN) :: x, y xprod = x * y RETURN END FUNCTION xprod END MODULE m_test !=============================== PROGRAM test USE m_test IMPLICIT NONE REAL :: x, y PROCEDURE (proc), POINTER :: p => NULL(), q => NULL() ! x = 1.0 y = 9.0 p => xsum q => xprod PRINT *, p(x, y), q(x, y) STOP END PROGRAM test
関数ポインタを引数とする関数ポインタでの関数の実行はエラーになります。規格で禁止されているのかバグなのか、規格をもう少し読み込まないと分かりません(><;
ようやく発行になりました。前回の MIT Press から Springer に出版社が変わっています。米amazonで買ったほうが安く手に入ります。