File indexing completed on 2024-12-17 18:37:06 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_V_DEL2V(
fd362e9f7c Jean*0011 I bi, bj, k,
0012 I vFld, hFacZ, h0FacZ,
aea29c8517 Alis*0013 O del2v,
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 vFld (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
71207ba845 Alis*0039
0040
0041 _RL del2v(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
aea29c8517 Alis*0042
71207ba845 Alis*0043
0044
7bb5a8a109 Jean*0045 INTEGER i,j
aea29c8517 Alis*0046 _RL fZon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0047 _RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
fd362e9f7c Jean*0048 _RS hFacZClosedE, hFacZClosedW
71207ba845 Alis*0049
aea29c8517 Alis*0050
0051
fd362e9f7c Jean*0052 DO j=1-OLy+1,sNy+OLy-1
0053 DO i=1-OLx+1,sNx+OLx
aea29c8517 Alis*0054 fZon(i,j) = drF(k)*hFacZ(i,j)
0055 & *_dyU(i,j,bi,bj)
0056 & *_recip_dxV(i,j,bi,bj)
0057 & *(vFld(i,j)-vFld(i-1,j))
0058 #ifdef COSINEMETH_III
7bb5a8a109 Jean*0059 & *sqCosFacV(j,bi,bj)
aea29c8517 Alis*0060 #endif
eaba2fd266 Jean*0061
0062
aea29c8517 Alis*0063 ENDDO
0064 ENDDO
0065
0066
fd362e9f7c Jean*0067 DO j=1-OLy,sNy+OLy-1
0068 DO i=1-OLx+1,sNx+OLx-1
aea29c8517 Alis*0069 fMer(i,j) = drF(k)*_hFacC(i,j,k,bi,bj)
0070 & *_dxF(i,j,bi,bj)
0071 & *_recip_dyF(i,j,bi,bj)
0072 & *(vFld(i,j+1)-vFld(i,j))
5bc29fe512 Mart*0073 #if (defined (ISOTROPIC_COS_SCALING) && defined (COSINEMETH_III))
7bb5a8a109 Jean*0074 & *sqCosFacU(j,bi,bj)
5bc29fe512 Mart*0075 #endif
b72a39145f Jean*0076 #ifdef ALLOW_OBCS
0077 & *maskInC(i,j,bi,bj)
0078 #endif
eaba2fd266 Jean*0079
0080
aea29c8517 Alis*0081 ENDDO
0082 ENDDO
0083
a67f2474bd Jean*0084
fd362e9f7c Jean*0085 DO j=1-OLy+1,sNy+OLy-1
0086 DO i=1-OLx+1,sNx+OLx-1
eaba2fd266 Jean*0087 del2v(i,j) =
0088 & recip_drF(k)*_recip_hFacS(i,j,k,bi,bj)
0089 & *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)
aea29c8517 Alis*0090 & *( fZon(i+1,j) - fZon(i, j )
0091 & +fMer( i ,j) - fMer(i,j-1)
0092 & )*_maskS(i,j,k,bi,bj)
b72a39145f Jean*0093 #ifdef ALLOW_OBCS
0094 & *maskInS(i,j,bi,bj)
0095 #endif
aea29c8517 Alis*0096 ENDDO
0097 ENDDO
0098
0099 IF (no_slip_sides) THEN
0100
fd362e9f7c Jean*0101 DO j=1-OLy+1,sNy+OLy-1
0102 DO i=1-OLx+1,sNx+OLx-1
bf5496678a Jean*0103 #ifdef NONLIN_FRSURF
fd362e9f7c Jean*0104 hFacZClosedW = h0FacS(i,j,k,bi,bj) - h0FacZ(i,j)
0105 hFacZClosedE = h0FacS(i,j,k,bi,bj) - h0FacZ(i+1,j)
bf5496678a Jean*0106 #else
fd362e9f7c Jean*0107 hFacZClosedW = _hFacS(i,j,k,bi,bj) - h0FacZ(i,j)
0108 hFacZClosedE = _hFacS(i,j,k,bi,bj) - h0FacZ(i+1,j)
bf5496678a Jean*0109 #endif
0110 del2v(i,j) = del2v(i,j)
0111 & -_recip_hFacS(i,j,k,bi,bj)
0112 & *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)
0113 & *( hFacZClosedW*dyU( i ,j,bi,bj)
0114 & *_recip_dxV( i ,j,bi,bj)
0115 & +hFacZClosedE*dyU(i+1,j,bi,bj)
0116 & *_recip_dxV(i+1,j,bi,bj)
0117 & )*vFld(i,j)*sideDragFactor
0118 & *_maskS(i,j,k,bi,bj)
0119 ENDDO
aea29c8517 Alis*0120 ENDDO
0121 ENDIF
0122
0123 RETURN
0124 END