Back to home page

MITgcm

 
 

    


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

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
9c05b3873e Alis*0001 #include "MOM_COMMON_OPTIONS.h"
07cc642809 Alis*0002 
ec8c6dda19 Alis*0003 CBOP
                0004 C !ROUTINE: MOM_CALC_TENSION
                0005 
                0006 C !INTERFACE: ==========================================================
12b389f505 Jean*0007       SUBROUTINE MOM_CALC_TENSION(
07cc642809 Alis*0008      I        bi,bj,k,
                0009      I        uFld, vFld,
                0010      O        tension,
220a9e88b5 Jean*0011      I        myThid )
ec8c6dda19 Alis*0012 C !DESCRIPTION:
                0013 C Calculates the tension of the horizontal flow field (at tracer points):
                0014 C \begin{equation*}
                0015 C D_T = \frac{\Delta y_f}{\Delta x_f} \delta_i \frac{u}{\Delta y_g}
                0016 C     - \frac{\Delta x_f}{\Delta y_f} \delta_j \frac{v}{\Delta x_g}
                0017 C \end{equation*}
07cc642809 Alis*0018 
ec8c6dda19 Alis*0019 C !USES: ===============================================================
                0020       IMPLICIT NONE
07cc642809 Alis*0021 #include "SIZE.h"
                0022 #include "EEPARAMS.h"
                0023 #include "PARAMS.h"
                0024 #include "GRID.h"
ec8c6dda19 Alis*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
07cc642809 Alis*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 
ec8c6dda19 Alis*0037 C !OUTPUT PARAMETERS: ==================================================
                0038 C  tension              :: tension of horizontal flow
                0039       _RL tension(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0040 
                0041 C !LOCAL VARIABLES: ====================================================
                0042 C  i,j                  :: loop indices
07cc642809 Alis*0043       INTEGER i,j
ec8c6dda19 Alis*0044 CEOP
07cc642809 Alis*0045 
220a9e88b5 Jean*0046       DO j=1-OLy,sNy+OLy-1
                0047        DO i=1-OLx,sNx+OLx-1
07cc642809 Alis*0048 
ec8c6dda19 Alis*0049 C Calculate tension of horizontal flow (ignoring lopping factors)
                0050 C *NOTE* that masking is implicit in the contents of the (u,v) fields.
12b389f505 Jean*0051         tension(i,j)=
                0052      &    ( dyG(i+1, j ,bi,bj)*uFld(i+1, j )
                0053      &     -dyG( i , j ,bi,bj)*uFld( i , j )
                0054      &     -dxG( i ,j+1,bi,bj)*vFld( i ,j+1)
                0055      &     +dxG( i , j ,bi,bj)*vFld( i , j )
220a9e88b5 Jean*0056      &    )*recip_rA(i,j,bi,bj)*recip_deepFacC(k)
12b389f505 Jean*0057 #ifdef ALLOW_OBCS
                0058      &     *maskInC(i,j,bi,bj)
                0059 #endif
220a9e88b5 Jean*0060 c       tension(i,j)=
12b389f505 Jean*0061 c    &    (dyF(i,j,bi,bj)*recip_dxF(i,j,bi,bj))
                0062 c    &   *( uFld(i+1, j )*recip_dyG(i+1, j ,bi,bj)
                0063 c    &     -uFld( i , j )*recip_dyG( i , j ,bi,bj) )
                0064 c    &   -(dxF(i,j,bi,bj)*recip_dyF(i,j,bi,bj))
                0065 c    &   *( vFld( i ,j+1)*recip_dxG( i ,j+1,bi,bj)
                0066 c    &     -vFld( i , j )*recip_dxG( i , j ,bi,bj) )
ec8c6dda19 Alis*0067 
07cc642809 Alis*0068        ENDDO
                0069       ENDDO
12b389f505 Jean*0070 
07cc642809 Alis*0071       RETURN
                0072       END