Fortran 打字程序
示例
为了获得类的行为,必须在模块中放置类型和相关过程(子例程和函数):
例:
module MShape
implicit none
private
type, public :: Shape
private
integer :: radius
contains
procedure :: set => shape_set_radius
procedure :: print => shape_print
end type Shape
contains
subroutine shape_set_radius(this, value)
class(Shape), intent(in out) :: self
integer, intent(in) :: value
self%radius = value
end subroutine shape_set_radius
subroutine shape_print(this)
class(Shape), intent(in) :: self
print *, 'Shape: r = ', self%radius
end subroutine shape_print
end module MShape稍后,在代码中,我们可以如下使用Shape类:
! declare a variable of type Shape type(Shape) :: shape ! call the type-bound subroutine call shape%set(10) call shape%print