Back to home page

MITgcm

 
 

    


File indexing completed on 2019-12-22 06:11:30 UTC

view on githubraw file Latest commit 1fa1235c on 2019-12-11 04:55:16 UTC
1fa1235c63 Jean*0001 #include "SHELFICE_OPTIONS.h"
                0002 
                0003 CBOP
                0004 C !ROUTINE: SHELFICE_DIAGNOSTICS_DRAG
                0005 
                0006 C !INTERFACE: ==========================================================
                0007       SUBROUTINE SHELFICE_DIAGNOSTICS_DRAG(
                0008      I        uFld, vFld,
                0009      I        bi, bj, myIter, myThid )
                0010 
                0011 C !DESCRIPTION:
                0012 C Finish to calculate Ice-Shelf stress and fill-up corresponding diagnostics
                0013 
                0014 C !USES: ===============================================================
                0015       IMPLICIT NONE
                0016 #include "SIZE.h"
                0017 #include "EEPARAMS.h"
                0018 #include "PARAMS.h"
                0019 #include "GRID.h"
                0020 #include "SHELFICE.h"
                0021 
                0022 C !INPUT PARAMETERS: ===================================================
                0023 C  uFld           :: velocity, zonal component
                0024 C  vFld           :: velocity, meridional component
                0025 C  bi,bj          :: tile indices
                0026 C  myIter         :: current iteration number
                0027 C  myThid         :: my Thread Id number
                0028       _RL uFld   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0029       _RL vFld   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
                0030       INTEGER bi, bj
                0031       INTEGER myIter, myThid
                0032 
                0033 #ifdef ALLOW_SHELFICE
                0034 #ifdef ALLOW_DIAGNOSTICS
                0035 C !LOCAL VARIABLES : ====================================================
                0036 C  i,j            :: loop indices
                0037 C  k              :: vertical level
                0038       INTEGER i, j, k
                0039 CEOP
                0040 
                0041       IF ( selectImplicitDrag.EQ.2 ) THEN
                0042        DO j=1-OLy,sNy+OLy
                0043         DO i=1-OLx+1,sNx+OLx
                0044           k = MAX( 1, kTopC(i-1,j,bi,bj), kTopC(i,j,bi,bj) )
                0045 c         IF ( k.GE.1 ) THEN
                0046            shelficeDragU(i,j,bi,bj) = -shelficeDragU(i,j,bi,bj)
                0047      &                              * uFld(i,j,k)
                0048 c         ENDIF
                0049         ENDDO
                0050        ENDDO
                0051        DO j=1-OLy+1,sNy+OLy
                0052         DO i=1-OLx,sNx+OLx
                0053           k = MAX( 1, kTopC(i,j-1,bi,bj), kTopC(i,j,bi,bj) )
                0054 c         IF ( k.GE.1 ) THEN
                0055            shelficeDragV(i,j,bi,bj) = -shelficeDragV(i,j,bi,bj)
                0056      &                              * vFld(i,j,k)
                0057 c         ENDIF
                0058         ENDDO
                0059        ENDDO
                0060       ENDIF
                0061 
                0062       CALL DIAGNOSTICS_FILL_RS( shelficeDragU, 'SHI_TauX',
                0063      &                          0, 1, 1, bi, bj, myThid )
                0064       CALL DIAGNOSTICS_FILL_RS( shelficeDragV, 'SHI_TauY',
                0065      &                          0, 1, 1, bi, bj, myThid )
                0066 
                0067 #endif /* ALLOW_DIAGNOSTICS */
                0068 #endif /* ALLOW_SHELFICE */
                0069 
                0070       RETURN
                0071       END