Back to home page

MITgcm

 
 

    


File indexing completed on 2020-02-28 06:11:23 UTC

view on githubraw file Latest commit 7155c3b3 on 2019-12-26 19:44:01 UTC
9952f046d7 dngo*0001 #include "SHELFICE_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: SHELFICE_REMESH_CALC_W
                0005 C     !INTERFACE:
7155c3b3df Jean*0006       SUBROUTINE SHELFICE_REMESH_CALC_W(
9952f046d7 dngo*0007      I                             uFld, vFld,
7155c3b3df Jean*0008      O                             wFld,
                0009      I                             myIter, myThid )
9952f046d7 dngo*0010 C     !DESCRIPTION: \bv
                0011 C     *==========================================================*
                0012 C     | SUBROUTINE SHELFICE_REMESH_CALC_W
                0013 C     | o Integrate the continuity Eq : compute vertical velocity
                0014 C     *==========================================================*
                0015 C     \ev
                0016 
                0017 C     !USES:
                0018       IMPLICIT NONE
                0019 C     == Global variables
                0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 #include "PARAMS.h"
7155c3b3df Jean*0023 c#include "DYNVARS.h"
9952f046d7 dngo*0024 #include "GRID.h"
7155c3b3df Jean*0025 c#include "SURFACE.h"
9952f046d7 dngo*0026 #include "FFIELDS.h"
                0027 
                0028 C     !INPUT/OUTPUT PARAMETERS:
                0029 C     uFld     :: Zonal velocity ( m/s )
                0030 C     vFld     :: Meridional velocity ( m/s )
7155c3b3df Jean*0031 C     wFld     :: Vertical velocity ( m/s )
                0032 C     myIter   :: Current iteration number
9952f046d7 dngo*0033 C     myThid   :: my Thread Id. number
                0034       _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0035       _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
7155c3b3df Jean*0036       _RL wFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0037       INTEGER myIter
                0038       INTEGER myThid
                0039 
9952f046d7 dngo*0040 #ifdef ALLOW_SHELFICE_REMESHING
                0041 
                0042 C     !LOCAL VARIABLES:
                0043 C     bi,bj    :: tile index
                0044 C     i,j,k    :: Loop counters
                0045       INTEGER k,bi,bj
                0046 #ifdef ALLOW_OBCS
                0047       INTEGER i, j
                0048 #endif
                0049 #ifndef ALLOW_ADDFLUID
                0050       _RL addMass(1)
                0051 #endif /* ndef ALLOW_ADDFLUID */
                0052 #if (defined NONLIN_FRSURF) && !(defined DISABLE_RSTAR_CODE)
                0053       _RL rStarDhDt(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0054 #else
                0055       _RL rStarDhDt(1)
                0056 #endif
                0057 CEOP
                0058 
                0059 C--   Start bi,bj loops
                0060       DO bj=myByLo(myThid),myByHi(myThid)
                0061        DO bi=myBxLo(myThid),myBxHi(myThid)
                0062 
                0063 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0064 
7155c3b3df Jean*0065         DO k=Nr,1,-1
                0066 C--   Integrate continuity vertically for vertical velocity
9952f046d7 dngo*0067 
7155c3b3df Jean*0068          CALL INTEGRATE_FOR_W(
                0069      I                         bi, bj, k, uFld, vFld,
                0070      I                         addMass, rStarDhDt,
                0071      O                         wFld,
                0072      I                         myThid )
9952f046d7 dngo*0073 
                0074 #ifdef ALLOW_OBCS
7155c3b3df Jean*0075 C--   reset W to zero outside the OB interior region
                0076          IF ( useOBCS ) THEN
                0077           DO j=1,sNy
                0078            DO i=1,sNx
                0079              wFld(i,j,k,bi,bj) = wFld(i,j,k,bi,bj)*maskInC(i,j,bi,bj)
                0080            ENDDO
9952f046d7 dngo*0081           ENDDO
7155c3b3df Jean*0082          ENDIF
9952f046d7 dngo*0083 #endif /* ALLOW_OBCS */
                0084 
7155c3b3df Jean*0085 C-    End k look
                0086         ENDDO
9952f046d7 dngo*0087 
                0088 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0089 
                0090 C--   End bi,bj loops
                0091        ENDDO
                0092       ENDDO
                0093 
7155c3b3df Jean*0094       _EXCH_XYZ_RL( wFld, myThid )
                0095 
                0096 #endif /* ALLOW_SHELFICE_REMESHING */
9952f046d7 dngo*0097 
                0098       RETURN
                0099       END