File indexing completed on 2018-03-02 18:42:33 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
2c64c37c71 Mart*0001 #include "OBCS_OPTIONS.h"
0002
0003
0004
0005
0006
0007 SUBROUTINE OBCS_COPY_UV_N(
0008 U uFld, vFld,
0009 I kSiz, bi, bj, myThid )
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 IMPLICIT NONE
0023
0024 #include "SIZE.h"
0025 #include "EEPARAMS.h"
0026 #include "PARAMS.h"
0027 #include "OBCS_PARAMS.h"
0028 #include "OBCS_GRID.h"
0029
0030
0031
0032
0033
0034
0035
0036 INTEGER kSiz
0037 _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSiz)
0038 _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSiz)
0039 INTEGER bi, bj
0040 INTEGER myThid
0041
0042
0043 #ifdef ALLOW_OBCS_STEVENS
0044
0045
0046
0047 INTEGER i, j, k
0048 INTEGER Iobc, Jobc
0049
0050
0051 #ifdef ALLOW_OBCS_NORTH
0052 IF ( tileHasOBN(bi,bj) .AND. useStevensNorth ) THEN
0053
74019f026d Jean*0054 DO i=1-OLx,sNx+OLx
2c64c37c71 Mart*0055 Jobc = OB_Jn(i,bi,bj)
74019f026d Jean*0056 IF ( Jobc.NE.OB_indexNone ) THEN
2c64c37c71 Mart*0057 DO k = 1, kSiz
74019f026d Jean*0058 DO j = Jobc+1, Jobc+OLy
2c64c37c71 Mart*0059 vFld(i,j,k) = vFld(i,Jobc,k)
0060 ENDDO
0061 ENDDO
0062 ENDIF
0063 ENDDO
0064 ENDIF
0065 #endif /* ALLOW_OBCS_NORTH */
0066
0067 #ifdef ALLOW_OBCS_SOUTH
0068 IF ( tileHasOBS(bi,bj) .AND. useStevensSouth ) THEN
0069
74019f026d Jean*0070 DO i=1-OLx,sNx+OLx
2c64c37c71 Mart*0071 Jobc = OB_Js(i,bi,bj)
74019f026d Jean*0072 IF ( Jobc.NE.OB_indexNone ) THEN
2c64c37c71 Mart*0073 DO k = 1, kSiz
74019f026d Jean*0074 DO j = Jobc-OLy, Jobc
2c64c37c71 Mart*0075 vFld(i,j,k) = vFld(i,Jobc+1,k)
0076 ENDDO
0077 ENDDO
0078 ENDIF
0079 ENDDO
0080 ENDIF
0081 #endif /* ALLOW_OBCS_SOUTH */
74019f026d Jean*0082
2c64c37c71 Mart*0083
0084 #ifdef ALLOW_OBCS_EAST
0085 IF ( tileHasOBE(bi,bj) .AND. useStevensEast ) THEN
0086
74019f026d Jean*0087 DO j=1-OLy,sNy+OLy
2c64c37c71 Mart*0088 Iobc = OB_Ie(j,bi,bj)
74019f026d Jean*0089 IF ( Iobc.NE.OB_indexNone ) THEN
2c64c37c71 Mart*0090 DO k = 1, kSiz
74019f026d Jean*0091 DO i = Iobc+1, Iobc+OLx
2c64c37c71 Mart*0092 uFld(i,j,k) = uFld(Iobc,j,k)
0093 ENDDO
0094 ENDDO
0095 ENDIF
0096 ENDDO
0097 ENDIF
0098 #endif /* ALLOW_OBCS_EAST */
0099
0100 #ifdef ALLOW_OBCS_WEST
0101 IF ( tileHasOBW(bi,bj) .AND. useStevensWest ) THEN
0102
74019f026d Jean*0103 DO j=1-OLy,sNy+OLy
2c64c37c71 Mart*0104 Iobc = OB_Iw(j,bi,bj)
74019f026d Jean*0105 IF ( Iobc.NE.OB_indexNone ) THEN
2c64c37c71 Mart*0106 DO k = 1, kSiz
74019f026d Jean*0107 DO i = Iobc-OLx, Iobc
2c64c37c71 Mart*0108 uFld(i,j,k) = uFld(Iobc+1,j,k)
0109 ENDDO
0110 ENDDO
0111 ENDIF
0112 ENDDO
0113 ENDIF
0114 #endif /* ALLOW_OBCS_WEST */
0115
0116 #endif /* ALLOW_OBCS_STEVENS */
0117
0118 RETURN
0119 END