File indexing completed on 2021-04-28 05:11:51 UTC
view on githubraw file Latest commit 342b4ea4 on 2021-04-27 15:59:18 UTC
999b38430d Alis*0001 #include "MOM_COMMON_OPTIONS.h"
0002
12b389f505 Jean*0003 SUBROUTINE MOM_CALC_HDIV(
999b38430d Alis*0004 I bi,bj,k, hDivScheme,
0005 I uFld, vFld,
0006 O hDiv,
220a9e88b5 Jean*0007 I myThid )
999b38430d Alis*0008 IMPLICIT NONE
12b389f505 Jean*0009
999b38430d Alis*0010
12b389f505 Jean*0011
0012
999b38430d Alis*0013
0014
0015 #include "SIZE.h"
0016 #include "EEPARAMS.h"
0017 #include "PARAMS.h"
0018 #include "GRID.h"
0019
342b4ea43e Mart*0020
999b38430d Alis*0021 INTEGER bi,bj,k,hDivScheme
0022 _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0023 _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0024 _RL hDiv(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0025 INTEGER myThid
0026
0027
0028 INTEGER i,j
0029
342b4ea43e Mart*0030 #ifdef ALLOW_AUTODIFF
0031
0032 DO j=1-OLy,sNy+OLy
0033 DO i=1-OLx,sNx+OLx
0034 hDiv(i,j)=0. _d 0
0035 ENDDO
0036 ENDDO
0037 #endif
999b38430d Alis*0038 IF (hDivScheme.EQ.1) THEN
220a9e88b5 Jean*0039 DO j=1-OLy,sNy+OLy-1
0040 DO i=1-OLx,sNx+OLx-1
999b38430d Alis*0041
0042
12b389f505 Jean*0043 hDiv(i,j)=(
0044 & uFld(i+1, j )*dyG(i+1, j ,bi,bj)
0045 & -uFld( i , j )*dyG( i , j ,bi,bj)
0046 & +vFld( i ,j+1)*dxG( i ,j+1,bi,bj)
0047 & -vFld( i , j )*dxG( i , j ,bi,bj)
220a9e88b5 Jean*0048 & )*recip_rA(i,j,bi,bj)*recip_deepFacC(k)
12b389f505 Jean*0049 #ifdef ALLOW_OBCS
0050 & *maskInC(i,j,bi,bj)
0051 #endif
999b38430d Alis*0052 ENDDO
0053 ENDDO
0054
0055 ELSEIF (hDivScheme.EQ.2) THEN
220a9e88b5 Jean*0056 DO j=1-OLy,sNy+OLy-1
0057 DO i=1-OLx,sNx+OLx-1
999b38430d Alis*0058
0059
12b389f505 Jean*0060 hDiv(i,j)=
0061 & ( ( uFld(i+1, j )*dyG(i+1, j ,bi,bj)*hFacW(i+1, j ,k,bi,bj)
0062 & -uFld( i , j )*dyG( i , j ,bi,bj)*hFacW( i , j ,k,bi,bj) )
0063 & +( vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*hFacS( i ,j+1,k,bi,bj)
0064 & -vFld( i , j )*dxG( i , j ,bi,bj)*hFacS( i , j ,k,bi,bj) )
220a9e88b5 Jean*0065 & )*recip_rA(i,j,bi,bj)*recip_deepFacC(k)
616600b8d2 Patr*0066 & *_recip_hFacC(i,j,k,bi,bj)
12b389f505 Jean*0067 #ifdef ALLOW_OBCS
0068 & *maskInC(i,j,bi,bj)
0069 #endif
999b38430d Alis*0070 ENDDO
0071 ENDDO
0072
0073 ELSE
0074 STOP 'S/R MOM_CALC_HDIV: We should never reach this point!'
0075 ENDIF
0076
0077 RETURN
0078 END