File indexing completed on 2018-03-02 18:42:32 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
614077ca71 Jean*0001 #include "OBCS_OPTIONS.h"
0002
0003 SUBROUTINE OBCS_CHECK_DEPTHS( myThid )
0004
7ab2af4f8a Jean*0005
0006
0007
0008
614077ca71 Jean*0009
0010
0011 IMPLICIT NONE
0012
0013
0014 #include "SIZE.h"
0015 #include "EEPARAMS.h"
0016 #include "PARAMS.h"
0017 #include "GRID.h"
9b4f2a04e2 Jean*0018 #include "OBCS_PARAMS.h"
0019 #include "OBCS_GRID.h"
614077ca71 Jean*0020
0021
7ab2af4f8a Jean*0022
614077ca71 Jean*0023 INTEGER myThid
0024
0025 #ifdef ALLOW_OBCS
0026
7ab2af4f8a Jean*0027
614077ca71 Jean*0028 CHARACTER*(MAX_LEN_MBUF) msgBuf
268338d16f Jean*0029 INTEGER bi, bj, i, j, ichanged
614077ca71 Jean*0030
0031 IF ( OBCSfixTopo ) THEN
0032
0033
0034
0035 ichanged = 0
0036 DO bj = myByLo(myThid), myByHi(myThid)
0037 DO bi = myBxLo(myThid), myBxHi(myThid)
0038
0039 #ifdef ALLOW_OBCS_NORTH
268338d16f Jean*0040 DO i=1,sNx
0041 j = OB_Jn(i,bi,bj)
0042 IF ( j.NE.OB_indexNone ) THEN
0043 IF ( R_low(i,j,bi,bj) .LT. R_low(i,j-1,bi,bj) ) THEN
614077ca71 Jean*0044 ichanged = ichanged + 1
268338d16f Jean*0045 R_low(i,j,bi,bj) = R_low(i,j-1,bi,bj)
faeac5b8f9 Jean*0046 WRITE(msgBuf,'(2A,2I6,2I4)')
0047 & 'OBCS_CHECK_DEPTHS: fixed topography at ',
268338d16f Jean*0048 & '(i,j,bi,bj)=', i, j, bi, bj
614077ca71 Jean*0049 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0050 & SQUEEZE_RIGHT, myThid)
0051 ENDIF
268338d16f Jean*0052 ENDIF
0053 ENDDO
614077ca71 Jean*0054 #endif
0055 #ifdef ALLOW_OBCS_SOUTH
268338d16f Jean*0056 DO i=1,sNx
0057 j = OB_Js(i,bi,bj)
0058 IF ( j.NE.OB_indexNone ) THEN
0059 IF ( R_low(i,j,bi,bj) .LT. R_low(i,j+1,bi,bj) ) THEN
614077ca71 Jean*0060 ichanged = ichanged + 1
268338d16f Jean*0061 R_low(i,j,bi,bj) = R_low(i,j+1,bi,bj)
faeac5b8f9 Jean*0062 WRITE(msgBuf,'(2A,2I6,2I4)')
0063 & 'OBCS_CHECK_DEPTHS: fixed topography at ',
268338d16f Jean*0064 & '(i,j,bi,bj)=', i, j, bi, bj
614077ca71 Jean*0065 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0066 & SQUEEZE_RIGHT, myThid)
0067 ENDIF
268338d16f Jean*0068 ENDIF
0069 ENDDO
614077ca71 Jean*0070 #endif
0071 #ifdef ALLOW_OBCS_EAST
268338d16f Jean*0072 DO j=1,sNy
0073 i = OB_Ie(j,bi,bj)
0074 IF ( i.NE.OB_indexNone ) THEN
0075 IF ( R_low(i,j,bi,bj) .LT. R_low(i-1,j,bi,bj) ) THEN
614077ca71 Jean*0076 ichanged = ichanged + 1
268338d16f Jean*0077 R_low(i,j,bi,bj) = R_low(i-1,j,bi,bj)
faeac5b8f9 Jean*0078 WRITE(msgBuf,'(2A,2I6,2I4)')
0079 & 'OBCS_CHECK_DEPTHS: fixed topography at ',
268338d16f Jean*0080 & '(i,j,bi,bj)=', i, j, bi, bj
614077ca71 Jean*0081 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0082 & SQUEEZE_RIGHT, myThid)
0083 ENDIF
268338d16f Jean*0084 ENDIF
0085 ENDDO
614077ca71 Jean*0086 #endif
0087
0088 #ifdef ALLOW_OBCS_WEST
268338d16f Jean*0089 DO j=1,sNy
0090 i = OB_Iw(j,bi,bj)
0091 IF ( i.NE.OB_indexNone ) THEN
0092 IF ( R_low(i,j,bi,bj) .LT. R_low(i+1,j,bi,bj) ) THEN
614077ca71 Jean*0093 ichanged = ichanged + 1
268338d16f Jean*0094 R_low(i,j,bi,bj) = R_low(i+1,j,bi,bj)
faeac5b8f9 Jean*0095 WRITE(msgBuf,'(2A,2I6,2I4)')
0096 & 'OBCS_CHECK_DEPTHS: fixed topography at ',
268338d16f Jean*0097 & '(i,j,bi,bj)=', i, j, bi, bj
614077ca71 Jean*0098 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0099 & SQUEEZE_RIGHT, myThid)
0100 ENDIF
268338d16f Jean*0101 ENDIF
614077ca71 Jean*0102 ENDDO
268338d16f Jean*0103 #endif
614077ca71 Jean*0104
0105 ENDDO
0106 ENDDO
0107
7ab2af4f8a Jean*0108 CALL GLOBAL_SUM_INT( ichanged, myThid )
614077ca71 Jean*0109 IF ( ichanged .GT. 0 ) THEN
faeac5b8f9 Jean*0110 _BEGIN_MASTER(myThid)
0111 WRITE(msgBuf,'(2A,I7,A)') 'OBCS_CHECK_DEPTHS: ',
0112 & 'Topography gradients normal to open boundaries:'
614077ca71 Jean*0113 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
faeac5b8f9 Jean*0114 & SQUEEZE_RIGHT, myThid )
0115 WRITE(msgBuf,'(2A,I7,A)') 'OBCS_CHECK_DEPTHS: ',
0116 & '==> corrected ', ichanged,' problematic grid-points'
0117
0118
0119
0120
0121 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0122 & SQUEEZE_RIGHT, myThid )
0123 _END_MASTER(myThid)
614077ca71 Jean*0124 ENDIF
7ab2af4f8a Jean*0125
614077ca71 Jean*0126
0127 ENDIF
0128 #endif /* ALLOW_OBCS */
0129
0130 RETURN
0131 END