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/dynspg.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/dynspg.F90

    r6140 r6748  
    8383      IF( l_trddyn )   THEN                      ! temporary save of ta and sa trends 
    8484         CALL wrk_alloc( jpi,jpj,jpk,   ztrdu, ztrdv )  
     85!$OMP PARALLEL WORKSHARE 
    8586         ztrdu(:,:,:) = ua(:,:,:) 
    8687         ztrdv(:,:,:) = va(:,:,:) 
     88!$OMP END PARALLEL WORKSHARE 
    8789      ENDIF 
    8890      ! 
     
    9193         .OR.  nn_ice_embd == 2  ) THEN                                      ! embedded sea-ice 
    9294         ! 
     95!$OMP PARALLEL DO schedule(static) private(jj, ji) 
    9396         DO jj = 2, jpjm1 
    9497            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    100103         IF( ln_apr_dyn .AND. .NOT.ln_dynspg_ts ) THEN   !==  Atmospheric pressure gradient (added later in time-split case) ==! 
    101104            zg_2 = grav * 0.5 
     105!$OMP PARALLEL DO schedule(static) private(jj, ji) 
    102106            DO jj = 2, jpjm1                          ! gradient of Patm using inverse barometer ssh 
    103107               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    115119            CALL upd_tide( kt )                      ! update tide potential 
    116120            ! 
     121!$OMP PARALLEL DO schedule(static) private(jj, ji) 
    117122            DO jj = 2, jpjm1                         ! add tide potential forcing 
    118123               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    129134            zgrau0r     = - grav * r1_rau0 
    130135            zpice(:,:) = (  zintp * snwice_mass(:,:) + ( 1.- zintp ) * snwice_mass_b(:,:)  ) * zgrau0r 
     136!$OMP PARALLEL DO schedule(static) private(jj, ji) 
    131137            DO jj = 2, jpjm1 
    132138               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    139145         ENDIF 
    140146         ! 
     147!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    141148         DO jk = 1, jpkm1                    !== Add all terms to the general trend 
    142149            DO jj = 2, jpjm1 
     
    158165      !                     
    159166      IF( l_trddyn )   THEN                  ! save the surface pressure gradient trends for further diagnostics 
     167!$OMP PARALLEL WORKSHARE 
    160168         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    161169         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
     170!$OMP END PARALLEL WORKSHARE 
    162171         CALL trd_dyn( ztrdu, ztrdv, jpdyn_spg, kt ) 
    163172         CALL wrk_dealloc( jpi,jpj,jpk,   ztrdu, ztrdv )  
Note: See TracChangeset for help on using the changeset viewer.