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/ZDF/zdfddm.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/ZDF/zdfddm.F90

    r6497 r7698  
    112112         ! Define the mask  
    113113         ! --------------- 
     114!$OMP PARALLEL 
     115!$OMP DO schedule(static) private(jj,ji,zrw,zaw,zbw,zdt,zds) 
    114116         DO jj = 1, jpj                                ! R=zrau = (alpha / beta) (dk[t] / dk[s]) 
    115117            DO ji = 1, jpi 
     
    128130            END DO 
    129131         END DO 
    130  
     132!$OMP END DO NOWAIT 
     133 
     134!$OMP DO schedule(static) private(jj,ji) 
    131135         DO jj = 1, jpj                                     ! indicators: 
    132136            DO ji = 1, jpi 
     
    155159         END DO 
    156160         ! mask zmsk in order to have avt and avs masked 
    157          zmsks(:,:) = zmsks(:,:) * wmask(:,:,jk) 
    158  
     161 
     162!$OMP DO schedule(static) private(jj,ji) 
     163         DO jj = 1, jpj                                
     164            DO ji = 1, jpi 
     165               zmsks(ji,jj) = zmsks(ji,jj) * wmask(ji,jj,jk) 
     166            END DO 
     167         END DO 
    159168 
    160169         ! Update avt and avs 
    161170         ! ------------------ 
    162171         ! Constant eddy coefficient: reset to the background value 
     172!$OMP DO schedule(static) private(jj,ji,zinr,zrr,zavfs,zavft,zavdt,zavds) 
    163173         DO jj = 1, jpj 
    164174            DO ji = 1, jpi 
     
    189199         ! -------------------------------- 
    190200!!gm to be changed following the definition of avm. 
     201!$OMP DO schedule(static) private(jj,ji) 
    191202         DO jj = 1, jpjm1 
    192203            DO ji = 1, fs_jpim1   ! vector opt. 
     
    199210            END DO 
    200211         END DO 
     212!$OMP END DO NOWAIT 
     213!$OMP END PARALLEL 
    201214         !                                                ! =============== 
    202215      END DO                                              !   End of slab 
     
    232245      !!---------------------------------------------------------------------- 
    233246      INTEGER ::   ios   ! local integer 
     247      INTEGER  ::   ji, jj , jk     ! dummy loop indices 
    234248      !! 
    235249      NAMELIST/namzdf_ddm/ rn_avts, rn_hsbfr 
     
    257271      IF( zdf_ddm_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'zdf_ddm_init : unable to allocate arrays' ) 
    258272      !                               ! initialization to masked Kz 
    259       avs(:,:,:) = rn_avt0 * wmask(:,:,:)  
     273!$OMP DO schedule(static) private(jk,jj,ji) 
     274      DO jk = 1, jpk                                
     275         DO jj = 1, jpj                                
     276            DO ji = 1, jpi 
     277               avs(ji,jj,jk) = rn_avt0 * wmask(ji,jj,jk) 
     278            END DO 
     279         END DO 
     280      END DO  
    260281      ! 
    261282   END SUBROUTINE zdf_ddm_init 
Note: See TracChangeset for help on using the changeset viewer.