220 & LBi, UBi, LBj, UBj, &
221 & IminS, ImaxS, JminS, JmaxS, &
226# if defined CURVGRID && defined UV_ADV
230 & om_u, om_v, on_u, on_v, pm, pn, &
231# ifdef WET_DRY_NOT_YET
232 & umask_wet, vmask_wet, &
242 & u_stokes, tl_u_stokes, &
243 & v_stokes, tl_v_stokes, &
244 & tl_rulag3d, tl_rvlag3d, &
245 & tl_rustr3d, tl_rvstr3d, &
249# ifdef DIAGNOSTICS_UV
250!! & DiaRUfrc, DiaRVfrc, &
262 integer,
intent(in) :: ng, tile
263 integer,
intent(in) :: LBi, UBi, LBj, UBj
264 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
265 integer,
intent(in) :: nrhs
268 real(r8),
intent(in) :: Hz(LBi:,LBj:,:)
269 real(r8),
intent(in) :: Huon(LBi:,LBj:,:)
270 real(r8),
intent(in) :: Hvom(LBi:,LBj:,:)
271# if defined CURVGRID && defined UV_ADV
272 real(r8),
intent(in) :: dmde(LBi:,LBj:)
273 real(r8),
intent(in) :: dndx(LBi:,LBj:)
275 real(r8),
intent(in) :: fomn(LBi:,LBj:)
276 real(r8),
intent(in) :: om_u(LBi:,LBj:)
277 real(r8),
intent(in) :: om_v(LBi:,LBj:)
278 real(r8),
intent(in) :: on_u(LBi:,LBj:)
279 real(r8),
intent(in) :: on_v(LBi:,LBj:)
280 real(r8),
intent(in) :: pm(LBi:,LBj:)
281 real(r8),
intent(in) :: pn(LBi:,LBj:)
282# ifdef WET_DRY_NOT_YET
283 real(r8),
intent(in) :: umask_wet(LBi:,LBj:)
284 real(r8),
intent(in) :: vmask_wet(LBi:,LBj:)
286 real(r8),
intent(in) :: bustr(LBi:,LBj:)
287 real(r8),
intent(in) :: bvstr(LBi:,LBj:)
288 real(r8),
intent(in) :: sustr(LBi:,LBj:)
289 real(r8),
intent(in) :: svstr(LBi:,LBj:)
290 real(r8),
intent(in) :: u(LBi:,LBj:,:,:)
291 real(r8),
intent(in) :: v(LBi:,LBj:,:,:)
292 real(r8),
intent(in) :: W(LBi:,LBj:,0:)
294 real(r8),
intent(in) :: tl_Hz(LBi:,LBj:,:)
295 real(r8),
intent(in) :: tl_Huon(LBi:,LBj:,:)
296 real(r8),
intent(in) :: tl_Hvom(LBi:,LBj:,:)
297 real(r8),
intent(in) :: tl_bustr(LBi:,LBj:)
298 real(r8),
intent(in) :: tl_bvstr(LBi:,LBj:)
299 real(r8),
intent(in) :: tl_sustr(LBi:,LBj:)
300 real(r8),
intent(in) :: tl_svstr(LBi:,LBj:)
301 real(r8),
intent(in) :: tl_u(LBi:,LBj:,:,:)
302 real(r8),
intent(in) :: tl_v(LBi:,LBj:,:,:)
303 real(r8),
intent(in) :: tl_W(LBi:,LBj:,0:)
305 real(r8),
intent(in) :: u_stokes(LBi:,LBj:,:)
306 real(r8),
intent(in) :: v_stokes(LBi:,LBj:,:)
307 real(r8),
intent(in) :: tl_u_stokes(LBi:,LBj:,:)
308 real(r8),
intent(in) :: tl_v_stokes(LBi:,LBj:,:)
309 real(r8),
intent(in) :: tl_rulag3d(LBi:,LBj:,:)
310 real(r8),
intent(in) :: tl_rvlag3d(LBi:,LBj:,:)
311 real(r8),
intent(in) :: tl_rustr3d(LBi:,LBj:,:)
312 real(r8),
intent(in) :: tl_rvstr3d(LBi:,LBj:,:)
314# ifdef DIAGNOSTICS_UV
320 real(r8),
intent(inout) :: tl_ru(LBi:,LBj:,0:,:)
321 real(r8),
intent(inout) :: tl_rv(LBi:,LBj:,0:,:)
323 real(r8),
intent(out) :: tl_rufrc(LBi:,LBj:)
324 real(r8),
intent(out) :: tl_rvfrc(LBi:,LBj:)
326 real(r8),
intent(in) :: Hz(LBi:UBi,LBj:UBj,N(ng))
327 real(r8),
intent(in) :: Huon(LBi:UBi,LBj:UBj,N(ng))
328 real(r8),
intent(in) :: Hvom(LBi:UBi,LBj:UBj,N(ng))
329# if defined CURVGRID && defined UV_ADV
330 real(r8),
intent(in) :: dmde(LBi:UBi,LBj:UBj)
331 real(r8),
intent(in) :: dndx(LBi:UBi,LBj:UBj)
333 real(r8),
intent(in) :: fomn(LBi:UBi,LBj:UBj)
334 real(r8),
intent(in) :: om_u(LBi:UBi,LBj:UBj)
335 real(r8),
intent(in) :: om_v(LBi:UBi,LBj:UBj)
336 real(r8),
intent(in) :: on_u(LBi:UBi,LBj:UBj)
337 real(r8),
intent(in) :: on_v(LBi:UBi,LBj:UBj)
338 real(r8),
intent(in) :: pm(LBi:UBi,LBj:UBj)
339 real(r8),
intent(in) :: pn(LBi:UBi,LBj:UBj)
340# ifdef WET_DRY_NOT_YET
341 real(r8),
intent(in) :: umask_wet(LBi:UBi,LBj:UBj)
342 real(r8),
intent(in) :: vmask_wet(LBi:UBi,LBj:UBj)
344 real(r8),
intent(in) :: bustr(LBi:UBi,LBj:UBj)
345 real(r8),
intent(in) :: bvstr(LBi:UBi,LBj:UBj)
346 real(r8),
intent(in) :: sustr(LBi:UBi,LBj:UBj)
347 real(r8),
intent(in) :: svstr(LBi:UBi,LBj:UBj)
348 real(r8),
intent(in) :: u(LBi:UBi,LBj:UBj,N(ng),2)
349 real(r8),
intent(in) :: v(LBi:UBi,LBj:UBj,N(ng),2)
350 real(r8),
intent(in) :: W(LBi:UBi,LBj:UBj,0:N(ng))
352 real(r8),
intent(in) :: tl_Hz(LBi:UBi,LBj:UBj,N(ng))
353 real(r8),
intent(in) :: tl_Huon(LBi:UBi,LBj:UBj,N(ng))
354 real(r8),
intent(in) :: tl_Hvom(LBi:UBi,LBj:UBj,N(ng))
355 real(r8),
intent(in) :: tl_bustr(LBi:UBi,LBj:UBj)
356 real(r8),
intent(in) :: tl_bvstr(LBi:UBi,LBj:UBj)
357 real(r8),
intent(in) :: tl_sustr(LBi:UBi,LBj:UBj)
358 real(r8),
intent(in) :: tl_svstr(LBi:UBi,LBj:UBj)
359 real(r8),
intent(in) :: tl_u(LBi:UBi,LBj:UBj,N(ng),2)
360 real(r8),
intent(in) :: tl_v(LBi:UBi,LBj:UBj,N(ng),2)
361 real(r8),
intent(in) :: tl_W(LBi:UBi,LBj:UBj,0:N(ng))
363 real(r8),
intent(in) :: u_stokes(LBi:UBi,LBj:UBj,N(ng))
364 real(r8),
intent(in) :: v_stokes(LBi:UBi,LBj:UBj,N(ng))
365 real(r8),
intent(in) :: tl_u_stokes(LBi:UBi,LBj:UBj,N(ng))
366 real(r8),
intent(in) :: tl_v_stokes(LBi:UBi,LBj:UBj,N(ng))
367 real(r8),
intent(in) :: tl_rulag3d(LBi:UBi,LBj:UBj,N(ng))
368 real(r8),
intent(in) :: tl_rvlag3d(LBi:UBi,LBj:UBj,N(ng))
369 real(r8),
intent(in) :: tl_rustr3d(LBi:UBi,LBj:UBj,N(ng))
370 real(r8),
intent(in) :: tl_rvstr3d(LBi:UBi,LBj:UBj,N(ng))
372# ifdef DIAGNOSTICS_UV
378 real(r8),
intent(inout) :: tl_ru(LBi:UBi,LBj:UBj,0:N(ng),2)
379 real(r8),
intent(inout) :: tl_rv(LBi:UBi,LBj:UBj,0:N(ng),2)
381 real(r8),
intent(out) :: tl_rufrc(LBi:UBi,LBj:UBj)
382 real(r8),
intent(out) :: tl_rvfrc(LBi:UBi,LBj:UBj)
389 real(r8),
parameter :: Gadv = -0.25_r8
391 real(r8) :: cff, cff1, cff2, cff3, cff4
392 real(r8) :: tl_cff, tl_cff1, tl_cff2, tl_cff3, tl_cff4
394 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: CF
395 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: DC
396 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: FC
398 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: tl_CF
399 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: tl_DC
400 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: tl_FC
402 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: Huee
403 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: Huxx
404 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: Hvee
405 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: Hvxx
406 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: UFx
407 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: UFe
408 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: Uwrk
409 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: VFx
410 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: VFe
411 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: Vwrk
412 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: uee
413 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: uxx
414 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: vee
415 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: vxx
416 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: wrk
418 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Huee
419 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Huxx
420 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Hvee
421 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Hvxx
422 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_UFx
423 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_UFe
424 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Uwrk
425 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_VFx
426 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_VFe
427 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_Vwrk
428 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_uee
429 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_uxx
430 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_vee
431 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_vxx
432 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: tl_wrk
434# include "set_bounds.h"
443# ifdef DIAGNOSTICS_UV
474 wrk(i,j)=wrk(i,j)+hz(i,j,k)
475 tl_wrk(i,j)=tl_wrk(i,j)+tl_hz(i,j,k)
481 cff=0.25_r8*(pm(i-1,j)+pm(i,j))* &
482 & (pn(i-1,j)+pn(i,j))
483 cff1=1.0_r8/(cff*(wrk(i-1,j)+wrk(i,j)))
484 tl_cff1=-cff1*cff1*cff*(tl_wrk(i-1,j)+tl_wrk(i,j))+ &
488 uwrk(i,j)=sustr(i,j)*cff1
489 tl_uwrk(i,j)=tl_sustr(i,j)*cff1+ &
490 & sustr(i,j)*tl_cff1- &
498 cff=0.25*(pm(i,j-1)+pm(i,j))* &
499 & (pn(i,j-1)+pn(i,j))
500 cff1=1.0_r8/(cff*(wrk(i,j-1)+wrk(i,j)))
501 tl_cff1=-cff1*cff1*cff*(tl_wrk(i,j-1)+tl_wrk(i,j))+ &
505 vwrk(i,j)=svstr(i,j)*cff1
506 tl_vwrk(i,j)=tl_svstr(i,j)*cff1+ &
507 & svstr(i,j)*tl_cff1- &
516 cff=uwrk(i,j)*(hz(i ,j,k)+ &
518 tl_cff=tl_uwrk(i,j)*(hz(i ,j,k)+ &
520 & uwrk(i,j)*(tl_hz(i ,j,k)+ &
528 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)+tl_cff
529# ifdef DIAGNOSTICS_UV
537 cff=vwrk(i,j)*(hz(i,j ,k)+ &
539 tl_cff=tl_vwrk(i,j)*(hz(i,j ,k)+ &
541 & vwrk(i,j)*(tl_hz(i,j ,k)+ &
548 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)+tl_cff
549# ifdef DIAGNOSTICS_UV
569 wrk(i,j)=wrk(i,j)+hz(i,j,k)
570 tl_wrk(i,j)=tl_wrk(i,j)+tl_hz(i,j,k)
576 cff=0.25_r8*(pm(i-1,j)+pm(i,j))* &
577 & (pn(i-1,j)+pn(i,j))
578 cff1=1.0_r8/(cff*(wrk(i-1,j)+wrk(i,j)))
579 tl_cff1=-cff1*cff1*cff*(tl_wrk(i-1,j)+tl_wrk(i,j))+ &
583 uwrk(i,j)=bustr(i,j)*cff1
584 tl_uwrk(i,j)=tl_bustr(i,j)*cff1+ &
585 & bustr(i,j)*tl_cff1- &
593 cff=0.25_r8*(pm(i,j-1)+pm(i,j))* &
594 & (pn(i,j-1)+pn(i,j))
595 cff1=1.0_r8/(cff*(wrk(i,j-1)+wrk(i,j)))
596 tl_cff1=-cff1*cff1*cff*(tl_wrk(i,j-1)+tl_wrk(i,j))+ &
600 vwrk(i,j)=bvstr(i,j)*cff1
601 tl_vwrk(i,j)=tl_bvstr(i,j)*cff1+ &
602 & bvstr(i,j)*tl_cff1- &
611 cff=uwrk(i,j)*(hz(i ,j,k)+ &
613 tl_cff=tl_uwrk(i,j)*(hz(i ,j,k)+ &
615 & uwrk(i,j)*(tl_hz(i ,j,k)+ &
622 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)-tl_cff
623# ifdef DIAGNOSTICS_UV
631 cff=vwrk(i,j)*(hz(i,j ,k)+ &
633 tl_cff=tl_vwrk(i,j)*(hz(i,j ,k)+ &
635 & vwrk(i,j)*(tl_hz(i,j ,k)+ &
642 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)-tl_cff
643# ifdef DIAGNOSTICS_UV
652 k_loop :
DO k=1,n(ng)
662 cff=0.5_r8*hz(i,j,k)*fomn(i,j)
663 tl_cff=0.5_r8*tl_hz(i,j,k)*fomn(i,j)
664 ufx(i,j)=cff*(v(i,j ,k,nrhs)+ &
666 & v_stokes(i,j ,k)+ &
667 & v_stokes(i,j+1,k)+ &
670 tl_ufx(i,j)=tl_cff*(v(i,j ,k,nrhs)+ &
672 & v_stokes(i,j ,k)+ &
673 & v_stokes(i,j+1,k)+ &
675 & v(i,j+1,k,nrhs))+ &
676 & cff*(tl_v(i,j ,k,nrhs)+ &
678 & tl_v_stokes(i,j ,k)+ &
679 & tl_v_stokes(i,j+1,k)+ &
681 & tl_v(i,j+1,k,nrhs))- &
685 vfe(i,j)=cff*(u(i ,j,k,nrhs)+ &
687 & u_stokes(i ,j,k)+ &
688 & u_stokes(i+1,j,k)+ &
691 tl_vfe(i,j)=tl_cff*(u(i ,j,k,nrhs)+ &
693 & u_stokes(i ,j,k)+ &
694 & u_stokes(i+1,j,k)+ &
696 & u(i+1,j,k,nrhs))+ &
697 & cff*(tl_u(i ,j,k,nrhs)+ &
699 & tl_u_stokes(i ,j,k)+ &
700 & tl_u_stokes(i+1,j,k)+ &
702 & tl_u(i+1,j,k,nrhs))- &
712 tl_cff1=0.5_r8*(tl_ufx(i,j)+tl_ufx(i-1,j))
715 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)+tl_cff1
716# ifdef DIAGNOSTICS_UV
725 tl_cff1=0.5_r8*(tl_vfe(i,j)+tl_vfe(i,j-1))
728 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)-tl_cff1
729# ifdef DIAGNOSTICS_UV
735# if defined CURVGRID && defined UV_ADV
743 cff1=0.5_r8*(v(i,j ,k,nrhs)+ &
745 & v_stokes(i,j ,k)+ &
746 & v_stokes(i,j+1,k)+ &
749 tl_cff1=0.5_r8*(tl_v(i,j ,k,nrhs)+ &
751 & tl_v_stokes(i,j ,k)+ &
752 & tl_v_stokes(i,j+1,k)+ &
754 & tl_v(i,j+1,k,nrhs))
755 cff2=0.5_r8*(u(i ,j,k,nrhs)+ &
757 & u_stokes(i ,j,k)+ &
758 & u_stokes(i+1,j,k)+ &
761 tl_cff2=0.5_r8*(tl_u(i ,j,k,nrhs)+ &
763 & tl_u_stokes(i ,j,k)+ &
764 & tl_u_stokes(i+1,j,k)+ &
766 & tl_u(i+1,j,k,nrhs))
768 tl_cff3=tl_cff1*dndx(i,j)
770 tl_cff4=tl_cff2*dmde(i,j)
771 cff=hz(i,j,k)*(cff3-cff4)
772 tl_cff=tl_hz(i,j,k)*(cff3-cff4)+ &
773 & hz(i,j,k)*(tl_cff3-tl_cff4)- &
779 tl_ufx(i,j)=tl_cff*cff1+cff*tl_cff1- &
785 tl_vfe(i,j)=tl_cff*cff2+cff*tl_cff2- &
789# if defined DIAGNOSTICS_UV
800 tl_cff1=0.5_r8*(tl_ufx(i,j)+tl_ufx(i-1,j))
803 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)+tl_cff1
804# ifdef DIAGNOSTICS_UV
816 tl_cff1=0.5_r8*(tl_vfe(i,j)+tl_vfe(i,j-1))
819 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)-tl_cff1
820# ifdef DIAGNOSTICS_UV
837 cff=0.25_r8*(
clima(ng)%M3nudgcof(i-1,j,k)+ &
838 &
clima(ng)%M3nudgcof(i ,j,k))* &
839 & om_u(i,j)*on_u(i,j)
845 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)+ &
846 & cff*((hz(i-1,j,k)+hz(i,j,k))* &
847 & (-tl_u(i,j,k,nrhs))+ &
848 & (tl_hz(i-1,j,k)+tl_hz(i,j,k))* &
849 & (
clima(ng)%uclm(i,j,k)- &
852 & cff*(hz(i-1,j,k)+hz(i,j,k))* &
859 cff=0.25_r8*(
clima(ng)%M3nudgcof(i,j-1,k)+ &
860 &
clima(ng)%M3nudgcof(i,j ,k))* &
861 & om_v(i,j)*on_v(i,j)
867 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)+ &
868 & cff*((hz(i,j-1,k)+hz(i,j,k))* &
869 & (-tl_v(i,j,k,nrhs))+ &
870 & (tl_hz(i,j-1,k)+tl_hz(i,j,k))* &
871 & (
clima(ng)%vclm(i,j,k)- &
874 & cff*(hz(i,j-1,k)+hz(i,j,k))* &
890# ifdef UV_C2ADVECTION
896 ufx(i,j)=0.25_r8*(u(i ,j,k,nrhs)+ &
898 & u_stokes(i ,j,k)+ &
899 & u_stokes(i+1,j,k)+ &
901 & u(i+1,j,k,nrhs))* &
904 tl_ufx(i,j)=0.25_r8* &
905 & ((tl_u(i ,j,k,nrhs)+ &
907 & tl_u_stokes(i ,j,k)+ &
908 & tl_u_stokes(i+1,j,k)+ &
910 & tl_u(i+1,j,k,nrhs))* &
915 & u_stokes(i ,j,k)+ &
916 & u_stokes(i+1,j,k)+ &
918 & u(i+1,j,k,nrhs))* &
919 & (tl_huon(i ,j,k)+ &
920 & tl_huon(i+1,j,k)))- &
928 ufe(i,j)=0.25_r8*(u(i,j-1,k,nrhs)+ &
930 & u_stokes(i,j-1,k)+ &
931 & u_stokes(i,j ,k)+ &
936 tl_ufe(i,j)=0.25_r8* &
937 & ((tl_u(i,j-1,k,nrhs)+ &
939 & tl_u_stokes(i,j-1,k)+ &
940 & tl_u_stokes(i,j ,k)+ &
942 & tl_u(i,j ,k,nrhs))* &
945 & (u(i,j-1,k,nrhs)+ &
947 & u_stokes(i,j-1,k)+ &
948 & u_stokes(i,j ,k)+ &
951 & (tl_hvom(i-1,j,k)+ &
952 & tl_hvom(i ,j,k)))- &
960 vfx(i,j)=0.25_r8*(v(i-1,j,k,nrhs)+ &
962 & v_stokes(i-1,j,k)+ &
963 & v_stokes(i ,j,k)+ &
968 tl_vfx(i,j)=0.25_r8* &
969 & ((tl_v(i-1,j,k,nrhs)+ &
971 & tl_v_stokes(i-1,j,k)+ &
972 & tl_v_stokes(i ,j,k)+ &
974 & tl_v(i ,j,k,nrhs))* &
977 & (v(i-1,j,k,nrhs)+ &
979 & v_stokes(i-1,j,k)+ &
980 & v_stokes(i ,j,k)+ &
983 & (tl_huon(i,j-1,k)+ &
984 & tl_huon(i,j ,k)))- &
992 vfe(i,j)=0.25_r8*(v(i,j ,k,nrhs)+ &
994 & v_stokes(i,j ,k)+ &
995 & v_stokes(i,j+1,k)+ &
997 & v(i,j+1,k,nrhs))* &
1000 tl_vfe(i,j)=0.25_r8* &
1001 & ((tl_v(i,j ,k,nrhs)+ &
1003 & tl_v_stokes(i,j ,k)+ &
1004 & tl_v_stokes(i,j+1,k)+ &
1006 & tl_v(i,j+1,k,nrhs))* &
1009 & (v(i,j ,k,nrhs)+ &
1011 & v_stokes(i,j ,k)+ &
1012 & v_stokes(i,j+1,k)+ &
1014 & v(i,j+1,k,nrhs))* &
1015 & (tl_hvom(i,j ,k)+ &
1016 & tl_hvom(i,j+1,k)))- &
1025 uxx(i,j)=u(i-1,j,k,nrhs)-2.0_r8*u(i,j,k,nrhs)+ &
1027 & u_stokes(i-1,j,k)-2.0_r8*u_stokes(i,j,k)+ &
1028 & u_stokes(i+1,j,k)+ &
1031 tl_uxx(i,j)=tl_u(i-1,j,k,nrhs)-2.0_r8*tl_u(i,j,k,nrhs)+ &
1033 & tl_u_stokes(i-1,j,k)-2.0_r8*tl_u_stokes(i,j,k)+ &
1034 & tl_u_stokes(i+1,j,k)+ &
1036 & tl_u(i+1,j,k,nrhs)
1037 huxx(i,j)=huon(i-1,j,k)-2.0_r8*huon(i,j,k)+huon(i+1,j,k)
1038 tl_huxx(i,j)=tl_huon(i-1,j,k)-2.0_r8*tl_huon(i,j,k)+ &
1043 IF (
domain(ng)%Western_Edge(tile))
THEN
1045 uxx(istr,j)=uxx(istr+1,j)
1046 tl_uxx(istr,j)=tl_uxx(istr+1,j)
1047 huxx(istr,j)=huxx(istr+1,j)
1048 tl_huxx(istr,j)=tl_huxx(istr+1,j)
1053 IF (
domain(ng)%Eastern_Edge(tile))
THEN
1055 uxx(iend+1,j)=uxx(iend,j)
1056 tl_uxx(iend+1,j)=tl_uxx(iend,j)
1057 huxx(iend+1,j)=huxx(iend,j)
1058 tl_huxx(iend+1,j)=tl_huxx(iend,j)
1062# ifdef UV_C4ADVECTION
1069 ufx(i,j)=0.25_r8*(u(i ,j,k,nrhs)+ &
1071 & u_stokes(i ,j,k)+ &
1072 & u_stokes(i+1,j,k)+ &
1074 & u(i+1,j,k,nrhs)- &
1079 & cff*(huxx(i ,j)+ &
1081 tl_ufx(i,j)=0.25_r8*((tl_u(i ,j,k,nrhs)+ &
1083 & tl_u_stokes(i ,j,k)+ &
1084 & tl_u_stokes(i+1,j,k)+ &
1086 & tl_u(i+1,j,k,nrhs)- &
1087 & cff*(tl_uxx(i ,j)+ &
1088 & tl_uxx(i+1,j)))* &
1091 & cff*(huxx(i ,j)+ &
1093 & (u(i ,j,k,nrhs)+ &
1095 & u_stokes(i ,j,k)+ &
1096 & u_stokes(i+1,j,k)+ &
1098 & u(i+1,j,k,nrhs)- &
1101 & (tl_huon(i ,j,k)+ &
1102 & tl_huon(i+1,j,k)- &
1103 & cff*(tl_huxx(i ,j)+ &
1104 & tl_huxx(i+1,j))))- &
1117 cff1=u(i ,j,k,nrhs)+ &
1119 & u_stokes(i ,j,k)+ &
1120 & u_stokes(i+1,j,k)+ &
1123 tl_cff1=tl_u(i ,j,k,nrhs)+ &
1125 & tl_u_stokes(i ,j,k)+ &
1126 & tl_u_stokes(i+1,j,k)+ &
1128 & tl_u(i+1,j,k,nrhs)
1129 IF (cff1.gt.0.0_r8)
THEN
1134 tl_cff=tl_uxx(i+1,j)
1136 ufx(i,j)=0.25_r8*(cff1+gadv*cff)* &
1139 & gadv*0.5_r8*(huxx(i ,j)+ &
1141 tl_ufx(i,j)=0.25_r8* &
1142 & ((tl_cff1+gadv*tl_cff)* &
1145 & gadv*0.5_r8*(huxx(i ,j)+ &
1147 & (cff1+gadv*cff)* &
1148 & (tl_huon(i ,j,k)+ &
1149 & tl_huon(i+1,j,k)+ &
1150 & gadv*0.5_r8*(tl_huxx(i ,j)+ &
1151 & tl_huxx(i+1,j))))- &
1160 uee(i,j)=u(i,j-1,k,nrhs)-2.0_r8*u(i,j,k,nrhs)+ &
1162 & u_stokes(i,j-1,k)-2.0_r8*u_stokes(i,j,k)+ &
1163 & u_stokes(i,j+1,k)+ &
1166 tl_uee(i,j)=tl_u(i,j-1,k,nrhs)-2.0_r8*tl_u(i,j,k,nrhs)+ &
1168 & tl_u_stokes(i,j-1,k)-2.0_r8*tl_u_stokes(i,j,k)+ &
1169 & tl_u_stokes(i,j+1,k)+ &
1171 & tl_u(i,j+1,k,nrhs)
1175 IF (
domain(ng)%Southern_Edge(tile))
THEN
1177 uee(i,jstr-1)=uee(i,jstr)
1178 tl_uee(i,jstr-1)=tl_uee(i,jstr)
1183 IF (
domain(ng)%Northern_Edge(tile))
THEN
1185 uee(i,jend+1)=uee(i,jend)
1186 tl_uee(i,jend+1)=tl_uee(i,jend)
1192 hvxx(i,j)=hvom(i-1,j,k)-2.0_r8*hvom(i,j,k)+hvom(i+1,j,k)
1193 tl_hvxx(i,j)=tl_hvom(i-1,j,k)-2.0_r8*tl_hvom(i,j,k)+ &
1197# ifdef UV_C4ADVECTION
1201 ufe(i,j)=0.25_r8*(u(i,j ,k,nrhs)+ &
1203 & u_stokes(i,j ,k)+ &
1204 & u_stokes(i,j-1,k)+ &
1206 & u(i,j-1,k,nrhs)- &
1211 & cff*(hvxx(i ,j)+ &
1213 tl_ufe(i,j)=0.25_r8*((tl_u(i,j ,k,nrhs)+ &
1215 & tl_u_stokes(i,j ,k)+ &
1216 & tl_u_stokes(i,j-1,k)+ &
1218 & tl_u(i,j-1,k,nrhs)- &
1219 & cff*(tl_uee(i,j )+ &
1220 & tl_uee(i,j-1)))* &
1223 & cff*(hvxx(i ,j)+ &
1225 & (u(i,j ,k,nrhs)+ &
1227 & u_stokes(i,j ,k)+ &
1228 & u_stokes(i,j-1,k)+ &
1230 & u(i,j-1,k,nrhs)- &
1233 & (tl_hvom(i ,j,k)+ &
1234 & tl_hvom(i-1,j,k)- &
1235 & cff*(tl_hvxx(i ,j)+ &
1236 & tl_hvxx(i-1,j))))- &
1245 cff1=u(i,j ,k,nrhs)+ &
1247 & u_stokes(i,j ,k)+ &
1248 & u_stokes(i,j-1,k)+ &
1251 tl_cff1=tl_u(i,j,k,nrhs)+ &
1253 & tl_u_stokes(i,j ,k)+ &
1254 & tl_u_stokes(i,j-1,k)+ &
1256 & tl_u(i,j-1,k,nrhs)
1257 cff2=hvom(i,j,k)+hvom(i-1,j,k)
1258 tl_cff2=tl_hvom(i,j,k)+tl_hvom(i-1,j,k)
1259 IF (cff2.gt.0.0_r8)
THEN
1261 tl_cff=tl_uee(i,j-1)
1266 ufe(i,j)=0.25_r8*(cff1+gadv*cff)* &
1267 & (cff2+gadv*0.5_r8*(hvxx(i ,j)+ &
1269 tl_ufe(i,j)=0.25_r8* &
1270 & ((tl_cff1+gadv*tl_cff)* &
1271 & (cff2+gadv*0.5_r8*(hvxx(i ,j)+ &
1273 & (cff1+gadv*cff)* &
1274 & (tl_cff2+gadv*0.5_r8*(tl_hvxx(i ,j)+ &
1275 & tl_hvxx(i-1,j))))- &
1284 vxx(i,j)=v(i-1,j,k,nrhs)-2.0_r8*v(i,j,k,nrhs)+ &
1286 & v_stokes(i-1,j,k)-2.0_r8*v_stokes(i,j,k)+ &
1287 & v_stokes(i+1,j,k)+ &
1290 tl_vxx(i,j)=tl_v(i-1,j,k,nrhs)-2.0_r8*tl_v(i,j,k,nrhs)+ &
1292 & tl_v_stokes(i-1,j,k)-2.0_r8*tl_v_stokes(i,j,k)+ &
1293 & tl_v_stokes(i+1,j,k)+ &
1295 & tl_v(i+1,j,k,nrhs)
1299 IF (
domain(ng)%Western_Edge(tile))
THEN
1301 vxx(istr-1,j)=vxx(istr,j)
1302 tl_vxx(istr-1,j)=tl_vxx(istr,j)
1307 IF (
domain(ng)%Eastern_Edge(tile))
THEN
1309 vxx(iend+1,j)=vxx(iend,j)
1310 tl_vxx(iend+1,j)=tl_vxx(iend,j)
1316 huee(i,j)=huon(i,j-1,k)-2.0_r8*huon(i,j,k)+huon(i,j+1,k)
1317 tl_huee(i,j)=tl_huon(i,j-1,k)-2.0_r8*tl_huon(i,j,k)+ &
1321# ifdef UV_C4ADVECTION
1328 vfx(i,j)=0.25_r8*(v(i ,j,k,nrhs)+ &
1330 & v_stokes(i ,j,k)+ &
1331 & v_stokes(i-1,j,k)+ &
1333 & v(i-1,j,k,nrhs)- &
1338 & cff*(huee(i,j )+ &
1340 tl_vfx(i,j)=0.25_r8*((tl_v(i ,j,k,nrhs)+ &
1342 & tl_v_stokes(i ,j,k)+ &
1343 & tl_v_stokes(i-1,j,k)+ &
1345 & tl_v(i-1,j,k,nrhs)- &
1346 & cff*(tl_vxx(i ,j)+ &
1347 & tl_vxx(i-1,j)))* &
1350 & cff*(huee(i,j )+ &
1352 & (v(i ,j,k,nrhs)+ &
1354 & v_stokes(i ,j,k)+ &
1355 & v_stokes(i-1,j,k)+ &
1357 & v(i-1,j,k,nrhs)- &
1360 & (tl_huon(i,j ,k)+ &
1361 & tl_huon(i,j-1,k)- &
1362 & cff*(tl_huee(i,j )+ &
1363 & tl_huee(i,j-1))))- &
1376 cff1=v(i ,j,k,nrhs)+ &
1378 & v_stokes(i ,j,k)+ &
1379 & v_stokes(i-1,j,k)+ &
1382 tl_cff1=tl_v(i ,j,k,nrhs)+ &
1384 & tl_v_stokes(i ,j,k)+ &
1385 & tl_v_stokes(i-1,j,k)+ &
1387 & tl_v(i-1,j,k,nrhs)
1388 cff2=huon(i,j,k)+huon(i,j-1,k)
1389 tl_cff2=tl_huon(i,j,k)+tl_huon(i,j-1,k)
1390 IF (cff2.gt.0.0_r8)
THEN
1392 tl_cff=tl_vxx(i-1,j)
1397 vfx(i,j)=0.25_r8*(cff1+gadv*cff)* &
1398 & (cff2+gadv*0.5_r8*(huee(i,j )+ &
1400 tl_vfx(i,j)=0.25_r8* &
1401 & ((tl_cff1+gadv*tl_cff)* &
1402 & (cff2+gadv*0.5_r8*(huee(i,j )+ &
1404 & (cff1+gadv*cff)* &
1405 & (tl_cff2+gadv*0.5_r8*(tl_huee(i,j )+ &
1406 & tl_huee(i,j-1))))- &
1415 vee(i,j)=v(i,j-1,k,nrhs)-2.0_r8*v(i,j,k,nrhs)+ &
1417 & v_stokes(i,j-1,k)-2.0_r8*v_stokes(i,j,k)+ &
1418 & v_stokes(i,j+1,k)+ &
1421 tl_vee(i,j)=tl_v(i,j-1,k,nrhs)-2.0_r8*tl_v(i,j,k,nrhs)+ &
1423 & tl_v_stokes(i,j-1,k)-2.0_r8*tl_v_stokes(i,j,k)+ &
1424 & tl_v_stokes(i,j+1,k)+ &
1426 & tl_v(i,j+1,k,nrhs)
1427 hvee(i,j)=hvom(i,j-1,k)-2.0_r8*hvom(i,j,k)+hvom(i,j+1,k)
1428 tl_hvee(i,j)=tl_hvom(i,j-1,k)-2.0_r8*tl_hvom(i,j,k)+ &
1433 IF (
domain(ng)%Southern_Edge(tile))
THEN
1435 vee(i,jstr)=vee(i,jstr+1)
1436 tl_vee(i,jstr)=tl_vee(i,jstr+1)
1437 hvee(i,jstr)=hvee(i,jstr+1)
1438 tl_hvee(i,jstr)=tl_hvee(i,jstr+1)
1443 IF (
domain(ng)%Northern_Edge(tile))
THEN
1445 vee(i,jend+1)=vee(i,jend)
1446 tl_vee(i,jend+1)=tl_vee(i,jend)
1447 hvee(i,jend+1)=hvee(i,jend)
1448 tl_hvee(i,jend+1)=tl_hvee(i,jend)
1452# ifdef UV_C4ADVECTION
1456 vfe(i,j)=0.25_r8*(v(i,j,k,nrhs)+ &
1458 & v_stokes(i,j ,k)+ &
1459 & v_stokes(i,j+1,k)+ &
1461 & v(i,j+1,k,nrhs)- &
1466 & cff*(hvee(i,j )+ &
1468 tl_vfe(i,j)=0.25_r8*((tl_v(i,j ,k,nrhs)+ &
1470 & tl_v_stokes(i,j ,k)+ &
1471 & tl_v_stokes(i,j+1,k)+ &
1473 & tl_v(i,j+1,k,nrhs)- &
1474 & cff*(tl_vee(i,j )+ &
1475 & tl_vee(i,j+1)))* &
1478 & cff*(hvee(i,j )+ &
1480 & (v(i,j ,k,nrhs)+ &
1482 & v_stokes(i,j ,k)+ &
1483 & v_stokes(i,j+1,k)+ &
1485 & v(i,j+1,k,nrhs)- &
1488 & (tl_hvom(i,j ,k)+ &
1489 & tl_hvom(i,j+1,k)- &
1490 & cff*(tl_hvee(i,j )+ &
1491 & tl_hvee(i,j+1))))- &
1500 cff1=v(i,j ,k,nrhs)+ &
1502 & v_stokes(i,j ,k)+ &
1503 & v_stokes(i,j+1,k)+ &
1506 tl_cff1=tl_v(i,j ,k,nrhs)+ &
1508 & tl_v_stokes(i,j ,k)+ &
1509 & tl_v_stokes(i,j+1,k)+ &
1511 & tl_v(i,j+1,k,nrhs)
1512 IF (cff1.gt.0.0_r8)
THEN
1517 tl_cff=tl_vee(i,j+1)
1519 vfe(i,j)=0.25_r8*(cff1+gadv*cff)* &
1522 & gadv*0.5_r8*(hvee(i,j )+ &
1524 tl_vfe(i,j)=0.25_r8* &
1525 & ((tl_cff1+gadv*tl_cff)* &
1528 & gadv*0.5_r8*(hvee(i,j )+ &
1530 & (cff1+gadv*cff)* &
1531 & (tl_hvom(i,j ,k)+ &
1532 & tl_hvom(i,j+1,k)+ &
1533 & gadv*0.5_r8*(tl_hvee(i,j )+ &
1534 & tl_hvee(i,j+1))))- &
1549 tl_cff1=tl_ufx(i,j)-tl_ufx(i-1,j)
1552 tl_cff2=tl_ufe(i,j+1)-tl_ufe(i,j)
1555 tl_cff=tl_cff1+tl_cff2
1558 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)-tl_cff
1559# ifdef DIAGNOSTICS_UV
1576 tl_cff1=tl_vfx(i+1,j)-tl_vfx(i,j)
1579 tl_cff2=tl_vfe(i,j)-tl_vfe(i,j-1)
1582 tl_cff=tl_cff1+tl_cff2
1585 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)-tl_cff
1586# ifdef DIAGNOSTICS_UV
1612 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)- &
1613 & tl_rustr3d(i,j,k)*om_u(i,j)*on_u(i,j)- &
1623 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)- &
1624 & tl_rvstr3d(i,j,k)*om_v(i,j)*on_v(i,j)- &
1632 j_loop :
DO j=jstr,jend
1639# ifdef UV_SADVECTION
1648 dc(i,k)=cff1*(hz(i ,j,k)+ &
1650 & cff2*(hz(i+1,j,k)+ &
1660 cff=1.0_r8/(2.0_r8*dc(i,k+1)+dc(i,k)*(2.0_r8-fc(i,k-1)))
1661 fc(i,k)=cff*dc(i,k+1)
1662 cf(i,k)=cff*(6.0_r8*(u(i,j,k+1,nrhs)- &
1664 & u_stokes(i,j,k )+ &
1665 & u_stokes(i,j,k+1)- &
1667 & u(i,j,k ,nrhs))- &
1668 & dc(i,k)*cf(i,k-1))
1676 cf(i,k)=cf(i,k)-fc(i,k)*cf(i,k+1)
1687 dc(i,k)=cff1*(hz(i ,j,k)+ &
1689 & cff2*(hz(i+1,j,k)+ &
1691 tl_dc(i,k)=cff1*(tl_hz(i ,j,k)+ &
1692 & tl_hz(i-1,j,k))- &
1693 & cff2*(tl_hz(i+1,j,k)+ &
1703 cff=1.0_r8/(2.0_r8*dc(i,k+1)+dc(i,k)*(2.0_r8-fc(i,k-1)))
1704 fc(i,k)=cff*dc(i,k+1)
1706 tl_cf(i,k)=cff*(6.0_r8*(tl_u(i,j,k+1,nrhs)- &
1708 & tl_u_stokes(i,j,k )+ &
1709 & tl_u_stokes(i,j,k+1)- &
1711 & tl_u(i,j,k ,nrhs))- &
1712 & ((tl_dc(i,k)-dc(i,k))*cf(i,k-1)+ &
1713 & 2.0_r8*(tl_dc(i,k )-dc(i,k )+ &
1714 & tl_dc(i,k+1)-dc(i,k+1))*cf(i,k)+ &
1715 & (tl_dc(i,k+1)-dc(i,k+1))*cf(i,k+1))- &
1716 & dc(i,k)*tl_cf(i,k-1))
1718 tl_cf(i,k)=cff*(6.0_r8*(tl_u(i,j,k+1,nrhs)- &
1720 & tl_u_stokes(i,j,k )+ &
1721 & tl_u_stokes(i,j,k+1)- &
1723 & tl_u(i,j,k ,nrhs))- &
1724 & (tl_dc(i,k)*cf(i,k-1)+ &
1725 & 2.0_r8*(tl_dc(i,k)+tl_dc(i,k+1))*cf(i,k)+ &
1726 & tl_dc(i,k+1)*cf(i,k+1))- &
1727 & dc(i,k)*tl_cf(i,k-1))
1732 tl_cf(i,n(ng))=0.0_r8
1736 tl_cf(i,k)=tl_cf(i,k)-fc(i,k)*tl_cf(i,k+1)
1746 fc(i,k)=(cff1*(w(i ,j,k)+ &
1748 & cff2*(w(i+1,j,k)+ &
1752 & u_stokes(i,j,k)+ &
1754 & dc(i,k)*(cff3*cf(i,k )+ &
1756 tl_fc(i,k)=(cff1*(tl_w(i ,j,k)+ &
1758 & cff2*(tl_w(i+1,j,k)+ &
1759 & tl_w(i-2,j,k)))* &
1762 & u_stokes(i,j,k)+ &
1764 & dc(i,k)*(cff3*cf(i,k )+ &
1765 & cff4*cf(i,k-1)))+ &
1766 & (cff1*(w(i ,j,k)+ &
1768 & cff2*(w(i+1,j,k)+ &
1770 & (tl_u(i,j,k,nrhs)+ &
1772 & tl_u_stokes(i,j,k)+ &
1774 & dc(i,k)*(cff3*tl_cf(i,k )+ &
1775 & cff4*tl_cf(i,k-1))+ &
1776 & tl_dc(i,k)*(cff3*cf(i,k )+ &
1777 & cff4*cf(i,k-1)))- &
1779 & 2.0_r8*fc(i,k)+(cff1*(w(i ,j,k)+ &
1781 & cff2*(w(i+1,j,k)+ &
1784 & (u(i,j,k,nrhs)+u_stokes(i,j,k))
1794 tl_fc(i,n(ng))=0.0_r8
1799# elif defined UV_C2ADVECTION
1802 fc(i,k)=0.25_r8*(u(i,j,k ,nrhs)+ &
1804 & u_stokes(i,j,k )+ &
1805 & u_stokes(i,j,k+1)+ &
1807 & u(i,j,k+1,nrhs))* &
1810 tl_fc(i,k)=0.25_r8*((tl_u(i,j,k ,nrhs)+ &
1812 & tl_u_stokes(i,j,k )+ &
1813 & tl_u_stokes(i,j,k+1)+ &
1815 & tl_u(i,j,k+1,nrhs))* &
1818 & (u(i,j,k ,nrhs)+ &
1820 & u_stokes(i,j,k )+ &
1821 & u_stokes(i,j,k+1)+ &
1823 & u(i,j,k+1,nrhs))* &
1825 & tl_w(i-1,j,k)))- &
1837 tl_fc(i,n(ng))=0.0_r8
1839# elif defined UV_C4ADVECTION
1844 fc(i,k)=(cff1*(u(i,j,k ,nrhs)+ &
1846 & u_stokes(i,j,k )+ &
1847 & u_stokes(i,j,k+1)+ &
1849 & u(i,j,k+1,nrhs))- &
1850 & cff2*(u(i,j,k-1,nrhs)+ &
1852 & u_stokes(i,j,k-1)+ &
1853 & u_stokes(i,j,k+2)+ &
1855 & u(i,j,k+2,nrhs)))* &
1858 tl_fc(i,k)=(cff1*(tl_u(i,j,k ,nrhs)+ &
1860 & tl_u_stokes(i,j,k )+ &
1861 & tl_u_stokes(i,j,k+1)+ &
1863 & tl_u(i,j,k+1,nrhs))- &
1864 & cff2*(tl_u(i,j,k-1,nrhs)+ &
1866 & tl_u_stokes(i,j,k-1)+ &
1867 & tl_u_stokes(i,j,k+2)+ &
1869 & tl_u(i,j,k+2,nrhs)))* &
1872 & (cff1*(u(i,j,k ,nrhs)+ &
1874 & u_stokes(i,j,k )+ &
1875 & u_stokes(i,j,k+1)+ &
1877 & u(i,j,k+1,nrhs))- &
1878 & cff2*(u(i,j,k-1,nrhs)+ &
1880 & u_stokes(i,j,k-1)+ &
1881 & u_stokes(i,j,k+2)+ &
1883 & u(i,j,k+2,nrhs)))* &
1894 tl_fc(i,n(ng))=0.0_r8
1895 fc(i,n(ng)-1)=(cff1*(u(i,j,n(ng)-1,nrhs)+ &
1897 & u_stokes(i,j,n(ng)-1)+ &
1898 & u_stokes(i,j,n(ng) )+ &
1900 & u(i,j,n(ng) ,nrhs))- &
1901 & cff2*(u(i,j,n(ng)-2,nrhs)+ &
1903 & u_stokes(i,j,n(ng)-2)+ &
1904 & u_stokes(i,j,n(ng) )+ &
1906 & u(i,j,n(ng) ,nrhs)))* &
1907 & (w(i ,j,n(ng)-1)+ &
1909 tl_fc(i,n(ng)-1)=(cff1*(tl_u(i,j,n(ng)-1,nrhs)+ &
1911 & tl_u_stokes(i,j,n(ng)-1)+ &
1912 & tl_u_stokes(i,j,n(ng) )+ &
1914 & tl_u(i,j,n(ng) ,nrhs))- &
1915 & cff2*(tl_u(i,j,n(ng)-2,nrhs)+ &
1917 & tl_u_stokes(i,j,n(ng)-2)+ &
1918 & tl_u_stokes(i,j,n(ng) )+ &
1920 & tl_u(i,j,n(ng) ,nrhs)))* &
1921 & (w(i ,j,n(ng)-1)+ &
1922 & w(i-1,j,n(ng)-1))+ &
1923 & (cff1*(u(i,j,n(ng)-1,nrhs)+ &
1925 & u_stokes(i,j,n(ng)-1)+ &
1926 & u_stokes(i,j,n(ng) )+ &
1928 & u(i,j,n(ng) ,nrhs))- &
1929 & cff2*(u(i,j,n(ng)-2,nrhs)+ &
1931 & u_stokes(i,j,n(ng)-2)+ &
1932 & u_stokes(i,j,n(ng) )+ &
1934 & u(i,j,n(ng) ,nrhs)))* &
1935 & (tl_w(i ,j,n(ng)-1)+ &
1936 & tl_w(i-1,j,n(ng)-1))- &
1940 fc(i,1)=(cff1*(u(i,j,1,nrhs)+ &
1942 & u_stokes(i,j,1)+ &
1943 & u_stokes(i,j,2)+ &
1946 & cff2*(u(i,j,1,nrhs)+ &
1948 & u_stokes(i,j,1)+ &
1949 & u_stokes(i,j,3)+ &
1951 & u(i,j,3,nrhs)))* &
1954 tl_fc(i,1)=(cff1*(tl_u(i,j,1,nrhs)+ &
1956 & tl_u_stokes(i,j,1)+ &
1957 & tl_u_stokes(i,j,2)+ &
1959 & tl_u(i,j,2,nrhs))- &
1960 & cff2*(tl_u(i,j,1,nrhs)+ &
1962 & tl_u_stokes(i,j,1)+ &
1963 & tl_u_stokes(i,j,3)+ &
1965 & tl_u(i,j,3,nrhs)))* &
1968 & (cff1*(u(i,j,1,nrhs)+ &
1970 & u_stokes(i,j,1)+ &
1971 & u_stokes(i,j,2)+ &
1974 & cff2*(u(i,j,1,nrhs)+ &
1976 & u_stokes(i,j,1)+ &
1977 & u_stokes(i,j,3)+ &
1979 & u(i,j,3,nrhs)))* &
1994 fc(i,k)=(cff1*(u(i,j,k ,nrhs)+ &
1996 & u_stokes(i,j,k )+ &
1997 & u_stokes(i,j,k+1)+ &
1999 & u(i,j,k+1,nrhs))- &
2000 & cff2*(u(i,j,k-1,nrhs)+ &
2002 & u_stokes(i,j,k-1)+ &
2003 & u_stokes(i,j,k+2)+ &
2005 & u(i,j,k+2,nrhs)))* &
2006 & (cff1*(w(i ,j,k)+ &
2008 & cff2*(w(i+1,j,k)+ &
2010 tl_fc(i,k)=(cff1*(tl_u(i,j,k ,nrhs)+ &
2012 & tl_u_stokes(i,j,k )+ &
2013 & tl_u_stokes(i,j,k+1)+ &
2015 & tl_u(i,j,k+1,nrhs))- &
2016 & cff2*(tl_u(i,j,k-1,nrhs)+ &
2018 & tl_u_stokes(i,j,k-1)+ &
2019 & tl_u_stokes(i,j,k+2)+ &
2021 & tl_u(i,j,k+2,nrhs)))* &
2022 & (cff1*(w(i ,j,k)+ &
2024 & cff2*(w(i+1,j,k)+ &
2026 & (cff1*(u(i,j,k ,nrhs)+ &
2028 & u_stokes(i,j,k )+ &
2029 & u_stokes(i,j,k+1)+ &
2031 & u(i,j,k+1,nrhs))- &
2032 & cff2*(u(i,j,k-1,nrhs)+ &
2034 & u_stokes(i,j,k-1)+ &
2035 & u_stokes(i,j,k+2)+ &
2037 & u(i,j,k+2,nrhs)))* &
2038 & (cff1*(tl_w(i ,j,k)+ &
2040 & cff2*(tl_w(i+1,j,k)+ &
2041 & tl_w(i-2,j,k)))- &
2050 tl_fc(i,n(ng))=0.0_r8
2051 fc(i,n(ng)-1)=(cff1*(u(i,j,n(ng)-1,nrhs)+ &
2053 & u_stokes(i,j,n(ng)-1)+ &
2054 & u_stokes(i,j,n(ng) )+ &
2056 & u(i,j,n(ng) ,nrhs))- &
2057 & cff2*(u(i,j,n(ng)-2,nrhs)+ &
2059 & u_stokes(i,j,n(ng)-2)+ &
2060 & u_stokes(i,j,n(ng) )+ &
2062 & u(i,j,n(ng) ,nrhs)))* &
2063 & (cff1*(w(i ,j,n(ng)-1)+ &
2064 & w(i-1,j,n(ng)-1))- &
2065 & cff2*(w(i+1,j,n(ng)-1)+ &
2066 & w(i-2,j,n(ng)-1)))
2067 tl_fc(i,n(ng)-1)=(cff1*(tl_u(i,j,n(ng)-1,nrhs)+ &
2069 & tl_u_stokes(i,j,n(ng)-1)+ &
2070 & tl_u_stokes(i,j,n(ng) )+ &
2072 & tl_u(i,j,n(ng) ,nrhs))- &
2073 & cff2*(tl_u(i,j,n(ng)-2,nrhs)+ &
2075 & tl_u_stokes(i,j,n(ng)-2)+ &
2076 & tl_u_stokes(i,j,n(ng) )+ &
2078 & tl_u(i,j,n(ng) ,nrhs)))* &
2079 & (cff1*(w(i ,j,n(ng)-1)+ &
2080 & w(i-1,j,n(ng)-1))- &
2081 & cff2*(w(i+1,j,n(ng)-1)+ &
2082 & w(i-2,j,n(ng)-1)))+ &
2083 & (cff1*(u(i,j,n(ng)-1,nrhs)+ &
2085 & u_stokes(i,j,n(ng)-1)+ &
2086 & u_stokes(i,j,n(ng) )+ &
2088 & u(i,j,n(ng) ,nrhs))- &
2089 & cff2*(u(i,j,n(ng)-2,nrhs)+ &
2091 & u_stokes(i,j,n(ng)-2)+ &
2092 & u_stokes(i,j,n(ng) )+ &
2094 & u(i,j,n(ng) ,nrhs)))* &
2095 & (cff1*(tl_w(i ,j,n(ng)-1)+ &
2096 & tl_w(i-1,j,n(ng)-1))- &
2097 & cff2*(tl_w(i+1,j,n(ng)-1)+ &
2098 & tl_w(i-2,j,n(ng)-1)))- &
2102 fc(i,1)=(cff1*(u(i,j,1,nrhs)+ &
2104 & u_stokes(i,j,1)+ &
2105 & u_stokes(i,j,2)+ &
2108 & cff2*(u(i,j,1,nrhs)+ &
2110 & u_stokes(i,j,1)+ &
2111 & u_stokes(i,j,3)+ &
2113 & u(i,j,3,nrhs)))* &
2114 & (cff1*(w(i ,j,1)+ &
2116 & cff2*(w(i+1,j,1)+ &
2118 tl_fc(i,1)=(cff1*(tl_u(i,j,1,nrhs)+ &
2120 & tl_u_stokes(i,j,1)+ &
2121 & tl_u_stokes(i,j,2)+ &
2123 & tl_u(i,j,2,nrhs))- &
2124 & cff2*(tl_u(i,j,1,nrhs)+ &
2126 & tl_u_stokes(i,j,1)+ &
2127 & tl_u_stokes(i,j,3)+ &
2129 & tl_u(i,j,3,nrhs)))* &
2130 & (cff1*(w(i ,j,1)+ &
2132 & cff2*(w(i+1,j,1)+ &
2134 & (cff1*(u(i,j,1,nrhs)+ &
2136 & u_stokes(i,j,1)+ &
2137 & u_stokes(i,j,2)+ &
2140 & cff2*(u(i,j,1,nrhs)+ &
2142 & u_stokes(i,j,1)+ &
2143 & u_stokes(i,j,3)+ &
2145 & u(i,j,3,nrhs)))* &
2146 & (cff1*(tl_w(i ,j,1)+ &
2148 & cff2*(tl_w(i+1,j,1)+ &
2149 & tl_w(i-2,j,1)))- &
2162 tl_cff=tl_fc(i,k)-tl_fc(i,k-1)
2165 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)-tl_cff
2166# ifdef DIAGNOSTICS_UV
2171 IF (j.ge.jstrv)
THEN
2172# ifdef UV_SADVECTION
2181 dc(i,k)=(cff1*(hz(i,j ,k)+ &
2183 & cff2*(hz(i,j+1,k)+ &
2193 cff=1.0_r8/(2.0_r8*dc(i,k+1)+dc(i,k)*(2.0_r8-fc(i,k-1)))
2194 fc(i,k)=cff*dc(i,k+1)
2195 cf(i,k)=cff*(6.0_r8*(v(i,j,k+1,nrhs)- &
2197 & v_stokes(i,j,k )+ &
2198 & v_stokes(i,j,k+1)- &
2200 & v(i,j,k ,nrhs))- &
2201 & dc(i,k)*cf(i,k-1))
2209 cf(i,k)=cf(i,k)-fc(i,k)*cf(i,k+1)
2220 dc(i,k)=(cff1*(hz(i,j ,k)+ &
2222 & cff2*(hz(i,j+1,k)+ &
2224 tl_dc(i,k)=(cff1*(tl_hz(i,j ,k)+ &
2225 & tl_hz(i,j-1,k))- &
2226 & cff2*(tl_hz(i,j+1,k)+ &
2236 cff=1.0_r8/(2.0_r8*dc(i,k+1)+dc(i,k)*(2.0_r8-fc(i,k-1)))
2237 fc(i,k)=cff*dc(i,k+1)
2239 tl_cf(i,k)=cff*(6.0_r8*(tl_v(i,j,k+1,nrhs)- &
2241 & tl_v_stokes(i,j,k )+ &
2242 & tl_v_stokes(i,j,k+1)- &
2244 & tl_v(i,j,k ,nrhs))- &
2245 & ((tl_dc(i,k)-dc(i,k))*cf(i,k-1)+ &
2246 & 2.0_r8*(tl_dc(i,k )-dc(i,k )+ &
2247 & tl_dc(i,k+1)-dc(i,k+1))*cf(i,k)+ &
2248 & (tl_dc(i,k+1)-dc(i,k+1))*cf(i,k+1))- &
2249 & dc(i,k)*tl_cf(i,k-1))
2251 tl_cf(i,k)=cff*(6.0_r8*(tl_v(i,j,k+1,nrhs)- &
2253 & tl_v_stokes(i,j,k )+ &
2254 & tl_v_stokes(i,j,k+1)- &
2256 & tl_v(i,j,k ,nrhs))- &
2257 & (tl_dc(i,k)*cf(i,k-1)+ &
2258 & 2.0_r8*(tl_dc(i,k )+ &
2259 & tl_dc(i,k+1))*cf(i,k)+ &
2260 & tl_dc(i,k+1)*cf(i,k+1))- &
2261 & dc(i,k)*tl_cf(i,k-1))
2266 tl_cf(i,n(ng))=0.0_r8
2270 tl_cf(i,k)=tl_cf(i,k)-fc(i,k)*tl_cf(i,k+1)
2280 fc(i,k)=(cff1*(w(i,j ,k)+ &
2282 & cff2*(w(i,j+1,k)+ &
2286 & v_stokes(i,j,k)+ &
2288 & dc(i,k)*(cff3*cf(i,k )+ &
2290 tl_fc(i,k)=(cff1*(tl_w(i,j ,k)+ &
2292 & cff2*(tl_w(i,j+1,k)+ &
2293 & tl_w(i,j-2,k)))* &
2296 & v_stokes(i,j,k)+ &
2298 & dc(i,k)*(cff3*cf(i,k )+ &
2299 & cff4*cf(i,k-1)))+ &
2300 & (cff1*(w(i,j ,k)+ &
2302 & cff2*(w(i,j+1,k)+ &
2304 & (tl_v(i,j,k,nrhs)+ &
2306 & tl_v_stokes(i,j,k)+ &
2308 & dc(i,k)*(cff3*tl_cf(i,k )+ &
2309 & cff4*tl_cf(i,k-1))+ &
2310 & tl_dc(i,k)*(cff3*cf(i,k )+ &
2311 & cff4*cf(i,k-1)))- &
2313 & 2.0_r8*fc(i,k)+(cff1*(w(i,j ,k)+ &
2315 & cff2*(w(i,j+1,k)+ &
2318 & (v(i,j,k,nrhs)+v_stokes(i,j,k))
2328 tl_fc(i,n(ng))=0.0_r8
2333# elif defined UV_C2ADVECTION
2339 fc(i,k)=0.25_r8*(v(i,j,k ,nrhs)+ &
2341 & v_stokes(i,j,k )+ &
2342 & v_stokes(i,j,k+1)+ &
2344 & v(i,j,k+1,nrhs))* &
2347 tl_fc(i,k)=0.25_r8*((tl_v(i,j,k ,nrhs)+ &
2349 & tl_v_stokes(i,j,k )+ &
2350 & tl_v_stokes(i,j,k+1)+ &
2352 & tl_v(i,j,k+1,nrhs))* &
2355 & (v(i,j,k ,nrhs)+ &
2357 & v_stokes(i,j,k )+ &
2358 & v_stokes(i,j,k+1)+ &
2360 & v(i,j,k+1,nrhs))* &
2362 & tl_w(i,j-1,k)))- &
2374 tl_fc(i,n(ng))=0.0_r8
2376# elif defined UV_C4ADVECTION
2384 fc(i,k)=(cff1*(v(i,j,k ,nrhs)+ &
2386 & v_stokes(i,j,k )+ &
2387 & v_stokes(i,j,k+1)+ &
2389 & v(i,j,k+1,nrhs))- &
2390 & cff2*(v(i,j,k-1,nrhs)+ &
2392 & v_stokes(i,j,k-1)+ &
2393 & v_stokes(i,j,k+2)+ &
2395 & v(i,j,k+2,nrhs)))* &
2398 tl_fc(i,k)=(cff1*(tl_v(i,j,k ,nrhs)+ &
2400 & tl_v_stokes(i,j,k )+ &
2401 & tl_v_stokes(i,j,k+1)+ &
2403 & tl_v(i,j,k+1,nrhs))- &
2404 & cff2*(tl_v(i,j,k-1,nrhs)+ &
2406 & tl_v_stokes(i,j,k-1)+ &
2407 & tl_v_stokes(i,j,k+2)+ &
2409 & tl_v(i,j,k+2,nrhs)))* &
2412 & (cff1*(v(i,j,k ,nrhs)+ &
2414 & v_stokes(i,j,k )+ &
2415 & v_stokes(i,j,k+1)+ &
2417 & v(i,j,k+1,nrhs))- &
2418 & cff2*(v(i,j,k-1,nrhs)+ &
2420 & v_stokes(i,j,k-1)+ &
2421 & v_stokes(i,j,k+2)+ &
2423 & v(i,j,k+2,nrhs)))* &
2434 tl_fc(i,n(ng))=0.0_r8
2435 fc(i,n(ng)-1)=(cff1*(v(i,j,n(ng)-1,nrhs)+ &
2437 & v_stokes(i,j,n(ng)-1)+ &
2438 & v_stokes(i,j,n(ng) )+ &
2440 & v(i,j,n(ng) ,nrhs))- &
2441 & cff2*(v(i,j,n(ng)-2,nrhs)+ &
2443 & v_stokes(i,j,n(ng)-2)+ &
2444 & v_stokes(i,j,n(ng) )+ &
2446 & v(i,j,n(ng) ,nrhs)))* &
2447 & (w(i,j ,n(ng)-1)+ &
2449 tl_fc(i,n(ng)-1)=(cff1*(tl_v(i,j,n(ng)-1,nrhs)+ &
2451 & tl_v_stokes(i,j,n(ng)-1)+ &
2452 & tl_v_stokes(i,j,n(ng) )+ &
2454 & tl_v(i,j,n(ng) ,nrhs))- &
2455 & cff2*(tl_v(i,j,n(ng)-2,nrhs)+ &
2457 & tl_v_stokes(i,j,n(ng)-2)+ &
2458 & tl_v_stokes(i,j,n(ng) )+ &
2460 & tl_v(i,j,n(ng) ,nrhs)))* &
2461 & (w(i,j ,n(ng)-1)+ &
2462 & w(i,j-1,n(ng)-1))+ &
2463 & (cff1*(v(i,j,n(ng)-1,nrhs)+ &
2465 & v_stokes(i,j,n(ng)-1)+ &
2466 & v_stokes(i,j,n(ng) )+ &
2468 & v(i,j,n(ng) ,nrhs))- &
2469 & cff2*(v(i,j,n(ng)-2,nrhs)+ &
2471 & v_stokes(i,j,n(ng)-2)+ &
2472 & v_stokes(i,j,n(ng) )+ &
2474 & v(i,j,n(ng) ,nrhs)))* &
2475 & (tl_w(i,j ,n(ng)-1)+ &
2476 & tl_w(i,j-1,n(ng)-1))- &
2480 fc(i,1)=(cff1*(v(i,j,1,nrhs)+ &
2482 & v_stokes(i,j,1)+ &
2483 & v_stokes(i,j,2)+ &
2486 & cff2*(v(i,j,1,nrhs)+ &
2488 & v_stokes(i,j,1)+ &
2489 & v_stokes(i,j,3)+ &
2491 & v(i,j,3,nrhs)))* &
2494 tl_fc(i,1)=(cff1*(tl_v(i,j,1,nrhs)+ &
2496 & tl_v_stokes(i,j,1)+ &
2497 & tl_v_stokes(i,j,2)+ &
2499 & tl_v(i,j,2,nrhs))- &
2500 & cff2*(tl_v(i,j,1,nrhs)+ &
2502 & tl_v_stokes(i,j,1)+ &
2503 & tl_v_stokes(i,j,3)+ &
2505 & tl_v(i,j,3,nrhs)))* &
2508 & (cff1*(v(i,j,1,nrhs)+ &
2510 & v_stokes(i,j,1)+ &
2511 & v_stokes(i,j,2)+ &
2514 & cff2*(v(i,j,1,nrhs)+ &
2516 & v_stokes(i,j,1)+ &
2517 & v_stokes(i,j,3)+ &
2519 & v(i,j,3,nrhs)))* &
2534 fc(i,k)=(cff1*(v(i,j,k ,nrhs)+ &
2536 & v_stokes(i,j,k )+ &
2537 & v_stokes(i,j,k+1)+ &
2539 & v(i,j,k+1,nrhs))- &
2540 & cff2*(v(i,j,k-1,nrhs)+ &
2542 & v_stokes(i,j,k-1)+ &
2543 & v_stokes(i,j,k+2)+ &
2545 & v(i,j,k+2,nrhs)))* &
2546 & (cff1*(w(i,j ,k)+ &
2548 & cff2*(w(i,j+1,k)+ &
2550 tl_fc(i,k)=(cff1*(tl_v(i,j,k ,nrhs)+ &
2552 & tl_v_stokes(i,j,k )+ &
2553 & tl_v_stokes(i,j,k+1)+ &
2555 & tl_v(i,j,k+1,nrhs))- &
2556 & cff2*(tl_v(i,j,k-1,nrhs)+ &
2558 & tl_v_stokes(i,j,k-1)+ &
2559 & tl_v_stokes(i,j,k+2)+ &
2561 & tl_v(i,j,k+2,nrhs)))* &
2562 & (cff1*(w(i,j ,k)+ &
2564 & cff2*(w(i,j+1,k)+ &
2566 & (cff1*(v(i,j,k ,nrhs)+ &
2568 & v_stokes(i,j,k )+ &
2569 & v_stokes(i,j,k+1)+ &
2571 & v(i,j,k+1,nrhs))- &
2572 & cff2*(v(i,j,k-1,nrhs)+ &
2574 & v_stokes(i,j,k-1)+ &
2575 & v_stokes(i,j,k+2)+ &
2577 & v(i,j,k+2,nrhs)))* &
2578 & (cff1*(tl_w(i,j ,k)+ &
2580 & cff2*(tl_w(i,j+1,k)+ &
2581 & tl_w(i,j-2,k)))- &
2590 tl_fc(i,n(ng))=0.0_r8
2591 fc(i,n(ng)-1)=(cff1*(v(i,j,n(ng)-1,nrhs)+ &
2593 & v_stokes(i,j,n(ng)-1)+ &
2594 & v_stokes(i,j,n(ng) )+ &
2596 & v(i,j,n(ng) ,nrhs))- &
2597 & cff2*(v(i,j,n(ng)-2,nrhs)+ &
2599 & v_stokes(i,j,n(ng)-2)+ &
2600 & v_stokes(i,j,n(ng) )+ &
2602 & v(i,j,n(ng) ,nrhs)))* &
2603 & (cff1*(w(i,j ,n(ng)-1)+ &
2604 & w(i,j-1,n(ng)-1))- &
2605 & cff2*(w(i,j+1,n(ng)-1)+ &
2606 & w(i,j-2,n(ng)-1)))
2607 tl_fc(i,n(ng)-1)=(cff1*(tl_v(i,j,n(ng)-1,nrhs)+ &
2609 & tl_v_stokes(i,j,n(ng)-1)+ &
2610 & tl_v_stokes(i,j,n(ng) )+ &
2612 & tl_v(i,j,n(ng) ,nrhs))- &
2613 & cff2*(tl_v(i,j,n(ng)-2,nrhs)+ &
2615 & tl_v_stokes(i,j,n(ng)-2)+ &
2616 & tl_v_stokes(i,j,n(ng) )+ &
2618 & tl_v(i,j,n(ng) ,nrhs)))* &
2619 & (cff1*(w(i,j ,n(ng)-1)+ &
2620 & w(i,j-1,n(ng)-1))- &
2621 & cff2*(w(i,j+1,n(ng)-1)+ &
2622 & w(i,j-2,n(ng)-1)))+ &
2623 & (cff1*(v(i,j,n(ng)-1,nrhs)+ &
2625 & v_stokes(i,j,n(ng)-1)+ &
2626 & v_stokes(i,j,n(ng) )+ &
2628 & v(i,j,n(ng) ,nrhs))- &
2629 & cff2*(v(i,j,n(ng)-2,nrhs)+ &
2631 & v_stokes(i,j,n(ng)-2)+ &
2632 & v_stokes(i,j,n(ng) )+ &
2634 & v(i,j,n(ng) ,nrhs)))* &
2635 & (cff1*(tl_w(i,j ,n(ng)-1)+ &
2636 & tl_w(i,j-1,n(ng)-1))- &
2637 & cff2*(tl_w(i,j+1,n(ng)-1)+ &
2638 & tl_w(i,j-2,n(ng)-1)))- &
2642 fc(i,1)=(cff1*(v(i,j,1,nrhs)+ &
2644 & v_stokes(i,j,1)+ &
2645 & v_stokes(i,j,2)+ &
2648 & cff2*(v(i,j,1,nrhs)+ &
2650 & v_stokes(i,j,1)+ &
2651 & v_stokes(i,j,3)+ &
2653 & v(i,j,3,nrhs)))* &
2654 & (cff1*(w(i,j ,1)+ &
2656 & cff2*(w(i,j+1,1)+ &
2658 tl_fc(i,1)=(cff1*(tl_v(i,j,1,nrhs)+ &
2660 & tl_v_stokes(i,j,1)+ &
2661 & tl_v_stokes(i,j,2)+ &
2663 & tl_v(i,j,2,nrhs))- &
2664 & cff2*(tl_v(i,j,1,nrhs)+ &
2666 & tl_v_stokes(i,j,1)+ &
2667 & tl_v_stokes(i,j,3)+ &
2669 & tl_v(i,j,3,nrhs)))* &
2670 & (cff1*(w(i,j ,1)+ &
2672 & cff2*(w(i,j+1,1)+ &
2674 & (cff1*(v(i,j,1,nrhs)+ &
2676 & v_stokes(i,j,1)+ &
2677 & v_stokes(i,j,2)+ &
2680 & cff2*(v(i,j,1,nrhs)+ &
2682 & v_stokes(i,j,1)+ &
2683 & v_stokes(i,j,3)+ &
2685 & v(i,j,3,nrhs)))* &
2686 & (cff1*(tl_w(i,j ,1)+ &
2688 & cff2*(tl_w(i,j+1,1)+ &
2689 & tl_w(i,j-2,1)))- &
2702 tl_cff=tl_fc(i,k)-tl_fc(i,k-1)
2705 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)-tl_cff
2706# ifdef DIAGNOSTICS_UV
2723# ifdef WET_DRY_NOT_YET
2726 tl_ru(i,j,1,nrhs)=tl_ru(i,j,1,nrhs)*umask_wet(i,j)
2730 tl_rufrc(i,j)=tl_ru(i,j,1,nrhs)
2731# ifdef DIAGNOSTICS_UV
2744# if defined UV_VIS2 || defined UV_VIS4
2756# ifdef WET_DRY_NOT_YET
2759 tl_ru(i,j,k,nrhs)=tl_ru(i,j,k,nrhs)*umask_wet(i,j)
2763 tl_rufrc(i,j)=tl_rufrc(i,j)+tl_ru(i,j,k,nrhs)
2764# ifdef DIAGNOSTICS_UV
2792 cff=om_u(i,j)*on_u(i,j)
2795 tl_cff1= tl_sustr(i,j)*cff
2798 tl_cff2=-tl_bustr(i,j)*cff
2801 tl_rufrc(i,j)=tl_rufrc(i,j)+tl_cff1+tl_cff2
2802# ifdef WET_DRY_NOT_YET
2805 tl_rufrc(i,j)=tl_rufrc(i,j)*umask_wet(i,j)
2807# ifdef DIAGNOSTICS_UV
2813 IF (j.ge.jstrv)
THEN
2815# ifdef WET_DRY_NOT_YET
2818 tl_rv(i,j,1,nrhs)=tl_rv(i,j,1,nrhs)*vmask_wet(i,j)
2822 tl_rvfrc(i,j)=tl_rv(i,j,1,nrhs)
2823# ifdef DIAGNOSTICS_UV
2836# if defined UV_VIS2 || defined UV_VIS4
2848# ifdef WET_DRY_NOT_YET
2851 tl_rv(i,j,k,nrhs)=tl_rv(i,j,k,nrhs)*vmask_wet(i,j)
2855 tl_rvfrc(i,j)=tl_rvfrc(i,j)+tl_rv(i,j,k,nrhs)
2856# ifdef DIAGNOSTICS_UV
2884 cff=om_v(i,j)*on_v(i,j)
2887 tl_cff1= tl_svstr(i,j)*cff
2890 tl_cff2=-tl_bvstr(i,j)*cff
2893 tl_rvfrc(i,j)=tl_rvfrc(i,j)+tl_cff1+tl_cff2
2894# ifdef WET_DRY_NOT_YET
2897 tl_rvfrc(i,j)=tl_rvfrc(i,j)*vmask_wet(i,j)
2899# ifdef DIAGNOSTICS_UV