/[MITgcm]/MITgcm_contrib/AITCZ/code/shap_filt_apply_ts.F
ViewVC logotype

Annotation of /MITgcm_contrib/AITCZ/code/shap_filt_apply_ts.F

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


Revision 1.1 - (hide annotations) (download)
Wed Aug 20 15:24:59 2003 UTC (21 years, 11 months ago) by czaja
Branch: MAIN
CVS Tags: HEAD
Initial creation of Arnaud's simple coupled simulation.

1 czaja 1.1 C $Header: /u/gcmpack/MITgcm/pkg/shap_filt/shap_filt_apply_ts.F,v 1.2 2001/12/11 14:35:02 jmc Exp $
2     C $Name: $
3    
4     #include "SHAP_FILT_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: SHAP_FILT_APPLY_TS
8    
9     C !INTERFACE: ==========================================================
10     SUBROUTINE SHAP_FILT_APPLY_TS(
11     U tFld, sFld,
12     I myTime, myIter, myThid )
13    
14     C !DESCRIPTION:
15     C Apply a Shapiro filter on active tracers tFld & sFld
16    
17     C !USES: ===============================================================
18     IMPLICIT NONE
19    
20     #include "SIZE.h"
21     #include "EEPARAMS.h"
22     #include "PARAMS.h"
23     #include "DYNVARS.h"
24     #include "GRID.h"
25     #include "SHAP_FILT.h"
26     #ifdef ALLOW_MITPHYS
27     _RL Shap_tmp2Dfld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
28     _RL Shap_tmp2Dfld2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
29     COMMON / SHAP_FILT_MITPHYS / Shap_tmp2Dfld1,Shap_tmp2Dfld2
30     #endif
31    
32     C !INPUT PARAMETERS: ===================================================
33     C myTime :: current time
34     C myIter :: iteration number
35     C myThid :: thread number
36     _RL myTime
37     INTEGER myIter
38     INTEGER myThid
39    
40     C !INPUT/OUTPUT PARAMETERS: ============================================
41     C tFld :: input and filtered temperature field
42     C sFld :: input and filtered salinity field
43     _RL tFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
44     _RL sFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
45    
46     #ifdef ALLOW_SHAP_FILT
47    
48     C !LOCAL VARIABLES: ====================================================
49     #ifdef USE_OLD_SHAPIRO_FILTERS
50     C == Local variables ==
51     C bi,bj,k :: loop index
52     INTEGER bi, bj, k
53     #endif /* USE_OLD_SHAPIRO_FILTERS */
54    
55     CEOP
56    
57    
58     IF (nShapT.GT.0) THEN
59    
60     #ifdef USE_OLD_SHAPIRO_FILTERS
61    
62     IF ( tempStepping ) _EXCH_XYZ_R8( tFld,myThid )
63     IF ( saltStepping ) _EXCH_XYZ_R8( sFld,myThid )
64    
65     DO bj=myByLo(myThid),myByHi(myThid)
66     DO bi=myBxLo(myThid),myBxHi(myThid)
67     DO k=1, Nr
68     IF ( tempStepping )
69     & CALL SHAP_FILT_TRACEROLD( tFld,bi,bj,k,myTime,myThid )
70     IF ( saltStepping )
71     & CALL SHAP_FILT_TRACEROLD( sFld,bi,bj,k,myTime,myThid )
72     ENDDO
73     ENDDO
74     ENDDO
75    
76     IF ( tempStepping ) _EXCH_XYZ_R8( tFld,myThid )
77     IF ( saltStepping ) _EXCH_XYZ_R8( sFld,myThid )
78    
79     #else
80    
81     IF ( tempStepping .AND. nShapT.GT.0) THEN
82     IF (Shap_funct.EQ.1) THEN
83     CALL SHAP_FILT_TRACER_S1(
84     U tFld, Shap_tmpFld1,
85     I Nr, myTime, myThid )
86     ELSEIF (Shap_funct.EQ.2 .OR. Shap_funct.EQ.21) THEN
87     CALL SHAP_FILT_TRACER_S2(
88     U tFld, Shap_tmpFld1,
89     I Nr, myTime, myThid )
90     ELSEIF (Shap_funct.EQ.4) THEN
91     CALL SHAP_FILT_TRACER_S4(
92     U tFld, Shap_tmpFld1,
93     I Nr, myTime, myThid )
94     ELSEIF (Shap_funct.EQ.20) THEN
95     CALL SHAP_FILT_TRACER_S2G(
96     U tFld, Shap_tmpFld1,
97     I Nr, myTime, myThid )
98     ELSE
99     STOP 'SHAP_FILT_APPLY_TS: Ooops! Bad Shap_funct in T block'
100     ENDIF
101     ENDIF
102    
103     IF ( saltStepping .AND. nShapT.GT.0) THEN
104     IF (Shap_funct.EQ.1) THEN
105     CALL SHAP_FILT_TRACER_S1(
106     U sFld, Shap_tmpFld1,
107     I Nr, myTime, myThid )
108     ELSEIF (Shap_funct.EQ.2 .OR. Shap_funct.EQ.21) THEN
109     CALL SHAP_FILT_TRACER_S2(
110     U sFld, Shap_tmpFld1,
111     I Nr, myTime, myThid )
112     ELSEIF (Shap_funct.EQ.4) THEN
113     CALL SHAP_FILT_TRACER_S4(
114     U sFld, Shap_tmpFld1,
115     I Nr, myTime, myThid )
116     ELSEIF (Shap_funct.EQ.20) THEN
117     CALL SHAP_FILT_TRACER_S2G(
118     U sFld, Shap_tmpFld1,
119     I Nr, myTime, myThid )
120     ELSE
121     STOP 'SHAP_FILT_APPLY_TS: Ooops! Bad Shap_funct in S block'
122     ENDIF
123     ENDIF
124    
125     #ifdef ALLOW_MITPHYS
126    
127    
128     IF ( useMITPHYS .AND. nShapT.GT.0) THEN
129     IF (Shap_funct.EQ.1) THEN
130     CALL SHAP_FILT_TRACER_S1(
131     U CBMF_DYN, Shap_tmp2Dfld1,
132     I 1, myTime, myThid )
133     C (acz) No need to Shapiro on SST/STL...
134     C CALL SHAP_FILT_TRACER_S1(
135     C U SST_DYN, Shap_tmp2Dfld2,
136     C I 1, myTime, myThid )
137     C CALL SHAP_FILT_TRACER_S1(
138     C U STL_DYN, Shap_tmp2Dfld2,
139     C I 1, myTime, myThid )
140     ELSEIF (Shap_funct.EQ.2 .OR. Shap_funct.EQ.21) THEN
141     CALL SHAP_FILT_TRACER_S2(
142     U CBMF_DYN, Shap_tmp2Dfld1,
143     I 1, myTime, myThid )
144     C CALL SHAP_FILT_TRACER_S2(
145     C U SST_DYN, Shap_tmp2Dfld2,
146     C I 1, myTime, myThid )
147     C CALL SHAP_FILT_TRACER_S2(
148     C U STL_DYN, Shap_tmp2Dfld2,
149     C I 1, myTime, myThid )
150     ELSEIF (Shap_funct.EQ.4) THEN
151     CALL SHAP_FILT_TRACER_S4(
152     U CBMF_DYN, Shap_tmp2Dfld1,
153     I 1, myTime, myThid )
154     C CALL SHAP_FILT_TRACER_S4(
155     C U SST_DYN, Shap_tmp2Dfld2,
156     C I 1, myTime, myThid )
157     C CALL SHAP_FILT_TRACER_S4(
158     C U STL_DYN, Shap_tmp2Dfld2,
159     C I 1, myTime, myThid )
160     ELSEIF (Shap_funct.EQ.20) THEN
161     CALL SHAP_FILT_TRACER_S2G(
162     U CBMF_DYN, Shap_tmp2Dfld1,
163     I 1, myTime, myThid )
164     C CALL SHAP_FILT_TRACER_S2G(
165     C U SST_DYN, Shap_tmp2Dfld2,
166     C I 1, myTime, myThid )
167     C CALL SHAP_FILT_TRACER_S2G(
168     C U STL_DYN, Shap_tmp2Dfld2,
169     C I 1, myTime, myThid )
170     ELSE
171     STOP 'SHAP_FILT_APPLY_TS: Bad Shap_funct in MITphys block'
172     ENDIF
173     ENDIF
174     #endif
175    
176     #endif /* USE_OLD_SHAPIRO_FILTERS */
177    
178     ENDIF
179    
180     #endif /* ALLOW_SHAP_FILT */
181    
182     RETURN
183     END

  ViewVC Help
Powered by ViewVC 1.1.22