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

Diff of /MITgcm/pkg/shap_filt/shap_filt_apply_ts.F

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

revision 1.2 by jmc, Tue Dec 11 14:35:02 2001 UTC revision 1.11 by jmc, Tue Sep 9 19:58:27 2008 UTC
# Line 22  C !USES: =============================== Line 22  C !USES: ===============================
22  #include "PARAMS.h"  #include "PARAMS.h"
23  #include "DYNVARS.h"  #include "DYNVARS.h"
24  #include "GRID.h"  #include "GRID.h"
 #ifdef ALLOW_SHAP_FILT  
25  #include "SHAP_FILT.h"  #include "SHAP_FILT.h"
 #endif  
26    
27  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
28  C  myTime               :: current time  C  myTime               :: current time
# Line 42  C sFld                  :: input and fil Line 40  C sFld                  :: input and fil
40    
41  #ifdef ALLOW_SHAP_FILT  #ifdef ALLOW_SHAP_FILT
42    
43          LOGICAL  DIFFERENT_MULTIPLE
44          EXTERNAL DIFFERENT_MULTIPLE
45    
46  C !LOCAL VARIABLES: ====================================================  C !LOCAL VARIABLES: ====================================================
47  C none  C     == Local variables ==
48    #ifdef USE_OLD_SHAPIRO_FILTERS
49    C     bi,bj,k :: loop index
50          INTEGER bi, bj, k
51    #endif /* USE_OLD_SHAPIRO_FILTERS */
52          INTEGER exchInOut
53          CHARACTER*(MAX_LEN_MBUF) suff
54    
55  CEOP  CEOP
56    
57        IF (nShapT.GT.0) THEN        IF (nShapT.GT.0 .OR. nShapS.GT.0) THEN
58    
59    C-    Apply Exchanges on Input field, before the filter (but not after):
60            exchInOut = 1
61    C-    Apply Exchanges on Output field, after the filter (but not before):
62            IF ( implicitIntGravWave ) exchInOut = 2
63    
64  #ifdef USE_OLD_SHAPIRO_FILTERS  #ifdef USE_OLD_SHAPIRO_FILTERS
65    
# Line 57  CEOP Line 69  CEOP
69          DO bj=myByLo(myThid),myByHi(myThid)          DO bj=myByLo(myThid),myByHi(myThid)
70           DO bi=myBxLo(myThid),myBxHi(myThid)           DO bi=myBxLo(myThid),myBxHi(myThid)
71            DO k=1, Nr            DO k=1, Nr
72              IF ( tempStepping )              IF ( tempStepping )
73       &       CALL SHAP_FILT_TRACEROLD( tFld,bi,bj,k,myTime,myThid )       &       CALL SHAP_FILT_TRACEROLD( tFld,bi,bj,k,myTime,myThid )
74              IF ( saltStepping )              IF ( saltStepping )
75       &       CALL SHAP_FILT_TRACEROLD( sFld,bi,bj,k,myTime,myThid )       &       CALL SHAP_FILT_TRACEROLD( sFld,bi,bj,k,myTime,myThid )
76            ENDDO            ENDDO
77           ENDDO           ENDDO
# Line 73  CEOP Line 85  CEOP
85          IF ( tempStepping .AND. nShapT.GT.0) THEN          IF ( tempStepping .AND. nShapT.GT.0) THEN
86            IF (Shap_funct.EQ.1) THEN            IF (Shap_funct.EQ.1) THEN
87              CALL SHAP_FILT_TRACER_S1(              CALL SHAP_FILT_TRACER_S1(
88       U           tFld,       U           tFld, Shap_tmpFld1,
89       I           myTime, myThid )       I           nShapT, Nr, myTime, myThid )
90            ELSEIF (Shap_funct.EQ.2) THEN            ELSEIF (Shap_funct.EQ.2 .OR. Shap_funct.EQ.20
91         &                            .OR. Shap_funct.EQ.21) THEN
92              CALL SHAP_FILT_TRACER_S2(              CALL SHAP_FILT_TRACER_S2(
93       U           tFld,       U           tFld, Shap_tmpFld1,
94       I           myTime, myThid )       I           nShapT, exchInOut, Nr, myTime, myIter, myThid )
95            ELSEIF (Shap_funct.EQ.4) THEN            ELSEIF (Shap_funct.EQ.4) THEN
96              CALL SHAP_FILT_TRACER_S4(              CALL SHAP_FILT_TRACER_S4(
97       U           tFld,       U           tFld, Shap_tmpFld1,
98       I           myTime, myThid )       I           nShapT, Nr, myTime, myThid )
99            ELSEIF (Shap_funct.EQ.20) THEN  c         ELSEIF (Shap_funct.EQ.20) THEN
100              CALL SHAP_FILT_TRACER_S2G(  c           CALL SHAP_FILT_TRACER_S2G(
101       U           tFld,  c    U           tFld, Shap_tmpFld1,
102       I           myTime, myThid )  c    I           nShapT, Nr, myTime, myThid )
103            ELSE            ELSE
104             STOP 'SHAP_FILT_APPLY: Ooops! Bad Shap_funct in T block'             STOP 'SHAP_FILT_APPLY_TS: Ooops! Bad Shap_funct in T block'
105              ENDIF
106    
107    C-----    Diagnostic of Shapiro Filter effect on temperature :
108    C         Note: Shap_tmpFld1 from shap_filt_tracer_s2 (and not s1, s4)
109    C               is directly proportional to Delta-Tr due to the Filter
110              IF ( Shap_funct.NE.1 .AND. Shap_funct.NE.4 .AND.
111         &     DIFFERENT_MULTIPLE(Shap_diagFreq,myTime,deltaTClock)
112         &       ) THEN
113               _BARRIER
114               WRITE(suff,'(I10.10)') myIter
115               CALL WRITE_FLD_XYZ_RL( 'shap_dT.', suff, Shap_tmpFld1,
116         &                            myIter, myThid)
117               _BARRIER
118            ENDIF            ENDIF
119    
120    #ifdef ALLOW_DIAGNOSTICS
121              IF ( Shap_funct.NE.1 .AND. Shap_funct.NE.4
122         &                         .AND. useDiagnostics ) THEN
123                CALL DIAGNOSTICS_FILL(Shap_tmpFld1,'SHAP_dT ',0,Nr,
124         &                                                  0,1,1,myThid)
125              ENDIF
126    #endif /* ALLOW_DIAGNOSTICS */
127    
128          ENDIF          ENDIF
129    
130          IF ( saltStepping .AND. nShapT.GT.0) THEN          IF ( saltStepping .AND. nShapS.GT.0) THEN
131            IF (Shap_funct.EQ.1) THEN            IF (Shap_funct.EQ.1) THEN
132              CALL SHAP_FILT_TRACER_S1(              CALL SHAP_FILT_TRACER_S1(
133       U           sFld,       U           sFld, Shap_tmpFld1,
134       I           myTime, myThid )       I           nShapS, Nr, myTime, myThid )
135            ELSEIF (Shap_funct.EQ.2) THEN            ELSEIF (Shap_funct.EQ.2 .OR. Shap_funct.EQ.20
136         &                            .OR. Shap_funct.EQ.21) THEN
137              CALL SHAP_FILT_TRACER_S2(              CALL SHAP_FILT_TRACER_S2(
138       U           sFld,       U           sFld, Shap_tmpFld1,
139       I           myTime, myThid )       I           nShapS, exchInOut, Nr, myTime, myIter, myThid )
140            ELSEIF (Shap_funct.EQ.4) THEN            ELSEIF (Shap_funct.EQ.4) THEN
141              CALL SHAP_FILT_TRACER_S4(              CALL SHAP_FILT_TRACER_S4(
142       U           sFld,       U           sFld, Shap_tmpFld1,
143       I           myTime, myThid )       I           nShapS, Nr, myTime, myThid )
144            ELSEIF (Shap_funct.EQ.20) THEN  c         ELSEIF (Shap_funct.EQ.20) THEN
145              CALL SHAP_FILT_TRACER_S2G(  c           CALL SHAP_FILT_TRACER_S2G(
146       U           sFld,  c    U           sFld, Shap_tmpFld1,
147       I           myTime, myThid )  c    I           nShapS, Nr, myTime, myThid )
148            ELSE            ELSE
149             STOP 'SHAP_FILT_APPLY: Ooops! Bad Shap_funct in S block'             STOP 'SHAP_FILT_APPLY_TS: Ooops! Bad Shap_funct in S block'
150              ENDIF
151    
152    C-----    Diagnostic of Shapiro Filter effect on salinity :
153    C         Note: Shap_tmpFld1 from shap_filt_tracer_s2 (and not s1, s4)
154    C               is directly proportional to Delta-Tr due to the Filter
155              IF ( Shap_funct.NE.1 .AND. Shap_funct.NE.4 .AND.
156         &     DIFFERENT_MULTIPLE(Shap_diagFreq,myTime,deltaTClock)
157         &       ) THEN
158               _BARRIER
159               WRITE(suff,'(I10.10)') myIter
160               CALL WRITE_FLD_XYZ_RL( 'shap_dS.', suff, Shap_tmpFld1,
161         &                            myIter, myThid)
162               _BARRIER
163            ENDIF            ENDIF
164    
165    #ifdef ALLOW_DIAGNOSTICS
166              IF ( Shap_funct.NE.1 .AND. Shap_funct.NE.4
167         &                         .AND. useDiagnostics ) THEN
168                CALL DIAGNOSTICS_FILL(Shap_tmpFld1,'SHAP_dS ',0,Nr,
169         &                                                  0,1,1,myThid)
170              ENDIF
171    #endif /* ALLOW_DIAGNOSTICS */
172    
173          ENDIF          ENDIF
174    
175  #endif /* USE_OLD_SHAPIRO_FILTERS */  #endif /* USE_OLD_SHAPIRO_FILTERS */

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

  ViewVC Help
Powered by ViewVC 1.1.22