https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71838

--- Comment #9 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Reduced test

module cgca_m3clvg
abstract interface
 subroutine cgca_clvgs_abstract( farr, marr, n, cstate, debug,         &
                                 newstate )
    integer, parameter :: iarr = 4, idef = 4, rdef = 4, ldef = 4
  integer, parameter :: l=-1, centre=l+1, u=centre+1
  integer( kind=iarr ), intent(in) :: farr(l:u,l:u,l:u),               &
    marr(l:u,l:u,l:u), cstate
  real( kind=rdef ), intent(in) :: n(3)
  logical( kind=ldef ), intent(in) :: debug
  integer( kind=iarr ), intent(out) :: newstate
 end subroutine cgca_clvgs_abstract

end interface

  interface
  module subroutine cgca_clvgp( coarray, rt, t, scrit, sub, gcus,      &
                                periodicbc, iter, heartbeat, debug )
    integer, parameter :: iarr = 4, idef = 4, rdef = 4, ldef = 4
    integer( kind=iarr ), allocatable, intent(inout) ::                &
      coarray(:,:,:,:)[:,:,:]
    real( kind=rdef ), allocatable, intent(inout) :: rt(:,:,:)[:,:,:]
    real( kind=rdef ), intent(in) :: t(3,3), scrit(3)
    procedure( cgca_clvgs_abstract ) :: sub
    logical( kind=ldef ), intent(in) :: periodicbc
    integer( kind=idef ), intent(in) :: iter, heartbeat
    logical( kind=ldef ), intent(in) :: debug
  end subroutine cgca_clvgp
end interface

end module cgca_m3clvg

submodule ( cgca_m3clvg ) m3clvg_sm3

implicit none

contains

module procedure cgca_clvgp

abstract interface
 subroutine cgca_clvgs_abstract( farr, marr, n, cstate, debug,         &
                                 newstate )
    integer, parameter :: iarr = 4, idef = 4, rdef = 4, ldef = 4
  integer, parameter :: l=-1, centre=l+1, u=centre+1
  integer( kind=iarr ), intent(in) :: farr(l:u,l:u,l:u),               &
    marr(l:u,l:u,l:u), cstate
  real( kind=rdef ), intent(in) :: n(3)
  logical( kind=ldef ), intent(in) :: debug
  integer( kind=iarr ), intent(out) :: newstate
 end subroutine cgca_clvgs_abstract

end interface

  interface
  module subroutine cgca_clvgp( coarray, rt, t, scrit, sub, gcus,      &
                                periodicbc, iter, heartbeat, debug )
    integer, parameter :: iarr = 4, idef = 4, rdef = 4, ldef = 4
    integer( kind=iarr ), allocatable, intent(inout) ::                &
      coarray(:,:,:,:)[:,:,:]
    real( kind=rdef ), allocatable, intent(inout) :: rt(:,:,:)[:,:,:]
    real( kind=rdef ), intent(in) :: t(3,3), scrit(3)
    procedure( cgca_clvgs_abstract ) :: sub
    logical( kind=ldef ), intent(in) :: periodicbc
    integer( kind=idef ), intent(in) :: iter, heartbeat
    logical( kind=ldef ), intent(in) :: debug
  end subroutine cgca_clvgp
end interface

end module cgca_m3clvg

submodule ( cgca_m3clvg ) m3clvg_sm3

implicit none

contains

module procedure cgca_clvgp

end procedure cgca_clvgp

end submodule m3clvg_sm3

Reply via email to