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 10874 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DYN/dynvor.F90 – NEMO

Ignore:
Timestamp:
2019-04-15T15:57:37+02:00 (5 years ago)
Author:
davestorkey
Message:

branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Revert all changes so far in preparation for implementation of new design.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/DYN/dynvor.F90

    r10806 r10874  
    9696CONTAINS 
    9797 
    98    SUBROUTINE dyn_vor( kt, ktlev, pu_rhs, pv_rhs ) 
     98   SUBROUTINE dyn_vor( kt ) 
    9999      !!---------------------------------------------------------------------- 
    100100      !! 
    101101      !! ** Purpose :   compute the lateral ocean tracer physics. 
    102102      !! 
    103       !! ** Action : - Update (pu_rhs,pv_rhs) with the now vorticity term trend 
     103      !! ** Action : - Update (ua,va) with the now vorticity term trend 
    104104      !!             - save the trends in (ztrdu,ztrdv) in 2 parts (relative 
    105105      !!               and planetary vorticity trends) and send them to trd_dyn  
    106106      !!               for futher diagnostics (l_trddyn=T) 
    107107      !!---------------------------------------------------------------------- 
    108       INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
    109       INTEGER, INTENT( in ) ::   ktlev   ! time level index for source terms 
    110       REAL(wp), INTENT( inout), DIMENSION(jpi,jpj,jpk) :: pu_rhs, pv_rhs ! momentum trends 
     108      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    111109      ! 
    112110      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     
    119117         ALLOCATE( ztrdu(jpi,jpj,jpk), ztrdv(jpi,jpj,jpk) ) 
    120118         ! 
    121          ztrdu(:,:,:) = pu_rhs(:,:,:)            !* planetary vorticity trend (including Stokes-Coriolis force) 
    122          ztrdv(:,:,:) = pv_rhs(:,:,:) 
     119         ztrdu(:,:,:) = ua(:,:,:)            !* planetary vorticity trend (including Stokes-Coriolis force) 
     120         ztrdv(:,:,:) = va(:,:,:) 
    123121         SELECT CASE( nvor_scheme ) 
    124          CASE( np_ENS )           ;   CALL vor_ens( kt, ktlev, ncor, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! enstrophy conserving scheme 
    125             IF( ln_stcor )            CALL vor_ens( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
    126          CASE( np_ENE, np_MIX )   ;   CALL vor_ene( kt, ktlev, ncor, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! energy conserving scheme 
    127             IF( ln_stcor )            CALL vor_ene( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
    128          CASE( np_ENT )           ;   CALL vor_enT( kt, ktlev, ncor, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! energy conserving scheme (T-pts) 
    129             IF( ln_stcor )            CALL vor_enT( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
    130          CASE( np_EET )           ;   CALL vor_eeT( kt, ktlev, ncor, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! energy conserving scheme (een with e3t) 
    131             IF( ln_stcor )            CALL vor_eeT( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
    132          CASE( np_EEN )           ;   CALL vor_een( kt, ktlev, ncor, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! energy & enstrophy scheme 
    133             IF( ln_stcor )            CALL vor_een( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
     122         CASE( np_ENS )           ;   CALL vor_ens( kt, ncor, un , vn , ua, va )   ! enstrophy conserving scheme 
     123            IF( ln_stcor )            CALL vor_ens( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
     124         CASE( np_ENE, np_MIX )   ;   CALL vor_ene( kt, ncor, un , vn , ua, va )   ! energy conserving scheme 
     125            IF( ln_stcor )            CALL vor_ene( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
     126         CASE( np_ENT )           ;   CALL vor_enT( kt, ncor, un , vn , ua, va )   ! energy conserving scheme (T-pts) 
     127            IF( ln_stcor )            CALL vor_enT( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
     128         CASE( np_EET )           ;   CALL vor_eeT( kt, ncor, un , vn , ua, va )   ! energy conserving scheme (een with e3t) 
     129            IF( ln_stcor )            CALL vor_eeT( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
     130         CASE( np_EEN )           ;   CALL vor_een( kt, ncor, un , vn , ua, va )   ! energy & enstrophy scheme 
     131            IF( ln_stcor )            CALL vor_een( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    134132         END SELECT 
    135          ztrdu(:,:,:) = pu_rhs(:,:,:) - ztrdu(:,:,:) 
    136          ztrdv(:,:,:) = pv_rhs(:,:,:) - ztrdv(:,:,:) 
     133         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
     134         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    137135         CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    138136         ! 
    139137         IF( n_dynadv /= np_LIN_dyn ) THEN   !* relative vorticity or metric trend (only in non-linear case) 
    140             ztrdu(:,:,:) = pu_rhs(:,:,:) 
    141             ztrdv(:,:,:) = pv_rhs(:,:,:) 
     138            ztrdu(:,:,:) = ua(:,:,:) 
     139            ztrdv(:,:,:) = va(:,:,:) 
    142140            SELECT CASE( nvor_scheme ) 
    143             CASE( np_ENT )           ;   CALL vor_enT( kt, ktlev, nrvm, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )  ! energy conserving scheme (T-pts) 
    144             CASE( np_EET )           ;   CALL vor_eeT( kt, ktlev, nrvm, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )  ! energy conserving scheme (een with e3t) 
    145             CASE( np_ENE )           ;   CALL vor_ene( kt, ktlev, nrvm, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )  ! energy conserving scheme 
    146             CASE( np_ENS, np_MIX )   ;   CALL vor_ens( kt, ktlev, nrvm, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )  ! enstrophy conserving scheme 
    147             CASE( np_EEN )           ;   CALL vor_een( kt, ktlev, nrvm, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )  ! energy & enstrophy scheme 
     141            CASE( np_ENT )           ;   CALL vor_enT( kt, nrvm, un , vn , ua, va )  ! energy conserving scheme (T-pts) 
     142            CASE( np_EET )           ;   CALL vor_eeT( kt, nrvm, un , vn , ua, va )  ! energy conserving scheme (een with e3t) 
     143            CASE( np_ENE )           ;   CALL vor_ene( kt, nrvm, un , vn , ua, va )  ! energy conserving scheme 
     144            CASE( np_ENS, np_MIX )   ;   CALL vor_ens( kt, nrvm, un , vn , ua, va )  ! enstrophy conserving scheme 
     145            CASE( np_EEN )           ;   CALL vor_een( kt, nrvm, un , vn , ua, va )  ! energy & enstrophy scheme 
    148146            END SELECT 
    149             ztrdu(:,:,:) = pu_rhs(:,:,:) - ztrdu(:,:,:) 
    150             ztrdv(:,:,:) = pv_rhs(:,:,:) - ztrdv(:,:,:) 
     147            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
     148            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    151149            CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    152150         ENDIF 
     
    158156         SELECT CASE ( nvor_scheme )      !==  vorticity trend added to the general trend  ==! 
    159157         CASE( np_ENT )                        !* energy conserving scheme  (T-pts) 
    160                              CALL vor_enT( kt, ktlev, ntot, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! total vorticity trend 
    161             IF( ln_stcor )   CALL vor_enT( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
     158                             CALL vor_enT( kt, ntot, un , vn , ua, va )   ! total vorticity trend 
     159            IF( ln_stcor )   CALL vor_enT( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    162160         CASE( np_EET )                        !* energy conserving scheme (een scheme using e3t) 
    163                              CALL vor_eeT( kt, ktlev, ntot, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! total vorticity trend 
    164             IF( ln_stcor )   CALL vor_eeT( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
     161                             CALL vor_eeT( kt, ntot, un , vn , ua, va )   ! total vorticity trend 
     162            IF( ln_stcor )   CALL vor_eeT( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    165163         CASE( np_ENE )                        !* energy conserving scheme 
    166                              CALL vor_ene( kt, ktlev, ntot, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! total vorticity trend 
    167             IF( ln_stcor )   CALL vor_ene( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
     164                             CALL vor_ene( kt, ntot, un , vn , ua, va )   ! total vorticity trend 
     165            IF( ln_stcor )   CALL vor_ene( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    168166         CASE( np_ENS )                        !* enstrophy conserving scheme 
    169                              CALL vor_ens( kt, ktlev, ntot, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )  ! total vorticity trend 
    170             IF( ln_stcor )   CALL vor_ens( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )  ! add the Stokes-Coriolis trend 
     167                             CALL vor_ens( kt, ntot, un , vn , ua, va )  ! total vorticity trend 
     168            IF( ln_stcor )   CALL vor_ens( kt, ncor, usd, vsd, ua, va )  ! add the Stokes-Coriolis trend 
    171169         CASE( np_MIX )                        !* mixed ene-ens scheme 
    172                              CALL vor_ens( kt, ktlev, nrvm, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! relative vorticity or metric trend (ens) 
    173                              CALL vor_ene( kt, ktlev, ncor, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! planetary vorticity trend (ene) 
    174             IF( ln_stcor )   CALL vor_ene( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
     170                             CALL vor_ens( kt, nrvm, un , vn , ua, va )   ! relative vorticity or metric trend (ens) 
     171                             CALL vor_ene( kt, ncor, un , vn , ua, va )   ! planetary vorticity trend (ene) 
     172            IF( ln_stcor )   CALL vor_ene( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    175173         CASE( np_EEN )                        !* energy and enstrophy conserving scheme 
    176                              CALL vor_een( kt, ktlev, ntot, uu(:,:,:,ktlev) , vv(:,:,:,ktlev) , pu_rhs, pv_rhs )   ! total vorticity trend 
    177             IF( ln_stcor )   CALL vor_een( kt, ktlev, ncor, usd, vsd, pu_rhs, pv_rhs )   ! add the Stokes-Coriolis trend 
     174                             CALL vor_een( kt, ntot, un , vn , ua, va )   ! total vorticity trend 
     175            IF( ln_stcor )   CALL vor_een( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    178176         END SELECT 
    179177         ! 
     
    189187 
    190188 
    191    SUBROUTINE vor_enT( kt, ktlev, kvor, pu, pv, pu_rhs, pv_rhs ) 
     189   SUBROUTINE vor_enT( kt, kvor, pu, pv, pu_rhs, pv_rhs ) 
    192190      !!---------------------------------------------------------------------- 
    193191      !!                  ***  ROUTINE vor_enT  *** 
     
    205203      !!       where rvor is the relative vorticity at f-point 
    206204      !! 
    207       !! ** Action : - Update (u_rhs,v_rhs) with the now vorticity term trend 
     205      !! ** Action : - Update (ua,va) with the now vorticity term trend 
    208206      !!---------------------------------------------------------------------- 
    209207      INTEGER                         , INTENT(in   ) ::   kt               ! ocean time-step index 
    210       INTEGER                         , INTENT( in )  ::   ktlev            ! time level index for source terms 
    211208      INTEGER                         , INTENT(in   ) ::   kvor             ! total, planetary, relative, or metric 
    212209      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv           ! now velocities 
     
    273270         SELECT CASE( kvor )                 !==  volume weighted vorticity considered  ==! 
    274271         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
    275             zwt(:,:) = ff_t(:,:) * e1e2t(:,:)*e3t(:,:,jk,ktlev) 
     272            zwt(:,:) = ff_t(:,:) * e1e2t(:,:)*e3t_n(:,:,jk) 
    276273         CASE ( np_RVO )                           !* relative vorticity 
    277274            DO jj = 2, jpj 
    278275               DO ji = 2, jpi   ! vector opt. 
    279276                  zwt(ji,jj) = r1_4 * (   zwz(ji-1,jj  ,jk) + zwz(ji,jj  ,jk)   & 
    280                      &                  + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) * e1e2t(ji,jj)*e3t(ji,jj,jk,ktlev) 
     277                     &                  + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) * e1e2t(ji,jj)*e3t_n(ji,jj,jk) 
    281278               END DO 
    282279            END DO 
     
    285282               DO ji = 2, jpi 
    286283                  zwt(ji,jj) = (   ( pv(ji,jj,jk) + pv(ji,jj-1,jk) ) * di_e2u_2(ji,jj)   & 
    287                      &           - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj)   ) * e3t(ji,jj,jk,ktlev) 
     284                     &           - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj)   ) * e3t_n(ji,jj,jk) 
    288285               END DO 
    289286            END DO 
     
    292289               DO ji = 2, jpi   ! vector opt. 
    293290                  zwt(ji,jj) = (  ff_t(ji,jj) + r1_4 * ( zwz(ji-1,jj  ,jk) + zwz(ji,jj  ,jk)    & 
    294                      &                                 + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) )  ) * e1e2t(ji,jj)*e3t(ji,jj,jk,ktlev) 
     291                     &                                 + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) )  ) * e1e2t(ji,jj)*e3t_n(ji,jj,jk) 
    295292               END DO 
    296293            END DO 
     
    300297                  zwt(ji,jj) = (  ff_t(ji,jj) * e1e2t(ji,jj)                           & 
    301298                       &        + ( pv(ji,jj,jk) + pv(ji,jj-1,jk) ) * di_e2u_2(ji,jj)  & 
    302                        &        - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj)  ) * e3t(ji,jj,jk,ktlev) 
     299                       &        - ( pu(ji,jj,jk) + pu(ji-1,jj,jk) ) * dj_e1v_2(ji,jj)  ) * e3t_n(ji,jj,jk) 
    303300               END DO 
    304301            END DO 
     
    310307         DO jj = 2, jpjm1 
    311308            DO ji = 2, jpim1   ! vector opt. 
    312                pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + r1_4 * r1_e1e2u(ji,jj) / e3u(ji,jj,jk,ktlev)                    & 
     309               pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + r1_4 * r1_e1e2u(ji,jj) / e3u_n(ji,jj,jk)                    & 
    313310                  &                                * (  zwt(ji+1,jj) * ( pv(ji+1,jj,jk) + pv(ji+1,jj-1,jk) )   & 
    314311                  &                                   + zwt(ji  ,jj) * ( pv(ji  ,jj,jk) + pv(ji  ,jj-1,jk) )   ) 
    315312                  ! 
    316                pv_rhs(ji,jj,jk) = pv_rhs(ji,jj,jk) - r1_4 * r1_e1e2v(ji,jj) / e3v(ji,jj,jk,ktlev)                    & 
     313               pv_rhs(ji,jj,jk) = pv_rhs(ji,jj,jk) - r1_4 * r1_e1e2v(ji,jj) / e3v_n(ji,jj,jk)                    & 
    317314                  &                                * (  zwt(ji,jj+1) * ( pu(ji,jj+1,jk) + pu(ji-1,jj+1,jk) )   &  
    318315                  &                                   + zwt(ji,jj  ) * ( pu(ji,jj  ,jk) + pu(ji-1,jj  ,jk) )   )  
     
    325322 
    326323 
    327    SUBROUTINE vor_ene( kt, ktlev, kvor, pu, pv, pu_rhs, pva_rhs ) 
     324   SUBROUTINE vor_ene( kt, kvor, pun, pvn, pua, pva ) 
    328325      !!---------------------------------------------------------------------- 
    329326      !!                  ***  ROUTINE vor_ene  *** 
     
    337334      !!         The general trend of momentum is increased due to the vorticity  
    338335      !!       term which is given by: 
    339       !!          voru = 1/e1u  mj-1[ (rvor+f)/e3f  mi(e1v*e3v vv(:,:,:,ktlev)) ] 
    340       !!          vorv = 1/e2v  mi-1[ (rvor+f)/e3f  mj(e2u*e3u uu(:,:,:,ktlev)) ] 
     336      !!          voru = 1/e1u  mj-1[ (rvor+f)/e3f  mi(e1v*e3v vn) ] 
     337      !!          vorv = 1/e2v  mi-1[ (rvor+f)/e3f  mj(e2u*e3u un) ] 
    341338      !!       where rvor is the relative vorticity 
    342339      !! 
    343       !! ** Action : - Update (u_rhs,v_rhs) with the now vorticity term trend 
     340      !! ** Action : - Update (ua,va) with the now vorticity term trend 
    344341      !! 
    345342      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
    346343      !!---------------------------------------------------------------------- 
    347344      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
    348       INTEGER                         , INTENT( in )  ::   ktlev            ! time level index for source terms 
    349345      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    350       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
    351       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pva_rhs    ! total v-trend 
     346      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
     347      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
    352348      ! 
    353349      INTEGER  ::   ji, jj, jk           ! dummy loop indices 
     
    372368            DO jj = 1, jpjm1 
    373369               DO ji = 1, fs_jpim1   ! vector opt. 
    374                   zwz(ji,jj) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    375                      &          - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
     370                  zwz(ji,jj) = (  e2v(ji+1,jj  ) * pvn(ji+1,jj  ,jk) - e2v(ji,jj) * pvn(ji,jj,jk)    & 
     371                     &          - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    376372               END DO 
    377373            END DO 
     
    379375            DO jj = 1, jpjm1 
    380376               DO ji = 1, fs_jpim1   ! vector opt. 
    381                   zwz(ji,jj) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    382                      &       - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     377                  zwz(ji,jj) = ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     378                     &       - ( pun(ji  ,jj+1,jk) + pun(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    383379               END DO 
    384380            END DO 
     
    386382            DO jj = 1, jpjm1 
    387383               DO ji = 1, fs_jpim1   ! vector opt. 
    388                   zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)      & 
    389                      &                        - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
     384                  zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj) * pvn(ji+1,jj,jk) - e2v(ji,jj) * pvn(ji,jj,jk)      & 
     385                     &                        - e1u(ji,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    390386               END DO 
    391387            END DO 
     
    393389            DO jj = 1, jpjm1 
    394390               DO ji = 1, fs_jpim1   ! vector opt. 
    395                   zwz(ji,jj) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    396                      &                     - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     391                  zwz(ji,jj) = ff_f(ji,jj) + ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     392                     &                     - ( pun(ji  ,jj+1,jk) + pun(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    397393               END DO 
    398394            END DO 
     
    410406 
    411407         IF( ln_sco ) THEN 
    412             zwz(:,:) = zwz(:,:) / e3f(:,:,jk) 
    413             zwx(:,:) = e2u(:,:) * e3u(:,:,jk,ktlev) * pu(:,:,jk) 
    414             zwy(:,:) = e1v(:,:) * e3v(:,:,jk,ktlev) * pv(:,:,jk) 
     408            zwz(:,:) = zwz(:,:) / e3f_n(:,:,jk) 
     409            zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * pun(:,:,jk) 
     410            zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * pvn(:,:,jk) 
    415411         ELSE 
    416             zwx(:,:) = e2u(:,:) * pu(:,:,jk) 
    417             zwy(:,:) = e1v(:,:) * pv(:,:,jk) 
     412            zwx(:,:) = e2u(:,:) * pun(:,:,jk) 
     413            zwy(:,:) = e1v(:,:) * pvn(:,:,jk) 
    418414         ENDIF 
    419415         !                                   !==  compute and add the vorticity term trend  =! 
     
    424420               zx1 = zwx(ji-1,jj) + zwx(ji-1,jj+1) 
    425421               zx2 = zwx(ji  ,jj) + zwx(ji  ,jj+1) 
    426                pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + r1_4 * r1_e1u(ji,jj) * ( zwz(ji  ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) 
    427                pva_rhs(ji,jj,jk) = pva_rhs(ji,jj,jk) - r1_4 * r1_e2v(ji,jj) * ( zwz(ji-1,jj  ) * zx1 + zwz(ji,jj) * zx2 )  
     422               pua(ji,jj,jk) = pua(ji,jj,jk) + r1_4 * r1_e1u(ji,jj) * ( zwz(ji  ,jj-1) * zy1 + zwz(ji,jj) * zy2 ) 
     423               pva(ji,jj,jk) = pva(ji,jj,jk) - r1_4 * r1_e2v(ji,jj) * ( zwz(ji-1,jj  ) * zx1 + zwz(ji,jj) * zx2 )  
    428424            END DO   
    429425         END DO   
     
    434430 
    435431 
    436    SUBROUTINE vor_ens( kt, ktlev, kvor, pu, pv, pu_rhs, pva_rhs ) 
     432   SUBROUTINE vor_ens( kt, kvor, pun, pvn, pua, pva ) 
    437433      !!---------------------------------------------------------------------- 
    438434      !!                ***  ROUTINE vor_ens  *** 
     
    445441      !!      potential enstrophy of a horizontally non-divergent flow. the 
    446442      !!      trend of the vorticity term is given by: 
    447       !!          voru = 1/e1u  mj-1[ (rvor+f)/e3f ]  mj-1[ mi(e1v*e3v vv(:,:,:,ktlev)) ] 
    448       !!          vorv = 1/e2v  mi-1[ (rvor+f)/e3f ]  mi-1[ mj(e2u*e3u uu(:,:,:,ktlev)) ] 
    449       !!      Add this trend to the general momentum trend (u_rhs,v_rhs): 
    450       !!          (u_rhs,v_rhs) = (u_rhs,v_rhs) + ( voru , vorv ) 
    451       !! 
    452       !! ** Action : - Update (u_rhs,v_rhs) arrays with the now vorticity term trend 
     443      !!          voru = 1/e1u  mj-1[ (rvor+f)/e3f ]  mj-1[ mi(e1v*e3v vn) ] 
     444      !!          vorv = 1/e2v  mi-1[ (rvor+f)/e3f ]  mi-1[ mj(e2u*e3u un) ] 
     445      !!      Add this trend to the general momentum trend (ua,va): 
     446      !!          (ua,va) = (ua,va) + ( voru , vorv ) 
     447      !! 
     448      !! ** Action : - Update (ua,va) arrays with the now vorticity term trend 
    453449      !! 
    454450      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
    455451      !!---------------------------------------------------------------------- 
    456452      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
    457       INTEGER                         , INTENT( in )  ::   ktlev            ! time level index for source terms 
    458453      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    459       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
    460       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pva_rhs    ! total v-trend 
     454      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
     455      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
    461456      ! 
    462457      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    480475            DO jj = 1, jpjm1 
    481476               DO ji = 1, fs_jpim1   ! vector opt. 
    482                   zwz(ji,jj) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    483                      &          - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
     477                  zwz(ji,jj) = (  e2v(ji+1,jj  ) * pvn(ji+1,jj  ,jk) - e2v(ji,jj) * pvn(ji,jj,jk)    & 
     478                     &          - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    484479               END DO 
    485480            END DO 
     
    487482            DO jj = 1, jpjm1 
    488483               DO ji = 1, fs_jpim1   ! vector opt. 
    489                   zwz(ji,jj) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    490                      &       - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     484                  zwz(ji,jj) = ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     485                     &       - ( pun(ji  ,jj+1,jk) + pun(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    491486               END DO 
    492487            END DO 
     
    494489            DO jj = 1, jpjm1 
    495490               DO ji = 1, fs_jpim1   ! vector opt. 
    496                   zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    497                      &                        - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
     491                  zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pvn(ji+1,jj  ,jk) - e2v(ji,jj) * pvn(ji,jj,jk)  & 
     492                     &                        - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    498493               END DO 
    499494            END DO 
     
    501496            DO jj = 1, jpjm1 
    502497               DO ji = 1, fs_jpim1   ! vector opt. 
    503                   zwz(ji,jj) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    504                      &                     - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     498                  zwz(ji,jj) = ff_f(ji,jj) + ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     499                     &                     - ( pun(ji  ,jj+1,jk) + pun(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    505500               END DO 
    506501            END DO 
     
    518513         ! 
    519514         IF( ln_sco ) THEN                   !==  horizontal fluxes  ==! 
    520             zwz(:,:) = zwz(:,:) / e3f(:,:,jk) 
    521             zwx(:,:) = e2u(:,:) * e3u(:,:,jk,ktlev) * pu(:,:,jk) 
    522             zwy(:,:) = e1v(:,:) * e3v(:,:,jk,ktlev) * pv(:,:,jk) 
     515            zwz(:,:) = zwz(:,:) / e3f_n(:,:,jk) 
     516            zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * pun(:,:,jk) 
     517            zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * pvn(:,:,jk) 
    523518         ELSE 
    524             zwx(:,:) = e2u(:,:) * pu(:,:,jk) 
    525             zwy(:,:) = e1v(:,:) * pv(:,:,jk) 
     519            zwx(:,:) = e2u(:,:) * pun(:,:,jk) 
     520            zwy(:,:) = e1v(:,:) * pvn(:,:,jk) 
    526521         ENDIF 
    527522         !                                   !==  compute and add the vorticity term trend  =! 
     
    532527               zvau =-r1_8 * r1_e2v(ji,jj) * (  zwx(ji-1,jj  ) + zwx(ji-1,jj+1)  & 
    533528                  &                           + zwx(ji  ,jj  ) + zwx(ji  ,jj+1)  ) 
    534                pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zuav * ( zwz(ji  ,jj-1) + zwz(ji,jj) ) 
    535                pva_rhs(ji,jj,jk) = pva_rhs(ji,jj,jk) + zvau * ( zwz(ji-1,jj  ) + zwz(ji,jj) ) 
     529               pua(ji,jj,jk) = pua(ji,jj,jk) + zuav * ( zwz(ji  ,jj-1) + zwz(ji,jj) ) 
     530               pva(ji,jj,jk) = pva(ji,jj,jk) + zvau * ( zwz(ji-1,jj  ) + zwz(ji,jj) ) 
    536531            END DO   
    537532         END DO   
     
    542537 
    543538 
    544    SUBROUTINE vor_een( kt, ktlev, kvor, pu, pv, pu_rhs, pva_rhs ) 
     539   SUBROUTINE vor_een( kt, kvor, pun, pvn, pua, pva ) 
    545540      !!---------------------------------------------------------------------- 
    546541      !!                ***  ROUTINE vor_een  *** 
     
    553548      !!      both the horizontal kinetic energy and the potential enstrophy 
    554549      !!      when horizontal divergence is zero (see the NEMO documentation) 
    555       !!      Add this trend to the general momentum trend (u_rhs,v_rhs). 
    556       !! 
    557       !! ** Action : - Update (u_rhs,v_rhs) with the now vorticity term trend 
     550      !!      Add this trend to the general momentum trend (ua,va). 
     551      !! 
     552      !! ** Action : - Update (ua,va) with the now vorticity term trend 
    558553      !! 
    559554      !! References : Arakawa and Lamb 1980, Mon. Wea. Rev., 109, 18-36 
    560555      !!---------------------------------------------------------------------- 
    561556      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
    562       INTEGER                         , INTENT( in )  ::   ktlev            ! time level index for source terms 
    563557      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    564       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
    565       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pva_rhs    ! total v-trend 
     558      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
     559      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
    566560      ! 
    567561      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    588582            DO jj = 1, jpjm1 
    589583               DO ji = 1, fs_jpim1   ! vector opt. 
    590                   ze3f = (  e3t(ji,jj+1,jk,ktlev)*tmask(ji,jj+1,jk) + e3t(ji+1,jj+1,jk,ktlev)*tmask(ji+1,jj+1,jk)   & 
    591                      &    + e3t(ji,jj  ,jk,ktlev)*tmask(ji,jj  ,jk) + e3t(ji+1,jj  ,jk,ktlev)*tmask(ji+1,jj  ,jk)  ) 
     584                  ze3f = (  e3t_n(ji,jj+1,jk)*tmask(ji,jj+1,jk) + e3t_n(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk)   & 
     585                     &    + e3t_n(ji,jj  ,jk)*tmask(ji,jj  ,jk) + e3t_n(ji+1,jj  ,jk)*tmask(ji+1,jj  ,jk)  ) 
    592586                  IF( ze3f /= 0._wp ) THEN   ;   z1_e3f(ji,jj) = 4._wp / ze3f 
    593587                  ELSE                       ;   z1_e3f(ji,jj) = 0._wp 
     
    598592            DO jj = 1, jpjm1 
    599593               DO ji = 1, fs_jpim1   ! vector opt. 
    600                   ze3f = (  e3t(ji,jj+1,jk,ktlev)*tmask(ji,jj+1,jk) + e3t(ji+1,jj+1,jk,ktlev)*tmask(ji+1,jj+1,jk)   & 
    601                      &    + e3t(ji,jj  ,jk,ktlev)*tmask(ji,jj  ,jk) + e3t(ji+1,jj  ,jk,ktlev)*tmask(ji+1,jj  ,jk)  ) 
     594                  ze3f = (  e3t_n(ji,jj+1,jk)*tmask(ji,jj+1,jk) + e3t_n(ji+1,jj+1,jk)*tmask(ji+1,jj+1,jk)   & 
     595                     &    + e3t_n(ji,jj  ,jk)*tmask(ji,jj  ,jk) + e3t_n(ji+1,jj  ,jk)*tmask(ji+1,jj  ,jk)  ) 
    602596                  zmsk = (                    tmask(ji,jj+1,jk) +                     tmask(ji+1,jj+1,jk)   & 
    603597                     &                      + tmask(ji,jj  ,jk) +                     tmask(ji+1,jj  ,jk)  ) 
     
    619613            DO jj = 1, jpjm1 
    620614               DO ji = 1, fs_jpim1   ! vector opt. 
    621                   zwz(ji,jj,jk) = ( e2v(ji+1,jj  ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    622                      &            - e1u(ji  ,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj)*z1_e3f(ji,jj) 
     615                  zwz(ji,jj,jk) = ( e2v(ji+1,jj  ) * pvn(ji+1,jj,jk) - e2v(ji,jj) * pvn(ji,jj,jk)  & 
     616                     &            - e1u(ji  ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) * r1_e1e2f(ji,jj)*z1_e3f(ji,jj) 
    623617               END DO 
    624618            END DO 
     
    626620            DO jj = 1, jpjm1 
    627621               DO ji = 1, fs_jpim1   ! vector opt. 
    628                   zwz(ji,jj,jk) = (   ( pv(ji+1,jj,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    629                      &              - ( pu(ji,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
     622                  zwz(ji,jj,jk) = (   ( pvn(ji+1,jj,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     623                     &              - ( pun(ji,jj+1,jk) + pun(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
    630624               END DO 
    631625            END DO 
     
    633627            DO jj = 1, jpjm1 
    634628               DO ji = 1, fs_jpim1   ! vector opt. 
    635                   zwz(ji,jj,jk) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)      & 
    636                      &                              - e1u(ji  ,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  )   & 
     629                  zwz(ji,jj,jk) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pvn(ji+1,jj,jk) - e2v(ji,jj) * pvn(ji,jj,jk)      & 
     630                     &                              - e1u(ji  ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  )   & 
    637631                     &                           * r1_e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
    638632               END DO 
     
    641635            DO jj = 1, jpjm1 
    642636               DO ji = 1, fs_jpim1   ! vector opt. 
    643                   zwz(ji,jj,jk) = (   ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    644                      &                            - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
     637                  zwz(ji,jj,jk) = (   ff_f(ji,jj) + ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     638                     &                            - ( pun(ji  ,jj+1,jk) + pun(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
    645639               END DO 
    646640            END DO 
     
    663657         ! 
    664658         !                                   !==  horizontal fluxes  ==! 
    665          zwx(:,:) = e2u(:,:) * e3u(:,:,jk,ktlev) * pu(:,:,jk) 
    666          zwy(:,:) = e1v(:,:) * e3v(:,:,jk,ktlev) * pv(:,:,jk) 
     659         zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * pun(:,:,jk) 
     660         zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * pvn(:,:,jk) 
    667661 
    668662         !                                   !==  compute and add the vorticity term trend  =! 
     
    689683               zva = - r1_12 * r1_e2v(ji,jj) * (  ztsw(ji,jj+1) * zwx(ji-1,jj+1) + ztse(ji,jj+1) * zwx(ji  ,jj+1)   & 
    690684                  &                             + ztnw(ji,jj  ) * zwx(ji-1,jj  ) + ztne(ji,jj  ) * zwx(ji  ,jj  ) ) 
    691                pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zua 
    692                pva_rhs(ji,jj,jk) = pva_rhs(ji,jj,jk) + zva 
     685               pua(ji,jj,jk) = pua(ji,jj,jk) + zua 
     686               pva(ji,jj,jk) = pva(ji,jj,jk) + zva 
    693687            END DO   
    694688         END DO   
     
    700694 
    701695 
    702    SUBROUTINE vor_eeT( kt, ktlev, kvor, pu, pv, pu_rhs, pva_rhs ) 
     696   SUBROUTINE vor_eeT( kt, kvor, pun, pvn, pua, pva ) 
    703697      !!---------------------------------------------------------------------- 
    704698      !!                ***  ROUTINE vor_eeT  *** 
     
    711705      !!      a modified version of Arakawa and Lamb (1980) scheme (see vor_een). 
    712706      !!      The change consists in  
    713       !!      Add this trend to the general momentum trend (u_rhs,v_rhs). 
    714       !! 
    715       !! ** Action : - Update (u_rhs,v_rhs) with the now vorticity term trend 
     707      !!      Add this trend to the general momentum trend (ua,va). 
     708      !! 
     709      !! ** Action : - Update (ua,va) with the now vorticity term trend 
    716710      !! 
    717711      !! References : Arakawa and Lamb 1980, Mon. Wea. Rev., 109, 18-36 
    718712      !!---------------------------------------------------------------------- 
    719713      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
    720       INTEGER                         , INTENT( in )  ::   ktlev            ! time level index for source terms 
    721714      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
    722       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu, pv    ! now velocities 
    723       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pu_rhs, pva_rhs    ! total v-trend 
     715      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
     716      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
    724717      ! 
    725718      INTEGER  ::   ji, jj, jk     ! dummy loop indices 
     
    753746            DO jj = 1, jpjm1 
    754747               DO ji = 1, fs_jpim1   ! vector opt. 
    755                   zwz(ji,jj,jk) = (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    756                      &             - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) & 
     748                  zwz(ji,jj,jk) = (  e2v(ji+1,jj  ) * pvn(ji+1,jj  ,jk) - e2v(ji,jj) * pvn(ji,jj,jk)    & 
     749                     &             - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) & 
    757750                     &          * r1_e1e2f(ji,jj) 
    758751               END DO 
     
    761754            DO jj = 1, jpjm1 
    762755               DO ji = 1, fs_jpim1   ! vector opt. 
    763                   zwz(ji,jj,jk) = ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    764                      &          - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     756                  zwz(ji,jj,jk) = ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     757                     &          - ( pun(ji  ,jj+1,jk) + pun(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    765758               END DO 
    766759            END DO 
     
    768761            DO jj = 1, jpjm1 
    769762               DO ji = 1, fs_jpim1   ! vector opt. 
    770                   zwz(ji,jj,jk) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pv(ji+1,jj  ,jk) - e2v(ji,jj) * pv(ji,jj,jk)    & 
    771                      &                              - e1u(ji  ,jj+1) * pu(ji  ,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) & 
     763                  zwz(ji,jj,jk) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pvn(ji+1,jj  ,jk) - e2v(ji,jj) * pvn(ji,jj,jk)    & 
     764                     &                              - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) & 
    772765                     &                         * r1_e1e2f(ji,jj)    ) 
    773766               END DO 
     
    776769            DO jj = 1, jpjm1 
    777770               DO ji = 1, fs_jpim1   ! vector opt. 
    778                   zwz(ji,jj,jk) = ff_f(ji,jj) + ( pv(ji+1,jj  ,jk) + pv(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    779                      &                        - ( pu(ji  ,jj+1,jk) + pu(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
     771                  zwz(ji,jj,jk) = ff_f(ji,jj) + ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
     772                     &                        - ( pun(ji  ,jj+1,jk) + pun(ji,jj,jk) ) * dj_e1u_2e1e2f(ji,jj) 
    780773               END DO 
    781774            END DO 
     
    798791 
    799792      !                                   !==  horizontal fluxes  ==! 
    800          zwx(:,:) = e2u(:,:) * e3u(:,:,jk,ktlev) * pu(:,:,jk) 
    801          zwy(:,:) = e1v(:,:) * e3v(:,:,jk,ktlev) * pv(:,:,jk) 
     793         zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * pun(:,:,jk) 
     794         zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * pvn(:,:,jk) 
    802795 
    803796         !                                   !==  compute and add the vorticity term trend  =! 
     
    805798         ztne(1,:) = 0   ;   ztnw(1,:) = 0   ;   ztse(1,:) = 0   ;   ztsw(1,:) = 0 
    806799         DO ji = 2, jpi          ! split in 2 parts due to vector opt. 
    807                z1_e3t = 1._wp / e3t(ji,jj,jk,ktlev) 
     800               z1_e3t = 1._wp / e3t_n(ji,jj,jk) 
    808801               ztne(ji,jj) = ( zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) ) * z1_e3t 
    809802               ztnw(ji,jj) = ( zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) ) * z1_e3t 
     
    813806         DO jj = 3, jpj 
    814807            DO ji = fs_2, jpi   ! vector opt. ok because we start at jj = 3 
    815                z1_e3t = 1._wp / e3t(ji,jj,jk,ktlev) 
     808               z1_e3t = 1._wp / e3t_n(ji,jj,jk) 
    816809               ztne(ji,jj) = ( zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) ) * z1_e3t 
    817810               ztnw(ji,jj) = ( zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) ) * z1_e3t 
     
    826819               zva = - r1_12 * r1_e2v(ji,jj) * (  ztsw(ji,jj+1) * zwx(ji-1,jj+1) + ztse(ji,jj+1) * zwx(ji  ,jj+1)   & 
    827820                  &                             + ztnw(ji,jj  ) * zwx(ji-1,jj  ) + ztne(ji,jj  ) * zwx(ji  ,jj  ) ) 
    828                pu_rhs(ji,jj,jk) = pu_rhs(ji,jj,jk) + zua 
    829                pva_rhs(ji,jj,jk) = pva_rhs(ji,jj,jk) + zva 
     821               pua(ji,jj,jk) = pua(ji,jj,jk) + zua 
     822               pva(ji,jj,jk) = pva(ji,jj,jk) + zva 
    830823            END DO   
    831824         END DO   
     
    873866         WRITE(numout,*) '         e3f = averaging /4 (=0) or /sum(tmask) (=1)    nn_een_e3f = ', nn_een_e3f 
    874867         WRITE(numout,*) '      mixed enstrophy/energy conserving scheme       ln_dynvor_mix = ', ln_dynvor_mix 
    875          WRITE(numout,*) '      masked (=T) or uu(:,:,:,ktlev)masked(=F) vorticity          ln_dynvor_msk = ', ln_dynvor_msk 
     868         WRITE(numout,*) '      masked (=T) or unmasked(=F) vorticity          ln_dynvor_msk = ', ln_dynvor_msk 
    876869      ENDIF 
    877870 
Note: See TracChangeset for help on using the changeset viewer.