98 & LBi, UBi, LBj, UBj, &
99 & IminS, ImaxS, JminS, JmaxS, &
100 & nrhs, nstp, nnew, &
104#ifdef WET_DRY_NOT_YET
105 & umask_wet, vmask_wet, &
107 & om_v, on_u, pm, pn, &
130 integer,
intent(in) :: ng, tile
131 integer,
intent(in) :: LBi, UBi, LBj, UBj
132 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
133 integer,
intent(in) :: nrhs, nstp, nnew
137 real(r8),
intent(in) :: umask(LBi:,LBj:)
138 real(r8),
intent(in) :: vmask(LBi:,LBj:)
140# ifdef WET_DRY_NOT_YET
141 real(r8),
intent(in) :: umask_wet(LBi:,LBj:)
142 real(r8),
intent(in) :: vmask_wet(LBi:,LBj:)
145 real(r8),
intent(in) :: diff3d_r(LBi:,LBj:,:)
147 real(r8),
intent(in) :: diff2(LBi:,LBj:,:)
149 real(r8),
intent(in) :: om_v(LBi:,LBj:)
150 real(r8),
intent(in) :: on_u(LBi:,LBj:)
151 real(r8),
intent(in) :: pm(LBi:,LBj:)
152 real(r8),
intent(in) :: pn(LBi:,LBj:)
153 real(r8),
intent(in) :: Hz(LBi:,LBj:,:)
154 real(r8),
intent(in) :: z_r(LBi:,LBj:,:)
155 real(r8),
intent(in) :: rho(LBi:,LBj:,:)
156 real(r8),
intent(in) :: t(LBi:,LBj:,:,:,:)
158 real(r8),
intent(in) :: tclm(LBi:,LBj:,:,:)
160 real(r8),
intent(in) :: tl_Hz(LBi:,LBj:,:)
161 real(r8),
intent(in) :: tl_z_r(LBi:,LBj:,:)
162 real(r8),
intent(in) :: tl_rho(LBi:,LBj:,:)
163# ifdef DIAGNOSTICS_TS
167 real(r8),
intent(inout) :: tl_t(LBi:,LBj:,:,:,:)
170 real(r8),
intent(in) :: umask(LBi:UBi,LBj:UBj)
171 real(r8),
intent(in) :: vmask(LBi:UBi,LBj:UBj)
173# ifdef WET_DRY_NOT_YET
174 real(r8),
intent(in) :: umask_wet(LBi:UBi,LBj:UBj)
175 real(r8),
intent(in) :: vmask_wet(LBi:UBi,LBj:UBj)
178 real(r8),
intent(in) :: diff3d_r(LBi:UBi,LBj:UBj,N(ng))
180 real(r8),
intent(in) :: diff2(LBi:UBi,LBj:UBj,NT(ng))
182 real(r8),
intent(in) :: om_v(LBi:UBi,LBj:UBj)
183 real(r8),
intent(in) :: on_u(LBi:UBi,LBj:UBj)
184 real(r8),
intent(in) :: pm(LBi:UBi,LBj:UBj)
185 real(r8),
intent(in) :: pn(LBi:UBi,LBj:UBj)
186 real(r8),
intent(in) :: Hz(LBi:UBi,LBj:UBj,N(ng))
187 real(r8),
intent(in) :: z_r(LBi:UBi,LBj:UBj,N(ng))
188 real(r8),
intent(in) :: pden(LBi:UBi,LBj:UBj,N(ng))
189 real(r8),
intent(in) :: t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
191 real(r8),
intent(in) :: tclm(LBi:UBi,LBj:UBj,N(ng),NT(ng))
193 real(r8),
intent(in) :: tl_Hz(LBi:UBi,LBj:UBj,N(ng))
194 real(r8),
intent(in) :: tl_z_r(LBi:UBi,LBj:UBj,N(ng))
195 real(r8),
intent(in) :: tl_pden(LBi:UBi,LBj:UBj,N(ng))
196# ifdef DIAGNOSTICS_TS
200 real(r8),
intent(inout) :: tl_t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
205 integer :: i, itrc, j, k, k1, k2
207 real(r8),
parameter :: eps = 0.5_r8
208 real(r8),
parameter :: small = 1.0e-14_r8
209 real(r8),
parameter :: slope_max = 0.0001_r8
210 real(r8),
parameter :: strat_min = 0.1_r8
212 real(r8) :: cff, cff1, cff2, cff3, cff4
213 real(r8) :: tl_cff, tl_cff1, tl_cff2, tl_cff3, tl_cff4
215 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_FE
216 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_FX
218 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: FS
219 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dRde
220 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dRdx
221 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dTde
222 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dTdr
223 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: dTdx
225 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: tl_FS
226 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: tl_dRde
227 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: tl_dRdx
228 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: tl_dTde
229 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: tl_dTdr
230 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,2) :: tl_dTdx
232#include "set_bounds.h"
246 t_loop :
DO itrc=1,nt(ng)
248 k_loop :
DO k=0,n(ng)
254 cff=0.5_r8*(pm(i,j)+pm(i-1,j))
258#ifdef WET_DRY_NOT_YET
259 cff=cff*umask_wet(i,j)
261 drdx(i,j,k2)=cff*(pden(i ,j,k+1)- &
263 tl_drdx(i,j,k2)=cff*(tl_pden(i ,j,k+1)- &
264 & tl_pden(i-1,j,k+1))
265#if defined TS_MIX_STABILITY
266 dtdx(i,j,k2)=cff*(0.75_r8*(t(i ,j,k+1,nrhs,itrc)- &
267 & t(i-1,j,k+1,nrhs,itrc))+ &
268 & 0.25_r8*(t(i ,j,k+1,nstp,itrc)- &
269 & t(i-1,j,k+1,nstp,itrc)))
270 tl_dtdx(i,j,k2)=cff* &
271 & (0.75_r8*(tl_t(i ,j,k+1,nrhs,itrc)- &
272 & tl_t(i-1,j,k+1,nrhs,itrc))+ &
273 & 0.25_r8*(tl_t(i ,j,k+1,nstp,itrc)- &
274 & tl_t(i-1,j,k+1,nstp,itrc)))
275#elif defined TS_MIX_CLIMA
277 dtdx(i,j,k2)=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,k2)=cff*(t(i ,j,k+1,nrhs,itrc)- &
283 & t(i-1,j,k+1,nrhs,itrc))
285 tl_dtdx(i,j,k2)=cff*(tl_t(i ,j,k+1,nrhs,itrc)- &
286 & tl_t(i-1,j,k+1,nrhs,itrc))
288 dtdx(i,j,k2)=cff*(t(i ,j,k+1,nrhs,itrc)- &
289 & t(i-1,j,k+1,nrhs,itrc))
290 tl_dtdx(i,j,k2)=cff*(tl_t(i ,j,k+1,nrhs,itrc)- &
291 & tl_t(i-1,j,k+1,nrhs,itrc))
297 cff=0.5_r8*(pn(i,j)+pn(i,j-1))
301#ifdef WET_DRY_NOT_YET
302 cff=cff*vmask_wet(i,j)
304 drde(i,j,k2)=cff*(pden(i,j ,k+1)- &
306 tl_drde(i,j,k2)=cff*(tl_pden(i,j ,k+1)- &
307 & tl_pden(i,j-1,k+1))
308#if defined TS_MIX_STABILITY
309 dtde(i,j,k2)=cff*(0.75_r8*(t(i,j ,k+1,nrhs,itrc)- &
310 & t(i,j-1,k+1,nrhs,itrc))+ &
311 & 0.25_r8*(t(i,j ,k+1,nstp,itrc)- &
312 & t(i,j-1,k+1,nstp,itrc)))
313 tl_dtde(i,j,k2)=cff* &
314 & (0.75_r8*(tl_t(i,j ,k+1,nrhs,itrc)- &
315 & tl_t(i,j-1,k+1,nrhs,itrc))+ &
316 & 0.25_r8*(tl_t(i,j ,k+1,nstp,itrc)- &
317 & tl_t(i,j-1,k+1,nstp,itrc)))
318#elif defined TS_MIX_CLIMA
320 dtde(i,j,k2)=cff*((t(i,j ,k+1,nrhs,itrc)- &
321 & tclm(i,j ,k+1,itrc))- &
322 & (t(i,j-1,k+1,nrhs,itrc)- &
323 & tclm(i,j-1,k+1,itrc)))
325 dtde(i,j,k2)=cff*(t(i,j ,k+1,nrhs,itrc)- &
326 & t(i,j-1,k+1,nrhs,itrc))
328 tl_dtde(i,j,k2)=cff*(tl_t(i,j ,k+1,nrhs,itrc)- &
329 & tl_t(i,j-1,k+1,nrhs,itrc))
331 dtde(i,j,k2)=cff*(t(i,j ,k+1,nrhs,itrc)- &
332 & t(i,j-1,k+1,nrhs,itrc))
333 tl_dtde(i,j,k2)=cff*(tl_t(i,j ,k+1,nrhs,itrc)- &
334 & tl_t(i,j-1,k+1,nrhs,itrc))
339 IF ((k.eq.0).or.(k.eq.n(ng)))
THEN
343 tl_dtdr(i,j,k2)=0.0_r8
351#if defined TS_MIX_MAX_SLOPE
352 cff1=sqrt(drdx(i,j,k2)**2+drdx(i+1,j,k2)**2+ &
353 & drdx(i,j,k1)**2+drdx(i+1,j,k1)**2+ &
354 & drde(i,j,k2)**2+drde(i,j+1,k2)**2+ &
355 & drde(i,j,k1)**2+drde(i,j+1,k1)**2)
356 IF (cff1.ne.0.0_r8)
THEN
357 tl_cff1=(drdx(i ,j,k2)*tl_drdx(i ,j,k2)+ &
358 & drdx(i+1,j,k2)*tl_drdx(i+1,j,k2)+ &
359 & drdx(i ,j,k1)*tl_drdx(i ,j,k1)+ &
360 & drdx(i+1,j,k1)*tl_drdx(i+1,j,k1)+ &
361 & drde(i,j ,k2)*tl_drde(i,j ,k2)+ &
362 & drde(i,j+1,k2)*tl_drde(i,j+1,k2)+ &
363 & drde(i,j ,k1)*tl_drde(i,j ,k1)+ &
364 & drde(i,j+1,k1)*tl_drde(i,j+1,k1))/cff1
368 cff2=0.25_r8*slope_max* &
369 & (z_r(i,j,k+1)-z_r(i,j,k))*cff1
370 tl_cff2=0.25_r8*slope_max* &
371 & ((tl_z_r(i,j,k+1)-tl_z_r(i,j,k))*cff1+ &
372 & (z_r(i,j,k+1)-z_r(i,j,k))*tl_cff1)- &
376 cff3=max(pden(i,j,k)-pden(i,j,k+1),small)
377 tl_cff3=(0.5_r8+sign(0.5_r8,pden(i,j,k)-pden(i,j,k+1)- &
379 & (tl_pden(i,j,k)-tl_pden(i,j,k+1))+ &
381 & (0.5_r8-sign(0.5_r8, &
382 & pden(i,j,k)-pden(i,j,k+1)-small))* &
386 tl_cff4=(0.5_r8+sign(0.5_r8,cff2-cff3))*tl_cff2+ &
387 & (0.5_r8-sign(0.5_r8,cff2-cff3))*tl_cff3
389 tl_cff=cff*cff*tl_cff4+ &
393#elif defined TS_MIX_MIN_STRAT
394 cff1=max(pden(i,j,k)-pden(i,j,k+1), &
395 & strat_min*(z_r(i,j,k+1)-z_r(i,j,k)))
396 tl_cff1=(0.5_r8+sign(0.5_r8, &
397 & pden(i,j,k)-pden(i,j,k+1)- &
398 & strat_min*(z_r(i,j,k+1)- &
400 & (tl_pden(i,j,k)-tl_pden(i,j,k+1))+ &
401 & (0.5_r8-sign(0.5_r8, &
402 & pden(i,j,k)-pden(i,j,k+1)- &
403 & strat_min*(z_r(i,j,k+1)- &
405 & (strat_min*(tl_z_r(i,j,k+1)-tl_z_r(i,j,k )))
407 tl_cff=cff*cff*tl_cff1+ &
412 cff1=max(pden(i,j,k)-pden(i,j,k+1),eps)
413 tl_cff1=(0.5_r8+sign(0.5_r8, &
414 & pden(i,j,k)-pden(i,j,k+1)-eps))* &
415 & (tl_pden(i,j,k)-tl_pden(i,j,k+1))+ &
418 & sign(0.5_r8,pden(i,j,k)-pden(i,j,k+1)-eps))*eps
421 tl_cff=cff*cff*tl_cff1+ &
426#if defined TS_MIX_STABILITY
427 dtdr(i,j,k2)=cff*(0.75_r8*(t(i,j,k+1,nrhs,itrc)- &
428 & t(i,j,k ,nrhs,itrc))+ &
429 & 0.25_r8*(t(i,j,k+1,nstp,itrc)- &
430 & t(i,j,k ,nstp,itrc)))
431 tl_dtdr(i,j,k2)=tl_cff* &
432 & (0.75_r8*(t(i,j,k+1,nrhs,itrc)- &
433 & t(i,j,k ,nrhs,itrc))+ &
434 & 0.25_r8*(t(i,j,k+1,nstp,itrc)- &
435 & t(i,j,k ,nstp,itrc)))+ &
437 & (0.75_r8*(tl_t(i,j,k+1,nrhs,itrc)- &
438 & tl_t(i,j,k ,nrhs,itrc))+ &
439 & 0.25_r8*(tl_t(i,j,k+1,nstp,itrc)- &
440 & tl_t(i,j,k ,nstp,itrc)))- &
444#elif defined TS_MIX_CLIMA
446 dtdr(i,j,k2)=cff*((t(i,j,k+1,nrhs,itrc)- &
447 & tclm(i,j,k+1,itrc))- &
448 & (t(i,j,k ,nrhs,itrc)- &
449 & tclm(i,j,k ,itrc)))
450 tl_dtdr(i,j,k2)=tl_cff*((t(i,j,k+1,nrhs,itrc)- &
451 & tclm(i,j,k+1,itrc))- &
452 & (t(i,j,k ,nrhs,itrc)- &
453 & tclm(i,j,k ,itrc)))+ &
454 & cff*(tl_t(i,j,k+1,nrhs,itrc)- &
455 & tl_t(i,j,k ,nrhs,itrc))- &
460 dtdr(i,j,k2)=cff*(t(i,j,k+1,nrhs,itrc)- &
461 & t(i,j,k ,nrhs,itrc))
462 tl_dtdr(i,j,k2)=tl_cff*(t(i,j,k+1,nrhs,itrc)- &
463 & t(i,j,k ,nrhs,itrc))+ &
464 & cff*(tl_t(i,j,k+1,nrhs,itrc)- &
465 & tl_t(i,j,k ,nrhs,itrc))- &
471 dtdr(i,j,k2)=cff*(t(i,j,k+1,nrhs,itrc)- &
472 & t(i,j,k ,nrhs,itrc))
473 tl_dtdr(i,j,k2)=tl_cff*(t(i,j,k+1,nrhs,itrc)- &
474 & t(i,j,k ,nrhs,itrc))+ &
475 & cff*(tl_t(i,j,k+1,nrhs,itrc)- &
476 & tl_t(i,j,k ,nrhs,itrc))- &
481 fs(i,j,k2)=cff*(z_r(i,j,k+1)-z_r(i,j,k))
482 tl_fs(i,j,k2)=tl_cff*(z_r(i,j,k+1)-z_r(i,j,k))+ &
483 & cff*(tl_z_r(i,j,k+1)-tl_z_r(i,j,k))- &
498 cff=0.25_r8*(diff3d_r(i,j,k)+diff3d_r(i-1,j,k))* &
501 cff=0.25_r8*(diff2(i,j,itrc)+diff2(i-1,j,itrc))* &
515 & (((tl_hz(i,j,k)+tl_hz(i-1,j,k))* &
517 & 0.5_r8*(max(drdx(i,j,k1),0.0_r8)* &
520 & min(drdx(i,j,k1),0.0_r8)* &
522 & dtdr(i ,j,k1)))))+ &
523 & ((hz(i,j,k)+hz(i-1,j,k))* &
524 & (tl_dtdx(i,j,k1)- &
525 & 0.5_r8*(max(drdx(i,j,k1),0.0_r8)* &
526 & (tl_dtdr(i-1,j,k1)+ &
527 & tl_dtdr(i ,j,k2))+ &
528 & min(drdx(i,j,k1),0.0_r8)* &
529 & (tl_dtdr(i-1,j,k2)+ &
530 & tl_dtdr(i ,j,k1)))- &
532 & sign(0.5_r8, drdx(i,j,k1)))* &
534 & (dtdr(i-1,j,k1)+dtdr(i,j,k2))+ &
536 & sign(0.5_r8,-drdx(i,j,k1)))* &
538 & (dtdr(i-1,j,k2)+dtdr(i,j,k1))))))-&
541 & (hz(i,j,k)+hz(i-1,j,k))* &
543 & (max(drdx(i,j,k1),0.0_r8)* &
546 & min(drdx(i,j,k1),0.0_r8)* &
555 cff=0.25_r8*(diff3d_r(i,j,k)+diff3d_r(i,j-1,k))* &
558 cff=0.25_r8*(diff2(i,j,itrc)+diff2(i,j-1,itrc))* &
572 & (((tl_hz(i,j,k)+tl_hz(i,j-1,k))* &
574 & 0.5_r8*(max(drde(i,j,k1),0.0_r8)* &
577 & min(drde(i,j,k1),0.0_r8)* &
579 & dtdr(i,j ,k1)))))+ &
580 & ((hz(i,j,k)+hz(i,j-1,k))* &
581 & (tl_dtde(i,j,k1)- &
582 & 0.5_r8*(max(drde(i,j,k1),0.0_r8)* &
583 & (tl_dtdr(i,j-1,k1)+ &
584 & tl_dtdr(i,j ,k2))+ &
585 & min(drde(i,j,k1),0.0_r8)* &
586 & (tl_dtdr(i,j-1,k2)+ &
587 & tl_dtdr(i,j ,k1)))- &
589 & sign(0.5_r8, drde(i,j,k1)))* &
591 & (dtdr(i,j-1,k1)+dtdr(i,j,k2))+ &
593 & sign(0.5_r8,-drde(i,j,k1)))* &
595 & (dtdr(i,j-1,k2)+dtdr(i,j,k1))))))-&
598 & (hz(i,j,k)+hz(i,j-1,k))* &
600 & (max(drde(i,j,k1),0.0_r8)* &
603 & min(drde(i,j,k1),0.0_r8)* &
612 cff1=max(drdx(i ,j,k1),0.0_r8)
613 cff2=max(drdx(i+1,j,k2),0.0_r8)
614 cff3=min(drdx(i ,j,k2),0.0_r8)
615 cff4=min(drdx(i+1,j,k1),0.0_r8)
616 tl_cff1=(0.5_r8+sign(0.5_r8, drdx(i ,j,k1)))* &
618 tl_cff2=(0.5_r8+sign(0.5_r8, drdx(i+1,j,k2)))* &
620 tl_cff3=(0.5_r8+sign(0.5_r8,-drdx(i ,j,k2)))* &
622 tl_cff4=(0.5_r8+sign(0.5_r8,-drdx(i+1,j,k1)))* &
624 cff=cff1*(cff1*dtdr(i,j,k2)-dtdx(i ,j,k1))+ &
625 & cff2*(cff2*dtdr(i,j,k2)-dtdx(i+1,j,k2))+ &
626 & cff3*(cff3*dtdr(i,j,k2)-dtdx(i ,j,k2))+ &
627 & cff4*(cff4*dtdr(i,j,k2)-dtdx(i+1,j,k1))
628 tl_cff=tl_cff1*(cff1*dtdr(i ,j,k2)- &
630 & tl_cff2*(cff2*dtdr(i,j,k2)- &
632 & tl_cff3*(cff3*dtdr(i,j,k2)- &
634 & tl_cff4*(cff4*dtdr(i,j,k2)- &
636 & cff1*(tl_cff1*dtdr(i,j,k2)+ &
637 & cff1*tl_dtdr(i,j,k2)- &
638 & tl_dtdx(i ,j,k1))+ &
639 & cff2*(tl_cff2*dtdr(i,j,k2)+ &
640 & cff2*tl_dtdr(i,j,k2)- &
641 & tl_dtdx(i+1,j,k2))+ &
642 & cff3*(tl_cff3*dtdr(i,j,k2)+ &
643 & cff3*tl_dtdr(i,j,k2)- &
644 & tl_dtdx(i ,j,k2))+ &
645 & cff4*(tl_cff4*dtdr(i,j,k2)+ &
646 & cff4*tl_dtdr(i,j,k2)- &
647 & tl_dtdx(i+1,j,k1))- &
649 & cff1*(2.0_r8*cff1*dtdr(i,j,k2)- &
651 & cff2*(2.0_r8*cff2*dtdr(i ,j,k2)- &
653 & cff3*(2.0_r8*cff3*dtdr(i,j,k2)- &
655 & cff4*(2.0_r8*cff4*dtdr(i ,j,k2)- &
658 cff1=max(drde(i,j ,k1),0.0_r8)
659 cff2=max(drde(i,j+1,k2),0.0_r8)
660 cff3=min(drde(i,j ,k2),0.0_r8)
661 cff4=min(drde(i,j+1,k1),0.0_r8)
662 tl_cff1=(0.5_r8+sign(0.5_r8, drde(i,j ,k1)))* &
664 tl_cff2=(0.5_r8+sign(0.5_r8, drde(i,j+1,k2)))* &
666 tl_cff3=(0.5_r8+sign(0.5_r8,-drde(i,j ,k2)))* &
668 tl_cff4=(0.5_r8+sign(0.5_r8,-drde(i,j+1,k1)))* &
671 & cff1*(cff1*dtdr(i,j,k2)-dtde(i,j ,k1))+ &
672 & cff2*(cff2*dtdr(i,j,k2)-dtde(i,j+1,k2))+ &
673 & cff3*(cff3*dtdr(i,j,k2)-dtde(i,j ,k2))+ &
674 & cff4*(cff4*dtdr(i,j,k2)-dtde(i,j+1,k1))
676 & tl_cff1*(cff1*dtdr(i,j,k2)- &
678 & tl_cff2*(cff2*dtdr(i,j,k2)- &
680 & tl_cff3*(cff3*dtdr(i,j,k2)- &
682 & tl_cff4*(cff4*dtdr(i,j,k2)- &
684 & cff1*(tl_cff1*dtdr(i,j,k2)+ &
685 & cff1*tl_dtdr(i,j,k2)- &
686 & tl_dtde(i,j ,k1))+ &
687 & cff2*(tl_cff2*dtdr(i,j,k2)+ &
688 & cff2*tl_dtdr(i,j,k2)- &
689 & tl_dtde(i,j+1,k2))+ &
690 & cff3*(tl_cff3*dtdr(i,j,k2)+ &
691 & cff3*tl_dtdr(i,j,k2)- &
692 & tl_dtde(i,j ,k2))+ &
693 & cff4*(tl_cff4*dtdr(i,j,k2)+ &
694 & cff4*tl_dtdr(i,j,k2)- &
695 & tl_dtde(i,j+1,k1))- &
697 & cff1*(2.0_r8*cff1*dtdr(i,j,k2)- &
699 & cff2*(2.0_r8*cff2*dtdr(i,j ,k2)- &
701 & cff3*(2.0_r8*cff3*dtdr(i,j,k2)- &
703 & cff4*(2.0_r8*cff4*dtdr(i,j ,k2)- &
709 tl_fs(i,j,k2)=0.5_r8*diff3d_r(i,j,k)* &
710 & (tl_cff*fs(i,j,k2)+ &
711 & cff*tl_fs(i,j,k2))- &
713 & 0.5_r8*diff3d_r(i,j,k)*cff*fs(i,j,k2)
718 tl_fs(i,j,k2)=0.5_r8*diff2(i,j,itrc)* &
719 & (tl_cff*fs(i,j,k2)+ &
720 & cff*tl_fs(i,j,k2))- &
722 & 0.5_r8*diff2(i,j,itrc)*cff*fs(i,j,k2)
738 tl_cff=
dt(ng)*pm(i,j)*pn(i,j)* &
739 & (tl_fx(i+1,j)-tl_fx(i,j)+ &
740 & tl_fe(i,j+1)-tl_fe(i,j))+ &
741 &
dt(ng)*(tl_fs(i,j,k2)-tl_fs(i,j,k1))
744 tl_t(i,j,k,nnew,itrc)=tl_t(i,j,k,nnew,itrc)+tl_cff