File indexing completed on 2024-11-30 06:11:14 UTC
view on githubraw file Latest commit 7bb5a8a1 on 2024-11-29 14:30:55 UTC
6d54cf9ca1 Ed H*0001 #include "MOM_FLUXFORM_OPTIONS.h"
7bb5a8a109 Jean*0002 #ifdef ALLOW_MOM_COMMON
0003 # include "MOM_COMMON_OPTIONS.h"
0004 #endif
aea29c8517 Alis*0005
71207ba845 Alis*0006
0007
0008
0009
aea29c8517 Alis*0010 SUBROUTINE MOM_U_DEL2U(
fd362e9f7c Jean*0011 I bi, bj, k,
0012 I uFld, hFacZ, h0FacZ,
aea29c8517 Alis*0013 O del2u,
fd362e9f7c Jean*0014 I myThid )
aea29c8517 Alis*0015
71207ba845 Alis*0016
0017
0018
0019
0020 IMPLICIT NONE
aea29c8517 Alis*0021 #include "SIZE.h"
0022 #include "EEPARAMS.h"
0023 #include "PARAMS.h"
0024 #include "GRID.h"
bf5496678a Jean*0025 #include "SURFACE.h"
aea29c8517 Alis*0026
71207ba845 Alis*0027
0028
0029
0030
0031
fd362e9f7c Jean*0032
0033
0034 INTEGER bi, bj, k
0035 _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0036 _RS hFacZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0037 _RS h0FacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
aea29c8517 Alis*0038 INTEGER myThid
0039
71207ba845 Alis*0040
0041
0042 _RL del2u(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0043
0044
0045
7bb5a8a109 Jean*0046 INTEGER i,j
aea29c8517 Alis*0047 _RL fZon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0048 _RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
fd362e9f7c Jean*0049 _RS hFacZClosedS, hFacZClosedN
71207ba845 Alis*0050
aea29c8517 Alis*0051
0052
fd362e9f7c Jean*0053 DO j=1-OLy+1,sNy+OLy-1
0054 DO i=1-OLx,sNx+OLx-1
aea29c8517 Alis*0055 fZon(i,j) = drF(k)*_hFacC(i,j,k,bi,bj)
0056 & *_dyF(i,j,bi,bj)
0057 & *_recip_dxF(i,j,bi,bj)
0058 & *(uFld(i+1,j)-uFld(i,j))
0059 #ifdef COSINEMETH_III
7bb5a8a109 Jean*0060 & *sqCosFacU(j,bi,bj)
aea29c8517 Alis*0061 #endif
c19923126b Jean*0062 #ifdef ALLOW_OBCS
0063 & *maskInC(i,j,bi,bj)
0064 #endif
eaba2fd266 Jean*0065
0066
aea29c8517 Alis*0067 ENDDO
0068 ENDDO
0069
0070
fd362e9f7c Jean*0071 DO j=1-OLy+1,sNy+OLy
0072 DO i=1-OLx+1,sNx+OLx-1
aea29c8517 Alis*0073 fMer(i,j) = drF(k)*hFacZ(i,j)
0074 & *_dxV(i,j,bi,bj)
0075 & *_recip_dyU(i,j,bi,bj)
0076 & *(uFld(i,j)-uFld(i,j-1))
5bc29fe512 Mart*0077 #if (defined (ISOTROPIC_COS_SCALING) && defined (COSINEMETH_III))
7bb5a8a109 Jean*0078 & *sqCosFacV(j,bi,bj)
5bc29fe512 Mart*0079 #endif
eaba2fd266 Jean*0080
0081
aea29c8517 Alis*0082 ENDDO
0083 ENDDO
0084
0085
fd362e9f7c Jean*0086 DO j=1-OLy+1,sNy+OLy-1
0087 DO i=1-OLx+1,sNx+OLx-1
aea29c8517 Alis*0088 del2u(i,j) =
eaba2fd266 Jean*0089 & recip_drF(k)*_recip_hFacW(i,j,k,bi,bj)
0090 & *recip_rAw(i,j,bi,bj)*recip_deepFac2C(k)
aea29c8517 Alis*0091 & *( fZon(i,j ) - fZon(i-1,j)
0092 & +fMer(i,j+1) - fMer(i ,j)
0093 & )*_maskW(i,j,k,bi,bj)
c19923126b Jean*0094 #ifdef ALLOW_OBCS
0095 & *maskInW(i,j,bi,bj)
0096 #endif
aea29c8517 Alis*0097 ENDDO
0098 ENDDO
0099
0100 IF (no_slip_sides) THEN
0101
fd362e9f7c Jean*0102 DO j=1-OLy+1,sNy+OLy-1
0103 DO i=1-OLx+1,sNx+OLx-1
bf5496678a Jean*0104 #ifdef NONLIN_FRSURF
fd362e9f7c Jean*0105 hFacZClosedS = h0FacW(i,j,k,bi,bj) - h0FacZ(i,j)
0106 hFacZClosedN = h0FacW(i,j,k,bi,bj) - h0FacZ(i,j+1)
bf5496678a Jean*0107 #else
fd362e9f7c Jean*0108 hFacZClosedS = _hFacW(i,j,k,bi,bj) - h0FacZ(i,j)
0109 hFacZClosedN = _hFacW(i,j,k,bi,bj) - h0FacZ(i,j+1)
bf5496678a Jean*0110 #endif
0111 del2u(i,j) = del2u(i,j)
0112 & -_recip_hFacW(i,j,k,bi,bj)
0113 & *recip_rAw(i,j,bi,bj)*recip_deepFac2C(k)
0114 & *( hFacZClosedS*dxV(i, j ,bi,bj)
0115 & *_recip_dyU(i, j ,bi,bj)
0116 & +hFacZClosedN*dxV(i,j+1,bi,bj)
0117 & *_recip_dyU(i,j+1,bi,bj)
0118 & )*uFld(i,j)*sideDragFactor
0119 & *_maskW(i,j,k,bi,bj)
0120 ENDDO
aea29c8517 Alis*0121 ENDDO
0122 ENDIF
0123
0124 RETURN
0125 END