/[MITgcm]/MITgcm/pkg/shap_filt/shap_filt_tracerold.F
ViewVC logotype

Annotation of /MITgcm/pkg/shap_filt/shap_filt_tracerold.F

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


Revision 1.3 - (hide annotations) (download)
Sun Feb 4 14:38:50 2001 UTC (23 years, 3 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint38, pre38tag1, c37_adj, checkpoint39, checkpoint37, checkpoint36, checkpoint35
Branch point for: pre38
Changes since 1.2: +2 -1 lines
Made sure each .F and .h file had
the CVS keywords Header and Name at its start.
Most had header but very few currently have Name, so
lots of changes!

1 cnh 1.3 C $Header: /u/gcmpack/models/MITgcmUV/pkg/shap_filt/shap_filt_tracerold.F,v 1.2 2001/02/02 21:36:30 adcroft Exp $
2     C $Name: $
3 adcroft 1.2
4     #include "SHAP_FILT_OPTIONS.h"
5    
6     SUBROUTINE SHAP_FILT_TRACEROLD(
7     U field,
8     I bi, bj, K, myCurrentTime, myThid )
9     C /==========================================================\
10     C | S/R SHAP_FILT_TRACER |
11     C | Applies Shapiro filter to tracer field over one XY slice |
12     C | of one tile at a time. |
13     C \==========================================================/
14     IMPLICIT NONE
15    
16     C == Global variables ===
17     #include "SIZE.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "GRID.h"
21    
22     C == Routine arguments
23     INTEGER myThid
24     _RL myCurrentTime
25     INTEGER bi, bj, K
26     _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
27    
28     #ifdef ALLOW_SHAP_FILT
29    
30     C == Local variables ==
31     _RL tmpFldX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
32     _RL tmpFldY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2)
33     INTEGER I,J,N,N1,N2
34    
35     DO J=1-OLy,sNy+OLy
36     DO I=1-OLx,sNx+OLx
37     tmpFldX(i,j,1) = field(i,j,k,bi,bj)
38     ENDDO
39     ENDDO
40    
41     C Extract small-scale noise from tmpFldX (delta_ii^n)
42     DO N=1,nShap
43     N1=1+mod(N+1,2)
44     N2=1+mod( N ,2)
45     DO J=1-OLy,sNy+OLy
46     DO I=1-OLx+1,sNx+OLx-1
47     tmpFldX(i,j,N2) = -0.25*(
48     & ( tmpFldX(i+1,j,N1)-tmpFldX( i ,j,N1) )
49     & *_maskW(i+1,j,k,bi,bj)
50     & -( tmpFldX( i ,j,N1)-tmpFldX(i-1,j,N1) )
51     & *_maskW(i,j,k,bi,bj) )
52     ENDDO
53     ENDDO
54     ENDDO
55    
56     #ifdef SEQUENTIAL_2D_SHAP
57     DO J=1-OLy,sNy+OLy
58     DO I=1-OLx,sNx+OLx
59     tmpFldX(i,j,N2) = field(i,j,k,bi,bj) - tmpFldX(i,j,N2)
60     tmpFldY(i,j,1) = tmpFldX(i,j,N2)
61     ENDDO
62     ENDDO
63     #else
64     DO J=1-OLy,sNy+OLy
65     DO I=1-OLx,sNx+OLx
66     tmpFldY(i,j,1) = field(i,j,k,bi,bj)
67     ENDDO
68     ENDDO
69     #endif /* SEQUENTIAL_2D_SHAP */
70    
71     C Extract small-scale noise from tmpFldY (delta_jj^n)
72     DO N=1,nShap
73     N1=1+mod(N+1,2)
74     N2=1+mod( N ,2)
75     DO J=1-OLy+1,sNy+OLy-1
76     DO I=1-OLx,sNx+OLx
77     tmpFldY(i,j,N2) = -0.25*(
78     & ( tmpFldY(i,j+1,N1)-tmpFldY(i, j ,N1) )
79     & *_maskS(i,j+1,k,bi,bj)
80     & -( tmpFldY(i, j ,N1)-tmpFldY(i,j-1,N1) )
81     & *_maskS(i,j,k,bi,bj) )
82     ENDDO
83     ENDDO
84     ENDDO
85    
86     C Subtract small-scale noise from field
87     #ifdef SEQUENTIAL_2D_SHAP
88     DO J=1-OLy,sNy+OLy
89     DO I=1-OLx,sNx+OLx
90     field(i,j,k,bi,bj) = tmpFldX(i,j,N2) - tmpFldY(i,j,N2)
91     ENDDO
92     ENDDO
93     #else
94     DO J=1-OLy,sNy+OLy
95     DO I=1-OLx,sNx+OLx
96     field(i,j,k,bi,bj) = field(i,j,k,bi,bj)
97     & -0.5*( tmpFldX(i,j,N2)+tmpFldY(i,j,N2) )
98     ENDDO
99     ENDDO
100     #endif /* SEQUENTIAL_2D_SHAP */
101    
102     #endif /* ALLOW_SHAP_FILT */
103    
104     RETURN
105     END

  ViewVC Help
Powered by ViewVC 1.1.22