Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:37:09 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 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     == Routine arguments ==
                0028 C     myTime  :: Current time in simulation
                0029 C     myIter  :: Current iteration number
                0030 C     myThid  :: my Thread Id number
                0031       _RL myTime
                0032       INTEGER myIter
                0033       INTEGER myThid
                0034 
                0035 C     !LOCAL VARIABLES:
                0036 #ifdef EXACT_CONSERV
                0037 C     Local variables in common block
                0038 
b38cecda5c Jean*0039 #ifdef NONLIN_FRSURF
                0040 # ifndef DISABLE_SIGMA_CODE
c1e2d059e3 Jean*0041 C     Local variables
                0042 C     i,j,bi,bj  :: Loop counters
                0043       INTEGER i,j,bi,bj
                0044 CEOP
                0045 
                0046       IF ( nonlinFreeSurf.GT.0 .AND. selectSigmaCoord.NE.0 ) THEN
                0047 
                0048        DO bj=myByLo(myThid),myByHi(myThid)
                0049         DO bi=myBxLo(myThid),myBxHi(myThid)
                0050 C-     1rst bi,bj loop :
                0051 
                0052 C-- copy etaHX -> dEtaXdt
b38cecda5c Jean*0053          DO j=1-OLy,sNy+OLy
                0054           DO i=1-OLx,sNx+OLx
c1e2d059e3 Jean*0055             dEtaWdt(i,j,bi,bj) = etaHw(i,j,bi,bj)
                0056             dEtaSdt(i,j,bi,bj) = etaHs(i,j,bi,bj)
                0057           ENDDO
                0058          ENDDO
                0059 
                0060          DO j=1,sNy+1
                0061           DO i=1,sNx+1
                0062             etaHw(i,j,bi,bj)   = ( etaH (i-1,j,bi,bj)
                0063      &                           + etaH ( i ,j,bi,bj) )*0.5 _d 0
                0064             etaHs(i,j,bi,bj)   = ( etaH (i,j-1,bi,bj)
                0065      &                           + etaH (i, j ,bi,bj) )*0.5 _d 0
                0066 c           etaHw(i,j,bi,bj)   = 0.5 _d 0
                0067 c    &                         *(   etaH (i-1,j,bi,bj)*rA(i-1,j,bi,bj)
                0068 c    &                            + etaH ( i ,j,bi,bj)*rA( i ,j,bi,bj)
                0069 c    &                          )*recip_rAw(i,j,bi,bj)
                0070 c           etaHs(i,j,bi,bj)   = 0.5 _d 0
                0071 c    &                         *(   etaH (i,j-1,bi,bj)*rA(i,j-1,bi,bj)
                0072 c    &                            + etaH (i, j ,bi,bj)*rA(i, j ,bi,bj)
                0073 c    &                          )*recip_rAs(i,j,bi,bj)
                0074           ENDDO
                0075          ENDDO
                0076 
                0077 C- end 1rst bi,bj loop.
                0078         ENDDO
                0079        ENDDO
                0080 
                0081        CALL EXCH_UV_XY_RL( etaHw, etaHs, .FALSE., myThid )
                0082 
                0083        DO bj=myByLo(myThid),myByHi(myThid)
                0084         DO bi=myBxLo(myThid),myBxHi(myThid)
                0085 C-     2nd bi,bj loop :
                0086 
b38cecda5c Jean*0087          DO j=1-OLy,sNy+OLy
                0088           DO i=1-OLx,sNx+OLx
c1e2d059e3 Jean*0089             dEtaWdt(i,j,bi,bj) = ( etaHw(i,j,bi,bj)
                0090      &                           - dEtaWdt(i,j,bi,bj) )/deltaTfreesurf
                0091             dEtaSdt(i,j,bi,bj) = ( etaHs(i,j,bi,bj)
                0092      &                           - dEtaSdt(i,j,bi,bj) )/deltaTfreesurf
                0093           ENDDO
                0094          ENDDO
                0095 
                0096 C- end 2nd bi,bj loop.
                0097         ENDDO
                0098        ENDDO
                0099 
                0100       ENDIF
                0101 # endif /* DISABLE_SIGMA_CODE */
                0102 #endif /* NONLIN_FRSURF */
                0103 
                0104 #endif /* EXACT_CONSERV */
                0105 
                0106       RETURN
                0107       END