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 7698 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/zpshde.F90 – NEMO

Ignore:
Timestamp:
2017-02-18T10:02:03+01:00 (7 years ago)
Author:
mocavero
Message:

update trunk with OpenMP parallelization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/TRA/zpshde.F90

    r6140 r7698  
    101101      IF( nn_timing == 1 )   CALL timing_start( 'zps_hde') 
    102102      ! 
    103       pgtu(:,:,:)=0._wp   ;   zti (:,:,:)=0._wp   ;   zhi (:,:  )=0._wp 
    104       pgtv(:,:,:)=0._wp   ;   ztj (:,:,:)=0._wp   ;   zhj (:,:  )=0._wp 
     103      DO jn = 1, kjpt 
     104!$OMP PARALLEL DO schedule(static) private(jj,ji) 
     105         DO jj = 1, jpjm1 
     106            DO ji = 1, jpim1 
     107               pgtu(ji,jj,jn)=0._wp   ;   zti (ji,jj,jn)=0._wp 
     108               pgtv(ji,jj,jn)=0._wp   ;   ztj (ji,jj,jn)=0._wp 
     109            END DO 
     110         END DO 
     111      END DO 
     112!$OMP PARALLEL DO schedule(static) private(jj,ji) 
     113      DO jj = 1, jpjm1 
     114         DO ji = 1, jpim1 
     115            zhi (ji,jj  )=0._wp 
     116            zhj (ji,jj  )=0._wp 
     117         END DO 
     118       END DO 
    105119      ! 
    106120      DO jn = 1, kjpt      !==   Interpolation of tracers at the last ocean level   ==! 
    107121         ! 
     122!$OMP PARALLEL DO schedule(static) private(jj,ji,iku,ikv,ze3wu,ze3wv,zmaxu,zmaxv) 
    108123         DO jj = 1, jpjm1 
    109124            DO ji = 1, jpim1 
     
    150165      !                 
    151166      IF( PRESENT( prd ) ) THEN    !==  horizontal derivative of density anomalies (rd)  ==!    (optional part) 
    152          pgru(:,:) = 0._wp 
    153          pgrv(:,:) = 0._wp                ! depth of the partial step level 
     167!$OMP PARALLEL 
     168!$OMP DO schedule(static) private(jj,ji) 
     169         DO jj = 1, jpjm1 
     170            DO ji = 1, jpim1 
     171               pgru(ji,jj) = 0._wp 
     172               pgrv(ji,jj) = 0._wp                ! depth of the partial step level 
     173            END DO 
     174         END DO 
     175!$OMP END DO NOWAIT 
     176!$OMP DO schedule(static) private(jj,ji,iku,ikv,ze3wu,ze3wv) 
    154177         DO jj = 1, jpjm1 
    155178            DO ji = 1, jpim1 
     
    166189            END DO 
    167190         END DO 
     191!$OMP END DO NOWAIT 
     192!$OMP END PARALLEL 
    168193         ! 
    169194         CALL eos( zti, zhi, zri )        ! interpolated density from zti, ztj  
    170195         CALL eos( ztj, zhj, zrj )        ! at the partial step depth output in  zri, zrj  
    171196         ! 
     197!$OMP PARALLEL DO schedule(static) private(jj,ji,iku,ikv,ze3wu,ze3wv) 
    172198         DO jj = 1, jpjm1                 ! Gradient of density at the last level  
    173199            DO ji = 1, jpim1 
Note: See TracChangeset for help on using the changeset viewer.