/[MITgcm]/MITgcm/model/src/calc_grad_phi_hyd.F
ViewVC logotype

Contents of /MITgcm/model/src/calc_grad_phi_hyd.F

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


Revision 1.1 - (show annotations) (download)
Sat Feb 8 02:09:20 2003 UTC (21 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint48d_pre
in preparation for r*:
 new S/R (calc_grad_phi_hyd.F) to compute Hydrostatic potential gradient.
 pass the 2 comp. of the grad. as arguments to momentum S/R.
for the moment, only used if it does not change the results.

1 C $Header: $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: CALC_GRAD_PHI_HYD
8 C !INTERFACE:
9 SUBROUTINE CALC_GRAD_PHI_HYD(
10 I k, bi, bj, iMin,iMax, jMin,jMax,
11 I phiHyd, alphRho, tFld, sFld,
12 O dPhiHydX, dPhiHydY,
13 I myTime, myIter, myThid)
14 C !DESCRIPTION: \bv
15 C *==========================================================*
16 C | S/R CALC_GRAD_PHI_HYD
17 C | o Calculate the gradient of Hydrostatic potential anomaly
18 C *==========================================================*
19 C \ev
20
21 C !USES:
22 IMPLICIT NONE
23 C == Global variables ==
24 #include "SIZE.h"
25 #include "EEPARAMS.h"
26 #include "PARAMS.h"
27 #include "GRID.h"
28 #include "SURFACE.h"
29
30 C !INPUT/OUTPUT PARAMETERS:
31 C == Routine Arguments ==
32 C bi,bj :: tile index
33 C iMin,iMax,jMin,jMax :: Loop counters
34 C phiHyd :: Hydrostatic Potential anomaly
35 C (atmos: =Geopotential ; ocean-z: =Pressure/rho)
36 C alphRho :: Density (z-coord) or specific volume (p-coord)
37 C tFld :: Potential temp.
38 C sFld :: Salinity
39 C dPhiHydX,Y :: Gradient (X & Y directions) of Hyd. Potential
40 C myTime :: Current time
41 C myIter :: Current iteration number
42 C myThid :: Instance number for this call of the routine.
43 INTEGER k, bi,bj, iMin,iMax, jMin,jMax
44 _RL phiHyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
45 _RL alphRho(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
46 _RL tFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
47 _RL sFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
48 _RL dPhiHydX(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
49 _RL dPhiHydY(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
50 _RL myTime
51 INTEGER myIter, myThid
52
53 #ifdef INCLUDE_PHIHYD_CALCULATION_CODE
54
55 C !LOCAL VARIABLES:
56 C == Local variables ==
57 C i,j :: Loop counters
58 INTEGER i,j
59 _RL varLoc(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
60 CEOP
61
62 DO j=jMin-1,jMax
63 DO i=iMin-1,iMax
64 c varLoc(i,j) = phiHyd(i,j,k)+phi0surf(i,j,bi,bj)
65 varLoc(i,j) = phiHyd(i,j,k)
66 ENDDO
67 ENDDO
68
69 C- Zonal gradient
70 DO j=jMin,jMax
71 DO i=iMin,iMax
72 dPhiHydX(i,j) = _recip_dxC(i,j,bi,bj)
73 & *( varLoc(i,j)-varLoc(i-1,j) )
74 c & *( (phiHyd(i,j,k)-phiHyd(i-1,j,k))
75 c & +(phi0surf(i,j,bi,bj)-phi0surf(i-1,j,bi,bj))
76 c & *( (phiHyd(i,j,k)+phi0surf(i,j,bi,bj))
77 c & -(phiHyd(i-1,j,k)+phi0surf(i-1,j,bi,bj))
78 c & )
79 ENDDO
80 ENDDO
81
82 C- Meridional gradient
83 DO j=jMin,jMax
84 DO i=iMin,iMax
85 dPhiHydY(i,j) = _recip_dyC(i,j,bi,bj)
86 & *( varLoc(i,j)-varLoc(i,j-1) )
87 c & *( (phiHyd(i,j,k)-phiHyd(i,j-1,k))
88 c & +(phi0surf(i,j,bi,bj)-phi0surf(i,j-1,bi,bj))
89 c & *( (phiHyd(i,j,k)+phi0surf(i,j,bi,bj))
90 c & -(phiHyd(i,j-1,k)+phi0surf(i,j-1,bi,bj))
91 c & )
92 ENDDO
93 ENDDO
94
95 #endif /* INCLUDE_PHIHYD_CALCULATION_CODE */
96
97 RETURN
98 END

  ViewVC Help
Powered by ViewVC 1.1.22