【发布时间】:2022-01-06 19:59:08
【问题描述】:
我正在尝试学习 Fortran,但我发现那里的教程并不多(可能是因为它是一种古老的语言)。我发现的那些是含糊不清的,而且随着我进入更复杂的事情,猜测教程所说的内容变得越来越难。
我目前的问题是创建类型。本教程包含以下示例:
module m_shapes
implicit none
private
public t_square
type :: t_square
real :: side
contains
procedure :: area ! procedure declaration
end type
contains
! Procedure definition
real function area(self) result(res)
class(t_square), intent(in) :: self
res = self%side**2
end function
end module m_shapes
这编译得很好,所以我知道它可以工作。
当我尝试做类似这样的事情时:
program type_test
implicit none
type :: thingy(a)
real :: a
end type
end program
编译时不会出现错误,例如“出现在 (2) 的类型参数列表中的 (1) 的组件既没有 KIND 也没有 LEN 属性”
我找到的教程对类型的解释不够好,我尝试过real,kind :: a = kind(0.0) 之类的方法,但无济于事。有谁知道怎么回事?
提前致谢。
【问题讨论】:
-
欢迎您,请拨打tour。您必须搜索非常糟糕,因为实际上有很多 Fortran 教程。也许您搜索了“Fortran 90”(正如您使用的标签所暗示的那样),但这实际上已经很老了,完全过时了,而且大部分都被遗弃了。但是 Fortran 继续发展,b 社区主要使用标准的现代修订版。你可以从fortran-lang.org开始
-
请注意,即使您的考试不是 Fortran 90,但至少是 Fortran 2003。
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
标签: fortran