本帖最后由 楚香饭 于 2016-11-27 11:14 编辑
这一问题,根本就不需要抽象类和子类。
[Fortran] 纯文本查看 复制代码 Module MInteger_Array
implicit none
private
type , public :: int_ary
integer , private :: iNs = 0
integer :: Lens = 2!default 2
integer , private, allocatable :: iAry(:)
character(len=:) ,private , allocatable :: CAry(:)
contains
procedure , pass :: SRead_int_ary
final :: SRead_Uninit
end type int_ary
contains
Subroutine SRead_int_ary(this , iunit )
class(int_ary), intent(inout) :: this
integer , intent(in) :: iunit
read(iunit,*) this%iNs
allocate(this%iAry(this%iNs))
read(iunit,*) this%iAry
if ( this%Lens < 1 ) this%Lens = 2
allocate( character(len=this%Lens)::this%CAry(this%iNs))
!call SInt_to_2Char(this%iAry, this%CAry)
End Subroutine SRead_int_ary
Subroutine SRead_Uninit(this)
type(int_ary), intent(inout) :: this
deallocate(this%iAry,this%CAry)
End Subroutine SRead_Uninit
End Module
Program main
use MInteger_Array
type(int_ary) :: m2p=int_ary(Lens=2) , m3p=int_ary(Lens=3)
Open(3,File="filename.txt")
call m2p%SRead_Int_Ary( 3 )
call m3p%SRead_Int_Ary( 3 )
Close(3)
End Program main
|