/[MITgcm]/MITgcm/pkg/ptracers/ptracers_implicit.F
ViewVC logotype

Diff of /MITgcm/pkg/ptracers/ptracers_implicit.F

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

revision 1.3 by heimbach, Fri Mar 25 00:29:17 2005 UTC revision 1.6 by jahn, Fri Jun 26 23:10:10 2009 UTC
# Line 7  CBOP Line 7  CBOP
7  C !ROUTINE: PTRACERS_IMPLICIT  C !ROUTINE: PTRACERS_IMPLICIT
8    
9  C !INTERFACE: ==========================================================  C !INTERFACE: ==========================================================
10        SUBROUTINE PTRACERS_IMPLICIT(        SUBROUTINE PTRACERS_IMPLICIT(
11       U                              kappaRk,       U                              kappaRk,
12       I                              bi, bj, myTime, myIter, myThid )       I                              bi, bj, myTime, myIter, myThid )
13    
# Line 19  C !USES: =============================== Line 19  C !USES: ===============================
19        IMPLICIT NONE        IMPLICIT NONE
20  #include "SIZE.h"  #include "SIZE.h"
21  #include "EEPARAMS.h"  #include "EEPARAMS.h"
22    #ifdef ALLOW_LONGSTEP
23    #include "LONGSTEP_PARAMS.h"
24    #include "LONGSTEP.h"
25    #endif
26  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
27  #include "PTRACERS.h"  #include "PTRACERS_PARAMS.h"
28    #include "PTRACERS_FIELDS.h"
29  #include "PARAMS.h"  #include "PARAMS.h"
30  #include "GRID.h"  #include "GRID.h"
31  #include "GAD.h"  #include "GAD.h"
# Line 51  C  iTracer :: tracer index Line 56  C  iTracer :: tracer index
56        INTEGER iTracer        INTEGER iTracer
57        INTEGER iMin,iMax,jMin,jMax        INTEGER iMin,iMax,jMin,jMax
58        INTEGER GAD_TR        INTEGER GAD_TR
59          INTEGER K
60  CEOP  CEOP
61    
62        iMin=0        iMin=0
# Line 71  C Loop over tracers Line 77  C Loop over tracers
77            act3 = myThid - 1            act3 = myThid - 1
78            max3 = nTx*nTy            max3 = nTx*nTy
79            act4 = ikey_dynamics - 1            act4 = ikey_dynamics - 1
80            iptrkey = (act0 + 1)            iptrkey = (act0 + 1)
81       &                      + act1*max0       &                      + act1*max0
82       &                      + act2*max0*max1       &                      + act2*max0*max1
83       &                      + act3*max0*max1*max2       &                      + act3*max0*max1*max2
# Line 89  C Loop over tracers Line 95  C Loop over tracers
95          ENDIF          ENDIF
96    
97  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
98  CADJ STORE kappaRk(:,:,:) = comlev1_bibj_ptracers,  CADJ STORE kappaRk(:,:,:) = comlev1_bibj_ptracers,
99  CADJ &     key=iptrkey, byte=isbyte  CADJ &     key=iptrkey, byte=isbyte
100  CADJ STORE gPtr(:,:,:,bi,bj,iTracer) = comlev1_bibj_ptracers,  CADJ STORE gPtr(:,:,:,bi,bj,iTracer) = comlev1_bibj_ptracers,
101  CADJ &     key=iptrkey, byte=isbyte  CADJ &     key=iptrkey, byte=isbyte
102  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
103    
# Line 99  CADJ &     key=iptrkey, byte=isbyte Line 105  CADJ &     key=iptrkey, byte=isbyte
105          IF ( PTRACERS_ImplVertAdv(iTracer) ) THEN          IF ( PTRACERS_ImplVertAdv(iTracer) ) THEN
106    
107            CALL GAD_IMPLICIT_R(            CALL GAD_IMPLICIT_R(
108       I         PTRACERS_ImplVertAdv(iTracer),       I         PTRACERS_ImplVertAdv(iTracer),
109       I         PTRACERS_advScheme(iTracer), GAD_TR,       I         PTRACERS_advScheme(iTracer), GAD_TR,
110       I         kappaRk, wVel, pTracer(1-Olx,1-Oly,1,1,1,iTracer),       I         PTRACERS_dTLev, kappaRk,
111    #ifdef ALLOW_LONGSTEP
112         I         LS_wVel,
113    #else
114         I         wVel,
115    #endif
116         I         pTracer(1-Olx,1-Oly,1,1,1,iTracer),
117       U         gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U         gPtr(1-Olx,1-Oly,1,1,1,iTracer),
118       I         bi, bj, myTime, myIter, myThid )       I         bi, bj, myTime, myIter, myThid )
119    
# Line 116  CADJ &     key=iptrkey, byte=isbyte Line 128  CADJ &     key=iptrkey, byte=isbyte
128       U         gPtr(1-Olx,1-Oly,1,1,1,iTracer),       U         gPtr(1-Olx,1-Oly,1,1,1,iTracer),
129       I         myThid )       I         myThid )
130    
131    #ifdef   ALLOW_OBCS
132    C--      Apply open boundary conditions
133            IF ( useOBCS ) THEN
134             DO K=1,Nr
135              CALL OBCS_APPLY_PTRACER(
136         I         bi, bj, K, iTracer,
137         U         gPtr(1-Olx,1-Oly,K,bi,bj,iTracer),
138         I         myThid )
139             ENDDO
140            ENDIF
141    #endif   /* ALLOW_OBCS */
142    
143          ENDIF          ENDIF
144  C End of tracer loop  C End of tracer loop
145        ENDDO        ENDDO

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

  ViewVC Help
Powered by ViewVC 1.1.22