** Warning **

Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.

Last-Modified: Thu, 15 May 2024 05:11:27 GMT Content-Type: text/html; charset=utf-8 MITgcm/MITgcm/pkg/mom_fluxform/mom_u_coriolis.F
Back to home page

MITgcm

 
 

    


File indexing completed on 2019-06-12 05:10:50 UTC

view on githubraw file Latest commit 7843dde2 on 2019-06-11 16:37:20 UTC
6d54cf9ca1 Ed H*0001 #include "MOM_FLUXFORM_OPTIONS.h"
aea29c8517 Alis*0002 
71207ba845 Alis*0003 CBOP
                0004 C !ROUTINE: MOM_U_CORIOLIS
                0005 
                0006 C !INTERFACE: ==========================================================
010a91abcf Jean*0007       SUBROUTINE MOM_U_CORIOLIS(
aea29c8517 Alis*0008      I        bi,bj,k,vFld,
                0009      U        uCoriolisTerm,
                0010      I        myThid)
                0011 
71207ba845 Alis*0012 C !DESCRIPTION:
                0013 C Calculates the horizontal Coriolis term in the zonal equation:
                0014 C \begin{equation*}
                0015 C \overline{f}^i \overline{v}^{ij}
                0016 C \end{equation*}
aea29c8517 Alis*0017 
71207ba845 Alis*0018 C !USES: ===============================================================
                0019       IMPLICIT NONE
aea29c8517 Alis*0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 #include "PARAMS.h"
                0023 #include "GRID.h"
                0024 #include "SURFACE.h"
                0025 
71207ba845 Alis*0026 C !INPUT PARAMETERS: ===================================================
                0027 C  bi,bj                :: tile indices
                0028 C  k                    :: vertical level
                0029 C  vFld                 :: meridional flow
                0030 C  myThid               :: thread number
010a91abcf Jean*0031       INTEGER bi,bj,k
aea29c8517 Alis*0032       _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0033       INTEGER myThid
                0034 
71207ba845 Alis*0035 C !OUTPUT PARAMETERS: ==================================================
                0036 C  uCoriolisTerm        :: Coriolis term
                0037       _RL uCoriolisTerm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0038 
                0039 C !LOCAL VARIABLES: ====================================================
                0040 C  i,j                  :: loop indices
010a91abcf Jean*0041       INTEGER i,j
                0042       _RS one
                0043       PARAMETER( one = 1. _d 0 )
71207ba845 Alis*0044 CEOP
aea29c8517 Alis*0045 
7843dde2de jm-c 0046       IF ( selectCoriScheme.GE.2 ) THEN
04a64662e0 Alis*0047 C Energy conserving discretization
7843dde2de jm-c 0048        DO j=1-OLy,sNy+OLy-1
                0049         DO i=1-OLx+1,sNx+OLx
04a64662e0 Alis*0050          uCoriolisTerm(i,j) =
                0051      &     0.5*( _fCori( i ,j,bi,bj)
                0052      &          *0.5*( vFld( i ,j)+vFld( i ,j+1) )
                0053      &         + _fCori(i-1,j,bi,bj)
                0054      &          *0.5*( vFld(i-1,j)+vFld(i-1,j+1) ) )
                0055         ENDDO
                0056        ENDDO
                0057       ELSE
                0058 C Original discretization
7843dde2de jm-c 0059        DO j=1-OLy,sNy+OLy-1
                0060         DO i=1-OLx+1,sNx+OLx
04a64662e0 Alis*0061          uCoriolisTerm(i,j) =
aea29c8517 Alis*0062      &     0.5*( _fCori( i ,j,bi,bj) +
                0063      &           _fCori(i-1,j,bi,bj)  )
                0064      &   *0.25*(
                0065      &     vFld( i ,j)+vFld( i ,j+1)
                0066      &    +vFld(i-1,j)+vFld(i-1,j+1)
                0067      &         )
04a64662e0 Alis*0068         ENDDO
aea29c8517 Alis*0069        ENDDO
04a64662e0 Alis*0070       ENDIF
aea29c8517 Alis*0071 
7843dde2de jm-c 0072       IF ( selectCoriScheme.EQ.1 .OR. selectCoriScheme.EQ.3 ) THEN
8088b71082 Alis*0073 C Scale term so that only "wet" points are used
                0074 C Due to: Jamart and Ozer, 1986, JGR 91 (C9), 10,621-10,631
                0075 C         "Numerical Boundary Layers and Spurious Residual Flows"
7843dde2de jm-c 0076        DO j=1-OLy,sNy+OLy-1
                0077         DO i=1-OLx+1,sNx+OLx
8088b71082 Alis*0078          uCoriolisTerm(i,j) = uCoriolisTerm(i,j)
010a91abcf Jean*0079      &   *4. _d 0/MAX( one,
                0080      &                 maskS( i , j ,k,bi,bj)+maskS( i ,j+1,k,bi,bj)
                0081      &                +maskS(i-1, j ,k,bi,bj)+maskS(i-1,j+1,k,bi,bj) )
8088b71082 Alis*0082         ENDDO
                0083        ENDDO
                0084       ENDIF
                0085 
aea29c8517 Alis*0086       RETURN
                0087       END