C $Header: /u/gcmpack/MITgcm/eesupp/src/reset_halo.F,v 1.1 2013/07/04 22:49:16 jmc Exp $
C $Name: $
#include "CPP_EEOPTIONS.h"
C-- File reset_halo.F: to fill-up halo region with constant value
C-- Contents
C-- o RESET_HALO_RL
C-- o RESET_HALO_RS
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP
C !ROUTINE: RESET_HALO_RL
C !INTERFACE:
SUBROUTINE RESET_HALO_RL(
U glFld,
I fixVal, kSize, myThid )
C !DESCRIPTION: \bv
C *==========================================================*
C | S/R RESET_HALO_RL
C *==========================================================*
C | o Reset to constant value the halo region of a global
C | 3-D array. Note: used for debugging only .
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
#include "SIZE.h"
#include "EEPARAMS.h"
C !INPUT/OUTPUT PARAMETERS:
C == Routine Arguments ==
C glFld :: field global array to update in halo-region
C fixVal :: constant value to fill-up the halo region with
C kSize :: size of 3-D field-array
C myThid :: my Thread Id number
INTEGER kSize
_RL glFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy)
_RL fixVal
INTEGER myThid
C !LOCAL VARIABLES:
C == Local variables ==
INTEGER bi, bj, k
INTEGER ii, i, j
CEOP
DO bj = myByLo(myThid), myByHi(myThid)
DO bi = myBxLo(myThid), myBxHi(myThid)
DO k=1,kSize
DO j=1-OLy,sNy+OLy
IF ( j.LT.1 .OR. j.GT.sNy ) THEN
DO i=1-OLx,sNx+OLx
glFld(i,j,k,bi,bj) = fixVal
ENDDO
ELSE
DO ii=1-OLx,OLx
i = ii
IF ( ii.GE.1 ) i= ii+sNx
glFld(i,j,k,bi,bj) = fixVal
ENDDO
ENDIF
ENDDO
ENDDO
C- end bi,bj loops
ENDDO
ENDDO
RETURN
END
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP
C !ROUTINE: RESET_HALO_RS
C !INTERFACE:
SUBROUTINE RESET_HALO_RS(
U glFld,
I fixVal, kSize, myThid )
C !DESCRIPTION: \bv
C *==========================================================*
C | S/R RESET_HALO_RS
C *==========================================================*
C | o Reset to constant value the halo region of a global
C | 3-D array. Note: used for debugging only .
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
#include "SIZE.h"
#include "EEPARAMS.h"
C !INPUT/OUTPUT PARAMETERS:
C == Routine Arguments ==
C glFld :: field global array to update in halo-region
C fixVal :: constant value to fill-up the halo region with
C kSize :: size of 3-D field-array
C myThid :: my Thread Id number
INTEGER kSize
_RS glFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy)
_RS fixVal
INTEGER myThid
C !LOCAL VARIABLES:
C == Local variables ==
INTEGER bi, bj, k
INTEGER ii, i, j
CEOP
DO bj = myByLo(myThid), myByHi(myThid)
DO bi = myBxLo(myThid), myBxHi(myThid)
DO k=1,kSize
DO j=1-OLy,sNy+OLy
IF ( j.LT.1 .OR. j.GT.sNy ) THEN
DO i=1-OLx,sNx+OLx
glFld(i,j,k,bi,bj) = fixVal
ENDDO
ELSE
DO ii=1-OLx,OLx
i = ii
IF ( ii.GE.1 ) i= ii+sNx
glFld(i,j,k,bi,bj) = fixVal
ENDDO
ENDIF
ENDDO
ENDDO
C- end bi,bj loops
ENDDO
ENDDO
RETURN
END