/[MITgcm]/MITgcm_contrib/natl_12/code/mom_u_sidedrag.F
ViewVC logotype

Contents of /MITgcm_contrib/natl_12/code/mom_u_sidedrag.F

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


Revision 1.1 - (show annotations) (download)
Tue Aug 5 21:22:44 2003 UTC (22 years ago) by cnh
Branch: MAIN
Adding set of files for 1/12 Atlantic configuration

1 C $Header: /u/u0/gcmpack/MITgcm/pkg/mom_fluxform/mom_u_sidedrag.F,v 1.3 2001/09/26 19:05:21 adcroft Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: MOM_U_SIDEDRAG
8
9 C !INTERFACE: ==========================================================
10 SUBROUTINE MOM_U_SIDEDRAG(
11 I bi,bj,k,
12 I uFld, del2u, hFacZ,
13 O uDragTerms,
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^u_{drag} = - \frac{2}{\Delta y_u} (A_h u - A_4 \nabla^2 u)
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 uFld :: zonal flow
33 C del2u :: Laplacian of zonal flow
34 C hFacZ :: fractional open water at vorticity points
35 C myThid :: thread number
36 INTEGER bi,bj,k
37 _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
38 _RL del2u(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 uDragTerms :: drag term
44 _RL uDragTerms(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
45
46 C !LOCAL VARIABLES: ====================================================
47 C i,j :: loop indices
48 C hFacZClosedN :: fractional open water to north
49 C hFacZClosedS :: fractional open water to south
50 INTEGER I,J
51 _RS hFacZClosedS,hFacZClosedN
52 _RS gridScalingA4
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 hFacZClosedS = _hFacW(i,j,k,bi,bj) - hFacZ(i,j)
59 hFacZClosedN = _hFacW(i,j,k,bi,bj) - hFacZ(i,j+1)
60 gridScalingA4 = (_dyU(i, j ,bi,bj)**4)/(5000.**4) ! Realy should split this loop for a more precise formulation
61 uDragTerms(i,j) =
62 & -_recip_hFacW(i,j,k,bi,bj)
63 & *recip_drF(k)*recip_rAw(i,j,bi,bj)
64 & *( hFacZClosedS*_dxV(i, j ,bi,bj)
65 & *_recip_dyU(i, j ,bi,bj)
66 & +hFacZClosedN*_dxV(i,j+1,bi,bj)
67 & *_recip_dyU(i,j+1,bi,bj) )
68 & *drF(k)*2.*(
69 #ifdef ISOTROPIC_COS_SCALING
70 & viscAh*uFld(i,j)*cosFacU(J,bi,bj)
71 #ifdef COSINEMETH_III
72 & -viscA4*del2u(i,j)*sqcosFacU(J,bi,bj)
73 #else
74 & -viscA4*del2u(i,j)*cosFacU(J,bi,bj)
75 #endif
76 #else
77 & viscAh*uFld(i,j)
78 & -viscA4*del2u(i,j)*gridScalingA4
79 #endif
80 & )
81 ENDDO
82 ENDDO
83
84 RETURN
85 END

  ViewVC Help
Powered by ViewVC 1.1.22