MOM6
midas_vertmap::fill_boundaries Interface Reference

Detailed Description

Fill grid edges.

Definition at line 22 of file midas_vertmap.F90.

Private functions

real function, dimension(0:size(m, 1)+1, 0:size(m, 2)+1) fill_boundaries_real (m, cyclic_x, tripolar_n)
 fill grid edges More...
 
integer function, dimension(0:size(m, 1)+1, 0:size(m, 2)+1) fill_boundaries_int (m, cyclic_x, tripolar_n)
 Fill grid edges. More...
 

Functions and subroutines

◆ fill_boundaries_int()

integer function, dimension(0:size(m,1)+1,0:size(m,2)+1) midas_vertmap::fill_boundaries::fill_boundaries_int ( integer, dimension(:,:), intent(in)  m,
logical, intent(in)  cyclic_x,
logical, intent(in)  tripolar_n 
)
private

Fill grid edges.

Parameters
[in]minput array
[in]cyclic_xzonal cyclic condition
[in]tripolar_nnorthern fold condition
Returns
output filled array

Definition at line 781 of file midas_vertmap.F90.

781  integer, dimension(:,:), intent(in) :: m !< input array
782  logical, intent(in) :: cyclic_x !< zonal cyclic condition
783  logical, intent(in) :: tripolar_n !< northern fold condition
784  integer, dimension(0:size(m,1)+1,0:size(m,2)+1) :: mp !< output filled array
785  ! Local variables
786  real, dimension(size(m,1),size(m,2)) :: m_real
787  real, dimension(0:size(m,1)+1,0:size(m,2)+1) :: mp_real
788 
789  m_real = real(m)
790 
791  mp_real = fill_boundaries_real(m_real,cyclic_x,tripolar_n)
792 
793  mp = int(mp_real)
794 
795  return
796 

◆ fill_boundaries_real()

real function, dimension(0:size(m,1)+1,0:size(m,2)+1) midas_vertmap::fill_boundaries::fill_boundaries_real ( real, dimension(:,:), intent(in)  m,
logical, intent(in)  cyclic_x,
logical, intent(in)  tripolar_n 
)
private

fill grid edges

Parameters
[in]minput array
[in]cyclic_xzonal cyclic condition
[in]tripolar_nnorthern fold condition
Returns
output filled array

Definition at line 801 of file midas_vertmap.F90.

801  real, dimension(:,:), intent(in) :: m !< input array
802  logical, intent(in) :: cyclic_x !< zonal cyclic condition
803  logical, intent(in) :: tripolar_n !< northern fold condition
804  real, dimension(0:size(m,1)+1,0:size(m,2)+1) :: mp !< output filled array
805 
806  integer :: ni,nj,i,j
807 
808  ni=size(m,1); nj=size(m,2)
809 
810  mp(1:ni,1:nj)=m(:,:)
811 
812  if (cyclic_x) then
813  mp(0,1:nj)=m(ni,1:nj)
814  mp(ni+1,1:nj)=m(1,1:nj)
815  else
816  mp(0,1:nj)=m(1,1:nj)
817  mp(ni+1,1:nj)=m(ni,1:nj)
818  endif
819 
820  mp(1:ni,0)=m(1:ni,1)
821  if (tripolar_n) then
822  do i=1,ni
823  mp(i,nj+1)=m(ni-i+1,nj)
824  enddo
825  else
826  mp(1:ni,nj+1)=m(1:ni,nj)
827  endif
828 
829  return
830 

The documentation for this interface was generated from the following file: