26 |
#include "PARAMS.h" |
#include "PARAMS.h" |
27 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
28 |
#include "PTRACERS_SIZE.h" |
#include "PTRACERS_SIZE.h" |
29 |
#include "PTRACERS.h" |
#include "PTRACERS_PARAMS.h" |
30 |
|
#include "PTRACERS_FIELDS.h" |
31 |
#include "GAD.h" |
#include "GAD.h" |
32 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
33 |
# include "tamc.h" |
# include "tamc.h" |
120 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
121 |
rFlx(1,1,kDown,iTracer) = rFlx(1,1,kDown,iTracer) |
rFlx(1,1,kDown,iTracer) = rFlx(1,1,kDown,iTracer) |
122 |
c |
c |
123 |
CADJ STORE ptracer(:,:,k,bi,bj,iTracer) |
CADJ STORE pTracer(:,:,k,bi,bj,iTracer) |
124 |
CADJ & = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte |
CADJ & = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte |
125 |
CADJ STORE gPtrnm1(:,:,k,bi,bj,iTracer) |
CADJ STORE gpTrNm1(:,:,k,bi,bj,iTracer) |
126 |
CADJ & = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte |
CADJ & = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte |
127 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
128 |
|
|
140 |
I PTRACERS_diffKh(iTracer), |
I PTRACERS_diffKh(iTracer), |
141 |
I PTRACERS_diffK4(iTracer), |
I PTRACERS_diffK4(iTracer), |
142 |
I KappaRtr(1-Olx,1-Oly,iTracer), |
I KappaRtr(1-Olx,1-Oly,iTracer), |
143 |
I gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer), |
I gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer), |
144 |
I pTracer(1-Olx,1-Oly,1,1,1,iTracer), |
I pTracer(1-Olx,1-Oly,1,1,1,iTracer), |
145 |
I GAD_TR, |
I GAD_TR, |
146 |
I PTRACERS_advScheme(iTracer), |
I PTRACERS_advScheme(iTracer), |
158 |
& CALL PTRACERS_FORCING( |
& CALL PTRACERS_FORCING( |
159 |
I bi,bj,iMin,iMax,jMin,jMax,k,iTracer, |
I bi,bj,iMin,iMax,jMin,jMax,k,iTracer, |
160 |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
161 |
I surfaceForcingPtr(1-Olx,1-Oly,1,1,iTracer), |
I surfaceForcingPTr(1-Olx,1-Oly,1,1,iTracer), |
162 |
I myIter,myTime,myThid) |
I myIter,myTime,myThid) |
163 |
|
|
164 |
C If using Adams-Bashforth II, then extrapolate tendencies |
C If using Adams-Bashforth II, then extrapolate tendencies |
168 |
& .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH ) THEN |
& .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH ) THEN |
169 |
#ifdef ALLOW_MATRIX |
#ifdef ALLOW_MATRIX |
170 |
C If matrix is being computed, block call to S/R ADAMS_BASHFORTH2 to |
C If matrix is being computed, block call to S/R ADAMS_BASHFORTH2 to |
171 |
C prevent gPtr from being replaced by the average of gPtr and gPtrNm1. |
C prevent gPtr from being replaced by the average of gPtr and gpTrNm1. |
172 |
IF (.NOT.useMATRIX) THEN |
IF (.NOT.useMATRIX) THEN |
173 |
#endif |
#endif |
174 |
iterNb = myIter |
iterNb = myIter |
177 |
CALL ADAMS_BASHFORTH2( |
CALL ADAMS_BASHFORTH2( |
178 |
I bi,bj,K, |
I bi,bj,K, |
179 |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
180 |
U gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer), |
U gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer), |
181 |
I startAB, iterNb, myThid ) |
I startAB, iterNb, myThid ) |
182 |
#ifdef ALLOW_MATRIX |
#ifdef ALLOW_MATRIX |
183 |
ENDIF |
ENDIF |
189 |
& CALL PTRACERS_FORCING( |
& CALL PTRACERS_FORCING( |
190 |
I bi,bj,iMin,iMax,jMin,jMax,k,iTracer, |
I bi,bj,iMin,iMax,jMin,jMax,k,iTracer, |
191 |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
U gPtr(1-Olx,1-Oly,1,1,1,iTracer), |
192 |
I surfaceForcingPtr(1-Olx,1-Oly,1,1,iTracer), |
I surfaceForcingPTr(1-Olx,1-Oly,1,1,iTracer), |
193 |
I myIter,myTime,myThid) |
I myIter,myTime,myThid) |
194 |
|
|
195 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
204 |
& .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH ) |
& .OR.PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH ) |
205 |
& CALL FREESURF_RESCALE_G( |
& CALL FREESURF_RESCALE_G( |
206 |
I bi,bj,K, |
I bi,bj,K, |
207 |
U gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer), |
U gpTrNm1(1-Olx,1-Oly,1,1,1,iTracer), |
208 |
I myThid ) |
I myThid ) |
209 |
ENDIF |
ENDIF |
210 |
#endif /* NONLIN_FRSURF */ |
#endif /* NONLIN_FRSURF */ |