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

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

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

revision 1.37 by jmc, Mon Sep 8 21:45:13 2008 UTC revision 1.38 by jmc, Mon Sep 22 17:55:16 2008 UTC
# Line 12  C     !INTERFACE: Line 12  C     !INTERFACE:
12       I                         tFld, sFld,       I                         tFld, sFld,
13       U                         phiHydF,       U                         phiHydF,
14       O                         phiHydC, dPhiHydX, dPhiHydY,       O                         phiHydC, dPhiHydX, dPhiHydY,
15       I                         myTime, myIter, myThid)       I                         myTime, myIter, myThid )
16  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
17  C     *==========================================================*  C     *==========================================================*
18  C     | SUBROUTINE CALC_PHI_HYD                                  |  C     | SUBROUTINE CALC_PHI_HYD                                  |
# Line 135  C---+----1----+----2----+----3----+----4 Line 135  C---+----1----+----2----+----3----+----4
135  C       This is the hydrostatic pressure calculation for the Ocean  C       This is the hydrostatic pressure calculation for the Ocean
136  C       which uses the FIND_RHO() routine to calculate density  C       which uses the FIND_RHO() routine to calculate density
137  C       before integrating g*rho over the current layer/interface  C       before integrating g*rho over the current layer/interface
138  #ifdef      ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
139  CADJ GENERAL  CADJ GENERAL
140  #endif      /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
141    
142            IF ( implicitIntGravWave .OR. myIter.LT.0 ) THEN
143  C---    Calculate density  C---    Calculate density
144  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
145          kkey = (ikey-1)*Nr + k            kkey = (ikey-1)*Nr + k
146  CADJ STORE tFld (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE tFld (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
147  CADJ STORE sFld (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE sFld (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
148  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
149        CALL FIND_RHO_2D(            CALL FIND_RHO_2D(
150       I          iMin, iMax, jMin, jMax, k,       I              iMin, iMax, jMin, jMax, k,
151       I          tFld(1-OLx,1-OLy,k,bi,bj), sFld(1-OLx,1-OLy,k,bi,bj),       I              tFld(1-OLx,1-OLy,k,bi,bj),
152       O          alphaRho,       I              sFld(1-OLx,1-OLy,k,bi,bj),
153       I          k, bi, bj, myThid )       O              alphaRho,
154         I              k, bi, bj, myThid )
155            ELSE
156              DO j=jMin,jMax
157               DO i=iMin,iMax
158                 alphaRho(i,j) = rhoInSitu(i,j,k,bi,bj)
159               ENDDO
160              ENDDO
161            ENDIF
162    
163  #ifdef ALLOW_SHELFICE  #ifdef ALLOW_SHELFICE
164  C     mask rho, so that there is no contribution of phiHyd from  C     mask rho, so that there is no contribution of phiHyd from
# Line 172  C    but might be slower (--> keep origi Line 181  C    but might be slower (--> keep origi
181          ENDIF          ENDIF
182  #endif /* ALLOW_SHELFICE */  #endif /* ALLOW_SHELFICE */
183    
 #ifdef ALLOW_DIAGNOSTICS  
         IF ( useDiagnostics )  
      &   CALL DIAGNOSTICS_FILL(alphaRho,'RHOAnoma',k,1,2,bi,bj,myThid)  
 #endif  
   
184  #ifdef ALLOW_MOM_COMMON  #ifdef ALLOW_MOM_COMMON
185  C Quasi-hydrostatic terms are added in as if they modify the buoyancy  C Quasi-hydrostatic terms are added in as if they modify the buoyancy
186          IF (quasiHydrostatic) THEN          IF (quasiHydrostatic) THEN
# Line 250  C       before integrating (1/rho)'*dp o Line 254  C       before integrating (1/rho)'*dp o
254  CADJ GENERAL  CADJ GENERAL
255  #endif      /* ALLOW_AUTODIFF_TAMC */  #endif      /* ALLOW_AUTODIFF_TAMC */
256    
257            IF ( implicitIntGravWave .OR. myIter.LT.0 ) THEN
258  C--     Calculate density  C--     Calculate density
259  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
260              kkey = (ikey-1)*Nr + k            kkey = (ikey-1)*Nr + k
261  CADJ STORE tFld (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE tFld (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
262  CADJ STORE sFld (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE sFld (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
263  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
264          CALL FIND_RHO_2D(            CALL FIND_RHO_2D(
265       I            iMin, iMax, jMin, jMax, k,       I              iMin, iMax, jMin, jMax, k,
266       I            tFld(1-OLx,1-OLy,k,bi,bj), sFld(1-OLx,1-OLy,k,bi,bj),       I              tFld(1-OLx,1-OLy,k,bi,bj),
267       O            alphaRho,       I              sFld(1-OLx,1-OLy,k,bi,bj),
268       I            k, bi, bj, myThid )       O              alphaRho,
269         I              k, bi, bj, myThid )
270  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
271  CADJ STORE alphaRho (:,:) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE alphaRho (:,:) = comlev1_bibj_k, key=kkey, byte=isbyte
272  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
273            ELSE
274  #ifdef ALLOW_DIAGNOSTICS            DO j=jMin,jMax
275          IF ( useDiagnostics )             DO i=iMin,iMax
276       &   CALL DIAGNOSTICS_FILL(alphaRho,'RHOAnoma',k,1,2,bi,bj,myThid)               alphaRho(i,j) = rhoInSitu(i,j,k,bi,bj)
277  #endif             ENDDO
278              ENDDO
279            ENDIF
280    
281  C--     Calculate specific volume anomaly : alpha' = 1/rho - alpha_Cst  C--     Calculate specific volume anomaly : alpha' = 1/rho - alpha_Cst
282          DO j=jMin,jMax          DO j=jMin,jMax

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.38

  ViewVC Help
Powered by ViewVC 1.1.22