68 |
INTEGER iMin,iMax,jMin,jMax |
INTEGER iMin,iMax,jMin,jMax |
69 |
INTEGER kUp,kDown,km1 |
INTEGER kUp,kDown,km1 |
70 |
_RL rFlx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2,PTRACERS_num) |
_RL rFlx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2,PTRACERS_num) |
71 |
|
LOGICAL calcAdvection |
72 |
CEOP |
CEOP |
73 |
|
|
74 |
C Loop over tracers |
C Loop over tracers |
96 |
|
|
97 |
C Calculate active tracer tendencies (gPtr) due to internal processes |
C Calculate active tracer tendencies (gPtr) due to internal processes |
98 |
C (advection, [explicit] diffusion, parameterizations,...) |
C (advection, [explicit] diffusion, parameterizations,...) |
99 |
|
calcAdvection = .NOT.multiDimAdvection |
100 |
|
& .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND |
101 |
|
& .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD |
102 |
|
& .OR. PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH |
103 |
CALL GAD_CALC_RHS( |
CALL GAD_CALC_RHS( |
104 |
I bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown, |
I bi,bj,iMin,iMax,jMin,jMax,k,kM1,kUp,kDown, |
105 |
I xA,yA,uTrans,vTrans,rTrans,maskUp, |
I xA,yA,uTrans,vTrans,rTrans,maskUp, |
108 |
I KappaRtr, |
I KappaRtr, |
109 |
I pTracer(1-Olx,1-Oly,1,1,1,iTracer), |
I pTracer(1-Olx,1-Oly,1,1,1,iTracer), |
110 |
I GAD_TR1, |
I GAD_TR1, |
111 |
I PTRACERS_advScheme(iTracer), |
I PTRACERS_advScheme(iTracer),calcAdvection, |
112 |
U rFlx(1-Olx,1-Oly,1,iTracer), |
U rFlx(1-Olx,1-Oly,1,iTracer), |
113 |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
114 |
I myThid ) |
I myThid ) |
115 |
|
|
116 |
C External forcing term(s) |
C External forcing term(s) |
117 |
CALL PTRACERS_FORCING( |
IF ( forcing_In_AB ) |
118 |
|
& CALL PTRACERS_FORCING( |
119 |
I bi,bj,k,iTracer, |
I bi,bj,k,iTracer, |
120 |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
121 |
I myIter,myTime,myThid) |
I myIter,myTime,myThid) |
131 |
I myIter,myThid ) |
I myIter,myThid ) |
132 |
ENDIF |
ENDIF |
133 |
|
|
134 |
|
C External forcing term(s) |
135 |
|
IF ( .NOT.forcing_In_AB ) |
136 |
|
& CALL PTRACERS_FORCING( |
137 |
|
I bi,bj,k,iTracer, |
138 |
|
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
139 |
|
I myIter,myTime,myThid) |
140 |
|
|
141 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
142 |
C Account for change in level thickness |
C Account for change in level thickness |
143 |
IF (nonlinFreeSurf.GT.0) THEN |
IF (nonlinFreeSurf.GT.0) THEN |