Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:42:36 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
42c525bfb4 Alis*0001 #include "OBCS_OPTIONS.h"
                0002 
89af82137f Jean*0003 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0004 CBOP
                0005 C     !ROUTINE: OBCS_INIT_FIXED
                0006 
                0007 C     !INTERFACE:
42c525bfb4 Alis*0008       SUBROUTINE OBCS_INIT_FIXED( myThid )
89af82137f Jean*0009 
                0010 C     !DESCRIPTION:
cf2908d436 Jean*0011 C     *==========================================================*
                0012 C     | SUBROUTINE OBCS_INIT_FIXED
                0013 C     | o Initialise OBCs fixed arrays
                0014 C     *==========================================================*
89af82137f Jean*0015 
                0016 C     !USES:
42c525bfb4 Alis*0017       IMPLICIT NONE
                0018 
                0019 C     === Global variables ===
                0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 #include "PARAMS.h"
7af3d6f22c Jean*0023 #include "GRID.h"
9b4f2a04e2 Jean*0024 #include "OBCS_PARAMS.h"
                0025 #include "OBCS_GRID.h"
42c525bfb4 Alis*0026 
89af82137f Jean*0027 C     !INPUT/OUTPUT PARAMETERS:
87ec912e7f Jean*0028 C     myThid   :: my Thread Id. number
42c525bfb4 Alis*0029       INTEGER myThid
89af82137f Jean*0030 CEOP
42c525bfb4 Alis*0031 
                0032 #ifdef ALLOW_OBCS
89af82137f Jean*0033 C     !LOCAL VARIABLES:
6646af77e1 Jean*0034 C     msgBuf   :: Informational/error message buffer
87ec912e7f Jean*0035 C     OB_ApplX :: number of grid points (in X dir) overwritten by obcs_apply
                0036 C     OB_ApplY :: number of grid points (in Y dir) overwritten by obcs_apply
                0037 C     bi,bj    :: tile indices
                0038 C     i, j     :: Loop counters
6646af77e1 Jean*0039       CHARACTER*(MAX_LEN_MBUF) msgBuf, errMsg
87ec912e7f Jean*0040       INTEGER OB_ApplX
                0041       INTEGER OB_ApplY
42c525bfb4 Alis*0042       INTEGER bi, bj
87ec912e7f Jean*0043       INTEGER  i, j
6910a0b3a6 Jean*0044       INTEGER im, jm
87ec912e7f Jean*0045       INTEGER iB, jB
                0046       LOGICAL flag
6646af77e1 Jean*0047       INTEGER ioUnit
87ec912e7f Jean*0048 
6646af77e1 Jean*0049 #ifdef ALLOW_DEBUG
                0050       IF (debugMode) CALL DEBUG_ENTER('OBCS_INIT_FIXED',myThid)
                0051 #endif
87ec912e7f Jean*0052 
                0053 C==   Set Interior mask at Cell Center:
6646af77e1 Jean*0054 
aa04b5d0aa Jean*0055       DO bj = myByLo(myThid), myByHi(myThid)
                0056        DO bi = myBxLo(myThid), myBxHi(myThid)
                0057         DO j=1-OLy,sNy+OLy
                0058          DO i=1-OLx,sNx+OLx
                0059            OBCS_insideMask(i,j,bi,bj) = 1.
                0060          ENDDO
                0061         ENDDO
                0062        ENDDO
                0063       ENDDO
87ec912e7f Jean*0064 
                0065       IF ( insideOBmaskFile.EQ.' ' ) THEN
                0066 C--   If no maskFile is provided, set Interior mask from OB list of indices
                0067 
                0068        DO bj = myByLo(myThid), myByHi(myThid)
                0069         DO bi = myBxLo(myThid), myBxHi(myThid)
                0070          DO j=1,sNy
                0071 C-    Eastern boundary
74019f026d Jean*0072           IF ( OB_Ie(j,bi,bj).NE.OB_indexNone ) THEN
87ec912e7f Jean*0073            flag = .TRUE.
                0074            DO i=OB_Ie(j,bi,bj),sNx
                0075              flag = flag .AND.
aa04b5d0aa Jean*0076      &              kSurfC(i,j,bi,bj).LE.Nr .AND. i.NE.OB_Iw(j,bi,bj)
                0077              IF ( flag ) OBCS_insideMask(i,j,bi,bj) = 0.
