** Warning **
Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.
Last-Modified: Thu, 20 May 2026 05:09:21 GMT
Content-Type: text/html; charset=utf-8
MITgcm/MITgcm/pkg/exch2/exch2_check_depths.F
File indexing completed on 2020-07-29 05:11:12 UTC
view on github raw file Latest commit b9dadda2 on 2020-07-28 16:49:33 UTC
ca9dfa26c1 Jean* 0001 #include "PACKAGES_CONFIG.h"
e31f23dc17 Jean* 0002 #include "CPP_OPTIONS.h "
0003 #include "W2_OPTIONS.h "
0004
0005
0006
0007
0008
0009 SUBROUTINE EXCH2_CHECK_DEPTHS ( rLow , rHigh , myThid )
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 IMPLICIT NONE
0022
0023 #include "SIZE.h "
0024 #include "EEPARAMS.h "
0025
90219e5912 Jean* 0026 #include "W2_EXCH2_SIZE.h "
e31f23dc17 Jean* 0027 #include "W2_EXCH2_TOPOLOGY.h "
ca9dfa26c1 Jean* 0028 #ifdef ALLOW_OBCS
0029 # include "PARAMS.h "
0030 #endif
e31f23dc17 Jean* 0031
0032
0033
0034
0035
4f747a7822 Jean* 0036
e31f23dc17 Jean* 0037 _RS rLow (1-OLx :sNx +OLx ,1-OLy :sNy +OLy ,nSx ,nSy )
0038 _RS rHigh (1-OLx :sNx +OLx ,1-OLy :sNy +OLy ,nSx ,nSy )
0039 INTEGER myThid
0040
0041
0042
0043 _RS tmpFld (1-OLx :sNx +OLx ,1-OLy :sNy +OLy )
0044 CHARACTER *(MAX_LEN_MBUF ) msgBuf
0045 INTEGER bi , bj , tId
0046 INTEGER i , j , n
0047 INTEGER errN , errS , errE , errW
0048 LOGICAL errFlag
0049
ca9dfa26c1 Jean* 0050 #ifdef ALLOW_OBCS
e31f23dc17 Jean* 0051
0052 IF ( useOBCs ) RETURN
ca9dfa26c1 Jean* 0053 #endif
e31f23dc17 Jean* 0054
0055 errFlag = .FALSE.
0056 DO bj = myByLo (myThid ), myByHi (myThid )
0057 DO bi = myBxLo (myThid ), myBxHi (myThid )
0058
0059
0060 i = sNx +1
0061 DO j =1,sNy
0062 tmpFld (0,j ) = rHigh ( 1 ,j ,bi ,bj ) - rLow ( 1 ,j ,bi ,bj )
0063 tmpFld (i ,j ) = rHigh (sNx ,j ,bi ,bj ) - rLow (sNx ,j ,bi ,bj )
0064 ENDDO
0065 j = sNy +1
0066 DO i =1,sNx
0067 tmpFld (i ,0) = rHigh (i , 1 ,bi ,bj ) - rLow (i , 1 ,bi ,bj )
0068 tmpFld (i ,j ) = rHigh (i ,sNy ,bi ,bj ) - rLow (i ,sNy ,bi ,bj )
0069 ENDDO
0070
0071
8adbfea2f8 Jean* 0072 tId = W2_myTileList (bi ,bj )
e31f23dc17 Jean* 0073 DO n = 1,exch2_nNeighbours (tId )
0074 DO j =exch2_jLo (n ,tId ),exch2_jHi (n ,tId )
0075 DO i =exch2_iLo (n ,tId ),exch2_iHi (n ,tId )
0076 tmpFld (i ,j ) = 0.
0077 ENDDO
0078 ENDDO
0079 ENDDO
0080
0081
0082 errN = 0
0083 j = sNy +1
0084 DO i =1,sNx
0085 IF ( tmpFld (i ,j ).GT. 0. ) errN = errN + 1
0086 ENDDO
0087
0088 errS = 0
0089 j = 0
0090 DO i =1,sNx
0091 IF ( tmpFld (i ,j ).GT. 0. ) errS = errS + 1
0092 ENDDO
0093
0094 errE = 0
0095 i = sNx +1
0096 DO j =1,sNy
0097 IF ( tmpFld (i ,j ).GT. 0. ) errE = errE + 1
0098 ENDDO
0099
0100 errW = 0
0101 i = 0
0102 DO j =1,sNy
0103 IF ( tmpFld (i ,j ).GT. 0. ) errW = errW + 1
0104 ENDDO
0105
0106 IF ( errN +errS +errW +errE .GE. 1 ) THEN
b9dadda204 Mart* 0107 WRITE (msgBuf ,'(2A,I8,A,2(I4,A))' )
4f747a7822 Jean* 0108 & '** WARNING ** EXCH2_CHECK_DEPTHS: ' ,
f1521734b9 Jean* 0109 & 'tile #' , tId , ' (bi,bj=' , bi , ',' , bj , ' ):'
0110 CALL PRINT_MESSAGE ( msgBuf , errorMessageUnit ,
0111 & SQUEEZE_RIGHT , myThid )
e31f23dc17 Jean* 0112 IF ( errN .GE. 1 ) THEN
0113 WRITE (msgBuf ,'(A,I5,A)' ) ' N.Edge has' , errN ,
0114 & ' unconnected points with non-zero depth.'
f1521734b9 Jean* 0115 CALL PRINT_MESSAGE ( msgBuf , errorMessageUnit ,
0116 & SQUEEZE_RIGHT , myThid )
e31f23dc17 Jean* 0117 ENDIF
0118 IF ( errS .GE. 1 ) THEN
0119 WRITE (msgBuf ,'(A,I5,A)' ) ' S.Edge has' , errS ,
0120 & ' unconnected points with non-zero depth.'
f1521734b9 Jean* 0121 CALL PRINT_MESSAGE ( msgBuf , errorMessageUnit ,
0122 & SQUEEZE_RIGHT , myThid )
e31f23dc17 Jean* 0123 ENDIF
0124 IF ( errE .GE. 1 ) THEN
0125 WRITE (msgBuf ,'(A,I5,A)' ) ' E.Edge has' , errE ,
0126 & ' unconnected points with non-zero depth.'
f1521734b9 Jean* 0127 CALL PRINT_MESSAGE ( msgBuf , errorMessageUnit ,
0128 & SQUEEZE_RIGHT , myThid )
e31f23dc17 Jean* 0129 ENDIF
0130 IF ( errW .GE. 1 ) THEN
0131 WRITE (msgBuf ,'(A,I5,A)' ) ' W.Edge has' , errW ,
0132 & ' unconnected points with non-zero depth.'
f1521734b9 Jean* 0133 CALL PRINT_MESSAGE ( msgBuf , errorMessageUnit ,
0134 & SQUEEZE_RIGHT , myThid )
e31f23dc17 Jean* 0135 ENDIF
0136 WRITE ( msgBuf ,'(A)' ) 'S/R EXCH2_CHECK_DEPTHS: Fatal Error'
f1521734b9 Jean* 0137 errFlag = .TRUE.
e31f23dc17 Jean* 0138 ENDIF
0139
0140 ENDDO
0141 ENDDO
0142
d3fbaa6766 Jean* 0143 #ifdef USE_ERROR_STOP
f1521734b9 Jean* 0144
d3fbaa6766 Jean* 0145 #else /* USE_ERROR_STOP */
f1521734b9 Jean* 0146
d3fbaa6766 Jean* 0147 #endif /* USE_ERROR_STOP */
f1521734b9 Jean* 0148 IF ( errFlag ) THEN
4f747a7822 Jean* 0149 WRITE ( msgBuf ,'(2A)' ) '** WARNING ** EXCH2_CHECK_DEPTHS:' ,
f1521734b9 Jean* 0150 & ' some algorithm implementation might not be'
0151 CALL PRINT_MESSAGE ( msgBuf , errorMessageUnit ,
0152 & SQUEEZE_RIGHT , myThid )
4f747a7822 Jean* 0153 WRITE ( msgBuf ,'(2A)' ) '** WARNING ** EXCH2_CHECK_DEPTHS:' ,
f1521734b9 Jean* 0154 & ' safe with non-zero depth next to blank-tile'
0155 CALL PRINT_MESSAGE ( msgBuf , errorMessageUnit ,
0156 & SQUEEZE_RIGHT , myThid )
0157 ENDIF
e31f23dc17 Jean* 0158
0159 RETURN
0160 END