module abstract_get_pseudo_ensperts_mod type, abstract :: abstract_get_pseudo_ensperts_class integer, allocatable :: dummy(:) contains procedure(get_pseudo_ensperts), deferred, pass(this) :: get_pseudo_ensperts end type abstract_get_pseudo_ensperts_class abstract interface subroutine get_pseudo_ensperts(this,en_perts,nelen) use gsi_bundlemod, only: gsi_bundle use kinds, only: i_kind import abstract_get_pseudo_ensperts_class implicit none class(abstract_get_pseudo_ensperts_class), intent(inout) :: this type(gsi_bundle),allocatable, intent(in ) :: en_perts(:,:) integer(i_kind), intent(in ) :: nelen end subroutine get_pseudo_ensperts end interface end module abstract_get_pseudo_ensperts_mod