87ec912e7f Jean*0078            ENDDO
                0079           ENDIF
                0080 C-    Western boundary
74019f026d Jean*0081           IF ( OB_Iw(j,bi,bj).NE.OB_indexNone ) THEN
87ec912e7f Jean*0082            flag = .TRUE.
                0083            DO i=OB_Iw(j,bi,bj),1,-1
                0084              flag = flag .AND.
aa04b5d0aa Jean*0085      &              kSurfC(i,j,bi,bj).LE.Nr .AND. i.NE.OB_Ie(j,bi,bj)
                0086              IF ( flag ) OBCS_insideMask(i,j,bi,bj) = 0.
87ec912e7f Jean*0087            ENDDO
                0088           ENDIF
                0089          ENDDO
                0090          DO i=1,sNx
                0091 C-    Northern boundary
74019f026d Jean*0092           IF ( OB_Jn(i,bi,bj).NE.OB_indexNone ) THEN
87ec912e7f Jean*0093            flag = .TRUE.
                0094            DO j=OB_Jn(i,bi,bj),sNy
                0095              flag = flag .AND.
aa04b5d0aa Jean*0096      &              kSurfC(i,j,bi,bj).LE.Nr .AND. j.NE.OB_Js(i,bi,bj)
                0097              IF ( flag ) OBCS_insideMask(i,j,bi,bj) = 0.
87ec912e7f Jean*0098            ENDDO
                0099           ENDIF
                0100 C-    Southern boundary
74019f026d Jean*0101           IF ( OB_Js(i,bi,bj).NE.OB_indexNone ) THEN
87ec912e7f Jean*0102            flag = .TRUE.
                0103            DO j=OB_Js(i,bi,bj),1,-1
                0104              flag = flag .AND.
aa04b5d0aa Jean*0105      &              kSurfC(i,j,bi,bj).LE.Nr .AND. j.NE.OB_Jn(i,bi,bj)
                0106              IF ( flag ) OBCS_insideMask(i,j,bi,bj) = 0.
87ec912e7f Jean*0107            ENDDO
                0108           ENDIF
                0109          ENDDO
                0110 
                0111 C--   end bi,bj loops
                0112         ENDDO
                0113        ENDDO
                0114 
                0115       ELSE
                0116 C--   Read in Interior mask from file :
                0117 
aa04b5d0aa Jean*0118        CALL READ_FLD_XY_RS( insideOBmaskFile, ' ', OBCS_insideMask,
                0119      &                      0, myThid )
87ec912e7f Jean*0120 
                0121        DO bj = myByLo(myThid), myByHi(myThid)
                0122         DO bi = myBxLo(myThid), myBxHi(myThid)
                0123          DO j=1,sNy
                0124           DO i=1,sNx
aa04b5d0aa Jean*0125            IF ( OBCS_insideMask(i,j,bi,bj).NE.0. )
                0126      &          OBCS_insideMask(i,j,bi,bj) = 1.
87ec912e7f Jean*0127           ENDDO
                0128          ENDDO
                0129         ENDDO
                0130        ENDDO
                0131 
                0132 C--   end computing/reading Interior mask
                0133       ENDIF
                0134 
                0135 C--   Fill in the overlap:
aa04b5d0aa Jean*0136       _EXCH_XY_RS( OBCS_insideMask, myThid )
87ec912e7f Jean*0137 
                0138 C==   Set interior mask at U & V location (grid-cell Wester & Southern edges)
d4086c624f Jean*0139 C     leave OB edges inside (maskIn=1) (e.g., Eastern OB: maskInW(OB_Ie)=1 )
6910a0b3a6 Jean*0140 C     so that velocity normal-component at OB is still in Interior region.
87ec912e7f Jean*0141       DO bj = myByLo(myThid), myByHi(myThid)
                0142        DO bi = myBxLo(myThid), myBxHi(myThid)
6646af77e1 Jean*0143          DO j=2-OLy,sNy+OLy
                0144           DO i=2-OLx,sNx+OLx
87ec912e7f Jean*0145             maskInW(i,j,bi,bj) = maskInW(i,j,bi,bj)
aa04b5d0aa Jean*0146      &                     *MAX( OBCS_insideMask(i-1,j,bi,bj),
                0147      &                           OBCS_insideMask(i,j,bi,bj) )
