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 7037 for branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90 – NEMO

Ignore:
Timestamp:
2016-10-18T15:32:04+02:00 (8 years ago)
Author:
mocavero
Message:

ORCA2_LIM_PISCES hybrid version update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r6748 r7037  
    322322 
    323323         IF( ln_sco ) THEN 
     324!$OMP PARALLEL WORKSHARE 
    324325            zwz(:,:) = zwz(:,:) / e3f_n(:,:,jk) 
    325326            zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 
    326327            zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 
     328!$OMP END PARALLEL WORKSHARE 
    327329         ELSE 
    328330!$OMP PARALLEL WORKSHARE 
     
    521523         SELECT CASE( nn_een_e3f )           ! == reciprocal of e3 at F-point 
    522524         CASE ( 0 )                                   ! original formulation  (masked averaging of e3t divided by 4) 
     525!$OMP PARALLEL DO private(jj,ji,ze3) 
    523526            DO jj = 1, jpjm1 
    524527               DO ji = 1, fs_jpim1   ! vector opt. 
     
    531534            END DO 
    532535         CASE ( 1 )                                   ! new formulation  (masked averaging of e3t divided by the sum of mask) 
     536!$OMP PARALLEL DO private(jj,ji,ze3,zmsk) 
    533537            DO jj = 1, jpjm1 
    534538               DO ji = 1, fs_jpim1   ! vector opt. 
     
    546550         SELECT CASE( kvor )                 !==  vorticity considered  ==! 
    547551         CASE ( np_COR )                           !* Coriolis (planetary vorticity) 
     552!$OMP PARALLEL DO private(jj,ji) 
    548553            DO jj = 1, jpjm1 
    549554               DO ji = 1, fs_jpim1   ! vector opt. 
     
    552557            END DO 
    553558         CASE ( np_RVO )                           !* relative vorticity 
     559!$OMP PARALLEL DO private(jj,ji) 
    554560            DO jj = 1, jpjm1 
    555561               DO ji = 1, fs_jpim1   ! vector opt. 
     
    560566            END DO 
    561567         CASE ( np_MET )                           !* metric term 
     568!$OMP PARALLEL DO private(jj,ji) 
    562569            DO jj = 1, jpjm1 
    563570               DO ji = 1, fs_jpim1   ! vector opt. 
     
    568575            END DO 
    569576         CASE ( np_CRV )                           !* Coriolis + relative vorticity 
     577!$OMP PARALLEL DO private(jj,ji) 
    570578            DO jj = 1, jpjm1 
    571579               DO ji = 1, fs_jpim1   ! vector opt. 
     
    576584            END DO 
    577585         CASE ( np_CME )                           !* Coriolis + metric 
     586!$OMP PARALLEL DO private(jj,ji) 
    578587            DO jj = 1, jpjm1 
    579588               DO ji = 1, fs_jpim1   ! vector opt. 
     
    589598         ! 
    590599         IF( ln_dynvor_msk ) THEN          !==  mask/unmask vorticity ==! 
     600!$OMP PARALLEL DO private(jj,ji) 
    591601            DO jj = 1, jpjm1 
    592602               DO ji = 1, fs_jpim1   ! vector opt. 
     
    599609         ! 
    600610         !                                   !==  horizontal fluxes  ==! 
    601          zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * un(:,:,jk) 
    602          zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 
     611!$OMP PARALLEL DO private(jj,ji) 
     612         DO jj = 1, jpj 
     613            DO ji = 1, jpi 
     614               zwx(ji,jj) = e2u(ji,jj) * e3u_n(ji,jj,jk) * un(ji,jj,jk) 
     615               zwy(ji,jj) = e1v(ji,jj) * e3v_n(ji,jj,jk) * vn(ji,jj,jk) 
     616            END DO 
     617         END DO 
    603618 
    604619         !                                   !==  compute and add the vorticity term trend  =! 
     
    611626               ztsw(ji,jj) = zwz(ji  ,jj-1) + zwz(ji-1,jj-1) + zwz(ji-1,jj  ) 
    612627         END DO 
     628!$OMP PARALLEL 
     629!$OMP DO private(jj,ji) 
    613630         DO jj = 3, jpj 
    614631            DO ji = fs_2, jpi   ! vector opt. ok because we start at jj = 3 
     
    619636            END DO 
    620637         END DO 
     638!$OMP DO private(jj,ji,zua,zva) 
    621639         DO jj = 2, jpjm1 
    622640            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    628646               pva(ji,jj,jk) = pva(ji,jj,jk) + zva 
    629647            END DO   
    630          END DO   
     648         END DO  
     649!$OMP END DO NOWAIT 
     650!$OMP END PARALLEL  
    631651         !                                             ! =============== 
    632652      END DO                                           !   End of slab 
     
    683703      IF(lwp) WRITE(numout,*) '           namlbc: change fmask value in the angles (T)   ln_vorlat = ', ln_vorlat 
    684704      IF( ln_vorlat .AND. ( ln_dynvor_ene .OR. ln_dynvor_ens .OR. ln_dynvor_mix ) ) THEN 
     705!$OMP PARALLEL DO private(jk,jj,ji) 
    685706         DO jk = 1, jpk 
    686707            DO jj = 2, jpjm1 
Note: See TracChangeset for help on using the changeset viewer.