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

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

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


Revision 1.2 - (hide annotations) (download)
Tue Feb 18 15:30:47 2003 UTC (21 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint51k_post, checkpoint57m_post, checkpoint52l_pre, hrcube4, hrcube5, checkpoint57g_pre, checkpoint50c_post, checkpoint57s_post, checkpoint58b_post, checkpoint57b_post, checkpoint52d_pre, checkpoint57g_post, checkpoint56b_post, checkpoint50c_pre, checkpoint57y_post, checkpoint52j_pre, checkpoint51o_pre, checkpoint54d_post, checkpoint54e_post, checkpoint51l_post, checkpoint48i_post, checkpoint57r_post, checkpoint57d_post, checkpoint57i_post, checkpoint50d_pre, checkpoint52k_post, checkpoint59, checkpoint58, checkpoint55, checkpoint54, checkpoint57, checkpoint56, checkpoint51, checkpoint50, checkpoint53, checkpoint52, checkpoint50d_post, checkpoint58f_post, checkpoint52f_post, checkpoint57n_post, checkpoint58d_post, checkpoint58a_post, checkpoint50b_pre, checkpoint57z_post, checkpoint54f_post, checkpoint51f_post, checkpoint58y_post, checkpoint51d_post, checkpoint51t_post, checkpoint58t_post, checkpoint51n_post, checkpoint55i_post, checkpoint58m_post, checkpoint57l_post, checkpoint52i_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint51s_post, checkpoint57t_post, checkpoint55c_post, checkpoint51j_post, checkpoint52e_pre, checkpoint57v_post, checkpoint57f_post, checkpoint52e_post, checkpoint51n_pre, checkpoint53d_post, checkpoint60, checkpoint61, checkpoint57a_post, checkpoint57h_pre, checkpoint52b_pre, checkpoint54b_post, checkpoint58w_post, checkpoint57h_post, checkpoint51l_pre, checkpoint52m_post, checkpoint57y_pre, checkpoint55g_post, checkpoint48h_post, checkpoint51q_post, checkpoint51b_pre, checkpoint52b_post, checkpoint52c_post, checkpoint51h_pre, checkpoint58o_post, checkpoint57c_post, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint58p_post, checkpoint58q_post, checkpoint52f_pre, checkpoint55d_post, checkpoint58e_post, mitgcm_mapl_00, checkpoint54a_pre, checkpoint53c_post, checkpoint55d_pre, checkpoint57c_pre, checkpoint58r_post, checkpoint55j_post, branchpoint-genmake2, checkpoint54a_post, checkpoint55h_post, checkpoint58n_post, checkpoint51r_post, checkpoint51i_post, checkpoint57e_post, checkpoint55b_post, checkpoint51b_post, checkpoint51c_post, checkpoint53a_post, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint55f_post, checkpoint59c, checkpoint59b, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint52d_post, checkpoint53g_post, checkpoint57p_post, checkpint57u_post, checkpoint50g_post, checkpoint57q_post, eckpoint57e_pre, checkpoint58k_post, checkpoint52a_pre, checkpoint58v_post, checkpoint50h_post, checkpoint52i_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51i_pre, checkpoint52h_pre, checkpoint56a_post, checkpoint58l_post, checkpoint53f_post, checkpoint57h_done, checkpoint52j_post, checkpoint50e_post, checkpoint57j_post, checkpoint57f_pre, checkpoint61f, checkpoint58g_post, branch-netcdf, checkpoint52l_post, checkpoint58x_post, checkpoint61n, checkpoint52n_post, checkpoint53b_pre, checkpoint59j, checkpoint58h_post, checkpoint56c_post, checkpoint58j_post, checkpoint51e_post, checkpoint57a_pre, checkpoint55a_post, checkpoint49, checkpoint57o_post, checkpoint51o_post, checkpoint61q, checkpoint57k_post, checkpoint51f_pre, checkpoint48g_post, checkpoint53b_post, checkpoint52a_post, checkpoint57w_post, checkpoint61e, checkpoint58i_post, checkpoint51g_post, ecco_c52_e35, checkpoint57x_post, checkpoint50b_post, checkpoint58c_post, checkpoint58u_post, checkpoint51m_post, checkpoint53d_pre, checkpoint58s_post, checkpoint55e_post, checkpoint61g, checkpoint61d, checkpoint54c_post, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint51a_post, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint51p_post, checkpoint61x, checkpoint51u_post
Branch point for: branch-genmake2, branch-nonh, tg2-branch, ecco-branch, netcdf-sm0, checkpoint51n_branch
Changes since 1.1: +45 -58 lines
o avoid using any hFac in calc_phi_hyd ; use Ro_surf,R_low instead.
 NLFS + p-coord.: eta*Alpha' is not longer lagging 1.time-step behind
  ( change results of global_ocean_pressure )
 NLFS + z-coord.: add eta*Alpha' contribution.
  accurate phiHyd when using interface-W at the middle between 2 center.
  ( change results of ideal_2D_oce )
o includes r* 2nd term in potential gradient.

1 jmc 1.2 C $Header: /u/gcmpack/MITgcm/model/src/diags_phi_rlow.F,v 1.1 2003/02/09 02:58:39 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "CPP_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: DIAGS_PHI_RLOW
8     C !INTERFACE:
9     SUBROUTINE DIAGS_PHI_RLOW(
10     I k, bi, bj, iMin,iMax, jMin,jMax,
11 jmc 1.2 I phiHydF, phiHydC, alphRho, tFld, sFld,
12 jmc 1.1 I myTime, myIter, myThid)
13     C !DESCRIPTION: \bv
14     C *==========================================================*
15     C | S/R DIAGS_PHI_RLOW
16     C | o Diagnose Phi-Hydrostatic at r-lower boundary
17     C | = bottom pressure (ocean in z-coord) ;
18     C | = sea surface elevation (ocean in p-coord) ;
19     C | = height at the top of atmosphere (in p-coord) ;
20     C *==========================================================*
21     C \ev
22    
23     C !USES:
24     IMPLICIT NONE
25     C == Global variables ==
26     #include "SIZE.h"
27     #include "EEPARAMS.h"
28     #include "PARAMS.h"
29     #include "GRID.h"
30     #include "SURFACE.h"
31     #include "DYNVARS.h"
32    
33     C !INPUT/OUTPUT PARAMETERS:
34     C == Routine Arguments ==
35     C bi,bj :: tile index
36     C iMin,iMax,jMin,jMax :: Loop counters
37 jmc 1.2 C phiHydF :: hydrostatic potential anomaly at middle between
38     C 2 centers k & k+1 (interface k+1)
39     C phiHydC :: hydrostatic potential anomaly at cell center
40 jmc 1.1 C (atmos: =Geopotential ; ocean-z: =Pressure/rho)
41     C alphRho :: Density (z-coord) or specific volume (p-coord)
42     C tFld :: Potential temp.
43     C sFld :: Salinity
44     C myTime :: Current time
45     C myIter :: Current iteration number
46     C myThid :: Instance number for this call of the routine.
47     INTEGER k, bi,bj, iMin,iMax, jMin,jMax
48 jmc 1.2 _RL phiHydF(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
49     _RL phiHydC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
50 jmc 1.1 _RL alphRho(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
51     _RL tFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
52     _RL sFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
53     _RL myTime
54     INTEGER myIter, myThid
55    
56     #ifdef INCLUDE_PHIHYD_CALCULATION_CODE
57    
58     C !LOCAL VARIABLES:
59     C == Local variables ==
60     C i,j :: Loop counters
61     INTEGER i,j
62     _RL zero, one, half
63 jmc 1.2 _RL ddRloc, ratioRm, ratioRp
64 jmc 1.1 PARAMETER ( zero= 0. _d 0 , one= 1. _d 0 , half= .5 _d 0 )
65     CEOP
66    
67 jmc 1.2 IF ( buoyancyRelation .EQ. 'OCEANIC' ) THEN
68 jmc 1.1
69 jmc 1.2 C----- Compute bottom pressure deviation from gravity*rho0*H
70     C Start from phiHyd at the (bottom) tracer point and add Del_h*g*rho'
71     C with Del_h = distance from the bottom up to tracer point
72 jmc 1.1
73     IF (integr_GeoPot.EQ.1) THEN
74     C -- Finite Volume Form
75    
76     DO j=jMin,jMax
77     DO i=iMin,iMax
78     IF ( k .EQ. kLowC(i,j,bi,bj) ) THEN
79 jmc 1.2 ddRloc = rC(k)-R_low(i,j,bi,bj)
80     phiHydLow(i,j,bi,bj) = phiHydC(i,j)
81     & + ddRloc*gravity*alphRho(i,j)*recip_rhoConst
82 jmc 1.1 ENDIF
83     ENDDO
84     ENDDO
85    
86     ELSE
87     C -- Finite Difference Form
88    
89 jmc 1.2 ratioRm = one
90     ratioRp = one
91     IF (k.GT.1 ) ratioRm = half*drC(k)/(rF(k)-rC(k))
92     IF (k.LT.Nr) ratioRp = half*drC(k+1)/(rC(k)-rF(k+1))
93 jmc 1.1
94     DO j=jMin,jMax
95     DO i=iMin,iMax
96 jmc 1.2 IF ( k .EQ. kLowC(i,j,bi,bj) ) THEN
97     ddRloc = rC(k)-R_low(i,j,bi,bj)
98     phiHydLow(i,j,bi,bj) = phiHydC(i,j)
99     & +( MIN(zero,ddRloc)*ratioRm
100     & +MAX(zero,ddRloc)*ratioRp
101     & )*gravity*alphRho(i,j)*recip_rhoConst
102 jmc 1.1 ENDIF
103     ENDDO
104     ENDDO
105    
106     C -- end if integr_GeoPot = ...
107     ENDIF
108    
109 jmc 1.2 C -- end buoyancyR = Oceanic (z)
110     ENDIF
111    
112     IF (k.EQ.Nr) THEN
113 jmc 1.1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
114 jmc 1.2 C -- last level (bottom): rescale (r*) and add surface contribution
115 jmc 1.1
116 jmc 1.2 IF ( buoyancyRelation .EQ. 'OCEANICP' .OR.
117     & buoyancyRelation .EQ. 'ATMOSPHERIC' ) THEN
118     C -- P coordinate : Phi(R_low) is simply at the top :
119     DO j=jMin,jMax
120     DO i=iMin,iMax
121     phiHydLow(i,j,bi,bj) = phiHydF(i,j)
122 jmc 1.1 ENDDO
123 jmc 1.2 ENDDO
124     ENDIF
125 jmc 1.1
126 jmc 1.2 DO j=jMin,jMax
127     DO i=iMin,iMax
128     phiHydLow(i,j,bi,bj) = phiHydLow(i,j,bi,bj)
129     & + Bo_surf(i,j,bi,bj)*etaN(i,j,bi,bj)
130     & + phi0surf(i,j,bi,bj)
131 jmc 1.1 ENDDO
132 jmc 1.2 ENDDO
133 jmc 1.1
134     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
135 jmc 1.2 C -- end if k=Nr.
136 jmc 1.1 ENDIF
137    
138     #endif /* INCLUDE_PHIHYD_CALCULATION_CODE */
139    
140     RETURN
141     END

  ViewVC Help
Powered by ViewVC 1.1.22