/[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.46 by jmc, Wed Aug 6 23:12:41 2014 UTC revision 1.47 by jmc, Thu Mar 10 20:55:56 2016 UTC
# Line 229  C           conserve KE+PE exactly even Line 229  C           conserve KE+PE exactly even
229           DO j=jMin,jMax           DO j=jMin,jMax
230            DO i=iMin,iMax            DO i=iMin,iMax
231              phiHydC(i,j) = phiHydF(i,j)              phiHydC(i,j) = phiHydF(i,j)
232       &          + halfRL*drF(k)*gravity*alphaRho(i,j)*recip_rhoConst       &              + halfRL*drF(k)*gravFacC(k)*gravity
233         &                             *alphaRho(i,j)*recip_rhoConst
234              phiHydF(i,j) = phiHydF(i,j)              phiHydF(i,j) = phiHydF(i,j)
235       &                 + drF(k)*gravity*alphaRho(i,j)*recip_rhoConst       &                     + drF(k)*gravFacC(k)*gravity
236         &                             *alphaRho(i,j)*recip_rhoConst
237            ENDDO            ENDDO
238           ENDDO           ENDDO
239          ELSE          ELSE
# Line 242  C           conserve KE+PE exactly even Line 244  C           conserve KE+PE exactly even
244  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
245              ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj)              ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj)
246  #endif  #endif
247              phiHydC(i,j) = ddRloc*gravity*alphaRho(i,j)*recip_rhoConst              phiHydC(i,j) = ddRloc*gravFacC(k)*gravity
248         &                           *alphaRho(i,j)*recip_rhoConst
249             ELSE             ELSE
250              phiHydC(i,j) = phiHydF(i,j)              phiHydC(i,j) = phiHydF(i,j)
251       &            + halfRL*drF(k)*gravity*alphaRho(i,j)*recip_rhoConst       &              + halfRL*drF(k)*gravFacC(k)*gravity
252         &                             *alphaRho(i,j)*recip_rhoConst
253             ENDIF             ENDIF
254              phiHydF(i,j) = phiHydC(i,j)             phiHydF(i,j) = phiHydC(i,j)
255       &            + halfRL*drF(k)*gravity*alphaRho(i,j)*recip_rhoConst       &              + halfRL*drF(k)*gravFacC(k)*gravity
256         &                             *alphaRho(i,j)*recip_rhoConst
257            ENDDO            ENDDO
258           ENDDO           ENDDO
259          ENDIF          ENDIF
# Line 259  C  --  Finite Difference Form Line 264  C  --  Finite Difference Form
264  C---------- This discretization is the "energy conserving" form  C---------- This discretization is the "energy conserving" form
265  C           which has been used since at least Adcroft et al., MWR 1997  C           which has been used since at least Adcroft et al., MWR 1997
266    
267          dRlocM = halfRL*drC(k)          dRlocM = halfRL*drC(k)*gravFacF(k)
268          IF (k.EQ.1) dRlocM=rF(k)-rC(k)          IF (k.EQ.1) dRlocM = (rF(k)-rC(k))*gravFacF(k)
269          IF (k.EQ.Nr) THEN          IF (k.EQ.Nr) THEN
270            dRlocP=rC(k)-rF(k+1)            dRlocP = (rC(k)-rF(k+1))*gravFacF(k+1)
271          ELSE          ELSE
272            dRlocP=halfRL*drC(k+1)            dRlocP = halfRL*drC(k+1)*gravFacF(k+1)
273          ENDIF          ENDIF
274          IF ( uniformFreeSurfLev ) THEN          IF ( uniformFreeSurfLev ) THEN
275           DO j=jMin,jMax           DO j=jMin,jMax
276            DO i=iMin,iMax            DO i=iMin,iMax
277              phiHydC(i,j) = phiHydF(i,j)              phiHydC(i,j) = phiHydF(i,j)
278       &        +dRlocM*gravity*alphaRho(i,j)*recip_rhoConst       &             + dRlocM*gravity*alphaRho(i,j)*recip_rhoConst
279              phiHydF(i,j) = phiHydC(i,j)              phiHydF(i,j) = phiHydC(i,j)
280       &        +dRlocP*gravity*alphaRho(i,j)*recip_rhoConst       &             + dRlocP*gravity*alphaRho(i,j)*recip_rhoConst
281            ENDDO            ENDDO
282           ENDDO           ENDDO
283          ELSE          ELSE
# Line 290  C           which has been used since at Line 295  C           which has been used since at
295       &                    )*gravity*alphaRho(i,j)*recip_rhoConst       &                    )*gravity*alphaRho(i,j)*recip_rhoConst
296             ELSE             ELSE
297              phiHydC(i,j) = phiHydF(i,j)              phiHydC(i,j) = phiHydF(i,j)
298       &        +dRlocM*gravity*alphaRho(i,j)*recip_rhoConst       &             + dRlocM*gravity*alphaRho(i,j)*recip_rhoConst
299             ENDIF             ENDIF
300              phiHydF(i,j) = phiHydC(i,j)             phiHydF(i,j) = phiHydC(i,j)
301       &        +dRlocP*gravity*alphaRho(i,j)*recip_rhoConst       &             + dRlocP*gravity*alphaRho(i,j)*recip_rhoConst
302            ENDDO            ENDDO
303           ENDDO           ENDDO
304          ENDIF          ENDIF

Legend:
Removed from v.1.46  
changed lines
  Added in v.1.47

  ViewVC Help
Powered by ViewVC 1.1.22