87ec912e7f Jean*0148             maskInS(i,j,bi,bj) = maskInS(i,j,bi,bj)
aa04b5d0aa Jean*0149      &                     *MAX( OBCS_insideMask(i,j-1,bi,bj),
                0150      &                           OBCS_insideMask(i,j,bi,bj) )
87ec912e7f Jean*0151           ENDDO
                0152          ENDDO
                0153        ENDDO
                0154       ENDDO
                0155 
                0156 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0157 
6646af77e1 Jean*0158 C--   After exchange, set tiled index arrays OB_Jn/Js/Ie/Iw in overlap region
                0159 C     issue a warning if not consistent (similar to OBCS_CHECK but for overlap)
                0160 
33d0ba7c8f Jean*0161 c     IF ( .TRUE. ) THEN
                0162       IF ( OBCS_indexStatus .LT. 2 ) THEN
6646af77e1 Jean*0163        ioUnit = standardMessageUnit
                0164        WRITE(msgBuf,'(2A)')
                0165      &      'OBCS_INIT_FIXED: Setting OB indices in Overlap'
                0166        CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0167        WRITE(errMsg,'(2A)') 'S/R OBCS_INIT_FIXED: ',
                0168      &              'Inside Mask and OB locations disagree :'
                0169        flag = .TRUE.
                0170        DO bj = myByLo(myThid), myByHi(myThid)
                0171         DO bi = myBxLo(myThid), myBxHi(myThid)
                0172 
                0173 C-    Eastern boundary
                0174          DO j=1-OLy,sNy+OLy
                0175           DO i=1,sNx+1
                0176            IF ( OBCS_insideMask(i,j,bi,bj).LT.
                0177      &          OBCS_insideMask(i-1,j,bi,bj)
                0178      &          .AND. ( j.LT.1 .OR. j.GT.sNy )
9ea74cf9a7 Jean*0179      &          .AND. kSurfW(i,j,bi,bj).LE.Nr ) THEN
74019f026d Jean*0180             IF ( OB_Ie(j,bi,bj).EQ.OB_indexNone ) THEN
6646af77e1 Jean*0181               OB_Ie(j,bi,bj) = i
                0182               WRITE(msgBuf,'(A,I5,2(A,I3),2(A,I5))')
                0183      &        ' Sets OBE(j,bi,bj=',j,',',bi,',',bj,')=', OB_Ie(j,bi,bj)
                0184               CALL PRINT_MESSAGE( msgBuf,ioUnit,SQUEEZE_RIGHT,myThid )
                0185             ELSEIF ( OB_Ie(j,bi,bj).NE.i ) THEN
                0186               IF ( flag ) CALL PRINT_ERROR( errMsg, myThid )
                0187               flag = .FALSE.
                0188               WRITE(msgBuf,'(A,I5,2(A,I3),2(A,I5))')
                0189      &        ' OBE(j,bi,bj=',j,',',bi,',',bj,')=', OB_Ie(j,bi,bj),
                0190      &        ' but from insideMask expects I=', i
                0191               CALL PRINT_ERROR( msgBuf, myThid )
                0192             ENDIF
                0193            ENDIF
                0194           ENDDO
                0195          ENDDO
                0196 C-    Western boundary
                0197          DO j=1-OLy,sNy+OLy
