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

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

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

revision 1.8 by jmc, Fri Jun 10 20:55:51 2011 UTC revision 1.9 by jmc, Tue Jul 19 23:49:34 2011 UTC
# Line 62  C     i,j :: Loop counters Line 62  C     i,j :: Loop counters
62        _RL zero, one, half        _RL zero, one, half
63        _RL ddRloc, ratioRm, ratioRp        _RL ddRloc, ratioRm, ratioRp
64        PARAMETER ( zero= 0. _d 0 , one= 1. _d 0 , half= .5 _d 0 )        PARAMETER ( zero= 0. _d 0 , one= 1. _d 0 , half= .5 _d 0 )
65    #ifdef NONLIN_FRSURF
66          _RL facP, dPhiRef
67    #endif /* NONLIN_FRSURF */
68  CEOP  CEOP
69    
70        IF ( usingZCoords ) THEN        IF ( usingZCoords ) THEN
# Line 135  C  -- P coordinate : Phi(R_low) is simpl Line 138  C  -- P coordinate : Phi(R_low) is simpl
138  c      IF ( select_rStar.GE.2 .AND. nonlinFreeSurf.GE.4 ) THEN  c      IF ( select_rStar.GE.2 .AND. nonlinFreeSurf.GE.4 ) THEN
139         IF ( select_rStar.GE.1 .AND. nonlinFreeSurf.GE.4 ) THEN         IF ( select_rStar.GE.1 .AND. nonlinFreeSurf.GE.4 ) THEN
140  C-    Integral of b.dr = rStarFac * Integral of b.dr* :  C-    Integral of b.dr = rStarFac * Integral of b.dr* :
141          IF ( buoyancyRelation .EQ. 'ATMOSPHERIC' ) THEN          IF ( fluidIsAir ) THEN
142  C-     Consistent with Phi'= Integr[ theta'.dPi ] :  C-     Consistent with Phi'= Integr[ theta'.dPi ] :
143           DO j=jMin,jMax           DO j=jMin,jMax
144            DO i=iMin,iMax            DO i=iMin,iMax
145             phiHydLow(i,j,bi,bj) = phiHydLow(i,j,bi,bj)             facP = rStarFacC(i,j,bi,bj)**atm_kappa
146       &                          * rStarFacC(i,j,bi,bj)**atm_kappa             dPhiRef = phiRef(2*k+1) - gravity*topoZ(i,j,bi,bj)
147         &                             - phi0surf(i,j,bi,bj)
148               phiHydLow(i,j,bi,bj) =
149         &              phiHydLow(i,j,bi,bj)*facP
150         &            + MAX( dPhiRef, zero )*( facP - 1. _d 0 )
151         &            + phi0surf(i,j,bi,bj)
152              ENDDO
153             ENDDO
154            ELSEIF ( usingPCoords ) THEN
155    C- Note: dPhiRef*(rStarFacC -1) = 1/rho*PSo*((eta+PSo)/PSo -1) = Bo_surf*etaN
156    C     so that this expression is the same as before (same as in "ELSE" block below)
157             DO j=jMin,jMax
158              DO i=iMin,iMax
159               dPhiRef = ( Ro_surf(i,j,bi,bj) - R_low(i,j,bi,bj) )
160         &              *recip_rhoConst
161               phiHydLow(i,j,bi,bj) =
162         &              phiHydLow(i,j,bi,bj)*rStarFacC(i,j,bi,bj)
163         &            + dPhiRef*( rStarFacC(i,j,bi,bj) - 1. _d 0 )
164         &            + phi0surf(i,j,bi,bj)
165            ENDDO            ENDDO
166           ENDDO           ENDDO
167          ELSE          ELSE
168    C- Note: dPhiRef*(rStarFacC -1) = g*H*((eta+H)/H -1) = Bo_surf*etaN
169    C     so that this expression is the same as before (same as in "ELSE" block below)
170           DO j=jMin,jMax           DO j=jMin,jMax
171            DO i=iMin,iMax            DO i=iMin,iMax
172             phiHydLow(i,j,bi,bj) = phiHydLow(i,j,bi,bj)             dPhiRef = ( Ro_surf(i,j,bi,bj)-R_low(i,j,bi,bj) )
173       &                          * rStarFacC(i,j,bi,bj)       &              *gravity
174               phiHydLow(i,j,bi,bj) =
175         &              phiHydLow(i,j,bi,bj)*rStarFacC(i,j,bi,bj)
176         &            + dPhiRef*( rStarFacC(i,j,bi,bj) - 1. _d 0 )
177         &            + phi0surf(i,j,bi,bj)
178            ENDDO            ENDDO
179           ENDDO           ENDDO
180          ENDIF          ENDIF
181         ENDIF         ELSE
182    #else /* NONLIN_FRSURF */
183           IF ( .TRUE. ) THEN
184  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
185    
186         DO j=jMin,jMax           DO j=jMin,jMax
187          DO i=iMin,iMax            DO i=iMin,iMax
188             phiHydLow(i,j,bi,bj) = phiHydLow(i,j,bi,bj)             phiHydLow(i,j,bi,bj) = phiHydLow(i,j,bi,bj)
189       &            + Bo_surf(i,j,bi,bj)*etaN(i,j,bi,bj)       &            + Bo_surf(i,j,bi,bj)*etaN(i,j,bi,bj)
190       &            + phi0surf(i,j,bi,bj)       &            + phi0surf(i,j,bi,bj)
191          ENDDO            ENDDO
192         ENDDO           ENDDO
193           ENDIF
194    
195  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
196  C  -- end if k=Nr.  C  -- end if k=Nr.

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22