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

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

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


Revision 1.2 - (hide annotations) (download)
Sun Feb 9 02:00:50 2003 UTC (21 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint48e_post, checkpoint48d_post, checkpoint48f_post
Changes since 1.1: +3 -3 lines
in preparation for r*:
a) use pre-computed gradient of hydrostatic potential:
   changes in timestep.F & mom_cdscheme.F affect results of ideal_2D_oce
b) move phi0surf from calc_phi_hyd to calc_grad_phi_hyd :
   => affects results of glob_oce_pressure (different truncation error)

1 jmc 1.2 C $Header: /u/gcmpack/MITgcm/model/src/calc_grad_phi_hyd.F,v 1.1 2003/02/08 02:09:20 jmc Exp $
2 jmc 1.1 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 jmc 1.2 varLoc(i,j) = phiHyd(i,j,k)+phi0surf(i,j,bi,bj)
65     c varLoc(i,j) = phiHyd(i,j,k)
66 jmc 1.1 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