New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 14381 – NEMO

Changeset 14381


Ignore:
Timestamp:
2021-02-03T13:36:25+01:00 (3 years ago)
Author:
techene
Message:

#2605 : add advection velocity as input in advective flux form routines

Location:
NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE/DYN/dynadv.F90

    r14053 r14381  
    5151CONTAINS 
    5252 
    53    SUBROUTINE dyn_adv( kt, Kbb, Kmm, puu, pvv, Krhs ) 
     53   SUBROUTINE dyn_adv( kt, Kbb, Kmm, puu, pvv, Krhs, pau, pav, paw ) 
    5454      !!--------------------------------------------------------------------- 
    5555      !!                  ***  ROUTINE dyn_adv  *** 
     
    6464      !!      (see dynvor module). 
    6565      !!---------------------------------------------------------------------- 
    66       INTEGER                             , INTENT( in )  ::  kt               ! ocean time-step index 
    67       INTEGER                             , INTENT( in )  ::  Kbb, Kmm, Krhs   ! ocean time level indices 
    68       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) ::  puu, pvv         ! ocean velocities and RHS of momentum equation 
     66      INTEGER                                       , INTENT(in   ) ::  kt               ! ocean time-step index 
     67      INTEGER                                       , INTENT(in   ) ::  Kbb, Kmm, Krhs   ! ocean time level indices 
     68      REAL(wp), DIMENSION(:,:,:)          , OPTIONAL, TARGET, INTENT(in   ) ::  pau, pav, paw    ! advective velocity 
     69      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt)          , TARGET, INTENT(inout) ::  puu, pvv         ! ocean velocities and RHS of momentum Eq. 
    6970      !!---------------------------------------------------------------------- 
    7071      ! 
     
    7374      SELECT CASE( n_dynadv )    !==  compute advection trend and add it to general trend  ==! 
    7475      CASE( np_VEC_c2  )      
    75          CALL dyn_keg     ( kt, nn_dynkeg,      Kmm, puu, pvv, Krhs )    ! vector form : horizontal gradient of kinetic energy 
    76          CALL dyn_zad     ( kt,                 Kmm, puu, pvv, Krhs )    ! vector form : vertical advection 
     76         CALL dyn_keg     ( kt, nn_dynkeg     , Kmm, puu, pvv, Krhs )                  ! vector form : horizontal gradient of kinetic energy 
     77         CALL dyn_zad     ( kt                , Kmm, puu, pvv, Krhs )                  ! vector form : vertical advection 
    7778      CASE( np_FLX_c2  )  
    78          CALL dyn_adv_cen2( kt,                 Kmm, puu, pvv, Krhs )    ! 2nd order centered scheme 
     79         CALL dyn_adv_cen2( kt                , Kmm, puu, pvv, Krhs, pau, pav, paw )   ! 2nd order centered scheme 
    7980      CASE( np_FLX_ubs )    
    80          CALL dyn_adv_ubs ( kt,            Kbb, Kmm, puu, pvv, Krhs )    ! 3rd order UBS      scheme (UP3) 
     81         CALL dyn_adv_ubs ( kt           , Kbb, Kmm, puu, pvv, Krhs, pau, pav, paw )   ! 3rd order UBS      scheme (UP3) 
    8182      END SELECT 
    8283      ! 
  • NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE/DYN/dynadv_cen2.F90

    r13497 r14381  
    3636CONTAINS 
    3737 
    38    SUBROUTINE dyn_adv_cen2( kt, Kmm, puu, pvv, Krhs ) 
     38   SUBROUTINE dyn_adv_cen2( kt, Kmm, puu, pvv, Krhs, pau, pav, paw ) 
    3939      !!---------------------------------------------------------------------- 
    4040      !!                  ***  ROUTINE dyn_adv_cen2  *** 
     
    4747      !! ** Action  :   (puu(:,:,:,Krhs),pvv(:,:,:,Krhs)) updated with the now vorticity term trend 
    4848      !!---------------------------------------------------------------------- 
    49       INTEGER                             , INTENT( in )  ::  kt           ! ocean time-step index 
    50       INTEGER                             , INTENT( in )  ::  Kmm, Krhs    ! ocean time level indices 
    51       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) ::  puu, pvv     ! ocean velocities and RHS of momentum equation 
     49      INTEGER                                               , INTENT(in   ) ::   kt              ! ocean time-step index 
     50      INTEGER                                               , INTENT(in   ) ::   Kmm, Krhs       ! ocean time level indices 
     51      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt)          , TARGET, INTENT(inout) ::   puu, pvv        ! ocean velocities and RHS of momentum equation 
     52      REAL(wp), DIMENSION(:,:,:)          , OPTIONAL, TARGET, INTENT(in   ) ::   pau, pav, paw   ! advective velocity 
    5253      ! 
    5354      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    54       REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zfu_t, zfu_f, zfu_uw, zfu 
    55       REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zfv_t, zfv_f, zfv_vw, zfv, zfw 
     55      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zfu_t, zfu_f, zfu_uw, zfu 
     56      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zfv_t, zfv_f, zfv_vw, zfv, zfw 
     57      REAL(wp), DIMENSION(:,:,:), POINTER ::   zptu, zptv, zptw 
    5658      !!---------------------------------------------------------------------- 
    5759      ! 
     
    6769      ENDIF 
    6870      ! 
     71      IF( PRESENT( pau ) ) THEN     ! RK3: advective velocity (pau,pav,paw) /= advected velocity (puu,pvv,ww) 
     72         zptu => pau(:,:,:) 
     73         zptv => pav(:,:,:) 
     74         zptw => paw(:,:,:) 
     75      ELSE                          ! MLF: advective velocity = (puu,pvv,ww) 
     76         zptu => puu(:,:,:,Kmm) 
     77         zptv => pvv(:,:,:,Kmm) 
     78         zptw => ww (:,:,:    ) 
     79      ENDIF 
     80      ! 
    6981      !                             !==  Horizontal advection  ==! 
    7082      ! 
    7183      DO jk = 1, jpkm1                    ! horizontal transport 
    72          zfu(:,:,jk) = 0.25_wp * e2u(:,:) * e3u(:,:,jk,Kmm) * puu(:,:,jk,Kmm) 
    73          zfv(:,:,jk) = 0.25_wp * e1v(:,:) * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Kmm) 
     84         zfu(:,:,jk) = 0.25_wp * e2u(:,:) * e3u(:,:,jk,Kmm) * zptu(:,:,jk) 
     85         zfv(:,:,jk) = 0.25_wp * e1v(:,:) * e3v(:,:,jk,Kmm) * zptv(:,:,jk) 
    7486         DO_2D( 1, 0, 1, 0 )              ! horizontal momentum fluxes (at T- and F-point) 
    7587            zfu_t(ji+1,jj  ,jk) = ( zfu(ji,jj,jk) + zfu(ji+1,jj,jk) ) * ( puu(ji,jj,jk,Kmm) + puu(ji+1,jj  ,jk,Kmm) ) 
     
    104116      IF( ln_linssh ) THEN                ! linear free surface: advection through the surface 
    105117         DO_2D( 0, 0, 0, 0 ) 
    106             zfu_uw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * ww(ji,jj,1) + e1e2t(ji+1,jj) * ww(ji+1,jj,1) ) * puu(ji,jj,1,Kmm) 
    107             zfv_vw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * ww(ji,jj,1) + e1e2t(ji,jj+1) * ww(ji,jj+1,1) ) * pvv(ji,jj,1,Kmm) 
     118            zfu_uw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * zptw(ji,jj,1) + e1e2t(ji+1,jj) * zptw(ji+1,jj,1) ) * puu(ji,jj,1,Kmm) 
     119            zfv_vw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * zptw(ji,jj,1) + e1e2t(ji,jj+1) * zptw(ji,jj+1,1) ) * pvv(ji,jj,1,Kmm) 
    108120         END_2D 
    109121      ENDIF 
    110122      DO jk = 2, jpkm1                    ! interior advective fluxes 
    111123         DO_2D( 0, 1, 0, 1 )                  ! 1/4 * Vertical transport 
    112             zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * ww(ji,jj,jk) 
     124            zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * zptw(ji,jj,jk) 
    113125         END_2D 
    114126         DO_2D( 0, 0, 0, 0 ) 
  • NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE/DYN/dynadv_ubs.F90

    r13497 r14381  
    4242CONTAINS 
    4343 
    44    SUBROUTINE dyn_adv_ubs( kt, Kbb, Kmm, puu, pvv, Krhs ) 
     44   SUBROUTINE dyn_adv_ubs( kt, Kbb, Kmm, puu, pvv, Krhs, pau, pav, paw ) 
    4545      !!---------------------------------------------------------------------- 
    4646      !!                  ***  ROUTINE dyn_adv_ubs  *** 
     
    6969      !! Reference : Shchepetkin & McWilliams, 2005, Ocean Modelling.  
    7070      !!---------------------------------------------------------------------- 
    71       INTEGER                             , INTENT( in )  ::  kt              ! ocean time-step index 
    72       INTEGER                             , INTENT( in )  ::  Kbb, Kmm, Krhs  ! ocean time level indices 
    73       REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) ::  puu, pvv        ! ocean velocities and RHS of momentum equation 
     71      INTEGER                                               , INTENT(in   ) ::   kt              ! ocean time-step index 
     72      INTEGER                                               , INTENT(in   ) ::   Kbb, Kmm, Krhs  ! ocean time level indices 
     73      REAL(wp), DIMENSION(jpi,jpj,jpk,jpt)          , TARGET, INTENT(inout) ::   puu, pvv        ! ocean velocities and RHS of momentum equation 
     74      REAL(wp), DIMENSION(:,:,:)          , OPTIONAL, TARGET, INTENT(in   ) ::   pau, pav, paw   ! advective velocity 
    7475      ! 
    7576      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    7980      REAL(wp), DIMENSION(jpi,jpj,jpk,2) ::   zlu_uu, zlu_uv 
    8081      REAL(wp), DIMENSION(jpi,jpj,jpk,2) ::   zlv_vv, zlv_vu 
     82      REAL(wp), DIMENSION(:,:,:), POINTER ::   zptu, zptv, zptw 
    8183      !!---------------------------------------------------------------------- 
    8284      ! 
     
    101103         zfv_vw(:,:,:) = pvv(:,:,:,Krhs) 
    102104      ENDIF 
     105      ! 
     106      IF( PRESENT( pau ) ) THEN     ! RK3: advective velocity (pau,pav,paw) /= advected velocity (puu,pvv,ww) 
     107         zptu => pau(:,:,:) 
     108         zptv => pav(:,:,:) 
     109         zptw => paw(:,:,:) 
     110      ELSE                          ! MLF: advective velocity = (puu,pvv,ww) 
     111         zptu => puu(:,:,:,Kmm) 
     112         zptv => pvv(:,:,:,Kmm) 
     113         zptw => ww (:,:,:    ) 
     114      ENDIF 
     115      ! 
    103116      !                                      ! =========================== ! 
    104117      DO jk = 1, jpkm1                       !  Laplacian of the velocity  ! 
    105118         !                                   ! =========================== ! 
    106119         !                                         ! horizontal volume fluxes 
    107          zfu(:,:,jk) = e2u(:,:) * e3u(:,:,jk,Kmm) * puu(:,:,jk,Kmm) 
    108          zfv(:,:,jk) = e1v(:,:) * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Kmm) 
     120         zfu(:,:,jk) = e2u(:,:) * e3u(:,:,jk,Kmm) * zptu(:,:,jk) 
     121         zfv(:,:,jk) = e1v(:,:) * e3v(:,:,jk,Kmm) * zptv(:,:,jk) 
    109122         !             
    110123         DO_2D( 0, 0, 0, 0 )                       ! laplacian 
     
    133146      DO jk = 1, jpkm1                       ! ====================== ! 
    134147         !                                         ! horizontal volume fluxes 
    135          zfu(:,:,jk) = 0.25_wp * e2u(:,:) * e3u(:,:,jk,Kmm) * puu(:,:,jk,Kmm) 
    136          zfv(:,:,jk) = 0.25_wp * e1v(:,:) * e3v(:,:,jk,Kmm) * pvv(:,:,jk,Kmm) 
     148         zfu(:,:,jk) = 0.25_wp * e2u(:,:) * e3u(:,:,jk,Kmm) * zptu(:,:,jk) 
     149         zfv(:,:,jk) = 0.25_wp * e1v(:,:) * e3v(:,:,jk,Kmm) * zptv(:,:,jk) 
    137150         ! 
    138151         DO_2D( 1, 0, 1, 0 )                       ! horizontal momentum fluxes at T- and F-point 
     
    195208      IF( ln_linssh ) THEN                         ! constant volume : advection through the surface 
    196209         DO_2D( 0, 0, 0, 0 ) 
    197             zfu_uw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * ww(ji,jj,1) + e1e2t(ji+1,jj) * ww(ji+1,jj,1) ) * puu(ji,jj,1,Kmm) 
    198             zfv_vw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * ww(ji,jj,1) + e1e2t(ji,jj+1) * ww(ji,jj+1,1) ) * pvv(ji,jj,1,Kmm) 
     210            zfu_uw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * zptw(ji,jj,1) + e1e2t(ji+1,jj) * zptw(ji+1,jj,1) ) * puu(ji,jj,1,Kmm) 
     211            zfv_vw(ji,jj,1) = 0.5_wp * ( e1e2t(ji,jj) * zptw(ji,jj,1) + e1e2t(ji,jj+1) * zptw(ji,jj+1,1) ) * pvv(ji,jj,1,Kmm) 
    199212         END_2D 
    200213      ENDIF 
    201214      DO jk = 2, jpkm1                          ! interior fluxes 
    202215         DO_2D( 0, 1, 0, 1 ) 
    203             zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * ww(ji,jj,jk) 
     216            zfw(ji,jj,jk) = 0.25_wp * e1e2t(ji,jj) * zptw(ji,jj,jk) 
    204217         END_2D 
    205218         DO_2D( 0, 0, 0, 0 ) 
  • NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE/TRA/traadv.F90

    r14189 r14381  
    8080CONTAINS 
    8181 
    82    SUBROUTINE tra_adv( kt, Kbb, Kmm, pts, Krhs ) 
     82   SUBROUTINE tra_adv( kt, Kbb, Kmm, pts, Krhs, pau, pav, paw ) 
    8383      !!---------------------------------------------------------------------- 
    8484      !!                  ***  ROUTINE tra_adv  *** 
     
    8888      !! ** Method  : - Update (uu(:,:,:,Krhs),vv(:,:,:,Krhs)) with the advection term following nadv 
    8989      !!---------------------------------------------------------------------- 
    90       INTEGER                                  , INTENT(in)    :: kt             ! ocean time-step index 
    91       INTEGER                                  , INTENT(in)    :: Kbb, Kmm, Krhs ! time level indices 
    92       REAL(wp), DIMENSION(jpi,jpj,jpk,jpts,jpt), INTENT(inout) :: pts            ! active tracers and RHS of tracer equation 
     90      INTEGER                                     , INTENT(in   ) ::   kt             ! ocean time-step index 
     91      INTEGER                                     , INTENT(in   ) ::   Kbb, Kmm, Krhs ! time level indices 
     92      REAL(wp), DIMENSION(:,:,:), OPTIONAL, TARGET, INTENT(in   ) ::   pau, pav, paw  ! advective velocity 
     93      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts,jpt)   , INTENT(inout) ::   pts            ! active tracers and RHS of tracer equation 
    9394      ! 
    9495      INTEGER ::   ji, jj, jk   ! dummy loop index 
     96      REAL(wp), DIMENSION(:,:,:), POINTER ::   zptu, zptv, zptw 
    9597      ! TEMP: [tiling] This change not necessary and can be A2D(nn_hls) if using XIOS (subdomain support) 
    96       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE :: zuu, zvv, zww   ! 3D workspace 
    97       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrdt, ztrds 
     98      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE ::   zuu, zvv, zww   ! 3D workspace 
     99      REAL(wp), DIMENSION(:,:,:), ALLOCATABLE       ::  ztrdt, ztrds 
    98100      ! TEMP: [tiling] This change not necessary after extra haloes development 
    99       LOGICAL :: lskip 
     101      LOGICAL ::   lskip 
    100102      !!---------------------------------------------------------------------- 
    101103      ! 
     
    119121         ENDIF 
    120122      ENDIF 
     123      ! 
    121124      IF( .NOT. lskip ) THEN 
    122          !                                         !==  effective transport  ==! 
     125         !                                         !==  effective advective transport  ==! 
     126         ! 
     127         IF( PRESENT( pau ) ) THEN     ! RK3: advective velocity (pau,pav,paw) /= advected velocity (uu,vv,ww) 
     128            zptu => pau(:,:,:) 
     129            zptv => pav(:,:,:) 
     130            zptw => paw(:,:,:) 
     131         ELSE                          ! MLF: advective velocity = (uu,vv,ww) 
     132            zptu => uu(:,:,:,Kmm) 
     133            zptv => vv(:,:,:,Kmm) 
     134            zptw => ww(:,:,:    ) 
     135         ENDIF 
     136         ! 
    123137         IF( ln_wave .AND. ln_sdw )  THEN 
    124138            DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    125                zuu(ji,jj,jk) = e2u  (ji,jj) * e3u(ji,jj,jk,Kmm) * ( uu(ji,jj,jk,Kmm) + usd(ji,jj,jk) ) 
    126                zvv(ji,jj,jk) = e1v  (ji,jj) * e3v(ji,jj,jk,Kmm) * ( vv(ji,jj,jk,Kmm) + vsd(ji,jj,jk) ) 
    127                zww(ji,jj,jk) = e1e2t(ji,jj)                     * ( ww(ji,jj,jk)    + wsd(ji,jj,jk) ) 
     139               zuu(ji,jj,jk) = e2u  (ji,jj) * e3u(ji,jj,jk,Kmm) * ( zptu(ji,jj,jk) + usd(ji,jj,jk) ) 
     140               zvv(ji,jj,jk) = e1v  (ji,jj) * e3v(ji,jj,jk,Kmm) * ( zptv(ji,jj,jk) + vsd(ji,jj,jk) ) 
     141               zww(ji,jj,jk) = e1e2t(ji,jj)                     * ( zptw(ji,jj,jk) + wsd(ji,jj,jk) ) 
    128142            END_3D 
    129143         ELSE 
    130144            DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 
    131                zuu(ji,jj,jk) = e2u  (ji,jj) * e3u(ji,jj,jk,Kmm) * uu(ji,jj,jk,Kmm)               ! eulerian transport only 
    132                zvv(ji,jj,jk) = e1v  (ji,jj) * e3v(ji,jj,jk,Kmm) * vv(ji,jj,jk,Kmm) 
    133                zww(ji,jj,jk) = e1e2t(ji,jj)                     * ww(ji,jj,jk) 
     145               zuu(ji,jj,jk) = e2u  (ji,jj) * e3u(ji,jj,jk,Kmm) * zptu(ji,jj,jk)               ! eulerian transport only 
     146               zvv(ji,jj,jk) = e1v  (ji,jj) * e3v(ji,jj,jk,Kmm) * zptv(ji,jj,jk) 
     147               zww(ji,jj,jk) = e1e2t(ji,jj)                     * zptw(ji,jj,jk) 
    134148            END_3D 
    135149         ENDIF 
     
    275289         WRITE(numout,*) '      No advection on T & S                     ln_traadv_OFF = ', ln_traadv_OFF 
    276290         WRITE(numout,*) '      centered scheme                           ln_traadv_cen = ', ln_traadv_cen 
    277          WRITE(numout,*) '            horizontal 2nd/4th order               nn_cen_h   = ', nn_fct_h 
    278          WRITE(numout,*) '            vertical   2nd/4th order               nn_cen_v   = ', nn_fct_v 
     291         WRITE(numout,*) '            horizontal 2nd/4th order               nn_cen_h   = ', nn_cen_h 
     292         WRITE(numout,*) '            vertical   2nd/4th order               nn_cen_v   = ', nn_cen_v 
    279293         WRITE(numout,*) '      Flux Corrected Transport scheme           ln_traadv_fct = ', ln_traadv_fct 
    280294         WRITE(numout,*) '            horizontal 2nd/4th order               nn_fct_h   = ', nn_fct_h 
  • NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE/oce.F90

    r14064 r14381  
    2121   !! dynamics and tracer fields 
    2222   !! --------------------------                             
    23    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:)   ::   uu   ,  vv     !: horizontal velocities        [m/s] 
    24    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)     ::   ww             !: vertical velocity            [m/s] 
     23   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:), TARGET   ::   uu   ,  vv     !: horizontal velocities        [m/s] 
     24   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  , TARGET   ::   ww             !: vertical velocity            [m/s] 
    2525   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)     ::   wi             !: vertical vel. (adaptive-implicit) [m/s] 
    2626   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)     ::   hdiv           !: horizontal divergence        [s-1] 
  • NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE/stpmlf.F90

    r14239 r14381  
    9494      !!---------------------------------------------------------------------- 
    9595      INTEGER ::   ji, jj, jk, jtile   ! dummy loop indice 
    96       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zgdept 
     96      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)       ::   zgdept 
     97      REAL(wp), TARGET     , DIMENSION(jpi,jpj,jpk) ::   zau, zav, zaw   ! advective velocity 
    9798      !! --------------------------------------------------------------------- 
    9899#if defined key_agrif 
     
    222223                         uu(:,:,:,Nrhs) = 0._wp            ! set dynamics trends to zero 
    223224                         vv(:,:,:,Nrhs) = 0._wp 
    224  
     225!!st                          
     226                         zau(:,:,:) = uu(:,:,:,Nnn)        !!st   patch for MLF will be computed in RK3 
     227                         zav(:,:,:) = vv(:,:,:,Nnn) 
     228                         zaw(:,:,:) = ww(:,:,:    ) 
     229!!st 
    225230      IF(  lk_asminc .AND. ln_asmiau .AND. ln_dyninc )   & 
    226231               &         CALL dyn_asm_inc   ( kstp, Nbb, Nnn, uu, vv, Nrhs )  ! apply dynamics assimilation increment 
     
    230235               &         CALL Agrif_Sponge_dyn        ! momentum sponge 
    231236#endif 
    232                          CALL dyn_adv( kstp, Nbb, Nnn      , uu, vv, Nrhs )  ! advection (VF or FF)   ==> RHS 
     237                         CALL dyn_adv( kstp, Nbb, Nnn      , uu, vv, Nrhs, zau, zav, zaw )  ! advection (VF or FF)   ==> RHS 
    233238                         CALL dyn_vor( kstp,      Nnn      , uu, vv, Nrhs )  ! vorticity              ==> RHS 
    234239                         CALL dyn_ldf( kstp, Nbb, Nnn      , uu, vv, Nrhs )  ! lateral mixing 
     
    247252         IF( ln_zad_Aimp )  CALL wAimp      ( kstp,      Nnn )                      ! Adaptive-implicit vertical advection partitioning 
    248253      ENDIF 
    249  
    250  
     254!!st 
     255                            zau(:,:,:) = uu(:,:,:,Nnn)        !!st   patch for MLF will be computed in RK3 
     256                            zav(:,:,:) = vv(:,:,:,Nnn) 
     257                            zaw(:,:,:) = ww(:,:,:    ) 
     258!!st 
    251259      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    252260      ! cool skin 
     
    313321         IF( ln_tile    )   CALL dom_tile( ntsi, ntsj, ntei, ntej, ktile = jtile ) 
    314322 
    315                             CALL tra_adv    ( kstp, Nbb, Nnn, ts, Nrhs )  ! hor. + vert. advection ==> RHS 
     323                            CALL tra_adv    ( kstp, Nbb, Nnn, ts, Nrhs, zau, zav, zaw )  ! hor. + vert. advection ==> RHS 
    316324         IF( ln_zdfmfc  )   CALL tra_mfc    ( kstp, Nbb,      ts, Nrhs )  ! Mass Flux Convection 
    317325         IF( ln_zdfosm  ) THEN 
Note: See TracChangeset for help on using the changeset viewer.