Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:36:26 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
1b175021a4 Jean*0001 #include "CPP_OPTIONS.h"
                0002 
9366854e02 Chri*0003 CBOP
                0004 C     !ROUTINE: CALC_GRAD_PHI_SURF
                0005 C     !INTERFACE:
1b175021a4 Jean*0006       SUBROUTINE CALC_GRAD_PHI_SURF( bi, bj, iMin, iMax, jMin, jMax,
                0007      I                       etaFld,
                0008      O                       phiSurfX, phiSurfY,
                0009      I                       myThid )
9366854e02 Chri*0010 C     !DESCRIPTION: \bv
                0011 C     *==========================================================*
                0012 C     | S/R CALC_GRAD_PHI_SURF                                    
                0013 C     | o Calculate the gradient of the surface Potential anomaly 
                0014 C     *==========================================================*
                0015 C     \ev
                0016 
                0017 C     !USES:
1b175021a4 Jean*0018       IMPLICIT NONE
                0019 C     == Global variables ==
                0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 #include "PARAMS.h"
                0023 #include "GRID.h"
                0024 #include "SURFACE.h"
                0025 
9366854e02 Chri*0026 C     !INPUT/OUTPUT PARAMETERS:
1b175021a4 Jean*0027 C     == Routine Arguments ==
9366854e02 Chri*0028 C     etaFld             :: free-surface r-anomaly (r unit).
                0029 C     phiSurfX, phiSurfY :: Gradient in the X and Y directions of surface
1b175021a4 Jean*0030 C       Potentiel anomaly (atmos: =Geopotential ; ocean: =Pressure/rho) 
9366854e02 Chri*0031 C     bi,bj,iMin,iMax,jMin,jMax :: Loop counters
                0032 C     myThid :: Instance number for this call of the routine.
1b175021a4 Jean*0033       INTEGER bi,bj,iMin,iMax,jMin,jMax
                0034       _RL etaFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
                0035       _RL phiSurfX(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
                0036       _RL phiSurfY(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
                0037       INTEGER myThid
                0038 
9366854e02 Chri*0039 C     !LOCAL VARIABLES:
1b175021a4 Jean*0040 C     == Local variables ==
9366854e02 Chri*0041 C     i,j :: Loop counters
1b175021a4 Jean*0042       INTEGER i,j
9366854e02 Chri*0043 CEOP
1b175021a4 Jean*0044 
                0045 C     Zonal term
                0046       DO j=jMin,jMax
                0047        DO i=iMin,iMax
                0048         phiSurfX(i,j)=_recip_dxC(i,j,bi,bj)*
                0049      &   ( Bo_surf(i,j,bi,bj)*etaFld(i,j,bi,bj)
                0050      &   - Bo_surf(i-1,j,bi,bj)*etaFld(i-1,j,bi,bj) )      
                0051        ENDDO
                0052       ENDDO
                0053 
                0054 C     Meridional term
                0055       DO j=jMin,jMax
                0056        DO i=iMin,iMax
                0057         phiSurfY(i,j)=_recip_dyC(i,j,bi,bj)*
                0058      &   ( Bo_surf(i,j,bi,bj)*etaFld(i,j,bi,bj)
                0059      &   - Bo_surf(i,j-1,bi,bj)*etaFld(i,j-1,bi,bj) ) 
                0060        ENDDO
                0061       ENDDO
                0062 
                0063       RETURN
                0064       END