Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:42:13 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
768c96c465 Jean*0001 #include "MOM_FLUXFORM_OPTIONS.h"
0ac260a803 Andr*0002 
                0003 CBOP
768c96c465 Jean*0004 C !ROUTINE: MOM_U_METRIC_CYLINDER
0ac260a803 Andr*0005 
                0006 C !INTERFACE: ==========================================================
                0007       SUBROUTINE MOM_U_METRIC_CYLINDER(
                0008      I        bi,bj,k,
                0009      I        uFld, vFld,
                0010      O        uMetricTerms,
768c96c465 Jean*0011      I        myThid )
0ac260a803 Andr*0012 
                0013 C !DESCRIPTION:
768c96c465 Jean*0014 C Calculates the zonal metric term due to cylinder curvature:
0ac260a803 Andr*0015 C \begin{equation}
768c96c465 Jean*0016 C +\frac{u v}{r}
0ac260a803 Andr*0017 C \end{equation}
                0018 
                0019 C !USES: ===============================================================
                0020       IMPLICIT NONE
                0021 #include "SIZE.h"
                0022 #include "EEPARAMS.h"
                0023 #include "PARAMS.h"
                0024 #include "GRID.h"
                0025 
                0026 C !INPUT PARAMETERS: ===================================================
                0027 C  bi,bj                :: tile indices
                0028 C  k                    :: vertical level
                0029 C  uFld                 :: zonal flow
                0030 C  vFld                 :: meridional flow
                0031 C  myThid               :: thread number
                0032       INTEGER bi,bj,k
                0033       _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0034       _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0035       INTEGER myThid
                0036 
                0037 C !OUTPUT PARAMETERS: ==================================================
                0038 C  uMetricTerms         :: metric term
                0039       _RL uMetricTerms(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0040 
                0041 C !LOCAL VARIABLES: ====================================================
                0042 C  i,j                  :: loop indices
                0043       INTEGER i,j
cc7caadc31 Jean*0044       _RL radius
0ac260a803 Andr*0045 CEOP
                0046 
768c96c465 Jean*0047       DO j=1-OLy,sNy+OLy-1
                0048        DO i=1-OLx+1,sNx+OLx
cc7caadc31 Jean*0049           radius = (yG(i,j,bi,bj)+yG(i,j+1,bi,bj))*0.5 _d 0
                0050 C-   to get the same results as before:
                0051 c         radius = yC(i,j,bi,bj)
                0052           IF ( radius.GT.0. ) THEN
768c96c465 Jean*0053              uMetricTerms(i,j) =
0ac260a803 Andr*0054      &            uFld(i,j)
cc7caadc31 Jean*0055      &            *0.25*(vFld(i,j) + vFld(i-1,j) +
                0056      &                   vFld(i,j+1)+vFld(i-1,j+1))/radius
                0057           ELSE
0ac260a803 Andr*0058              uMetricTerms(i,j) = 0.
cc7caadc31 Jean*0059           ENDIF
0ac260a803 Andr*0060 
                0061        ENDDO
                0062       ENDDO
                0063 
                0064       RETURN
                0065       END