/[MITgcm]/MITgcm/pkg/mom_common/mom_v_sidedrag.F
ViewVC logotype

Contents of /MITgcm/pkg/mom_common/mom_v_sidedrag.F

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


Revision 1.4 - (show annotations) (download)
Tue Nov 2 23:57:29 2004 UTC (19 years, 7 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint57o_post, checkpoint57m_post, checkpoint57s_post, checkpoint57k_post, checkpoint57d_post, checkpoint57g_post, checkpoint57b_post, checkpoint57c_pre, checkpoint55j_post, checkpoint56b_post, checkpoint57i_post, checkpoint57e_post, checkpoint57g_pre, checkpoint56c_post, checkpoint57f_pre, checkpoint57a_post, checkpoint57r_post, checkpoint57a_pre, checkpoint57, checkpoint56, eckpoint57e_pre, checkpoint57h_done, checkpoint57n_post, checkpoint57p_post, checkpoint57f_post, checkpoint57q_post, checkpoint57c_post, checkpoint57j_post, checkpoint57h_pre, checkpoint57l_post, checkpoint57h_post, checkpoint56a_post
Changes since 1.3: +5 -1 lines
o added viscA4GridMin and viscA4GridMax for more control on biharmonic viscosity

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_v_sidedrag.F,v 1.3 2004/05/24 15:37:02 adcroft Exp $
2 C $Name: $
3
4 #include "MOM_COMMON_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: MOM_V_SIDEDRAG
8
9 C !INTERFACE: ==========================================================
10 SUBROUTINE MOM_V_SIDEDRAG(
11 I bi,bj,k,
12 I vFld, del2v, hFacZ,
13 O vDragTerms,
14 I myThid)
15
16 C !DESCRIPTION:
17 C Calculates the drag terms due to the no-slip condition on viscous stresses:
18 C \begin{equation*}
19 C G^v_{drag} = - \frac{2}{\Delta x_v} (A_h v - A_4 \nabla^2 v)
20 C \end{equation*}
21
22 C !USES: ===============================================================
23 IMPLICIT NONE
24 #include "SIZE.h"
25 #include "EEPARAMS.h"
26 #include "PARAMS.h"
27 #include "GRID.h"
28
29 C !INPUT PARAMETERS: ===================================================
30 C bi,bj :: tile indices
31 C k :: vertical level
32 C uvld :: meridional flow
33 C del2v :: Laplacian of meridional flow
34 C hFacZ :: fractional open water at vorticity points
35 C myThid :: thread number
36 INTEGER bi,bj,k
37 _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
38 _RL del2v(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
39 _RS hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
40 INTEGER myThid
41
42 C !OUTPUT PARAMETERS: ==================================================
43 C vDragTerms :: drag term
44 _RL vDragTerms(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
45
46 C !LOCAL VARIABLES: ====================================================
47 C i,j :: loop indices
48 C hFacZClosedE :: fractional open water to east
49 C hFacZClosedW :: fractional open water to west
50 INTEGER I,J
51 _RS hFacZClosedE,hFacZClosedW
52 _RL Ahtmp,A4tmp
53 CEOP
54
55 C - Laplacian and bi-harmonic terms
56 DO j=1-Oly,sNy+Oly-1
57 DO i=1-Olx,sNx+Olx-1
58 hFacZClosedW = _hFacS(i,j,k,bi,bj) - hFacZ(i,j)
59 hFacZClosedE = _hFacS(i,j,k,bi,bj) - hFacZ(i+1,j)
60 Ahtmp=min(viscAh+viscAhGrid*rAs(i,j,bi,bj)/deltaTmom,
61 & viscAhMax)
62 A4tmp=min(viscA4+viscA4Grid*(rAs(i,j,bi,bj)**2)/deltaTmom,
63 & viscA4Max)
64 IF (viscA4GridMax.GT.0.) THEN
65 A4tmp=min(A4tmp,viscA4GridMax*(rAw(i,j,bi,bj)**2)/deltaTmom)
66 ENDIF
67 A4tmp=max(A4tmp,viscA4GridMin*(rAw(i,j,bi,bj)**2)/deltaTmom)
68 vDragTerms(i,j) =
69 & -_recip_hFacS(i,j,k,bi,bj)
70 & *recip_drF(k)*recip_rAs(i,j,bi,bj)
71 & *( hFacZClosedW*_dyU( i ,j,bi,bj)
72 & *_recip_dxV( i ,j,bi,bj)
73 & +hFacZClosedE*_dyU(i+1,j,bi,bj)
74 & *_recip_dxV(i+1,j,bi,bj) )
75 & *drF(k)*2.*(
76 & Ahtmp*vFld(i,j)*cosFacV(J,bi,bj)
77 & -A4tmp*del2v(i,j)*cosFacV(J,bi,bj)
78 #ifdef COSINEMETH_III
79 & -viscA4*del2v(i,j)*sqcosFacV(J,bi,bj)
80 #else
81 & -viscA4*del2v(i,j)*cosFacV(J,bi,bj)
82 #endif
83 & )
84 ENDDO
85 ENDDO
86
87 RETURN
88 END

  ViewVC Help
Powered by ViewVC 1.1.22