Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:44:40 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
42c525bfb4 Alis*0001 #include "ZONAL_FILT_OPTIONS.h"
                0002 
c450ad805c Jean*0003 CBOP 0
                0004 C     !ROUTINE: ZONAL_FILT_APPLY_UV
                0005 
                0006 C     !INTERFACE:
                0007       SUBROUTINE ZONAL_FILT_APPLY_UV(
                0008      U                 uFld, vFld,
                0009      I                 myThid )
                0010 
                0011 C     !DESCRIPTION:
                0012 C     *==========================================================*
                0013 C     | S/R ZONAL_FILT_APPLY_UV
                0014 C     | o Apply FFT filter to a latitude circle.
                0015 C     *==========================================================*
42c525bfb4 Alis*0016 
c450ad805c Jean*0017 C     !USES:
                0018       IMPLICIT NONE
42c525bfb4 Alis*0019 C     == Global data ==
                0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 #include "PARAMS.h"
                0023 #include "GRID.h"
                0024 
c450ad805c Jean*0025 C     !INPUT/OUTPUT PARAMETERS:
                0026 C     myThid  :: my Thread Id number
42c525bfb4 Alis*0027       _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0028       _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0029       INTEGER myThid
c450ad805c Jean*0030 CEOP
42c525bfb4 Alis*0031 
                0032 #ifdef ALLOW_ZONAL_FILT
                0033 
c450ad805c Jean*0034 C     !LOCAL VARIABLES:
                0035       INTEGER bi,bj
                0036       INTEGER i, j, k
                0037       _RL uFlow(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
42c525bfb4 Alis*0038 
                0039       DO bj=myByLo(myThid),myByHi(myThid)
                0040       DO bi=myBxLo(myThid),myBxHi(myThid)
                0041 
c450ad805c Jean*0042        IF ( select_rStar.GT.0 ) THEN
                0043 
                0044         DO k=1,Nr
                0045 C--     Loop on vertical index k
                0046          DO j=1-OLy,sNy+OLy
                0047           DO i=1-OLx,sNx+OLx
                0048            uFlow(i,j) = uFld(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj)
                0049           ENDDO
                0050          ENDDO
                0051          CALL ZONAL_FILTER(
                0052      U                     uFlow,
                0053      I                     hFacW(1-OLx,1-OLy,k,bi,bj),
                0054      I                     0, sNy+1, 1, bi, bj, 1, myThid )
                0055          DO j=1-OLy,sNy+OLy
                0056           DO i=1-OLx,sNx+OLx
                0057            uFld(i,j,k,bi,bj) = uFlow(i,j)*recip_hFacW(i,j,k,bi,bj)
                0058           ENDDO
                0059          ENDDO
                0060 C--     end of k loop
                0061         ENDDO
                0062 
                0063        ELSE
                0064 
42c525bfb4 Alis*0065         CALL ZONAL_FILTER(
c450ad805c Jean*0066      U                     uFld( 1-OLx,1-OLy,1,bi,bj),
                0067      I                     hFacW(1-OLx,1-OLy,1,bi,bj),
                0068      I                     0, sNy+1, Nr, bi, bj, 1, myThid )
                0069 
                0070        ENDIF
                0071 
                0072        CALL ZONAL_FILTER(
                0073      U                     vFld( 1-OLx,1-OLy,1,bi,bj),
                0074      I                     hFacS(1-OLx,1-OLy,1,bi,bj),
                0075      I                     0, sNy+1, Nr, bi, bj, 2, myThid )
42c525bfb4 Alis*0076 
                0077       ENDDO
                0078       ENDDO
                0079 
                0080 #endif /* ALLOW_ZONAL_FILT */
                0081 
                0082       RETURN
                0083       END