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

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

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

revision 1.3 by jmc, Mon Mar 4 01:32:55 2002 UTC revision 1.6 by jmc, Sat Dec 4 00:19:12 2004 UTC
# Line 8  C     !ROUTINE: SHAP_FILT_TRACER_S1 Line 8  C     !ROUTINE: SHAP_FILT_TRACER_S1
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE SHAP_FILT_TRACER_S1(        SUBROUTINE SHAP_FILT_TRACER_S1(
10       U           field, tmpFld,       U           field, tmpFld,
11       I           kSize, myTime, myThid )       I           nShapTr, kSize, myTime, myThid )
12  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
13  C     *==========================================================*  C     *==========================================================*
14  C     | S/R SHAP_FILT_TRACER_S1  C     | S/R SHAP_FILT_TRACER_S1
# Line 32  C     !INPUT/OUTPUT PARAMETERS: Line 32  C     !INPUT/OUTPUT PARAMETERS:
32  C     == Routine arguments  C     == Routine arguments
33  C     field :: cell-centered 2D field on which filter applies  C     field :: cell-centered 2D field on which filter applies
34  C     tmpFld :: working temporary array  C     tmpFld :: working temporary array
35    C     nShapTr :: (total) power of the filter for this tracer
36  C     kSize :: length of 3rd Dim : either =1 (2D field) or =Nr (3D field)  C     kSize :: length of 3rd Dim : either =1 (2D field) or =Nr (3D field)
37  C     myTime :: Current time in simulation  C     myTime :: Current time in simulation
38  C     myThid :: Thread number for this instance of SHAP_FILT_TRACER_S1  C     myThid :: Thread number for this instance of SHAP_FILT_TRACER_S1
39        INTEGER kSize        INTEGER nShapTr, kSize
40        _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy)        _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy)
41        _RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy)        _RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy)
42        _RL     myTime        _RL     myTime
# Line 50  C     == Local variables == Line 51  C     == Local variables ==
51        _RL tmpScal        _RL tmpScal
52  CEOP  CEOP
53    
54        IF (nShapT.gt.0) THEN        IF (nShapTr.gt.0) THEN
55    
56          DO bj=myByLo(myThid),myByHi(myThid)          DO bj=myByLo(myThid),myByHi(myThid)
57           DO bi=myBxLo(myThid),myBxHi(myThid)           DO bi=myBxLo(myThid),myBxHi(myThid)
58            DO K=1,kSize            DO K=1,kSize
59             DO J=1,sNy             DO J=1-OLy,sNy+OLy
60              DO I=1,sNx              DO I=1-OLx,sNx+OLx
61               tmpFld(i,j,k,bi,bj)=field(i,j,k,bi,bj)               tmpFld(i,j,k,bi,bj)=field(i,j,k,bi,bj)
62              ENDDO              ENDDO
63             ENDDO             ENDDO
# Line 67  CEOP Line 68  CEOP
68    
69  C      d_xx^n tmpFld  C      d_xx^n tmpFld
70    
71         DO N=1,nShapT         DO N=1,nShapTr
72    
73          IF (kSize.EQ.Nr) THEN          IF (kSize.EQ.Nr) THEN
74            _EXCH_XYZ_R8( tmpFld, myThid )            _EXCH_XYZ_R8( tmpFld, myThid )
# Line 109  C      F <-  [1 - d_xx^n *deltaT/tau].F Line 110  C      F <-  [1 - d_xx^n *deltaT/tau].F
110             DO I=1,sNx             DO I=1,sNx
111              tmpScal=field(i,j,k,bi,bj)              tmpScal=field(i,j,k,bi,bj)
112              field(i,j,k,bi,bj)=field(i,j,k,bi,bj)              field(i,j,k,bi,bj)=field(i,j,k,bi,bj)
113       &          -0.5*tmpFld(i,j,k,bi,bj)*deltaTtracer/Shap_Trtau       &          -0.5*tmpFld(i,j,k,bi,bj)*dTtracerLev(1)/Shap_Trtau
114              tmpFld(i,j,k,bi,bj)=tmpScal              tmpFld(i,j,k,bi,bj)=tmpScal
115             ENDDO             ENDDO
116            ENDDO            ENDDO
# Line 120  C      F <-  [1 - d_xx^n *deltaT/tau].F Line 121  C      F <-  [1 - d_xx^n *deltaT/tau].F
121    
122  C      d_yy^n tmpFld  C      d_yy^n tmpFld
123    
124         DO N=1,nShapT         DO N=1,nShapTr
125    
126          IF (kSize.EQ.Nr) THEN          IF (kSize.EQ.Nr) THEN
127            _EXCH_XYZ_R8( tmpFld, myThid )            _EXCH_XYZ_R8( tmpFld, myThid )
# Line 161  C      F <-  [1 - d_yy^n *deltaT/tau].F Line 162  C      F <-  [1 - d_yy^n *deltaT/tau].F
162            DO J=1,sNy            DO J=1,sNy
163             DO I=1,sNx             DO I=1,sNx
164              field(i,j,k,bi,bj)=field(i,j,k,bi,bj)              field(i,j,k,bi,bj)=field(i,j,k,bi,bj)
165       &          -0.5*tmpFld(i,j,k,bi,bj)*deltaTtracer/Shap_Trtau       &          -0.5*tmpFld(i,j,k,bi,bj)*dTtracerLev(1)/Shap_Trtau
166             ENDDO             ENDDO
167            ENDDO            ENDDO
168           ENDDO           ENDDO

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22