【发布时间】:2014-06-23 17:44:22
【问题描述】:
我正在自学 Fortran 2003 以用于我目前正在进行的研究项目。我已经习惯了 Fortran 90,但是这个项目需要使用参数化类型,所以我要转到 2003 年。
我正在关注this site's关于如何定义参数化类型的描述,并根据该站点的示例编写了一个非常简单的示例程序来测试它:
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
它仍然有同样的问题。可能会发生什么?
【问题讨论】:
标签: types fortran gfortran fortran2003