/[MITgcm]/MITgcm/pkg/rbcs/rbcs_init_fixed.F
ViewVC logotype

Diff of /MITgcm/pkg/rbcs/rbcs_init_fixed.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.10 by jmc, Sun Dec 6 15:33:16 2015 UTC revision 1.11 by jmc, Wed Nov 15 23:33:54 2017 UTC
# Line 60  C     Report RBCS mask setting Line 60  C     Report RBCS mask setting
60    
61        IF ( useRBCtemp ) THEN        IF ( useRBCtemp ) THEN
62          irbc = MIN(maskLEN,1)          irbc = MIN(maskLEN,1)
63          IF ( relaxMaskFile(irbc).EQ.' ' ) THEN          IF ( relaxMaskTrFile(irbc).EQ.' ' ) THEN
64           WRITE(msgBuf,'(2A,I3,2A)') '** WARNING ** RBCS_INIT_FIXED:',           WRITE(msgBuf,'(2A,I3,2A)') '** WARNING ** RBCS_INIT_FIXED:',
65       &     ' relaxMaskFile(irbc=', irbc, ') unset ==> No relaxation',       &     ' relaxMaskFile(irbc=', irbc, ') unset ==> No relaxation',
66       &     ' for Temp'       &     ' for Temp'
# Line 72  C     Report RBCS mask setting Line 72  C     Report RBCS mask setting
72           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
73       &                       SQUEEZE_RIGHT, myThid )       &                       SQUEEZE_RIGHT, myThid )
74          ELSE          ELSE
75           iLen = ILNBLNK(relaxMaskFile(irbc))           iLen = ILNBLNK(relaxMaskTrFile(irbc))
76           WRITE(msgBuf,'(A,I3,3A)') 'Use relaxMaskFile(irbc=', irbc,           WRITE(msgBuf,'(A,I3,3A)') 'Use relaxMaskFile(irbc=', irbc,
77       &     ') = "', relaxMaskFile(irbc)(1:iLen), '"'       &     ') = "', relaxMaskTrFile(irbc)(1:iLen), '"'
78           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
79       &                       SQUEEZE_RIGHT, myThid )       &                       SQUEEZE_RIGHT, myThid )
80           WRITE(msgBuf,'(A,1PE21.13)')           WRITE(msgBuf,'(A,1PE21.13)')
# Line 85  C     Report RBCS mask setting Line 85  C     Report RBCS mask setting
85        ENDIF        ENDIF
86        IF ( useRBCsalt ) THEN        IF ( useRBCsalt ) THEN
87          irbc = MIN(maskLEN,2)          irbc = MIN(maskLEN,2)
88          IF ( relaxMaskFile(irbc).EQ.' ' ) THEN          IF ( relaxMaskTrFile(irbc).EQ.' ' ) THEN
89           WRITE(msgBuf,'(2A,I3,2A)') '** WARNING ** RBCS_INIT_FIXED:',           WRITE(msgBuf,'(2A,I3,2A)') '** WARNING ** RBCS_INIT_FIXED:',
90       &     ' relaxMaskFile(irbc=', irbc, ') unset ==> No relaxation',       &     ' relaxMaskFile(irbc=', irbc, ') unset ==> No relaxation',
91       &     ' for Salt'       &     ' for Salt'
# Line 97  C     Report RBCS mask setting Line 97  C     Report RBCS mask setting
97           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
98       &                       SQUEEZE_RIGHT, myThid )       &                       SQUEEZE_RIGHT, myThid )
99          ELSE          ELSE
100           iLen = ILNBLNK(relaxMaskFile(irbc))           iLen = ILNBLNK(relaxMaskTrFile(irbc))
101           WRITE(msgBuf,'(A,I3,3A)') 'Use relaxMaskFile(irbc=', irbc,           WRITE(msgBuf,'(A,I3,3A)') 'Use relaxMaskFile(irbc=', irbc,
102       &     ') = "', relaxMaskFile(irbc)(1:iLen), '"'       &     ') = "', relaxMaskTrFile(irbc)(1:iLen), '"'
103           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
104       &                       SQUEEZE_RIGHT, myThid )       &                       SQUEEZE_RIGHT, myThid )
105           WRITE(msgBuf,'(A,1PE21.13)')           WRITE(msgBuf,'(A,1PE21.13)')
# Line 157  C     Report RBCS mask setting Line 157  C     Report RBCS mask setting
157         DO iTr=1,PTRACERS_numInUse         DO iTr=1,PTRACERS_numInUse
158          IF ( useRBCpTrNum(iTr) ) THEN          IF ( useRBCpTrNum(iTr) ) THEN
159           irbc = MIN(maskLEN,2+iTr)           irbc = MIN(maskLEN,2+iTr)
160           IF ( relaxMaskFile(irbc).EQ.' ' ) THEN           IF ( relaxMaskTrFile(irbc).EQ.' ' ) THEN
161            WRITE(msgBuf,'(2A,I3,2A,I3)')            WRITE(msgBuf,'(2A,I3,2A,I3)')
162       &     '** WARNING ** RBCS_INIT_FIXED:',       &     '** WARNING ** RBCS_INIT_FIXED:',
163       &     ' relaxMaskFile(irbc=', irbc, ') unset ==> No relaxation',       &     ' relaxMaskFile(irbc=', irbc, ') unset ==> No relaxation',
# Line 170  C     Report RBCS mask setting Line 170  C     Report RBCS mask setting
170            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
171       &                        SQUEEZE_RIGHT, myThid )       &                        SQUEEZE_RIGHT, myThid )
172           ELSE           ELSE
173            iLen = ILNBLNK(relaxMaskFile(irbc))            iLen = ILNBLNK(relaxMaskTrFile(irbc))
174            WRITE(msgBuf,'(A,I3,3A)') 'Use relaxMaskFile(irbc=', irbc,            WRITE(msgBuf,'(A,I3,3A)') 'Use relaxMaskFile(irbc=', irbc,
175       &     ') = "', relaxMaskFile(irbc)(1:iLen), '"'       &     ') = "', relaxMaskTrFile(irbc)(1:iLen), '"'
176            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
177       &                        SQUEEZE_RIGHT, myThid )       &                        SQUEEZE_RIGHT, myThid )
178            WRITE(msgBuf,'(A,I3,A,1PE21.13)')            WRITE(msgBuf,'(A,I3,A,1PE21.13)')
# Line 195  C     Loop over tiles Line 195  C     Loop over tiles
195        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
196         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
197           DO k=1,Nr           DO k=1,Nr
198            DO j=1-Oly,sNy+OLy            DO j=1-OLy,sNy+OLy
199             DO i=1-Olx,sNx+Olx             DO i=1-OLx,sNx+OLx
200               RBC_maskU(i,j,k,bi,bj) = 0. _d 0               RBC_maskU(i,j,k,bi,bj) = 0. _d 0
201               RBC_maskV(i,j,k,bi,bj) = 0. _d 0               RBC_maskV(i,j,k,bi,bj) = 0. _d 0
202             ENDDO             ENDDO
# Line 215  C     Loop over tiles Line 215  C     Loop over tiles
215    
216  C        Initialize arrays in common blocks :  C        Initialize arrays in common blocks :
217             DO k=1,Nr             DO k=1,Nr
218              DO j=1-Oly,sNy+OLy              DO j=1-OLy,sNy+OLy
219               DO i=1-Olx,sNx+Olx               DO i=1-OLx,sNx+OLx
220                 RBC_mask(i,j,k,bi,bj,irbc) = 0. _d 0                 RBC_mask(i,j,k,bi,bj,irbc) = 0. _d 0
221               ENDDO               ENDDO
222              ENDDO              ENDDO
# Line 230  C     end of mask index loop Line 230  C     end of mask index loop
230    
231  C read in mask for relaxing  C read in mask for relaxing
232        DO irbc=1,maskLEN        DO irbc=1,maskLEN
233         IF ( relaxMaskFile(irbc).NE. ' ' ) THEN         IF ( relaxMaskTrFile(irbc).NE. ' ' ) THEN
234           CALL READ_FLD_XYZ_RS(relaxMaskFile(irbc),' ',           CALL READ_FLD_XYZ_RS( relaxMaskTrFile(irbc), ' ',
235       &                RBC_mask(1-Olx,1-Oly,1,1,1,irbc), 0, myThid)       &                RBC_mask(1-OLx,1-OLy,1,1,1,irbc), 0, myThid )
236           CALL EXCH_XYZ_RS( RBC_mask(1-Olx,1-Oly,1,1,1,irbc), myThid )           CALL EXCH_XYZ_RS( RBC_mask(1-OLx,1-OLy,1,1,1,irbc), myThid )
237  C--   Apply mask:  C--   Apply mask:
238           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
239            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
240             DO k=1,Nr             DO k=1,Nr
241              DO j=1-Oly,sNy+OLy              DO j=1-OLy,sNy+OLy
242               DO i=1-Olx,sNx+Olx               DO i=1-OLx,sNx+OLx
243                 RBC_mask(i,j,k,bi,bj,irbc) = RBC_mask(i,j,k,bi,bj,irbc)                 RBC_mask(i,j,k,bi,bj,irbc) = RBC_mask(i,j,k,bi,bj,irbc)
244       &                                    * maskC(i,j,k,bi,bj)       &                                    * maskC(i,j,k,bi,bj)
245               ENDDO               ENDDO
# Line 250  C--   Apply mask: Line 250  C--   Apply mask:
250           IF ( debugLevel.GE.debLevC ) THEN           IF ( debugLevel.GE.debLevC ) THEN
251             WRITE(filName,'(A,I3.3)') 'RBC_mask_',irbc             WRITE(filName,'(A,I3.3)') 'RBC_mask_',irbc
252             CALL WRITE_FLD_XYZ_RS( filName,' ',             CALL WRITE_FLD_XYZ_RS( filName,' ',
253       &                RBC_mask(1-Olx,1-Oly,1,1,1,irbc), 0, myThid )       &                RBC_mask(1-OLx,1-OLy,1,1,1,irbc), 0, myThid )
254           ENDIF           ENDIF
255         ENDIF         ENDIF
256        ENDDO        ENDDO
# Line 262  C--   Apply mask: Line 262  C--   Apply mask:
262          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
263           DO bi = myBxLo(myThid), myBxHi(myThid)           DO bi = myBxLo(myThid), myBxHi(myThid)
264             DO k=1,Nr             DO k=1,Nr
265              DO j=1-Oly,sNy+OLy              DO j=1-OLy,sNy+OLy
266               DO i=2-Olx,sNx+Olx               DO i=2-OLx,sNx+OLx
267                 RBC_maskU(i,j,k,bi,bj) =                 RBC_maskU(i,j,k,bi,bj) =
268       &                  ( RBC_mask(i-1,j,k,bi,bj,1)       &                  ( RBC_mask(i-1,j,k,bi,bj,1)
269       &                  + RBC_mask( i ,j,k,bi,bj,1) )*0.5 _d 0       &                  + RBC_mask( i ,j,k,bi,bj,1) )*0.5 _d 0
# Line 279  C--   Apply mask: Line 279  C--   Apply mask:
279          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
280           DO bi = myBxLo(myThid), myBxHi(myThid)           DO bi = myBxLo(myThid), myBxHi(myThid)
281             DO k=1,Nr             DO k=1,Nr
282              DO j=2-Oly,sNy+OLy              DO j=2-OLy,sNy+OLy
283               DO i=1-Olx,sNx+Olx               DO i=1-OLx,sNx+OLx
284                 RBC_maskV(i,j,k,bi,bj) =                 RBC_maskV(i,j,k,bi,bj) =
285       &                  ( RBC_mask(i,j-1,k,bi,bj,1)       &                  ( RBC_mask(i,j-1,k,bi,bj,1)
286       &                  + RBC_mask(i, j ,k,bi,bj,1) )*0.5 _d 0       &                  + RBC_mask(i, j ,k,bi,bj,1) )*0.5 _d 0
# Line 296  C--   Apply mask: Line 296  C--   Apply mask:
296           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
297            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
298             DO k=1,Nr             DO k=1,Nr
299              DO j=1-Oly,sNy+OLy              DO j=1-OLy,sNy+OLy
300               DO i=1-Olx,sNx+Olx               DO i=1-OLx,sNx+OLx
301                 RBC_maskU(i,j,k,bi,bj) = RBC_maskU(i,j,k,bi,bj)                 RBC_maskU(i,j,k,bi,bj) = RBC_maskU(i,j,k,bi,bj)
302       &                                * maskW(i,j,k,bi,bj)       &                                * maskW(i,j,k,bi,bj)
303                 RBC_maskV(i,j,k,bi,bj) = RBC_maskV(i,j,k,bi,bj)                 RBC_maskV(i,j,k,bi,bj) = RBC_maskV(i,j,k,bi,bj)

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22