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_Y
                0005 
                0006 C !INTERFACE: ==========================================================
eaba2fd266 Jean*0007       SUBROUTINE GAD_GRAD_Y(
31566b6684 Alis*0008      I           bi,bj,k,
                0009      I           yA,
be078cfb85 Jean*0010      U           tracer,
31566b6684 Alis*0011      O           dTdy,
                0012      I           myThid )
                0013 
aba3ddc7b7 Alis*0014 C !DESCRIPTION:
527a84022c Alis*0015 C Calculates the meridional gradient of a tracer: $\partial_y \theta
                0016 C = \frac{1}{\Delta y_c} \delta_j \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 yA    (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  dTdy             :: meridional gradient (units= [Tr_units]*[r_units])
aba3ddc7b7 Alis*0040       _RL dTdy  (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 Y
                0049       IF (useCubedSphereExchange) THEN
93e3461d85 Jean*0050         CALL FILL_CS_CORNER_TR_RL( 2, .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 Meridional tracer gradient
                0056       DO i=1-Olx,sNx+Olx
                0057        dTdy(I,1-Oly)=0.
                0058       ENDDO
                0059       DO j=1-Oly+1,sNy+Oly
                0060        DO i=1-Olx,sNx+Olx
eaba2fd266 Jean*0061         dTdy(i,j) = yA(i,j)
                0062      &            *_recip_dyC(i,j,bi,bj)*recip_deepFacC(k)
                0063      &            *(tracer(i,j)-tracer(i,j-1))
31566b6684 Alis*0064 #ifdef ISOTROPIC_COS_SCALING
                0065 #ifdef COSINEMETH_III
eaba2fd266 Jean*0066      &            *sqCosFacV(j,bi,bj)
31566b6684 Alis*0067 #endif
                0068 #endif
b0ae795fce Jean*0069 #ifdef ALLOW_OBCS
                0070      &            *maskInS(i,j,bi,bj)
                0071 #endif
31566b6684 Alis*0072        ENDDO
                0073       ENDDO
                0074 
                0075       RETURN
                0076       END