90 & LBi, UBi, LBj, UBj, &
91 & IminS, ImaxS, JminS, JmaxS, &
96 & om_v, on_u, pm, pn, &
115 integer,
intent(in) :: ng, tile
116 integer,
intent(in) :: LBi, UBi, LBj, UBj
117 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
118 integer,
intent(in) :: nrhs, nstp, nnew
122 real(r8),
intent(in) :: umask(LBi:,LBj:)
123 real(r8),
intent(in) :: vmask(LBi:,LBj:)
125 real(r8),
intent(in) :: diff2(LBi:,LBj:,:)
126 real(r8),
intent(in) :: om_v(LBi:,LBj:)
127 real(r8),
intent(in) :: on_u(LBi:,LBj:)
128 real(r8),
intent(in) :: pm(LBi:,LBj:)
129 real(r8),
intent(in) :: pn(LBi:,LBj:)
130 real(r8),
intent(in) :: Hz(LBi:,LBj:,:)
131 real(r8),
intent(in) :: z_r(LBi:,LBj:,:)
132 real(r8),
intent(in) :: pden(LBi:,LBj:,:)
133 real(r8),
intent(in) :: t(LBi:,LBj:,:,:,:)
135 real(r8),
intent(in) :: tclm(LBi:,LBj:,:,:)
137# ifdef DIAGNOSTICS_TS
138 real(r8),
intent(inout) :: DiaTwrk(LBi:,LBj:,:,:,:)
140 real(r8),
intent(inout) :: ad_Hz(LBi:,LBj:,:)
141 real(r8),
intent(inout) :: ad_z_r(LBi:,LBj:,:)
142 real(r8),
intent(inout) :: ad_pden(LBi:,LBj:,:)
143 real(r8),
intent(inout) :: ad_t(LBi:,LBj:,:,:,:)
146 real(r8),
intent(in) :: umask(LBi:UBi,LBj:UBj)
147 real(r8),
intent(in) :: vmask(LBi:UBi,LBj:UBj)
149 real(r8),
intent(in) :: diff2(LBi:UBi,LBj:UBj,NT(ng))
150 real(r8),
intent(in) :: om_v(LBi:UBi,LBj:UBj)
151 real(r8),
intent(in) :: on_u(LBi:UBi,LBj:UBj)
152 real(r8),
intent(in) :: pm(LBi:UBi,LBj:UBj)
153 real(r8),
intent(in) :: pn(LBi:UBi,LBj:UBj)
154 real(r8),
intent(in) :: Hz(LBi:UBi,LBj:UBj,N(ng))
155 real(r8),
intent(in) :: z_r(LBi:UBi,LBj:UBj,N(ng))
156 real(r8),
intent(in) :: pden(LBi:UBi,LBj:UBj,N(ng))
157 real(r8),
intent(in) :: t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
159 real(r8),
intent(in) :: tclm(LBi:UBi,LBj:UBj,N(ng),NT(ng))
161# ifdef DIAGNOSTICS_TS
165 real(r8),
intent(inout) :: ad_Hz(LBi:UBi,LBj:UBj,N(ng))
166 real(r8),
intent(inout) :: ad_z_r(LBi:UBi,LBj:UBj,N(ng))
167 real(r8),
intent(inout) :: ad_pden(LBi:UBi,LBj:UBj,N(ng))
168 real(r8),
intent(inout) :: ad_t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
173 integer :: i, itrc, j, k, kk, kt, k1, k1b, k2, k2b
175 real(r8),
parameter :: eps = 0.5_r8
176 real(r8),
parameter :: small = 1.0e-14_r8
177 real(r8),
parameter :: slope_max = 0.0001_r8
178 real(r8),
parameter :: strat_min = 0.1_r8
180 real(r8) :: cff, cff1, cff2, cff3, cff4
181 real(r8) :: ad_cff, ad_cff1, ad_cff2, ad_cff3, ad_cff4
182 real(r8) :: adfac, adfac1, adfac2, adfac3, adfac4
184 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: ad_FE
185 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: ad_FX
187 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: FS
188 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dRde
189 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dRdx
190 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dTde
191 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dTdr
192 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dTdx
194 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: ad_FS
195 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: ad_dRde
196 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: ad_dRdx
197 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: ad_dTde
198 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: ad_dTdr
199 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: ad_dTdx
201#include "set_bounds.h"
213 ad_fe(imins:imaxs,jmins:jmaxs)=0.0_r8
214 ad_fx(imins:imaxs,jmins:jmaxs)=0.0_r8
216 ad_fs(imins:imaxs,jmins:jmaxs,1:2)=0.0_r8
218 ad_drde(imins:imaxs,jmins:jmaxs,1:2)=0.0_r8
219 ad_drdx(imins:imaxs,jmins:jmaxs,1:2)=0.0_r8
220 ad_dtde(imins:imaxs,jmins:jmaxs,1:2)=0.0_r8
221 ad_dtdr(imins:imaxs,jmins:jmaxs,1:2)=0.0_r8
222 ad_dtdx(imins:imaxs,jmins:jmaxs,1:2)=0.0_r8
238 t_loop :
DO itrc=1,nt(ng)
254 k_loop :
DO k=n(ng),0,-1
267 IF (kk.lt.n(ng))
THEN
270 cff=0.5_r8*(pm(i,j)+pm(i-1,j))
274 drdx(i,j,k2b)=cff*(pden(i ,j,kk+1)- &
277 dtdx(i,j,k2b)=cff*((t(i ,j,k+1,nrhs,itrc)- &
278 & tclm(i ,j,k+1,itrc))- &
279 & (t(i-1,j,k+1,nrhs,itrc)- &
280 & tclm(i-1,j,k+1,itrc)))
282 dtdx(i,j,k2b)=cff*(t(i ,j,kk+1,nrhs,itrc)- &
283 & t(i-1,j,kk+1,nrhs,itrc))
297 cff=0.5_r8*(pn(i,j)+pn(i,j-1))
301 drde(i,j,k2b)=cff*(pden(i,j ,kk+1)- &
304 dtde(i,j,k2b)=cff*((t(i,j ,k+1,nrhs,itrc)- &
305 & tclm(i,j ,k+1,itrc))- &
306 & (t(i,j-1,k+1,nrhs,itrc)- &
307 & tclm(i,j-1,k+1,itrc)))
309 dtde(i,j,k2b)=cff*(t(i,j ,kk+1,nrhs,itrc)- &
310 & t(i,j-1,kk+1,nrhs,itrc))
323 IF ((kk.eq.0).or.(kk.eq.n(ng)))
THEN
341#if defined TS_MIX_MAX_SLOPE
342 cff1=sqrt(drdx(i,j,k2b)**2+drdx(i+1,j,k2b)**2+ &
343 & drdx(i,j,k1b)**2+drdx(i+1,j,k1b)**2+ &
344 & drde(i,j,k2b)**2+drde(i,j+1,k2b)**2+ &
345 & drde(i,j,k1b)**2+drde(i,j+1,k1b)**2)
346 cff2=0.25_r8*slope_max* &
347 & (z_r(i,j,kk+1)-z_r(i,j,kk))*cff1
348 cff3=max(pden(i,j,kk)-pden(i,j,kk+1),small)
351#elif defined TS_MIX_MIN_STRAT
352 cff1=max(pden(i,j,kk)-pden(i,j,kk+1), &
353 & strat_min*(z_r(i,j,kk+1)-z_r(i,j,kk)))
356 cff1=max(pden(i,j,kk)-pden(i,j,kk+1),eps)
360 dtdr(i,j,k2b)=cff*((t(i,j,k+1,nrhs,itrc)- &
361 & tclm(i,j,k+1,itrc))- &
362 & (t(i,j,k ,nrhs,itrc)- &
363 & tclm(i,j,k ,itrc)))
365 dtdr(i,j,k2b)=cff*(t(i,j,kk+1,nrhs,itrc)- &
366 & t(i,j,kk ,nrhs,itrc))
368 fs(i,j,k2b)=cff*(z_r(i,j,kk+1)-z_r(i,j,kk))
385 ad_cff=ad_cff+ad_t(i,j,k,nnew,itrc)
392 adfac1=adfac*pm(i,j)*pn(i,j)
393 ad_fs(i,j,k2)=ad_fs(i,j,k2)+adfac
394 ad_fs(i,j,k1)=ad_fs(i,j,k1)-adfac
395 ad_fe(i,j )=ad_fe(i,j )-adfac1
396 ad_fe(i,j+1)=ad_fe(i,j+1)+adfac1
397 ad_fx(i ,j)=ad_fx(i ,j)-adfac1
398 ad_fx(i+1,j)=ad_fx(i+1,j)+adfac1
409 cff1=max(drdx(i ,j,k1),0.0_r8)
410 cff2=max(drdx(i+1,j,k2),0.0_r8)
411 cff3=min(drdx(i ,j,k2),0.0_r8)
412 cff4=min(drdx(i+1,j,k1),0.0_r8)
413 cff=cff1*(cff1*dtdr(i,j,k2)-dtdx(i ,j,k1))+ &
414 & cff2*(cff2*dtdr(i,j,k2)-dtdx(i+1,j,k2))+ &
415 & cff3*(cff3*dtdr(i,j,k2)-dtdx(i ,j,k2))+ &
416 & cff4*(cff4*dtdr(i,j,k2)-dtdx(i+1,j,k1))
417 cff1=max(drde(i,j ,k1),0.0_r8)
418 cff2=max(drde(i,j+1,k2),0.0_r8)
419 cff3=min(drde(i,j ,k2),0.0_r8)
420 cff4=min(drde(i,j+1,k1),0.0_r8)
422 & cff1*(cff1*dtdr(i,j,k2)-dtde(i,j ,k1))+ &
423 & cff2*(cff2*dtdr(i,j,k2)-dtde(i,j+1,k2))+ &
424 & cff3*(cff3*dtdr(i,j,k2)-dtde(i,j ,k2))+ &
425 & cff4*(cff4*dtdr(i,j,k2)-dtde(i,j+1,k1))
430 adfac=0.5_r8*diff2(i,j,itrc)*ad_fs(i,j,k2)
431 ad_cff=ad_cff+adfac*fs(i,j,k2)
432 ad_fs(i,j,k2)=cff*adfac
456 & (2.0_r8*cff1*dtdr(i,j,k2)-dtde(i,j ,k1))* &
459 & (2.0_r8*cff2*dtdr(i,j,k2)-dtde(i,j+1,k2))* &
462 & (2.0_r8*cff3*dtdr(i,j,k2)-dtde(i,j ,k2))* &
465 & (2.0_r8*cff4*dtdr(i,j,k2)-dtde(i,j+1,k1))* &
467 ad_dtdr(i,j,k2)=ad_dtdr(i,j,k2)+ &
472 ad_dtde(i,j ,k1)=ad_dtde(i,j ,k1)-cff1*ad_cff
473 ad_dtde(i,j+1,k2)=ad_dtde(i,j+1,k2)-cff2*ad_cff
474 ad_dtde(i,j ,k2)=ad_dtde(i,j ,k2)-cff3*ad_cff
475 ad_dtde(i,j+1,k1)=ad_dtde(i,j+1,k1)-cff4*ad_cff
479 ad_drde(i,j+1,k1)=ad_drde(i,j+1,k1)+ &
480 & (0.5_r8+sign(0.5_r8, &
481 & -drde(i,j+1,k1)))* &
487 ad_drde(i,j ,k2)=ad_drde(i,j ,k2)+ &
488 & (0.5_r8+sign(0.5_r8, &
489 & -drde(i,j ,k2)))* &
495 ad_drde(i,j+1,k2)=ad_drde(i,j+1,k2)+ &
496 & (0.5_r8+sign(0.5_r8, &
497 & drde(i,j+1,k2)))* &
503 ad_drde(i ,j,k1)=ad_drde(i ,j,k1)+ &
504 & (0.5_r8+sign(0.5_r8, &
509 cff1=max(drdx(i ,j,k1),0.0_r8)
510 cff2=max(drdx(i+1,j,k2),0.0_r8)
511 cff3=min(drdx(i ,j,k2),0.0_r8)
512 cff4=min(drdx(i+1,j,k1),0.0_r8)
535 & (2.0_r8*cff1*dtdr(i,j,k2)-dtdx(i ,j,k1))* &
538 & (2.0_r8*cff2*dtdr(i,j,k2)-dtdx(i+1,j,k2))* &
541 & (2.0_r8*cff3*dtdr(i,j,k2)-dtdx(i ,j,k2))* &
544 & (2.0_r8*cff4*dtdr(i,j,k2)-dtdx(i+1,j,k1))* &
546 ad_dtdr(i,j,k2)=ad_dtdr(i,j,k2)+ &
551 ad_dtdx(i ,j,k1)=ad_dtdx(i ,j,k1)-cff1*ad_cff
552 ad_dtdx(i+1,j,k2)=ad_dtdx(i+1,j,k2)-cff2*ad_cff
553 ad_dtdx(i ,j,k2)=ad_dtdx(i ,j,k2)-cff3*ad_cff
554 ad_dtdx(i+1,j,k1)=ad_dtdx(i+1,j,k1)-cff4*ad_cff
559 ad_drdx(i+1,j,k1)=ad_drdx(i+1,j,k1)+ &
560 & (0.5_r8+sign(0.5_r8, &
561 & -drdx(i+1,j,k1)))* &
567 ad_drdx(i ,j,k2)=ad_drdx(i ,j,k2)+ &
568 & (0.5_r8+sign(0.5_r8, &
569 & -drdx(i ,j,k2)))* &
575 ad_drdx(i+1,j,k2)=ad_drdx(i+1,j,k2)+ &
576 & (0.5_r8+sign(0.5_r8, &
577 & drdx(i+1,j,k2)))* &
583 ad_drdx(i ,j,k1)=ad_drdx(i ,j,k1)+ &
584 & (0.5_r8+sign(0.5_r8, &
593 cff=0.25_r8*(diff2(i,j,itrc)+diff2(i,j-1,itrc))* &
622 adfac1=adfac*(dtde(i,j,k1)- &
623 & 0.5_r8*(max(drde(i,j,k1),0.0_r8)* &
626 & min(drde(i,j,k1),0.0_r8)* &
629 adfac2=adfac*(hz(i,j,k)+hz(i,j-1,k))
630 adfac3=adfac2*0.5_r8*max(drde(i,j,k1),0.0_r8)
631 adfac4=adfac2*0.5_r8*min(drde(i,j,k1),0.0_r8)
632 ad_hz(i,j-1,k)=ad_hz(i,j-1,k)+adfac1
633 ad_hz(i,j ,k)=ad_hz(i,j ,k)+adfac1
634 ad_dtde(i,j,k1)=ad_dtde(i,j,k1)+adfac2
635 ad_dtdr(i,j-1,k1)=ad_dtdr(i,j-1,k1)-adfac3
636 ad_dtdr(i,j ,k2)=ad_dtdr(i,j ,k2)-adfac3
637 ad_dtdr(i,j-1,k2)=ad_dtdr(i,j-1,k2)-adfac4
638 ad_dtdr(i,j ,k1)=ad_dtdr(i,j ,k1)-adfac4
639 ad_drde(i,j,k1)=ad_drde(i,j,k1)- &
641 & ((0.5_r8+sign(0.5_r8, drde(i,j,k1)))* &
642 & (dtdr(i,j-1,k1)+dtdr(i,j,k2))+ &
643 & (0.5_r8+sign(0.5_r8,-drde(i,j,k1)))* &
644 & (dtdr(i,j-1,k2)+dtdr(i,j,k1)))*adfac2
650 cff=0.25_r8*(diff2(i,j,itrc)+diff2(i-1,j,itrc))* &
679 adfac1=adfac*(dtdx(i,j,k1)- &
680 & 0.5_r8*(max(drdx(i,j,k1),0.0_r8)* &
683 & min(drdx(i,j,k1),0.0_r8)* &
686 adfac2=adfac*(hz(i,j,k)+hz(i-1,j,k))
687 adfac3=adfac2*0.5_r8*max(drdx(i,j,k1),0.0_r8)
688 adfac4=adfac2*0.5_r8*min(drdx(i,j,k1),0.0_r8)
689 ad_hz(i-1,j,k)=ad_hz(i-1,j,k)+adfac1
690 ad_hz(i ,j,k)=ad_hz(i ,j,k)+adfac1
691 ad_dtdx(i,j,k1)=ad_dtdx(i,j,k1)+adfac2
692 ad_dtdr(i-1,j,k1)=ad_dtdr(i-1,j,k1)-adfac3
693 ad_dtdr(i ,j,k2)=ad_dtdr(i ,j,k2)-adfac3
694 ad_dtdr(i-1,j,k2)=ad_dtdr(i-1,j,k2)-adfac4
695 ad_dtdr(i ,j,k1)=ad_dtdr(i ,j,k1)-adfac4
696 ad_drdx(i,j,k1)=ad_drdx(i,j,k1)- &
698 & ((0.5_r8+sign(0.5_r8, drdx(i,j,k1)))* &
699 & (dtdr(i-1,j,k1)+dtdr(i,j,k2))+ &
700 & (0.5_r8+sign(0.5_r8,-drdx(i,j,k1)))* &
701 & (dtdr(i-1,j,k2)+dtdr(i,j,k1)))*adfac2
706 IF ((k.eq.0).or.(k.eq.n(ng)))
THEN
714 ad_dtdr(i,j,k2)=0.0_r8
720#if defined TS_MIX_MAX_SLOPE
721 cff1=sqrt(drdx(i,j,k2)**2+drdx(i+1,j,k2)**2+ &
722 & drdx(i,j,k1)**2+drdx(i+1,j,k1)**2+ &
723 & drde(i,j,k2)**2+drde(i,j+1,k2)**2+ &
724 & drde(i,j,k1)**2+drde(i,j+1,k1)**2)
725 cff2=0.25_r8*slope_max* &
726 & (z_r(i,j,k+1)-z_r(i,j,k))*cff1
727 cff3=max(pden(i,j,k)-pden(i,j,k+1),small)
730#elif defined TS_MIX_MIN_STRAT
731 cff1=max(pden(i,j,k)-pden(i,j,k+1), &
732 & strat_min*(z_r(i,j,k+1)-z_r(i,j,k)))
735 cff1=max(pden(i,j,k)-pden(i,j,k+1),eps)
741 adfac=cff*ad_fs(i,j,k2)
742 ad_z_r(i,j,k )=ad_z_r(i,j,k )-adfac
743 ad_z_r(i,j,k+1)=ad_z_r(i,j,k+1)+adfac
744 ad_cff=ad_cff+(z_r(i,j,k+1)- &
745 & z_r(i,j,k ))*ad_fs(i,j,k2)
761 adfac=cff*ad_dtdr(i,j,k2)
762 ad_t(i,j,k ,nrhs,itrc)=ad_t(i,j,k ,nrhs,itrc)-adfac
763 ad_t(i,j,k+1,nrhs,itrc)=ad_t(i,j,k+1,nrhs,itrc)+adfac
765 ad_cff=ad_cff+((t(i,j,k+1,nrhs,itrc)- &
766 & tclm(i,j,k+1,itrc))- &
767 & (t(i,j,k ,nrhs,itrc)- &
768 & tclm(i,j,k ,itrc)))*ad_dtdr(i,j,k2)
770 ad_cff=ad_cff+(t(i,j,k+1,nrhs,itrc)- &
771 & t(i,j,k ,nrhs,itrc))*ad_dtdr(i,j,k2)
773 ad_dtdr(i,j,k2)=0.0_r8
774#if defined TS_MIX_MAX_SLOPE
777 ad_cff4=ad_cff4+cff*cff*ad_cff
783 & (0.5_r8-sign(0.5_r8,cff2-cff3))*ad_cff4
785 & (0.5_r8+sign(0.5_r8,cff2-cff3))*ad_cff4
791 adfac=(0.5_r8+sign(0.5_r8,pden(i,j,k)-pden(i,j,k+1)- &
793 ad_pden(i,j,k )=ad_pden(i,j,k )+adfac
794 ad_pden(i,j,k+1)=ad_pden(i,j,k+1)-adfac
800 adfac=0.25_r8*slope_max*ad_cff2
802 ad_cff1=ad_cff1+(z_r(i,j,k+1)-z_r(i,j,k))*adfac
803 ad_z_r(i,j,k )=ad_z_r(i,j,k )-adfac1
804 ad_z_r(i,j,k+1)=ad_z_r(i,j,k+1)+adfac1
806 IF (cff1.ne.0.0_r8)
THEN
817 ad_drdx(i ,j,k1)=ad_drdx(i ,j,k1)+ &
818 & drdx(i ,j,k1)*adfac
819 ad_drdx(i+1,j,k1)=ad_drdx(i+1,j,k1)+ &
820 & drdx(i+1,j,k1)*adfac
821 ad_drdx(i ,j,k2)=ad_drdx(i ,j,k2)+ &
822 & drdx(i ,j,k2)*adfac
823 ad_drdx(i+1,j,k2)=ad_drdx(i+1,j,k2)+ &
824 & drdx(i+1,j,k2)*adfac
825 ad_drde(i,j ,k2)=ad_drde(i,j ,k2)+ &
826 & drde(i,j ,k2)*adfac
827 ad_drde(i,j+1,k2)=ad_drde(i,j+1,k2)+ &
828 & drde(i,j+1,k2)*adfac
829 ad_drde(i,j ,k1)=ad_drde(i,j ,k1)+ &
830 & drde(i,j ,k1)*adfac
831 ad_drde(i,j+1,k1)=ad_drde(i,j+1,k1)+ &
832 & drde(i,j+1,k1)*adfac
839#elif defined TS_MIX_MIN_STRAT
842 ad_cff1=ad_cff1+cff*cff*ad_cff
855 adfac1=(0.5_r8+sign(0.5_r8, &
856 & pden(i,j,k)-pden(i,j,k+1)- &
857 & strat_min*(z_r(i,j,k+1)- &
860 adfac2=(0.5_r8-sign(0.5_r8, &
861 & pden(i,j,k)-pden(i,j,k+1)- &
862 & strat_min*(z_r(i,j,k+1)- &
865 ad_pden(i,j,k )=ad_pden(i,j,k )+adfac1
866 ad_pden(i,j,k+1)=ad_pden(i,j,k+1)-adfac1
867 ad_z_r(i,j,k )=ad_z_r(i,j,k )-adfac2
868 ad_z_r(i,j,k+1)=ad_z_r(i,j,k+1)+adfac2
873 ad_cff1=ad_cff1+cff*cff*ad_cff
879 adfac=(0.5_r8+sign(0.5_r8, &
880 & pden(i,j,k)-pden(i,j,k+1)-eps))* &
882 ad_pden(i,j,k )=ad_pden(i,j,k )+adfac
883 ad_pden(i,j,k+1)=ad_pden(i,j,k+1)-adfac
892 cff=0.5_r8*(pn(i,j)+pn(i,j-1))
899 adfac=cff*ad_dtde(i,j,k2)
900 ad_t(i,j-1,k+1,nrhs,itrc)=ad_t(i,j-1,k+1,nrhs,itrc)- &
902 ad_t(i,j ,k+1,nrhs,itrc)=ad_t(i,j ,k+1,nrhs,itrc)+ &
904 ad_dtde(i,j,k2)=0.0_r8
908 adfac=cff*ad_drde(i,j,k2)
909 ad_pden(i,j-1,k+1)=ad_pden(i,j-1,k+1)-adfac
910 ad_pden(i,j ,k+1)=ad_pden(i,j ,k+1)+adfac
911 ad_drde(i,j,k2)=0.0_r8
916 cff=0.5_r8*(pm(i,j)+pm(i-1,j))
923 adfac=cff*ad_dtdx(i,j,k2)
924 ad_t(i-1,j,k+1,nrhs,itrc)=ad_t(i-1,j,k+1,nrhs,itrc)- &
926 ad_t(i ,j,k+1,nrhs,itrc)=ad_t(i ,j,k+1,nrhs,itrc)+ &
928 ad_dtdx(i,j,k2)=0.0_r8
932 adfac=cff*ad_drdx(i,j,k2)
933 ad_pden(i-1,j,k+1)=ad_pden(i-1,j,k+1)-adfac
934 ad_pden(i ,j,k+1)=ad_pden(i ,j,k+1)+adfac
935 ad_drdx(i,j,k2)=0.0_r8