Back to home page

MITgcm

 
 

    


File indexing completed on 2025-09-19 05:08:10 UTC

view on githubraw file Latest commit c3be0435 on 2025-09-18 18:40:16 UTC
c1e2d059e3 Jean*0001 #include "CPP_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C     !ROUTINE: UPDATE_ETAWS
                0005 C     !INTERFACE:
                0006       SUBROUTINE UPDATE_ETAWS( myTime, myIter, myThid )
                0007 C     !DESCRIPTION: \bv
                0008 C     *==========================================================*
                0009 C     | SUBROUTINE UPDATE_ETAWS
                0010 C     | o For hybrid sigma-coordinate, derive SSH value
                0011 C     |   (etaHw & etaHs) and SSH tendency (dEtaWdt & dEtaSdt)
                0012 C     |   at grid-cell Western and Southern edges.
                0013 C     *==========================================================*
                0014 C     \ev
                0015 
                0016 C     !USES:
                0017       IMPLICIT NONE
                0018 C     == Global variables
                0019 #include "SIZE.h"
                0020 #include "EEPARAMS.h"
                0021 #include "PARAMS.h"
                0022 #include "DYNVARS.h"
                0023 #include "GRID.h"
                0024 #include "SURFACE.h"
                0025 
                0026 C     !INPUT/OUTPUT PARAMETERS:
                0027 C     myTime  :: Current time in simulation
                0028 C     myIter  :: Current iteration number
                0029 C     myThid  :: my Thread Id number
                0030       _RL myTime
                0031       INTEGER myIter
                0032       INTEGER myThid
                0033 
b38cecda5c Jean*0034 #ifdef NONLIN_FRSURF
                0035 # ifndef DISABLE_SIGMA_CODE
c3be04357d Jean*0036 C     !LOCAL VARIABLES:
c1e2d059e3 Jean*0037 C     i,j,bi,bj  :: Loop counters
                0038       INTEGER i,j,bi,bj
                0039 CEOP
                0040 
                0041       IF ( nonlinFreeSurf.GT.0 .AND. selectSigmaCoord.NE.0 ) THEN
                0042 
                0043        DO bj=myByLo(myThid),myByHi(myThid)
                0044         DO bi=myBxLo(myThid),myBxHi(myThid)
                0045 C-     1rst bi,bj loop :
                0046 
                0047 C-- copy etaHX -> dEtaXdt
b38cecda5c Jean*0048          DO j=1-OLy,sNy+OLy
                0049           DO i=1-OLx,sNx+OLx
c1e2d059e3 Jean*0050             dEtaWdt(i,j,bi,bj) = etaHw(i,j,bi,bj)
                0051             dEtaSdt(i,j,bi,bj) = etaHs(i,j,bi,bj)
                0052           ENDDO
                0053          ENDDO
                0054 
                0055          DO j=1,sNy+1
                0056           DO i=1,sNx+1
                0057             etaHw(i,j,bi,bj)   = ( etaH (i-1,j,bi,bj)
                0058      &                           + etaH ( i ,j,bi,bj) )*0.5 _d 0
                0059             etaHs(i,j,bi,bj)   = ( etaH (i,j-1,bi,bj)
                0060      &                           + etaH (i, j ,bi,bj) )*0.5 _d 0
                0061 c           etaHw(i,j,bi,bj)   = 0.5 _d 0
                0062 c    &                         *(   etaH (i-1,j,bi,bj)*rA(i-1,j,bi,bj)
                0063 c    &                            + etaH ( i ,j,bi,bj)*rA( i ,j,bi,bj)
                0064 c    &                          )*recip_rAw(i,j,bi,bj)
                0065 c           etaHs(i,j,bi,bj)   = 0.5 _d 0
                0066 c    &                         *(   etaH (i,j-1,bi,bj)*rA(i,j-1,bi,bj)
                0067 c    &                            + etaH (i, j ,bi,bj)*rA(i, j ,bi,bj)
                0068 c    &                          )*recip_rAs(i,j,bi,bj)
                0069           ENDDO
                0070          ENDDO
                0071 
                0072 C- end 1rst bi,bj loop.
                0073         ENDDO
                0074        ENDDO
                0075 
                0076        CALL EXCH_UV_XY_RL( etaHw, etaHs, .FALSE., myThid )
                0077 
                0078        DO bj=myByLo(myThid),myByHi(myThid)
                0079         DO bi=myBxLo(myThid),myBxHi(myThid)
                0080 C-     2nd bi,bj loop :
                0081 
b38cecda5c Jean*0082          DO j=1-OLy,sNy+OLy
                0083           DO i=1-OLx,sNx+OLx
c1e2d059e3 Jean*0084             dEtaWdt(i,j,bi,bj) = ( etaHw(i,j,bi,bj)
c3be04357d Jean*0085      &                           - dEtaWdt(i,j,bi,bj) )/deltaTFreeSurf
c1e2d059e3 Jean*0086             dEtaSdt(i,j,bi,bj) = ( etaHs(i,j,bi,bj)
c3be04357d Jean*0087      &                           - dEtaSdt(i,j,bi,bj) )/deltaTFreeSurf
c1e2d059e3 Jean*0088           ENDDO
                0089          ENDDO
                0090 
                0091 C- end 2nd bi,bj loop.
                0092         ENDDO
                0093        ENDDO
                0094 
                0095       ENDIF
                0096 # endif /* DISABLE_SIGMA_CODE */
                0097 #endif /* NONLIN_FRSURF */
                0098 
                0099       RETURN
                0100       END