diff --git a/src/core_atmosphere/dynamics/mpas_atm_time_integration.F b/src/core_atmosphere/dynamics/mpas_atm_time_integration.F index 4fe2faefc4..3f3d64bb7f 100644 --- a/src/core_atmosphere/dynamics/mpas_atm_time_integration.F +++ b/src/core_atmosphere/dynamics/mpas_atm_time_integration.F @@ -37,21 +37,8 @@ module atm_time_integration use mpas_atm_iau - ! - ! Abstract interface for routine used to communicate halos of fields - ! in a named group - ! - abstract interface - subroutine halo_exchange_routine(domain, halo_group, ierr) - - use mpas_derived_types, only : domain_type - - type (domain_type), intent(inout) :: domain - character(len=*), intent(in) :: halo_group - integer, intent(out), optional :: ierr - - end subroutine halo_exchange_routine - end interface + ! Provides definition of halo_exchange_routine +#include "mpas_halo_interface.inc" integer :: timerid, secs, u_secs diff --git a/src/core_atmosphere/mpas_atm_core.F b/src/core_atmosphere/mpas_atm_core.F index f7d04a1f0c..aaebf865c7 100644 --- a/src/core_atmosphere/mpas_atm_core.F +++ b/src/core_atmosphere/mpas_atm_core.F @@ -13,21 +13,8 @@ module atm_core use mpas_log, only : mpas_log_write, mpas_log_info use mpas_io_units, only : mpas_new_unit, mpas_release_unit - ! - ! Abstract interface for routine used to communicate halos of fields - ! in a named group - ! - abstract interface - subroutine halo_exchange_routine(domain, halo_group, ierr) - - use mpas_derived_types, only : domain_type - - type (domain_type), intent(inout) :: domain - character(len=*), intent(in) :: halo_group - integer, intent(out), optional :: ierr - - end subroutine halo_exchange_routine - end interface + ! Provides definition of halo_exchange_routine +#include "mpas_halo_interface.inc" type (MPAS_Clock_type), pointer :: clock diff --git a/src/core_atmosphere/mpas_atm_halos.F b/src/core_atmosphere/mpas_atm_halos.F index df02ee30a2..983c529673 100644 --- a/src/core_atmosphere/mpas_atm_halos.F +++ b/src/core_atmosphere/mpas_atm_halos.F @@ -10,21 +10,8 @@ module mpas_atm_halos use mpas_pool_routines use mpas_log, only : mpas_log_write, mpas_log_info - ! - ! Abstract interface for routine used to communicate halos of fields - ! in a named group - ! - abstract interface - subroutine halo_exchange_routine(domain, halo_group, ierr) - - use mpas_derived_types, only : domain_type - - type (domain_type), intent(inout) :: domain - character(len=*), intent(in) :: halo_group - integer, intent(out), optional :: ierr - - end subroutine halo_exchange_routine - end interface + ! Provides definition of halo_exchange_routine +#include "mpas_halo_interface.inc" procedure (halo_exchange_routine), pointer :: exchange_halo_group diff --git a/src/core_atmosphere/physics/mpas_atmphys_todynamics.F b/src/core_atmosphere/physics/mpas_atmphys_todynamics.F index 284b072851..cebf566cc4 100644 --- a/src/core_atmosphere/physics/mpas_atmphys_todynamics.F +++ b/src/core_atmosphere/physics/mpas_atmphys_todynamics.F @@ -41,21 +41,8 @@ module mpas_atmphys_todynamics ! number concentrations due to PBL processes. ! Laura D. Fowler (laura@ucar.edu) / 2024-05-16. -! -! Abstract interface for routine used to communicate halos of fields -! in a named group -! - abstract interface - subroutine halo_exchange_routine(domain, halo_group, ierr) - - use mpas_derived_types, only : domain_type - - type (domain_type), intent(inout) :: domain - character(len=*), intent(in) :: halo_group - integer, intent(out), optional :: ierr - - end subroutine halo_exchange_routine - end interface + ! Provides definition of halo_exchange_routine +#include "mpas_halo_interface.inc" contains diff --git a/src/framework/mpas_halo_interface.inc b/src/framework/mpas_halo_interface.inc new file mode 100644 index 0000000000..ba06b33e11 --- /dev/null +++ b/src/framework/mpas_halo_interface.inc @@ -0,0 +1,15 @@ +! + ! Abstract interface for routine used to communicate halos of fields + ! in a named group + ! + abstract interface + subroutine halo_exchange_routine(domain, halo_group, ierr) + + use mpas_derived_types, only : domain_type + + type (domain_type), intent(inout) :: domain + character(len=*), intent(in) :: halo_group + integer, intent(out), optional :: ierr + + end subroutine halo_exchange_routine + end interface \ No newline at end of file