module abstract_wrwrfmassa_mod type, abstract :: abstract_wrwrfmassa_class contains procedure(wrwrfmassa_binary), deferred, pass(this) :: wrwrfmassa_binary procedure(wrwrfmassa_netcdf), deferred, pass(this) :: wrwrfmassa_netcdf end type abstract_wrwrfmassa_class abstract interface subroutine wrwrfmassa_binary(this,mype) use kinds, only: i_kind import abstract_wrwrfmassa_class implicit none class(abstract_wrwrfmassa_class), intent(inout) :: this integer(i_kind),intent(in ) :: mype end subroutine wrwrfmassa_binary end interface abstract interface subroutine wrwrfmassa_netcdf(this,mype) use kinds, only: i_kind import abstract_wrwrfmassa_class implicit none class(abstract_wrwrfmassa_class), intent(inout) :: this integer(i_kind),intent(in ) :: mype end subroutine wrwrfmassa_netcdf end interface end module abstract_wrwrfmassa_mod