74019f026d Jean*0198           DO i=0,sNx
6646af77e1 Jean*0199            IF ( OBCS_insideMask(i,j,bi,bj).LT.
                0200      &          OBCS_insideMask(i+1,j,bi,bj)
                0201      &          .AND. ( j.LT.1 .OR. j.GT.sNy )
9ea74cf9a7 Jean*0202      &          .AND. kSurfW(i+1,j,bi,bj).LE.Nr ) THEN
74019f026d Jean*0203             IF ( OB_Iw(j,bi,bj).EQ.OB_indexNone ) THEN
6646af77e1 Jean*0204               OB_Iw(j,bi,bj) = i
                0205               WRITE(msgBuf,'(A,I5,2(A,I3),2(A,I5))')
                0206      &        ' Sets OBW(j,bi,bj=',j,',',bi,',',bj,')=', OB_Iw(j,bi,bj)
                0207               CALL PRINT_MESSAGE( msgBuf,ioUnit,SQUEEZE_RIGHT,myThid )
                0208             ELSEIF ( OB_Iw(j,bi,bj).NE.i ) THEN
                0209               IF ( flag ) CALL PRINT_ERROR( errMsg, myThid )
                0210               flag = .FALSE.
                0211               WRITE(msgBuf,'(A,I5,2(A,I3),2(A,I5))')
                0212      &        ' OBW(j,bi,bj=',j,',',bi,',',bj,')=', OB_Iw(j,bi,bj),
                0213      &        ' but from insideMask expects I=', i
                0214               CALL PRINT_ERROR( msgBuf, myThid )
                0215             ENDIF
                0216            ENDIF
                0217           ENDDO
                0218          ENDDO
                0219 C-    Northern boundary
                0220          DO j=1,sNy+1
                0221           DO i=1-OLx,sNx+OLx
                0222            IF ( OBCS_insideMask(i,j,bi,bj).LT.
                0223      &          OBCS_insideMask(i,j-1,bi,bj)
                0224      &          .AND. ( i.LT.1 .OR. i.GT.sNx )
9ea74cf9a7 Jean*0225      &          .AND. kSurfS(i,j,bi,bj).LE.Nr ) THEN
74019f026d Jean*0226             IF ( OB_Jn(i,bi,bj).EQ.OB_indexNone ) THEN
6646af77e1 Jean*0227               OB_Jn(i,bi,bj) = j
                0228               WRITE(msgBuf,'(A,I5,2(A,I3),2(A,I5))')
                0229      &        ' Sets OBN(i,bi,bj=',i,',',bi,',',bj,')=', OB_Jn(i,bi,bj)
                0230               CALL PRINT_MESSAGE( msgBuf,ioUnit,SQUEEZE_RIGHT,myThid )
                0231             ELSEIF ( OB_Jn(i,bi,bj).NE.j ) THEN
                0232               IF ( flag ) CALL PRINT_ERROR( errMsg, myThid )
                0233               flag = .FALSE.
                0234               WRITE(msgBuf,'(A,I5,2(A,I3),2(A,I5))')
                0235      &        ' OBN(i,bi,bj=',i,',',bi,',',bj,')=', OB_Jn(i,bi,bj),
                0236      &        ' but from insideMask expects J=', j
                0237               CALL PRINT_ERROR( msgBuf, myThid )
                0238             ENDIF
                0239            ENDIF
                0240           ENDDO
                0241          ENDDO
                0242 C-    Southern boundary
74019f026d Jean*0243          DO j=0,sNy
6646af77e1 Jean*0244           DO i=1-OLx,sNx+OLx
                0245            IF ( OBCS_insideMask(i,j,bi,bj).LT.
                0246      &          OBCS_insideMask(i,j+1,bi,bj)
                0247      &          .AND. ( i.LT.1 .OR. i.GT.sNx )
9ea74cf9a7 Jean*0248      &          .AND. kSurfS(i,j+1,bi,bj).LE.Nr ) THEN
74019f026d Jean*0249             IF ( OB_Js(i,bi,bj).EQ.OB_indexNone ) THEN
6646af77e1 Jean*0250               OB_Js(i,bi,bj) = j
                0251               WRITE(msgBuf,'(A,I5,2(A,I3),2(A,I5))')
                0252      &        ' Sets OBS(i,bi,bj=',i,',',bi,',',bj,')=', OB_Js(i,bi,bj)
                0253               CALL PRINT_MESSAGE( msgBuf,ioUnit,SQUEEZE_RIGHT,myThid )
                0254             ELSEIF ( OB_Js(i,bi,bj).NE.j ) THEN
                0255               IF ( flag ) CALL PRINT_ERROR( errMsg, myThid )
                0256               flag = .FALSE.
                0257               WRITE(msgBuf,'(A,I5,2(A,I3),2(A,I5))')
                0258      &        ' OBS(i,bi,bj=',i,',',bi,',',bj,')=', OB_Js(i,bi,bj),
                0259      &        ' but from insideMask expects J=', j
                0260               CALL PRINT_ERROR( msgBuf, myThid )
                0261             ENDIF
                0262            ENDIF
                0263           ENDDO
                0264          ENDDO
                0265 
                0266         ENDDO
                0267        ENDDO
                0268        WRITE(msgBuf,'(2A)')
                0269      &      'OBCS_INIT_FIXED: Setting OB indices in Overlap <= done'
                0270        CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0271       ENDIF
                0272 
                0273 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0274 
