File indexing completed on 2018-03-02 18:42:14 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
6d54cf9ca1 Ed H*0001 #include "MOM_FLUXFORM_OPTIONS.h"
aea29c8517 Alis*0002
71207ba845 Alis*0003
0004
0005
0006
aea29c8517 Alis*0007 SUBROUTINE MOM_V_DEL2V(
fd362e9f7c Jean*0008 I bi, bj, k,
0009 I vFld, hFacZ, h0FacZ,
aea29c8517 Alis*0010 O del2v,
fd362e9f7c Jean*0011 I myThid )
aea29c8517 Alis*0012
71207ba845 Alis*0013
0014
0015
0016
0017 IMPLICIT NONE
aea29c8517 Alis*0018 #include "SIZE.h"
0019 #include "EEPARAMS.h"
0020 #include "PARAMS.h"
0021 #include "GRID.h"
bf5496678a Jean*0022 #include "SURFACE.h"
aea29c8517 Alis*0023
71207ba845 Alis*0024
0025
0026
0027
0028
fd362e9f7c Jean*0029
0030
0031 INTEGER bi, bj, k
0032 _RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0033 _RS hFacZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0034 _RS h0FacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
aea29c8517 Alis*0035 INTEGER myThid
71207ba845 Alis*0036
0037
0038 _RL del2v(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
aea29c8517 Alis*0039
71207ba845 Alis*0040
0041
aea29c8517 Alis*0042 INTEGER I,J
0043 _RL fZon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0044 _RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
fd362e9f7c Jean*0045 _RS hFacZClosedE, hFacZClosedW
71207ba845 Alis*0046
aea29c8517 Alis*0047
0048
fd362e9f7c Jean*0049 DO j=1-OLy+1,sNy+OLy-1
0050 DO i=1-OLx+1,sNx+OLx
aea29c8517 Alis*0051 fZon(i,j) = drF(k)*hFacZ(i,j)
0052 & *_dyU(i,j,bi,bj)
0053 & *_recip_dxV(i,j,bi,bj)
0054 & *(vFld(i,j)-vFld(i-1,j))
0055 #ifdef COSINEMETH_III
eaba2fd266 Jean*0056 & *sqCosFacV(J,bi,bj)
aea29c8517 Alis*0057 #endif
eaba2fd266 Jean*0058
0059
aea29c8517 Alis*0060 ENDDO
0061 ENDDO
0062
0063
fd362e9f7c Jean*0064 DO j=1-OLy,sNy+OLy-1
0065 DO i=1-OLx+1,sNx+OLx-1
aea29c8517 Alis*0066 fMer(i,j) = drF(k)*_hFacC(i,j,k,bi,bj)
0067 & *_dxF(i,j,bi,bj)
0068 & *_recip_dyF(i,j,bi,bj)
0069 & *(vFld(i,j+1)-vFld(i,j))
5bc29fe512 Mart*0070 #if (defined (ISOTROPIC_COS_SCALING) && defined (COSINEMETH_III))
eaba2fd266 Jean*0071 & *sqCosFacU(J,bi,bj)
5bc29fe512 Mart*0072 #endif
b72a39145f Jean*0073 #ifdef ALLOW_OBCS
0074 & *maskInC(i,j,bi,bj)
0075 #endif
eaba2fd266 Jean*0076
0077
aea29c8517 Alis*0078 ENDDO
0079 ENDDO
0080
a67f2474bd Jean*0081
fd362e9f7c Jean*0082 DO j=1-OLy+1,sNy+OLy-1
0083 DO i=1-OLx+1,sNx+OLx-1
eaba2fd266 Jean*0084 del2v(i,j) =
0085 & recip_drF(k)*_recip_hFacS(i,j,k,bi,bj)
0086 & *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)
aea29c8517 Alis*0087 & *( fZon(i+1,j) - fZon(i, j )
0088 & +fMer( i ,j) - fMer(i,j-1)
0089 & )*_maskS(i,j,k,bi,bj)
b72a39145f Jean*0090 #ifdef ALLOW_OBCS
0091 & *maskInS(i,j,bi,bj)
0092 #endif
aea29c8517 Alis*0093 ENDDO
0094 ENDDO
0095
0096 IF (no_slip_sides) THEN
0097
fd362e9f7c Jean*0098 DO j=1-OLy+1,sNy+OLy-1
0099 DO i=1-OLx+1,sNx+OLx-1
bf5496678a Jean*0100 #ifdef NONLIN_FRSURF
fd362e9f7c Jean*0101 hFacZClosedW = h0FacS(i,j,k,bi,bj) - h0FacZ(i,j)
0102 hFacZClosedE = h0FacS(i,j,k,bi,bj) - h0FacZ(i+1,j)
bf5496678a Jean*0103 #else
fd362e9f7c Jean*0104 hFacZClosedW = _hFacS(i,j,k,bi,bj) - h0FacZ(i,j)
0105 hFacZClosedE = _hFacS(i,j,k,bi,bj) - h0FacZ(i+1,j)
bf5496678a Jean*0106 #endif
0107 del2v(i,j) = del2v(i,j)
0108 & -_recip_hFacS(i,j,k,bi,bj)
0109 & *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)
0110 & *( hFacZClosedW*dyU( i ,j,bi,bj)
0111 & *_recip_dxV( i ,j,bi,bj)
0112 & +hFacZClosedE*dyU(i+1,j,bi,bj)
0113 & *_recip_dxV(i+1,j,bi,bj)
0114 & )*vFld(i,j)*sideDragFactor
0115 & *_maskS(i,j,k,bi,bj)
0116 ENDDO
aea29c8517 Alis*0117 ENDDO
0118 ENDIF
0119
0120 RETURN
0121 END