現在取り組んでいる研究プロジェクトに使用する Fortran 2003 を独学しています。私は Fortran 90 に慣れていますが、このプロジェクトではパラメーター化された型を使用する必要があるため、2003 に移行しています。
パラメータ化された型を定義する方法に関するこのサイトの説明に従っており、テストするためにサイトの例に基づいて非常に簡単なサンプル プログラムを作成しました。
module example
implicit none
type :: param_matrix(k,a,b)
integer, kind :: k
integer, len :: a
integer, len :: b
real(kind=k), dimension(a,b) :: m
end type param_matrix
end module example
これをコマンドでコンパイルすると
gfortran -c test.F03
エラーが表示されます
test.F03:4.2:
type :: param_matrix(k, a, b)
1
Error: Unclassifiable statement at (1)
test.F03:5.13:
integer, kind :: k
1
Error: Invalid character in name at (1)
test.F03:6.13:
integer, len :: a
1
Error: Invalid character in name at (1)
test.F03:7.13:
integer, len :: b
1
Error: Invalid character in name at (1)
test.F03:8.16:
real(kind=k), dimension(a,b) :: m
1
Error: Symbol 'k' at (1) has no IMPLICIT type
test.F03:9.5:
end type param_matrix
1
Error: Expecting END MODULE statement at (1)
数式のパラメーター化された部分を削除すると、正常にコンパイルされます (つまり、型が認識されます)。Fortran 2003 に固有のもので特に問題があるようですが、コマンドで実行すると
-std=f2003
それはまだ同じ問題を抱えています。何が起こっているのでしょうか?