subroutine hc4mh1i(c, &,9
ids,ide, &
ims,ime, &
its,ite)
! Horizontal cyclic `4mh' scheme, for 1-dimensional array, active index i
use cpt_consts
implicit none
integer, intent(IN ) :: ids,ide
integer, intent(IN ) :: ims,ime
integer, intent(IN ) :: its,ite
real, dimension(ims:ime), &
intent(INOUT) :: c
real, dimension(1):: p
call haes1i
(c, 1, &
ids,ide, &
ims,ime, &
its,ite)
call sa1a1i
(c,b4m, &
ids,ide, &
ims,ime, &
its,ite)
call ra1a1i
(c,p,l4m1,fl4ms, &
ids,ide, &
ims,ime, &
its,ite)
call hasp1i
(c,p,1, &
ids,ide, &
ims,ime, &
its,ite)
call rf1a1i
(c, l4m1, &
ids,ide, &
ims,ime, &
its,ite)
call ra1b1i
(c,p,l4m1,fl4ms, &
ids,ide, &
ims,ime, &
its,ite)
call haep1i
(c,p,1, &
ids,ide, &
ims,ime, &
its,ite)
call rf1b1i
(c, l4m1, &
ids,ide, &
ims,ime, &
its,ite)
end subroutine hc4mh1i
subroutine hc4mh2i(c, &,9
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
! Horizontal cyclic `4mh' scheme, for 2-dimensional array, active index i
use cpt_consts
implicit none
integer, intent(IN ) :: ids,ide, jds,jde
integer, intent(IN ) :: ims,ime, jms,jme
integer, intent(IN ) :: its,ite, jts,jte
real, dimension(ims:ime, jms:jme), &
intent(INOUT) :: c
real, dimension(1, jms:jme):: p
call haes2i
(c, 1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call sa1a2i
(c,b4m, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call ra1a2i
(c,p,l4m1,fl4ms, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call hasp2i
(c,p,1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call rf1a2i
(c, l4m1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call ra1b2i
(c,p,l4m1,fl4ms, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call haep2i
(c,p,1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call rf1b2i
(c, l4m1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
end subroutine hc4mh2i
subroutine hc4mh2j(c, &,9
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
! Horizontal cyclic `4mh' scheme, for 2-dimensional array, active index j
use cpt_consts
implicit none
integer, intent(IN ) :: ids,ide, jds,jde
integer, intent(IN ) :: ims,ime, jms,jme
integer, intent(IN ) :: its,ite, jts,jte
real, dimension(ims:ime, jms:jme), &
intent(INOUT) :: c
real, dimension(ids:ide, 1):: p
call haes2j
(c, 1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call sa1a2j
(c,b4m, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call ra1a2j
(c,p,l4m1,fl4ms, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call hasp2j
(c,p,1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call rf1a2j
(c, l4m1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call ra1b2j
(c,p,l4m1,fl4ms, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call haep2j
(c,p,1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
call rf1b2j
(c, l4m1, &
ids,ide, jds,jde, &
ims,ime, jms,jme, &
its,ite, jts,jte)
end subroutine hc4mh2j
subroutine hc4mh3i(c, &,9
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
! Horizontal cyclic `4mh' scheme, for 3-dimensional array, active index i
use cpt_consts
implicit none
integer, intent(IN ) :: ids,ide, jds,jde, kds,kde
integer, intent(IN ) :: ims,ime, jms,jme, kms,kme
integer, intent(IN ) :: its,ite, jts,jte, kts,kte
real, dimension( ims:ime, kms:kme, jms:jme), &
intent(INOUT) :: c
real, dimension(1, kms:kme, jms:jme):: p
call haes3i
(c, 1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call sa1a3i
(c,b4m, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call ra1a3i
(c,p,l4m1,fl4ms, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call hasp3i
(c,p,1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call rf1a3i
(c, l4m1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call ra1b3i
(c,p,l4m1,fl4ms, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call haep3i
(c,p,1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call rf1b3i
(c, l4m1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
end subroutine hc4mh3i
subroutine hc4mh3j(c, &,9
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
! Horizontal cyclic `4mh' scheme, for 3-dimensional array, active index j
use cpt_consts
implicit none
integer, intent(IN ) :: ids,ide, jds,jde, kds,kde
integer, intent(IN ) :: ims,ime, jms,jme, kms,kme
integer, intent(IN ) :: its,ite, jts,jte, kts,kte
real, dimension( ims:ime, kms:kme, jms:jme), &
intent(INOUT) :: c
real, dimension(ims:ime, kms:kme, 1):: p
call haes3j
(c, 1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call sa1a3j
(c,b4m, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call ra1a3j
(c,p,l4m1,fl4ms, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call hasp3j
(c,p,1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call rf1a3j
(c, l4m1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call ra1b3j
(c,p,l4m1,fl4ms, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call haep3j
(c,p,1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
call rf1b3j
(c, l4m1, &
ids,ide, jds,jde, kds,kde, &
ims,ime, jms,jme, kms,kme, &
its,ite, jts,jte, kts,kte)
end subroutine hc4mh3j