C $Header: /u/gcmpack/MITgcm/model/src/freesurf_rescale_g.F,v 1.3 2003/01/26 21:06:11 jmc Exp $ C $Name: $ #include "CPP_OPTIONS.h" CBOP C !ROUTINE: FREESURF_RESCALE_G C !INTERFACE: SUBROUTINE FREESURF_RESCALE_G( I bi, bj, k, U gTracer, I myThid ) C !DESCRIPTION: \bv C *==========================================================* C | S/R FREESURF_RESCALE_G C | o Re-scale Gs to account for change in free-surface C | hieght. Only meaningful with non-linear free-surface. C *==========================================================* C \ev C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "SURFACE.h" C !INPUT/OUTPUT PARAMETERS: C == Routine Arguments == INTEGER bi,bj,k _RL gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER myIter, myThid #ifdef NONLIN_FRSURF C == Local variables == INTEGER i,j CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| IF (nonlinFreeSurf.GT.0) THEN IF (select_rStar.GT.0) THEN DO j=1-Oly,sNy+Oly DO i=1-Olx,sNx+Olx gTracer(i,j,k,bi,bj) = gTracer(i,j,k,bi,bj) & /rStarExpC(i,j,bi,bj) ENDDO ENDDO ELSE DO j=1-Oly,sNy+Oly DO i=1-Olx,sNx+Olx IF (k.EQ.ksurfC(i,j,bi,bj)) THEN gTracer(i,j,k,bi,bj) = gTracer(i,j,k,bi,bj) & *hFacC(i,j,k,bi,bj)/hFac_surfC(i,j,bi,bj) ENDIF ENDDO ENDDO ENDIF ENDIF #endif /* NONLIN_FRSURF */ RETURN END