/[MITgcm]/MITgcm/pkg/zonal_filt/zonal_filt_apply_uv.F
ViewVC logotype

Diff of /MITgcm/pkg/zonal_filt/zonal_filt_apply_uv.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by jmc, Tue Dec 11 14:49:07 2001 UTC revision 1.2 by jmc, Sun Sep 27 23:14:44 2009 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "ZONAL_FILT_OPTIONS.h"  #include "ZONAL_FILT_OPTIONS.h"
5    
6        SUBROUTINE ZONAL_FILT_APPLY_UV(  CBOP 0
7       U           uFld, vFld,  C     !ROUTINE: ZONAL_FILT_APPLY_UV
8       I           myThid )  
9  C     /==========================================================\  C     !INTERFACE:
10  C     | S/R ZONAL_FILT_APPLY_UV                                  |        SUBROUTINE ZONAL_FILT_APPLY_UV(
11  C     | o Apply FFT filter to a latitude circle.                 |       U                 uFld, vFld,
12  C     \==========================================================/       I                 myThid )
13        IMPLICIT NONE  
14    C     !DESCRIPTION:
15    C     *==========================================================*
16    C     | S/R ZONAL_FILT_APPLY_UV
17    C     | o Apply FFT filter to a latitude circle.
18    C     *==========================================================*
19    
20    C     !USES:
21          IMPLICIT NONE
22  C     == Global data ==  C     == Global data ==
23  #include "SIZE.h"  #include "SIZE.h"
24  #include "EEPARAMS.h"  #include "EEPARAMS.h"
25  #include "PARAMS.h"  #include "PARAMS.h"
26  #include "GRID.h"  #include "GRID.h"
27    
28  C     == Routine arguments ==  C     !INPUT/OUTPUT PARAMETERS:
29    C     myThid  :: my Thread Id number
30        _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
31        _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
32        INTEGER myThid        INTEGER myThid
33    CEOP
34    
35  #ifdef ALLOW_ZONAL_FILT  #ifdef ALLOW_ZONAL_FILT
36    
37  C     == Local data ==  C     !LOCAL VARIABLES:
38        INTEGER K,bi,bj        INTEGER bi,bj
39          INTEGER i, j, k
40          _RL uFlow(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
41    
42        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
43        DO bi=myBxLo(myThid),myBxHi(myThid)        DO bi=myBxLo(myThid),myBxHi(myThid)
44    
45        DO k=1,Nr         IF ( select_rStar.GT.0 ) THEN
46          CALL ZONAL_FILTER(  
47       &    uFld, hFacW, 1-1, sNy+1, k, k, bi, bj, 1, myThid)          DO k=1,Nr
48    C--     Loop on vertical index k
49             DO j=1-OLy,sNy+OLy
50              DO i=1-OLx,sNx+OLx
51               uFlow(i,j) = uFld(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj)
52              ENDDO
53             ENDDO
54             CALL ZONAL_FILTER(
55         U                     uFlow,
56         I                     hFacW(1-OLx,1-OLy,k,bi,bj),
57         I                     0, sNy+1, 1, bi, bj, 1, myThid )
58             DO j=1-OLy,sNy+OLy
59              DO i=1-OLx,sNx+OLx
60               uFld(i,j,k,bi,bj) = uFlow(i,j)*recip_hFacW(i,j,k,bi,bj)
61              ENDDO
62             ENDDO
63    C--     end of k loop
64            ENDDO
65    
66           ELSE
67    
68          CALL ZONAL_FILTER(          CALL ZONAL_FILTER(
69       &    vFld, hFacS, 1-1, sNy+1, k, k, bi, bj, 2, myThid)       U                     uFld( 1-OLx,1-OLy,1,bi,bj),
70        ENDDO       I                     hFacW(1-OLx,1-OLy,1,bi,bj),
71         I                     0, sNy+1, Nr, bi, bj, 1, myThid )
72    
73           ENDIF
74    
75           CALL ZONAL_FILTER(
76         U                     vFld( 1-OLx,1-OLy,1,bi,bj),
77         I                     hFacS(1-OLx,1-OLy,1,bi,bj),
78         I                     0, sNy+1, Nr, bi, bj, 2, myThid )
79    
80        ENDDO        ENDDO
81        ENDDO        ENDDO

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22