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

Ignore:
Timestamp:
2016-06-28T11:53:56+02:00 (8 years ago)
Author:
mocavero
Message:

GYRE hybrid parallelization

File:
1 edited

Legend:

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

    r6140 r6748  
    7777      IF( l_trddyn )   THEN         ! Save ua and va trends 
    7878         CALL wrk_alloc( jpi, jpj, jpk, ztrdu, ztrdv )  
     79!$OMP PARALLEL WORKSHARE  
    7980         ztrdu(:,:,:) = ua(:,:,:)  
    8081         ztrdv(:,:,:) = va(:,:,:)  
     82!$OMP END PARALLEL WORKSHARE  
    8183      ENDIF 
    8284       
    8385      DO jk = 2, jpkm1              ! Vertical momentum advection at level w and u- and v- vertical 
     86!$OMP PARALLEL DO schedule(static) private(jj, ji) 
    8487         DO jj = 2, jpj                   ! vertical fluxes  
    8588            DO ji = fs_2, jpi             ! vector opt. 
     
    8790            END DO 
    8891         END DO 
     92!$OMP PARALLEL DO schedule(static) private(jj, ji) 
    8993         DO jj = 2, jpjm1                 ! vertical momentum advection at w-point 
    9094            DO ji = fs_2, fs_jpim1        ! vector opt. 
     
    97101      ! Surface and bottom advective fluxes set to zero 
    98102      IF ( ln_isfcav ) THEN 
     103!$OMP PARALLEL DO schedule(static) private(jj, ji) 
    99104         DO jj = 2, jpjm1 
    100105            DO ji = fs_2, fs_jpim1           ! vector opt. 
     
    106111         END DO 
    107112      ELSE 
     113!$OMP PARALLEL DO schedule(static) private(jj, ji) 
    108114         DO jj = 2, jpjm1         
    109115            DO ji = fs_2, fs_jpim1           ! vector opt. 
     
    116122      END IF 
    117123 
     124!$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zua, zva) 
    118125      DO jk = 1, jpkm1              ! Vertical momentum advection at u- and v-points 
    119126         DO jj = 2, jpjm1 
     
    130137 
    131138      IF( l_trddyn ) THEN           ! save the vertical advection trends for diagnostic 
     139!$OMP PARALLEL WORKSHARE  
    132140         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    133141         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
     142!$OMP END PARALLEL WORKSHARE  
    134143         CALL trd_dyn( ztrdu, ztrdv, jpdyn_zad, kt ) 
    135144         CALL wrk_dealloc( jpi, jpj, jpk, ztrdu, ztrdv )  
Note: See TracChangeset for help on using the changeset viewer.