87ec912e7f Jean*0275 C==   After EXCH: reset Interior mask to zero beyond OB: this is necessary
                0276 C     when EXCH are not disabled (e.g. with EXCH1) between tile Edges
                0277 C     that are closed by OB.
6646af77e1 Jean*0278 C     Do it over OLx,OLy grid points beyond OB, in agreement with OBCS code
87ec912e7f Jean*0279 C     (apply_tracer) which overwrites tracer over the same width.
                0280       OB_ApplX = OLx
                0281       OB_ApplY = OLy
42c525bfb4 Alis*0282 
                0283       DO bj = myByLo(myThid), myByHi(myThid)
                0284        DO bi = myBxLo(myThid), myBxHi(myThid)
                0285 
cf2908d436 Jean*0286 C--   Set Interior mask to zero beyond OB
                0287 C-    Eastern boundary
6910a0b3a6 Jean*0288         DO j=1-OLy,sNy+OLy
6646af77e1 Jean*0289          jm = MAX( j-1, 1-OLy )
87ec912e7f Jean*0290          iB = OB_Ie(j,bi,bj)
74019f026d Jean*0291          IF ( iB.NE.OB_indexNone ) THEN
6910a0b3a6 Jean*0292            DO i=iB,iB+OB_ApplX-1
aa04b5d0aa Jean*0293              OBCS_insideMask(i,j,bi,bj) = 0.
6910a0b3a6 Jean*0294            ENDDO
                0295            DO i=iB+1,iB+OB_ApplX-1
                0296              maskInW(i,j,bi,bj) = 0.
                0297            ENDDO
74019f026d Jean*0298            IF ( OB_Ie(jm,bi,bj).NE.OB_indexNone ) THEN
                0299             iB = MAX( iB, OB_Ie(jm,bi,bj) )
                0300             DO i=iB,iB+OB_ApplX-1
6910a0b3a6 Jean*0301              maskInS(i,j,bi,bj) = 0.
74019f026d Jean*0302             ENDDO
                0303            ENDIF
6910a0b3a6 Jean*0304          ENDIF
                0305         ENDDO
cf2908d436 Jean*0306 C-    Western boundary
6910a0b3a6 Jean*0307         DO j=1-OLy,sNy+OLy
6646af77e1 Jean*0308          jm = MAX( j-1, 1-OLy )
87ec912e7f Jean*0309          iB = OB_Iw(j,bi,bj)
74019f026d Jean*0310          IF ( iB.NE.OB_indexNone ) THEN
6910a0b3a6 Jean*0311            DO i=1-OB_ApplX+iB,iB
aa04b5d0aa Jean*0312              OBCS_insideMask(i,j,bi,bj) = 0.
6910a0b3a6 Jean*0313            ENDDO
                0314            DO i=2-OB_ApplX+iB,iB
                0315              maskInW(i,j,bi,bj) = 0.
                0316            ENDDO
74019f026d Jean*0317            IF ( OB_Iw(jm,bi,bj).NE.OB_indexNone ) THEN
                0318             iB = MIN( iB, OB_Iw(jm,bi,bj) )
                0319             DO i=1-OB_ApplX+iB,iB
6910a0b3a6 Jean*0320              maskInS(i,j,bi,bj) = 0.
74019f026d Jean*0321             ENDDO
                0322            ENDIF
cf2908d436 Jean*0323          ENDIF
                0324         ENDDO
                0325 C-    Northern boundary
6910a0b3a6 Jean*0326         DO i=1-OLx,sNx+OLx
6646af77e1 Jean*0327          im = MAX( i-1, 1-OLx )
87ec912e7f Jean*0328          jB = OB_Jn(i,bi,bj)
74019f026d Jean*0329          IF ( jB.NE.OB_indexNone ) THEN
6910a0b3a6 Jean*0330            DO j=jB,jB+OB_ApplY-1
aa04b5d0aa Jean*0331              OBCS_insideMask(i,j,bi,bj) = 0.
6910a0b3a6 Jean*0332            ENDDO
                0333            DO j=jB+1,jB+OB_ApplY-1
                0334              maskInS(i,j,bi,bj) = 0.
                0335            ENDDO
74019f026d Jean*0336            IF ( OB_Jn(im,bi,bj).NE.OB_indexNone ) THEN
                0337             jB = MAX( jB, OB_Jn(im,bi,bj) )
                0338             DO j=jB,jB+OB_ApplY-1
