Ignore:
Timestamp:
2018-11-09T16:47:05+01:00 (23 months ago)
Author:
smasson
Message:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: action 5: reduce communications in oce, see #2133

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/src/OCE/DYN/dynvor.F90

    r10170 r10293  
    212212      INTEGER  ::   ji, jj, jk           ! dummy loop indices 
    213213      REAL(wp) ::   zx1, zy1, zx2, zy2   ! local scalars 
    214       REAL(wp), DIMENSION(jpi,jpj) ::   zwx, zwy, zwz, zwt   ! 2D workspace 
     214      REAL(wp), DIMENSION(jpi,jpj)     ::   zwx, zwy, zwt   ! 2D workspace 
     215      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwz             ! 3D workspace 
    215216      !!---------------------------------------------------------------------- 
    216217      ! 
     
    221222      ENDIF 
    222223      ! 
     224      ! 
     225      SELECT CASE( kvor )                 !==  volume weighted vorticity considered  ==! 
     226      CASE ( np_RVO )                           !* relative vorticity 
     227         DO jk = 1, jpkm1                                 ! Horizontal slab 
     228            DO jj = 1, jpjm1 
     229               DO ji = 1, jpim1 
     230                  zwz(ji,jj,jk) = (  e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
     231                     &             - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
     232               END DO 
     233            END DO 
     234            IF( ln_dynvor_msk ) THEN                     ! mask/unmask relative vorticity  
     235               DO jj = 1, jpjm1 
     236                  DO ji = 1, jpim1 
     237                     zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
     238                  END DO 
     239               END DO 
     240            ENDIF 
     241         END DO 
     242 
     243         CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
     244 
     245      CASE ( np_CRV )                           !* Coriolis + relative vorticity 
     246         DO jk = 1, jpkm1                                 ! Horizontal slab 
     247            DO jj = 1, jpjm1 
     248               DO ji = 1, jpim1                          ! relative vorticity 
     249                  zwz(ji,jj,jk) = (   e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)   & 
     250                     &              - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)   ) * r1_e1e2f(ji,jj) 
     251               END DO 
     252            END DO 
     253            IF( ln_dynvor_msk ) THEN                     ! mask/unmask relative vorticity  
     254               DO jj = 1, jpjm1 
     255                  DO ji = 1, jpim1 
     256                     zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
     257                  END DO 
     258               END DO 
     259            ENDIF 
     260         END DO 
     261 
     262         CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
     263 
     264      END SELECT 
     265 
    223266      !                                                ! =============== 
    224267      DO jk = 1, jpkm1                                 ! Horizontal slab 
    225          !                                             ! =============== 
    226          ! 
     268      !                                                ! =============== 
     269 
    227270         SELECT CASE( kvor )                 !==  volume weighted vorticity considered  ==! 
    228271         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
    229272            zwt(:,:) = ff_t(:,:) * e1e2t(:,:)*e3t_n(:,:,jk) 
    230273         CASE ( np_RVO )                           !* relative vorticity 
    231             DO jj = 1, jpjm1 
    232                DO ji = 1, jpim1 
    233                   zwz(ji,jj) = (  e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)  & 
    234                      &          - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)  ) * r1_e1e2f(ji,jj) 
    235                END DO 
    236             END DO 
    237             IF( ln_dynvor_msk ) THEN                     ! mask/unmask relative vorticity  
    238                DO jj = 1, jpjm1 
    239                   DO ji = 1, jpim1 
    240                      zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 
    241                   END DO 
    242                END DO 
    243             ENDIF 
    244             CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
    245274            DO jj = 2, jpj 
    246275               DO ji = 2, jpi   ! vector opt. 
    247                   zwt(ji,jj) = r1_4 * (   zwz(ji-1,jj  ) + zwz(ji,jj  )   & 
    248                      &                  + zwz(ji-1,jj-1) + zwz(ji,jj-1)  ) * e1e2t(ji,jj)*e3t_n(ji,jj,jk) 
     276                  zwt(ji,jj) = r1_4 * (   zwz(ji-1,jj  ,jk) + zwz(ji,jj  ,jk)   & 
     277                     &                  + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) ) * e1e2t(ji,jj)*e3t_n(ji,jj,jk) 
    249278               END DO 
    250279            END DO 
     
    257286            END DO 
    258287         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
    259             DO jj = 1, jpjm1 
    260                DO ji = 1, jpim1                          ! relative vorticity 
    261                   zwz(ji,jj) = (   e2v(ji+1,jj) * pv(ji+1,jj,jk) - e2v(ji,jj) * pv(ji,jj,jk)   & 
    262                      &           - e1u(ji,jj+1) * pu(ji,jj+1,jk) + e1u(ji,jj) * pu(ji,jj,jk)   ) * r1_e1e2f(ji,jj) 
    263                END DO 
    264             END DO 
    265             IF( ln_dynvor_msk ) THEN                     ! mask/unmask relative vorticity  
    266                DO jj = 1, jpjm1 
    267                   DO ji = 1, jpim1 
    268                      zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 
    269                   END DO 
    270                END DO 
    271             ENDIF 
    272             CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
    273288            DO jj = 2, jpj 
    274289               DO ji = 2, jpi   ! vector opt. 
    275                   zwt(ji,jj) = (  ff_t(ji,jj) + r1_4 * ( zwz(ji-1,jj  ) + zwz(ji,jj  )    & 
    276                      &                                 + zwz(ji-1,jj-1) + zwz(ji,jj-1) )  ) * e1e2t(ji,jj)*e3t_n(ji,jj,jk) 
     290                  zwt(ji,jj) = (  ff_t(ji,jj) + r1_4 * ( zwz(ji-1,jj  ,jk) + zwz(ji,jj  ,jk)    & 
     291                     &                                 + zwz(ji-1,jj-1,jk) + zwz(ji,jj-1,jk) )  ) * e1e2t(ji,jj)*e3t_n(ji,jj,jk) 
    277292               END DO 
    278293            END DO 
     
    548563      REAL(wp) ::   zua, zva     ! local scalars 
    549564      REAL(wp) ::   zmsk, ze3f   ! local scalars 
    550       REAL(wp), DIMENSION(jpi,jpj) ::   zwx , zwy , zwz , z1_e3f 
    551       REAL(wp), DIMENSION(jpi,jpj) ::   ztnw, ztne, ztsw, ztse 
     565      REAL(wp), DIMENSION(jpi,jpj)     ::   zwx , zwy , z1_e3f 
     566      REAL(wp), DIMENSION(jpi,jpj)     ::   ztnw, ztne, ztsw, ztse 
     567      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwz 
    552568      !!---------------------------------------------------------------------- 
    553569      ! 
     
    591607            DO jj = 1, jpjm1 
    592608               DO ji = 1, fs_jpim1   ! vector opt. 
    593                   zwz(ji,jj) = ff_f(ji,jj) * z1_e3f(ji,jj) 
     609                  zwz(ji,jj,jk) = ff_f(ji,jj) * z1_e3f(ji,jj) 
    594610               END DO 
    595611            END DO 
     
    597613            DO jj = 1, jpjm1 
    598614               DO ji = 1, fs_jpim1   ! vector opt. 
    599                   zwz(ji,jj) = ( e2v(ji+1,jj  ) * pvn(ji+1,jj,jk) - e2v(ji,jj) * pvn(ji,jj,jk)  & 
    600                      &         - e1u(ji  ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(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) 
    601617               END DO 
    602618            END DO 
     
    604620            DO jj = 1, jpjm1 
    605621               DO ji = 1, fs_jpim1   ! vector opt. 
    606                   zwz(ji,jj) = (   ( pvn(ji+1,jj,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    607                      &           - ( pun(ji,jj+1,jk) + pun(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) 
    608624               END DO 
    609625            END DO 
     
    611627            DO jj = 1, jpjm1 
    612628               DO ji = 1, fs_jpim1   ! vector opt. 
    613                   zwz(ji,jj) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pvn(ji+1,jj,jk) - e2v(ji,jj) * pvn(ji,jj,jk)      & 
    614                      &                           - e1u(ji  ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  )   & 
    615                      &                        * r1_e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
     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)  )   & 
     631                     &                           * r1_e1e2f(ji,jj)   ) * z1_e3f(ji,jj) 
    616632               END DO 
    617633            END DO 
     
    619635            DO jj = 1, jpjm1 
    620636               DO ji = 1, fs_jpim1   ! vector opt. 
    621                   zwz(ji,jj) = (   ff_f(ji,jj) + ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    622                      &                         - ( pun(ji  ,jj+1,jk) + pun(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) 
    623639               END DO 
    624640            END DO 
     
    630646            DO jj = 1, jpjm1 
    631647               DO ji = 1, fs_jpim1   ! vector opt. 
    632                   zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 
     648                  zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    633649               END DO 
    634650            END DO 
    635651         ENDIF 
    636          ! 
    637          CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
     652      END DO                                           !   End of slab 
     653         ! 
     654      CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
     655 
     656      DO jk = 1, jpkm1                                 ! Horizontal slab 
    638657         ! 
    639658         !                                   !==  horizontal fluxes  ==! 
     
    645664         ztne(1,:) = 0   ;   ztnw(1,:) = 0   ;   ztse(1,:) = 0   ;   ztsw(1,:) = 0 
    646665         DO ji = 2, jpi          ! split in 2 parts due to vector opt. 
    647                ztne(ji,jj) = zwz(ji-1,jj  ) + zwz(ji  ,jj  ) + zwz(ji  ,jj-1) 
    648                ztnw(ji,jj) = zwz(ji-1,jj-1) + zwz(ji-1,jj  ) + zwz(ji  ,jj  ) 
    649                ztse(ji,jj) = zwz(ji  ,jj  ) + zwz(ji  ,jj-1) + zwz(ji-1,jj-1) 
    650                ztsw(ji,jj) = zwz(ji  ,jj-1) + zwz(ji-1,jj-1) + zwz(ji-1,jj  ) 
     666               ztne(ji,jj) = zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) 
     667               ztnw(ji,jj) = zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) 
     668               ztse(ji,jj) = zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) 
     669               ztsw(ji,jj) = zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) 
    651670         END DO 
    652671         DO jj = 3, jpj 
    653672            DO ji = fs_2, jpi   ! vector opt. ok because we start at jj = 3 
    654                ztne(ji,jj) = zwz(ji-1,jj  ) + zwz(ji  ,jj  ) + zwz(ji  ,jj-1) 
    655                ztnw(ji,jj) = zwz(ji-1,jj-1) + zwz(ji-1,jj  ) + zwz(ji  ,jj  ) 
    656                ztse(ji,jj) = zwz(ji  ,jj  ) + zwz(ji  ,jj-1) + zwz(ji-1,jj-1) 
    657                ztsw(ji,jj) = zwz(ji  ,jj-1) + zwz(ji-1,jj-1) + zwz(ji-1,jj  ) 
     673               ztne(ji,jj) = zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) 
     674               ztnw(ji,jj) = zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) 
     675               ztse(ji,jj) = zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) 
     676               ztsw(ji,jj) = zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) 
    658677            END DO 
    659678         END DO 
     
    701720      REAL(wp) ::   zua, zva       ! local scalars 
    702721      REAL(wp) ::   zmsk, z1_e3t   ! local scalars 
    703       REAL(wp), DIMENSION(jpi,jpj) ::   zwx , zwy , zwz 
    704       REAL(wp), DIMENSION(jpi,jpj) ::   ztnw, ztne, ztsw, ztse 
     722      REAL(wp), DIMENSION(jpi,jpj)     ::   zwx , zwy  
     723      REAL(wp), DIMENSION(jpi,jpj)     ::   ztnw, ztne, ztsw, ztse 
     724      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zwz 
    705725      !!---------------------------------------------------------------------- 
    706726      ! 
     
    720740            DO jj = 1, jpjm1 
    721741               DO ji = 1, fs_jpim1   ! vector opt. 
    722                   zwz(ji,jj) = ff_f(ji,jj) 
     742                  zwz(ji,jj,jk) = ff_f(ji,jj) 
    723743               END DO 
    724744            END DO 
     
    726746            DO jj = 1, jpjm1 
    727747               DO ji = 1, fs_jpim1   ! vector opt. 
    728                   zwz(ji,jj) = (  e2v(ji+1,jj  ) * pvn(ji+1,jj  ,jk) - e2v(ji,jj) * pvn(ji,jj,jk)    & 
    729                      &          - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) & 
    730                      &       * r1_e1e2f(ji,jj) 
     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)  ) & 
     750                     &          * r1_e1e2f(ji,jj) 
    731751               END DO 
    732752            END DO 
     
    734754            DO jj = 1, jpjm1 
    735755               DO ji = 1, fs_jpim1   ! vector opt. 
    736                   zwz(ji,jj) = ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    737                      &       - ( pun(ji  ,jj+1,jk) + pun(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) 
    738758               END DO 
    739759            END DO 
     
    741761            DO jj = 1, jpjm1 
    742762               DO ji = 1, fs_jpim1   ! vector opt. 
    743                   zwz(ji,jj) = (  ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pvn(ji+1,jj  ,jk) - e2v(ji,jj) * pvn(ji,jj,jk)    & 
    744                      &                           - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) & 
    745                      &                      * r1_e1e2f(ji,jj)    ) 
     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)  ) & 
     765                     &                         * r1_e1e2f(ji,jj)    ) 
    746766               END DO 
    747767            END DO 
     
    749769            DO jj = 1, jpjm1 
    750770               DO ji = 1, fs_jpim1   ! vector opt. 
    751                   zwz(ji,jj) = ff_f(ji,jj) + ( pvn(ji+1,jj  ,jk) + pvn(ji,jj,jk) ) * di_e2v_2e1e2f(ji,jj)   & 
    752                      &                     - ( pun(ji  ,jj+1,jk) + pun(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) 
    753773               END DO 
    754774            END DO 
     
    760780            DO jj = 1, jpjm1 
    761781               DO ji = 1, fs_jpim1   ! vector opt. 
    762                   zwz(ji,jj) = zwz(ji,jj) * fmask(ji,jj,jk) 
     782                  zwz(ji,jj,jk) = zwz(ji,jj,jk) * fmask(ji,jj,jk) 
    763783               END DO 
    764784            END DO 
    765785         ENDIF 
    766          ! 
    767          CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
    768          ! 
    769          !                                   !==  horizontal fluxes  ==! 
     786      END DO 
     787      ! 
     788      CALL lbc_lnk( 'dynvor', zwz, 'F', 1. ) 
     789      ! 
     790      DO jk = 1, jpkm1                                 ! Horizontal slab 
     791 
     792      !                                   !==  horizontal fluxes  ==! 
    770793         zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * pun(:,:,jk) 
    771794         zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * pvn(:,:,jk) 
     
    776799         DO ji = 2, jpi          ! split in 2 parts due to vector opt. 
    777800               z1_e3t = 1._wp / e3t_n(ji,jj,jk) 
    778                ztne(ji,jj) = ( zwz(ji-1,jj  ) + zwz(ji  ,jj  ) + zwz(ji  ,jj-1) ) * z1_e3t 
    779                ztnw(ji,jj) = ( zwz(ji-1,jj-1) + zwz(ji-1,jj  ) + zwz(ji  ,jj  ) ) * z1_e3t 
    780                ztse(ji,jj) = ( zwz(ji  ,jj  ) + zwz(ji  ,jj-1) + zwz(ji-1,jj-1) ) * z1_e3t 
    781                ztsw(ji,jj) = ( zwz(ji  ,jj-1) + zwz(ji-1,jj-1) + zwz(ji-1,jj  ) ) * z1_e3t 
     801               ztne(ji,jj) = ( zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) ) * z1_e3t 
     802               ztnw(ji,jj) = ( zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) ) * z1_e3t 
     803               ztse(ji,jj) = ( zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) ) * z1_e3t 
     804               ztsw(ji,jj) = ( zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) ) * z1_e3t 
    782805         END DO 
    783806         DO jj = 3, jpj 
    784807            DO ji = fs_2, jpi   ! vector opt. ok because we start at jj = 3 
    785808               z1_e3t = 1._wp / e3t_n(ji,jj,jk) 
    786                ztne(ji,jj) = ( zwz(ji-1,jj  ) + zwz(ji  ,jj  ) + zwz(ji  ,jj-1) ) * z1_e3t 
    787                ztnw(ji,jj) = ( zwz(ji-1,jj-1) + zwz(ji-1,jj  ) + zwz(ji  ,jj  ) ) * z1_e3t 
    788                ztse(ji,jj) = ( zwz(ji  ,jj  ) + zwz(ji  ,jj-1) + zwz(ji-1,jj-1) ) * z1_e3t 
    789                ztsw(ji,jj) = ( zwz(ji  ,jj-1) + zwz(ji-1,jj-1) + zwz(ji-1,jj  ) ) * z1_e3t 
     809               ztne(ji,jj) = ( zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) ) * z1_e3t 
     810               ztnw(ji,jj) = ( zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) + zwz(ji  ,jj  ,jk) ) * z1_e3t 
     811               ztse(ji,jj) = ( zwz(ji  ,jj  ,jk) + zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) ) * z1_e3t 
     812               ztsw(ji,jj) = ( zwz(ji  ,jj-1,jk) + zwz(ji-1,jj-1,jk) + zwz(ji-1,jj  ,jk) ) * z1_e3t 
    790813            END DO 
    791814         END DO 
Note: See TracChangeset for help on using the changeset viewer.