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

Contents 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 - (show 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 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
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