6910a0b3a6 Jean*0339              maskInW(i,j,bi,bj) = 0.
74019f026d Jean*0340             ENDDO
                0341            ENDIF
6910a0b3a6 Jean*0342          ENDIF
                0343         ENDDO
cf2908d436 Jean*0344 C-    Southern boundary
6910a0b3a6 Jean*0345         DO i=1-OLx,sNx+OLx
6646af77e1 Jean*0346          im = MAX( i-1, 1-OLx )
87ec912e7f Jean*0347          jB = OB_Js(i,bi,bj)
74019f026d Jean*0348          IF ( jB.NE.OB_indexNone ) THEN
6910a0b3a6 Jean*0349            DO j=1-OB_ApplY+jB,jB
aa04b5d0aa Jean*0350              OBCS_insideMask(i,j,bi,bj) = 0.
6910a0b3a6 Jean*0351            ENDDO
                0352            DO j=2-OB_ApplY+jB,jB
                0353              maskInS(i,j,bi,bj) = 0.
                0354            ENDDO
74019f026d Jean*0355            IF ( OB_Js(im,bi,bj).NE.OB_indexNone ) THEN
                0356             jB = MIN( jB, OB_Js(im,bi,bj) )
                0357             DO j=1-OB_ApplY+jB,jB
6910a0b3a6 Jean*0358              maskInW(i,j,bi,bj) = 0.
74019f026d Jean*0359             ENDDO
                0360            ENDIF
cf2908d436 Jean*0361          ENDIF
                0362         ENDDO
                0363 
aa04b5d0aa Jean*0364 C--   Apply mask to maskInC :
6646af77e1 Jean*0365         DO j=1-OLy,sNy+OLy
                0366           DO i=1-OLx,sNx+OLx
aa04b5d0aa Jean*0367             maskInC(i,j,bi,bj) = maskInC(i,j,bi,bj)
                0368      &                          *OBCS_insideMask(i,j,bi,bj)
                0369           ENDDO
                0370         ENDDO
                0371 
cf2908d436 Jean*0372 C--   end bi,bj loops
42c525bfb4 Alis*0373        ENDDO
                0374       ENDDO
                0375 
6646af77e1 Jean*0376 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0377 
                0378 C--   Set OB active tiles:
                0379       DO bj = myByLo(myThid), myByHi(myThid)
                0380        DO bi = myBxLo(myThid), myBxHi(myThid)
                0381          tileHasOBE(bi,bj) = .FALSE.
                0382          tileHasOBW(bi,bj) = .FALSE.
74019f026d Jean*0383          tileHasOBN(bi,bj) = .FALSE.
                0384          tileHasOBS(bi,bj) = .FALSE.
6646af77e1 Jean*0385          DO j=1-OLy,sNy+OLy
74019f026d Jean*0386           tileHasOBE(bi,bj) = tileHasOBE(bi,bj) .OR.
                0387      &                      ( OB_Ie(j,bi,bj).NE.OB_indexNone )
                0388           tileHasOBW(bi,bj) = tileHasOBW(bi,bj) .OR.
                0389      &                      ( OB_Iw(j,bi,bj).NE.OB_indexNone )
6646af77e1 Jean*0390          ENDDO
                0391          DO i=1-OLx,sNx+OLx
74019f026d Jean*0392           tileHasOBN(bi,bj) = tileHasOBN(bi,bj) .OR.
                0393      &                      ( OB_Jn(i,bi,bj).NE.OB_indexNone )
                0394           tileHasOBS(bi,bj) = tileHasOBS(bi,bj) .OR.
                0395      &                      ( OB_Js(i,bi,bj).NE.OB_indexNone )
6646af77e1 Jean*0396          ENDDO
                0397        ENDDO
                0398       ENDDO
                0399 
9ea74cf9a7 Jean*0400 C--   Set domain connected-piece Id for OB grid points:
                0401       CALL OBCS_SET_CONNECT( myThid )
                0402 
6646af77e1 Jean*0403 #ifdef ALLOW_DEBUG
                0404       IF (debugMode) CALL DEBUG_LEAVE('OBCS_INIT_FIXED',myThid)
                0405 #endif
                0406 
42c525bfb4 Alis*0407 #endif /* ALLOW_OBCS */
                0408       RETURN
                0409       END