Back to home page

MITgcm

 
 

    


File indexing completed on 2018-09-01 05:09:55 UTC

view on githubraw file Latest commit 0e922392 on 2018-08-14 22:06:58 UTC
31566b6684 Alis*0001 #include "GAD_OPTIONS.h"
                0002 
aba3ddc7b7 Alis*0003 CBOP
                0004 C !ROUTINE: GAD_DIFF_R
                0005 
                0006 C !INTERFACE: ==========================================================
eaba2fd266 Jean*0007       SUBROUTINE GAD_DIFF_R(
e9de1d7682 Jean*0008      I           bi, bj, k,
0e9223926c Jean*0009      I           maskUp, KappaR, tracer,
31566b6684 Alis*0010      O           dfr,
                0011      I           myThid )
                0012 
aba3ddc7b7 Alis*0013 C !DESCRIPTION:
527a84022c Alis*0014 C Calculates the area integrated vertical flux due to down-gradient
                0015 C diffusion of a tracer:
aba3ddc7b7 Alis*0016 C \begin{equation*}
527a84022c Alis*0017 C F^r_{diff} = - A^r \kappa_r \frac{1}{\Delta r_c} \delta_k \theta
aba3ddc7b7 Alis*0018 C \end{equation*}
                0019 
                0020 C !USES: ===============================================================
                0021       IMPLICIT NONE
31566b6684 Alis*0022 #include "SIZE.h"
                0023 #include "GRID.h"
                0024 #include "EEPARAMS.h"
                0025 #include "PARAMS.h"
                0026 
aba3ddc7b7 Alis*0027 C !INPUT PARAMETERS: ===================================================
                0028 C  bi,bj                :: tile indices
                0029 C  k                    :: vertical level
0e9223926c Jean*0030 C  maskUp               :: 2-D array for mask at W points
aba3ddc7b7 Alis*0031 C  KappaR               :: vertical diffusivity
                0032 C  tracer               :: tracer field
                0033 C  myThid               :: thread number
31566b6684 Alis*0034       INTEGER bi,bj,k
0e9223926c Jean*0035       _RS maskUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
5a39f5fdb9 Jean*0036       _RL KappaR(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
e9de1d7682 Jean*0037       _RL tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
31566b6684 Alis*0038       INTEGER myThid
                0039 
aba3ddc7b7 Alis*0040 C !OUTPUT PARAMETERS: ==================================================
                0041 C  dfr                  :: vertical diffusive flux
                0042       _RL dfr   (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0043 
                0044 C !LOCAL VARIABLES: ====================================================
                0045 C  i,j                  :: loop indices
                0046 C  km1                  :: =k+1 for k<Nr, =Nr for k>-Nr
31566b6684 Alis*0047       INTEGER i,j,km1
527a84022c Alis*0048 CEOP
31566b6684 Alis*0049 
eaba2fd266 Jean*0050       km1=MAX(1,k-1)
31566b6684 Alis*0051 
eaba2fd266 Jean*0052       IF (k.EQ.1 .OR. k.GT.Nr) THEN
e9de1d7682 Jean*0053        DO j=1-OLy,sNy+OLy
                0054         DO i=1-OLx,sNx+OLx
31566b6684 Alis*0055          dfr(i,j) = 0.
                0056         ENDDO
                0057        ENDDO
                0058       ELSE
e9de1d7682 Jean*0059        DO j=1-OLy,sNy+OLy
                0060         DO i=1-OLx,sNx+OLx
0e9223926c Jean*0061          dfr(i,j) = -KappaR(i,j)*maskUp(i,j)
eaba2fd266 Jean*0062      &            *_rA(i,j,bi,bj)*deepFac2F(k)*rhoFacF(k)
                0063      &            *recip_drC(k)
e9de1d7682 Jean*0064      &            *(tracer(i,j,k)-tracer(i,j,km1))*rkSign
31566b6684 Alis*0065         ENDDO
                0066        ENDDO
                0067       ENDIF
                0068 
                0069       RETURN
                0070       END