Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:41:00 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
31566b6684 Alis*0001 #include "GAD_OPTIONS.h"
                0002 
aba3ddc7b7 Alis*0003 CBOP
                0004 C !ROUTINE: GAD_GRAD_X
                0005 
                0006 C !INTERFACE: ==========================================================
eaba2fd266 Jean*0007       SUBROUTINE GAD_GRAD_X(
31566b6684 Alis*0008      I           bi,bj,k,
                0009      I           xA,
be078cfb85 Jean*0010      U           tracer,
31566b6684 Alis*0011      O           dTdx,
                0012      I           myThid )
                0013 
aba3ddc7b7 Alis*0014 C !DESCRIPTION:
527a84022c Alis*0015 C Calculates the zonal gradient of a tracer: $\partial_x \theta
                0016 C = \frac{1}{\Delta x_c} \delta_i \theta$
                0017 C and multiplies by the area.
aba3ddc7b7 Alis*0018 
                0019 C !USES: ===============================================================
                0020       IMPLICIT NONE
31566b6684 Alis*0021 #include "SIZE.h"
be078cfb85 Jean*0022 #include "EEPARAMS.h"
31566b6684 Alis*0023 #include "GRID.h"
                0024 
aba3ddc7b7 Alis*0025 C !INPUT PARAMETERS: ===================================================
be078cfb85 Jean*0026 C  bi,bj            :: tile indices
                0027 C  k                :: vertical level
                0028 C  myThid           :: thread number
31566b6684 Alis*0029       INTEGER bi,bj,k
                0030       _RS xA    (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0031       INTEGER myThid
                0032 
be078cfb85 Jean*0033 C !UPDATED PARAMETERS: =================================================
                0034 C  tracer           :: tracer field
                0035 C    (NOTE: only udate the corner-halo region when using CS-grid)
                0036       _RL tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0037 
aba3ddc7b7 Alis*0038 C !OUTPUT PARAMETERS: ==================================================
be078cfb85 Jean*0039 C  dTdx             :: zonal gradient (units = [Tr_units]*[r_units])
aba3ddc7b7 Alis*0040       _RL dTdx  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0041 
                0042 C !LOCAL VARIABLES: ====================================================
be078cfb85 Jean*0043 C  i,j              :: loop indices
31566b6684 Alis*0044       INTEGER i,j
aba3ddc7b7 Alis*0045 CEOP
31566b6684 Alis*0046 
7f82819bd8 Patr*0047 cph-exch2#ifndef ALLOW_AUTODIFF_TAMC
be078cfb85 Jean*0048 C--   Internal exchange for calculations in X
                0049       IF (useCubedSphereExchange) THEN
93e3461d85 Jean*0050         CALL FILL_CS_CORNER_TR_RL( 1, .FALSE.,
1891130b05 Jean*0051      &                             tracer, bi,bj, myThid )
be078cfb85 Jean*0052       ENDIF
7f82819bd8 Patr*0053 cph-exch2#endif
be078cfb85 Jean*0054 
31566b6684 Alis*0055 C     o Zonal tracer gradient
                0056       DO j=1-Oly,sNy+Oly
                0057        dTdx(1-Olx,j)=0.
                0058        DO i=1-Olx+1,sNx+Olx
eaba2fd266 Jean*0059         dTdx(i,j) = xA(i,j)
                0060      &            *_recip_dxC(i,j,bi,bj)*recip_deepFacC(k)
                0061      &            *(tracer(i,j)-tracer(i-1,j))
31566b6684 Alis*0062 #ifdef COSINEMETH_III
eaba2fd266 Jean*0063      &            *sqCosFacU(j,bi,bj)
31566b6684 Alis*0064 #endif
b0ae795fce Jean*0065 #ifdef ALLOW_OBCS
                0066      &            *maskInW(i,j,bi,bj)
                0067 #endif
31566b6684 Alis*0068        ENDDO
                0069       ENDDO
                0070 
                0071       RETURN
                0072       END