characterizable_m.f90 Source File


Files dependent on this one

sourcefile~~characterizable_m.f90~~AfferentGraph sourcefile~characterizable_m.f90 characterizable_m.f90 sourcefile~intrinsic_array_m.f90 intrinsic_array_m.F90 sourcefile~intrinsic_array_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_subroutine_s.f90 assert_subroutine_s.F90 sourcefile~assert_subroutine_s.f90->sourcefile~characterizable_m.f90 sourcefile~assert_m.f90 assert_m.f90 sourcefile~assert_m.f90->sourcefile~characterizable_m.f90 sourcefile~assert_m.f90->sourcefile~intrinsic_array_m.f90 sourcefile~intrinsic_array_s.f90 intrinsic_array_s.F90 sourcefile~intrinsic_array_s.f90->sourcefile~intrinsic_array_m.f90 sourcefile~intrinsic_array_s.f90->sourcefile~assert_m.f90

Contents

Source Code


Source Code

module characterizable_m
  !! Define an abstract class that supports object representation in character form
  implicit none

  private
  public :: characterizable_t

  type, abstract :: characterizable_t
  contains
    procedure(as_character_i), deferred :: as_character
  end type

  abstract interface
    
    pure function as_character_i(self) result(character_self)
      import characterizable_t
      implicit none
      class(characterizable_t), intent(in) :: self
      character(len=:), allocatable :: character_self
    end function
    
  end interface

end module characterizable_m