9 |
|
|
10 |
C !INTERFACE: ========================================================== |
C !INTERFACE: ========================================================== |
11 |
SUBROUTINE GAD_ADVECTION( |
SUBROUTINE GAD_ADVECTION( |
12 |
I implicitAdvection, advectionScheme, tracerIdentity, |
I implicitAdvection, advectionScheme, vertAdvecScheme, |
13 |
|
I tracerIdentity, |
14 |
I uVel, vVel, wVel, tracer, |
I uVel, vVel, wVel, tracer, |
15 |
O gTracer, |
O gTracer, |
16 |
I bi,bj, myTime,myIter,myThid) |
I bi,bj, myTime,myIter,myThid) |
48 |
|
|
49 |
C !INPUT PARAMETERS: =================================================== |
C !INPUT PARAMETERS: =================================================== |
50 |
C implicitAdvection :: implicit vertical advection (later on) |
C implicitAdvection :: implicit vertical advection (later on) |
51 |
C advectionScheme :: advection scheme to use |
C advectionScheme :: advection scheme to use (Horizontal plane) |
52 |
|
C vertAdvecScheme :: advection scheme to use (vertical direction) |
53 |
C tracerIdentity :: tracer identifier (required only for OBCS) |
C tracerIdentity :: tracer identifier (required only for OBCS) |
54 |
C uVel :: velocity, zonal component |
C uVel :: velocity, zonal component |
55 |
C vVel :: velocity, meridional component |
C vVel :: velocity, meridional component |
60 |
C myIter :: iteration number |
C myIter :: iteration number |
61 |
C myThid :: thread number |
C myThid :: thread number |
62 |
LOGICAL implicitAdvection |
LOGICAL implicitAdvection |
63 |
INTEGER advectionScheme |
INTEGER advectionScheme, vertAdvecScheme |
64 |
INTEGER tracerIdentity |
INTEGER tracerIdentity |
65 |
_RL uVel (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) |
_RL uVel (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) |
66 |
_RL vVel (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) |
_RL vVel (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) |
446 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
447 |
|
|
448 |
C- Compute vertical advective flux in the interior: |
C- Compute vertical advective flux in the interior: |
449 |
IF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN |
IF (vertAdvecScheme.EQ.ENUM_FLUX_LIMIT) THEN |
450 |
CALL GAD_FLUXLIMIT_ADV_R( |
CALL GAD_FLUXLIMIT_ADV_R( |
451 |
& bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid) |
& bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid) |
452 |
ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN |
ELSEIF (vertAdvecScheme.EQ.ENUM_DST3 ) THEN |
453 |
CALL GAD_DST3_ADV_R( |
CALL GAD_DST3_ADV_R( |
454 |
& bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid) |
& bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid) |
455 |
ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN |
ELSEIF (vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN |
456 |
CALL GAD_DST3FL_ADV_R( |
CALL GAD_DST3FL_ADV_R( |
457 |
& bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid) |
& bi,bj,k,deltaTtracer,rTrans,wVel,localTijk,af,myThid) |
458 |
ELSE |
ELSE |