9 |
C !INTERFACE: ========================================================== |
C !INTERFACE: ========================================================== |
10 |
SUBROUTINE PTRACERS_IMPLICIT( |
SUBROUTINE PTRACERS_IMPLICIT( |
11 |
U kappaRk, |
U kappaRk, |
12 |
|
I recip_hFac, |
13 |
I bi, bj, myTime, myIter, myThid ) |
I bi, bj, myTime, myIter, myThid ) |
14 |
|
|
15 |
C !DESCRIPTION: |
C !DESCRIPTION: |
41 |
#endif |
#endif |
42 |
|
|
43 |
C !INPUT PARAMETERS: =================================================== |
C !INPUT PARAMETERS: =================================================== |
44 |
C bi,bj :: tile indices |
C recip_hFac :: Inverse of cell open-depth factor |
45 |
C myTime :: time in simulation |
C bi,bj :: tile indices |
46 |
C myIter :: iteration number in simulation |
C myTime :: time in simulation |
47 |
C myThid :: thread number |
C myIter :: iteration number in simulation |
48 |
|
C myThid :: thread number |
49 |
|
_RS recip_hFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
50 |
INTEGER bi,bj |
INTEGER bi,bj |
51 |
_RL myTime |
_RL myTime |
52 |
INTEGER myIter |
INTEGER myIter |
53 |
INTEGER myThid |
INTEGER myThid |
54 |
|
|
55 |
C !OUTPUT PARAMETERS: ================================================== |
C !OUTPUT PARAMETERS: ================================================== |
56 |
C KappaRk :: vertical diffusion coefficient |
C KappaRk :: vertical diffusion coefficient |
57 |
_RL kappaRk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL kappaRk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
58 |
|
|
59 |
#ifdef ALLOW_PTRACERS |
#ifdef ALLOW_PTRACERS |
60 |
|
|
113 |
CALL GAD_IMPLICIT_R( |
CALL GAD_IMPLICIT_R( |
114 |
I PTRACERS_ImplVertAdv(iTracer), |
I PTRACERS_ImplVertAdv(iTracer), |
115 |
I PTRACERS_advScheme(iTracer), GAD_TR, |
I PTRACERS_advScheme(iTracer), GAD_TR, |
116 |
I PTRACERS_dTLev, kappaRk, |
I PTRACERS_dTLev, kappaRk, recip_hFac, |
117 |
#ifdef ALLOW_LONGSTEP |
#ifdef ALLOW_LONGSTEP |
118 |
I LS_wVel, |
I LS_wVel, |
119 |
#else |
#else |
120 |
I wVel, |
I wVel, |
121 |
#endif |
#endif |
122 |
I pTracer(1-Olx,1-Oly,1,1,1,iTracer), |
I pTracer(1-OLx,1-OLy,1,1,1,iTracer), |
123 |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
U gPtr(1-OLx,1-OLy,1,1,1,iTracer), |
124 |
I bi, bj, myTime, myIter, myThid ) |
I bi, bj, myTime, myIter, myThid ) |
125 |
|
|
126 |
ELSEIF ( implicitDiffusion ) THEN |
ELSEIF ( implicitDiffusion ) THEN |
130 |
|
|
131 |
CALL IMPLDIFF( |
CALL IMPLDIFF( |
132 |
I bi, bj, iMin, iMax, jMin, jMax, |
I bi, bj, iMin, iMax, jMin, jMax, |
133 |
I GAD_TR, kappaRk, recip_HFacC, |
I GAD_TR, kappaRk, recip_hFac, |
134 |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
U gPtr(1-OLx,1-OLy,1,1,1,iTracer), |
135 |
I myThid ) |
I myThid ) |
136 |
ENDIF |
ENDIF |
137 |
|
|
140 |
IF ( useOBCS ) THEN |
IF ( useOBCS ) THEN |
141 |
CALL OBCS_APPLY_PTRACER( |
CALL OBCS_APPLY_PTRACER( |
142 |
I bi, bj, 0, iTracer, |
I bi, bj, 0, iTracer, |
143 |
U gPtr(1-Olx,1-Oly,1,bi,bj,iTracer), |
U gPtr(1-OLx,1-OLy,1,bi,bj,iTracer), |
144 |
I myThid ) |
I myThid ) |
145 |
ENDIF |
ENDIF |
146 |
#endif /* ALLOW_OBCS */ |
#endif /* ALLOW_OBCS */ |