#include "CPP_OPTIONS.h"
#include "PACKAGES_CONFIG.h"

C !INTERFACE: ==========================================================
      SUBROUTINE RBCS_INIT_FIXED(myThid )

C !DESCRIPTION:
C calls subroutines that initialized fixed variables for relaxed
c boundary conditions

C !USES: ===============================================================
      IMPLICIT NONE
#include "SIZE.h"
#include "GRID.h"
#include "DYNVARS.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#ifdef ALLOW_PTRACERS
#include "PTRACERS_SIZE.h"
#endif
#include "RBCS.h"

C !INPUT PARAMETERS: ===================================================
C  myThid               :: thread number
      INTEGER myThid
CEOP

#ifdef ALLOW_RBCS


C     !LOCAL VARIABLES:
C     i,j,k,bi,bj,iTracer  :: loop indices
      INTEGER i,j,k,bi,bj
      INTEGER irbc
#ifdef ALLOW_PTRACERS
      INTEGER iTracer
#endif

C       Loop over tiles
        DO bj = myByLo(myThid), myByHi(myThid)
          DO bi = myBxLo(myThid), myBxHi(myThid)

C           Initialize arrays in common blocks :
            DO k=1,Nr
              DO j=1-Oly,sNy+OLy
                DO i=1-Olx,sNx+Olx
                 DO irbc=1,maskLEN
                  RBC_mask(i,j,k,bi,bj,irbc) = 0. _d 0
                 ENDDO
                 RBCtemp(i,j,k,bi,bj)    = 0. _d 0
                 RBCsalt(i,j,k,bi,bj) = 0. _d 0
                ENDDO
              ENDDO
             ENDDO
          ENDDO
         ENDDO
#ifdef ALLOW_PTRACERS
C     Loop over tracers
      DO iTracer = 1, PTRACERS_num

C       Loop over tiles
        DO bj = myByLo(myThid), myByHi(myThid)
          DO bi = myBxLo(myThid), myBxHi(myThid)

C           Initialize arrays in common blocks :
            DO k=1,Nr
              DO j=1-Oly,sNy+OLy
                DO i=1-Olx,sNx+Olx
                  RBC_ptracers(i,j,k,bi,bj,iTracer) = 0. _d 0
               ENDDO
              ENDDO
            ENDDO
C           end bi,bj loops
          ENDDO
        ENDDO

C       end of Tracer loop
      ENDDO
#endif

C read in mask for relaxing
      do irbc=1,maskLEN 
       IF ( relaxMaskFile(irbc).NE. ' ' ) THEN
        _BEGIN_MASTER( myThid )
         CALL READ_FLD_XYZ_RS(relaxMaskFile(irbc),' ',
     &                RBC_mask(1-Olx,1-Oly,1,1,1,irbc), 0, myThid)
        _END_MASTER(myThid)
        _EXCH_XYZ_R8(RBC_mask(1-Olx,1-Oly,1,1,1,irbc), myThid )
       CALL PLOT_FIELD_XYRS( RBC_mask(1-Olx,1-Oly,1,1,1,irbc), 
     &          'Boundary Relaxing' ,1, myThid )
       ENDIF
      enddo
C
#endif /* ALLOW_RBCS */

      RETURN
      END