/[MITgcm]/MITgcm/pkg/mom_fluxform/mom_v_del2v.F
ViewVC logotype

Diff of /MITgcm/pkg/mom_fluxform/mom_v_del2v.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.3.6.1 by heimbach, Fri Mar 7 04:46:40 2003 UTC revision 1.10 by jmc, Sun Feb 9 18:51:46 2014 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #include "CPP_OPTIONS.h"  #include "MOM_FLUXFORM_OPTIONS.h"
5    
6  CBOP  CBOP
7  C !ROUTINE: MOM_V_DEL2V  C !ROUTINE: MOM_V_DEL2V
8    
9  C !INTERFACE: ==========================================================  C !INTERFACE: ==========================================================
10        SUBROUTINE MOM_V_DEL2V(        SUBROUTINE MOM_V_DEL2V(
11       I        bi,bj,k,       I        bi, bj, k,
12       I        vFld, hFacZ,       I        vFld, hFacZ, h0FacZ,
13       O        del2v,       O        del2v,
14       I        myThid)       I        myThid )
15    
16  C !DESCRIPTION:  C !DESCRIPTION:
17  C Calculates the Laplacian of meridional flow  C Calculates the Laplacian of meridional flow
# Line 22  C !USES: =============================== Line 22  C !USES: ===============================
22  #include "EEPARAMS.h"  #include "EEPARAMS.h"
23  #include "PARAMS.h"  #include "PARAMS.h"
24  #include "GRID.h"  #include "GRID.h"
25    #include "SURFACE.h"
26    
27  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
28  C  bi,bj                :: tile indices  C  bi,bj                :: tile indices
29  C  k                    :: vertical level  C  k                    :: vertical level
30  C  vFld                 :: meridional flow  C  vFld                 :: meridional flow
31  C  hFacZ                :: fractional thickness at vorticity points  C  hFacZ                :: fractional thickness at vorticity points
32  C  myThid               :: thread number`  C  h0FacZ               :: fixed fractional thickness at vorticity points
33        INTEGER bi,bj,k  C  myThid               :: my Thread Id number
34        _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        INTEGER bi, bj, k
35        _RS hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL vFld  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
36          _RS hFacZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
37          _RS h0FacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
38        INTEGER myThid        INTEGER myThid
39  C !OUTPUT PARAMETERS: ==================================================  C !OUTPUT PARAMETERS: ==================================================
40  C  del2v                :: Laplacian  C  del2v                :: Laplacian
# Line 42  C  i,j                  :: loop indices Line 45  C  i,j                  :: loop indices
45        INTEGER I,J        INTEGER I,J
46        _RL fZon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL fZon(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
47        _RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
48        _RS hFacZClosedE,hFacZClosedW        _RS hFacZClosedE, hFacZClosedW
49  CEOP  CEOP
50    
51  C     Zonal flux d/dx V  C     Zonal flux d/dx V
52        DO j=1-Oly+1,sNy+Oly-1        DO j=1-OLy+1,sNy+OLy-1
53         DO i=1-Olx+1,sNx+Olx         DO i=1-OLx+1,sNx+OLx
54          fZon(i,j) = drF(k)*hFacZ(i,j)          fZon(i,j) = drF(k)*hFacZ(i,j)
55       &   *_dyU(i,j,bi,bj)       &   *_dyU(i,j,bi,bj)
56       &   *_recip_dxV(i,j,bi,bj)       &   *_recip_dxV(i,j,bi,bj)
57       &   *(vFld(i,j)-vFld(i-1,j))       &   *(vFld(i,j)-vFld(i-1,j))
58  #ifdef COSINEMETH_III  #ifdef COSINEMETH_III
59       &   *sqcosFacV(J,bi,bj)       &   *sqCosFacV(J,bi,bj)
60  #endif  #endif
61    c    &   *deepFacC(k)        ! dyU scaling factor
62    c    &   *recip_deepFacC(k)  ! recip_dxV scaling factor
63         ENDDO         ENDDO
64        ENDDO        ENDDO
65    
66  C     Meridional flux d/dy V  C     Meridional flux d/dy V
67        DO j=1-Oly,sNy+Oly-1        DO j=1-OLy,sNy+OLy-1
68         DO i=1-Olx+1,sNx+Olx-1         DO i=1-OLx+1,sNx+OLx-1
69          fMer(i,j) = drF(k)*_hFacC(i,j,k,bi,bj)          fMer(i,j) = drF(k)*_hFacC(i,j,k,bi,bj)
70       &   *_dxF(i,j,bi,bj)       &   *_dxF(i,j,bi,bj)
71       &   *_recip_dyF(i,j,bi,bj)       &   *_recip_dyF(i,j,bi,bj)
72       &   *(vFld(i,j+1)-vFld(i,j))       &   *(vFld(i,j+1)-vFld(i,j))
73    #if (defined (ISOTROPIC_COS_SCALING) && defined (COSINEMETH_III))
74         &   *sqCosFacU(J,bi,bj)
75    #endif
76    #ifdef ALLOW_OBCS
77         &   *maskInC(i,j,bi,bj)
78    #endif
79    c    &   *deepFacC(k)        ! dxF scaling factor
80    c    &   *recip_deepFacC(k)  ! recip_dyF scaling factor
81         ENDDO         ENDDO
82        ENDDO        ENDDO
83    
84  C     del^2 V  C     del^2 V
85        DO j=1-Oly+1,sNy+Oly-1        DO j=1-OLy+1,sNy+OLy-1
86         DO i=1-Olx+1,sNx+Olx-1         DO i=1-OLx+1,sNx+OLx-1
87          del2v(i,j) = recip_drF(k)*_recip_hFacS(i,j,k,bi,bj)          del2v(i,j) =
88       &  *recip_rAs(i,j,bi,bj)       &   recip_drF(k)*_recip_hFacS(i,j,k,bi,bj)
89         &  *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)
90       &  *( fZon(i+1,j)    - fZon(i, j )       &  *( fZon(i+1,j)    - fZon(i, j )
91       &    +fMer( i ,j)    - fMer(i,j-1)       &    +fMer( i ,j)    - fMer(i,j-1)
92       &   )*_maskS(i,j,k,bi,bj)       &   )*_maskS(i,j,k,bi,bj)
93    #ifdef ALLOW_OBCS
94         &    *maskInS(i,j,bi,bj)
95    #endif
96         ENDDO         ENDDO
97        ENDDO        ENDDO
98    
99        IF (no_slip_sides) THEN        IF (no_slip_sides) THEN
100  C-- No-slip BCs impose a drag at walls...  C-- No-slip BCs impose a drag at walls...
101        DO j=1-Oly+1,sNy+Oly-1         DO j=1-OLy+1,sNy+OLy-1
102         DO i=1-Olx+1,sNx+Olx-1          DO i=1-OLx+1,sNx+OLx-1
103          hFacZClosedW = _hFacS(i,j,k,bi,bj) - hFacZ(i,j)  #ifdef NONLIN_FRSURF
104          hFacZClosedE = _hFacS(i,j,k,bi,bj) - hFacZ(i+1,j)           hFacZClosedW = h0FacS(i,j,k,bi,bj) - h0FacZ(i,j)
105          del2v(i,j) = del2v(i,j)           hFacZClosedE = h0FacS(i,j,k,bi,bj) - h0FacZ(i+1,j)
106       &  -_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)  #else
107       &  *recip_rAs(i,j,bi,bj)           hFacZClosedW = _hFacS(i,j,k,bi,bj) - h0FacZ(i,j)
108       &   *( hFacZClosedW*dyU( i ,j,bi,bj)           hFacZClosedE = _hFacS(i,j,k,bi,bj) - h0FacZ(i+1,j)
109       &      *_recip_dxV( i ,j,bi,bj)  #endif
110       &     +hFacZClosedE*dyU(i+1,j,bi,bj)           del2v(i,j) = del2v(i,j)
111       &      *_recip_dxV(i+1,j,bi,bj)       &    -_recip_hFacS(i,j,k,bi,bj)
112       &    )*drF(k)*2.*vFld(i,j)       &       *recip_rAs(i,j,bi,bj)*recip_deepFac2C(k)
113       &      *_maskS(i,j,k,bi,bj)       &       *( hFacZClosedW*dyU( i ,j,bi,bj)
114         &                      *_recip_dxV( i ,j,bi,bj)
115         &         +hFacZClosedE*dyU(i+1,j,bi,bj)
116         &                      *_recip_dxV(i+1,j,bi,bj)
117         &        )*vFld(i,j)*sideDragFactor
118         &         *_maskS(i,j,k,bi,bj)
119            ENDDO
120         ENDDO         ENDDO
       ENDDO  
121        ENDIF        ENDIF
122    
123        RETURN        RETURN

Legend:
Removed from v.1.3.6.1  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.22