Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:36:44 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
31ab105195 Alis*0001 #include "CPP_OPTIONS.h"
                0002 
9366854e02 Chri*0003 CBOP
                0004 C     !ROUTINE: FREESURF_RESCALE_G
                0005 C     !INTERFACE:
31ab105195 Alis*0006       SUBROUTINE FREESURF_RESCALE_G(
00b29feb62 Jean*0007      I                     bi, bj, k,
31ab105195 Alis*0008      U                     gTracer,
                0009      I                     myThid )
9366854e02 Chri*0010 C     !DESCRIPTION: \bv
                0011 C     *==========================================================*
a2a20dcddc Jean*0012 C     | S/R FREESURF_RESCALE_G
                0013 C     | o Re-scale Gs to account for change in free-surface
                0014 C     |   hieght. Only meaningful with non-linear free-surface.
9366854e02 Chri*0015 C     *==========================================================*
                0016 C     \ev
31ab105195 Alis*0017 
9366854e02 Chri*0018 C     !USES:
                0019       IMPLICIT NONE
31ab105195 Alis*0020 C     == Global variables ===
                0021 #include "SIZE.h"
                0022 #include "EEPARAMS.h"
                0023 #include "PARAMS.h"
                0024 #include "GRID.h"
                0025 #include "SURFACE.h"
                0026 
9366854e02 Chri*0027 C     !INPUT/OUTPUT PARAMETERS:
31ab105195 Alis*0028 C     == Routine Arguments ==
00b29feb62 Jean*0029       INTEGER bi,bj,k
23a7f3050f Jean*0030       _RL  gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
7418e6b1e6 Jean*0031       INTEGER myThid
00b29feb62 Jean*0032 #ifdef NONLIN_FRSURF
31ab105195 Alis*0033 C     == Local variables ==
                0034       INTEGER i,j
9366854e02 Chri*0035 CEOP
31ab105195 Alis*0036 
                0037 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0038 
a2a20dcddc Jean*0039       IF ( nonlinFreeSurf.GT.0 ) THEN
                0040        IF ( select_rStar.GT.0 ) THEN
                0041 # ifndef DISABLE_RSTAR_CODE
23a7f3050f Jean*0042         DO j=1-OLy,sNy+OLy
                0043          DO i=1-OLx,sNx+OLx
                0044            gTracer(i,j,k) = gTracer(i,j,k)
                0045      &                    / rStarExpC(i,j,bi,bj)
00b29feb62 Jean*0046          ENDDO
31ab105195 Alis*0047         ENDDO
a2a20dcddc Jean*0048 # endif /* DISABLE_RSTAR_CODE */
                0049        ELSEIF ( selectSigmaCoord.NE.0 ) THEN
                0050 # ifndef DISABLE_SIGMA_CODE
23a7f3050f Jean*0051         DO j=1-OLy,sNy+OLy
                0052          DO i=1-OLx,sNx+OLx
                0053            gTracer(i,j,k) = gTracer(i,j,k)
                0054      &        /( 1. _d 0 + dEtaHdt(i,j,bi,bj)*deltaTFreeSurf
a2a20dcddc Jean*0055      &                    *dBHybSigF(k)*recip_drF(k)
                0056      &                    *recip_hFacC(i,j,k,bi,bj)
                0057      &         )
                0058          ENDDO
                0059         ENDDO
                0060 # endif /* DISABLE_SIGMA_CODE */
00b29feb62 Jean*0061        ELSE
23a7f3050f Jean*0062         DO j=1-OLy,sNy+OLy
                0063          DO i=1-OLx,sNx+OLx
a2a20dcddc Jean*0064           IF (k.EQ.kSurfC(i,j,bi,bj)) THEN
23a7f3050f Jean*0065            gTracer(i,j,k) = gTracer(i,j,k)
                0066      &            *_hFacC(i,j,k,bi,bj)/hFac_surfC(i,j,bi,bj)
00b29feb62 Jean*0067           ENDIF
                0068          ENDDO
                0069         ENDDO
                0070        ENDIF
31ab105195 Alis*0071       ENDIF
00b29feb62 Jean*0072 
31ab105195 Alis*0073 #endif /* NONLIN_FRSURF */
                0074 
                0075       RETURN
                0076       END