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

    r7646 r7698  
    7070      CALL wrk_alloc( jpi,jpj,jpk,   zavt_evd, zavm_evd )  
    7171      ! 
    72       zavt_evd(:,:,:) = avt(:,:,:)           ! set avt prior to evd application 
     72!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
     73      DO jk = 1, jpk 
     74         DO jj = 1, jpj 
     75            DO ji = 1, jpi 
     76               zavt_evd(ji,jj,jk) = avt(ji,jj,jk)           ! set avt prior to evd application 
     77            END DO 
     78         END DO 
     79      END DO  
    7380      ! 
    7481      SELECT CASE ( nn_evdm ) 
     
    7683      CASE ( 1 )           ! enhance vertical eddy viscosity and diffusivity (if rn2<-1.e-12) 
    7784         ! 
    78          zavm_evd(:,:,:) = avm(:,:,:)           ! set avm prior to evd application 
     85!$OMP PARALLEL 
     86!$OMP DO schedule(static) private(jk, jj, ji) 
     87         DO jk = 1, jpk 
     88            DO jj = 1, jpj 
     89               DO ji = 1, jpi 
     90                  zavm_evd(ji,jj,jk) = avm(ji,jj,jk)           ! set avm prior to evd application 
     91               END DO 
     92            END DO 
     93         END DO  
    7994         ! 
     95!$OMP DO schedule(static) private(jk, jj, ji) 
    8096         DO jk = 1, jpkm1  
    8197            DO jj = 2, jpj             ! no vector opt. 
     
    92108            END DO 
    93109         END DO  
     110!$OMP END PARALLEL 
    94111         CALL lbc_lnk( avt , 'W', 1. )   ;   CALL lbc_lnk( avm , 'W', 1. )   ! Lateral boundary conditions 
    95112         CALL lbc_lnk( avmu, 'U', 1. )   ;   CALL lbc_lnk( avmv, 'V', 1. ) 
    96113         ! 
    97          zavm_evd(:,:,:) = avm(:,:,:) - zavm_evd(:,:,:)   ! change in avm due to evd 
     114!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
     115         DO jk = 1, jpk 
     116            DO jj = 1, jpj 
     117               DO ji = 1, jpi 
     118                  zavm_evd(ji,jj,jk) = avm(ji,jj,jk) - zavm_evd(ji,jj,jk)   ! change in avm due to evd 
     119               END DO 
     120            END DO 
     121         END DO  
    98122         CALL iom_put( "avm_evd", zavm_evd )              ! output this change 
    99123         ! 
    100124      CASE DEFAULT         ! enhance vertical eddy diffusivity only (if rn2<-1.e-12)  
     125!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    101126         DO jk = 1, jpkm1 
    102127!!!         WHERE( rn2(:,:,jk) <= -1.e-12 ) avt(:,:,jk) = tmask(:,:,jk) * avevd   ! agissant sur T SEUL!  
     
    111136      END SELECT  
    112137 
    113       zavt_evd(:,:,:) = avt(:,:,:) - zavt_evd(:,:,:)   ! change in avt due to evd 
     138!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
     139      DO jk = 1, jpk 
     140         DO jj = 1, jpj 
     141            DO ji = 1, jpi 
     142               zavt_evd(ji,jj,jk) = avt(ji,jj,jk) - zavt_evd(ji,jj,jk)   ! change in avt due to evd 
     143            END DO 
     144         END DO 
     145      END DO  
    114146      CALL iom_put( "avt_evd", zavt_evd )              ! output this change 
    115147      IF( l_trdtra ) CALL trd_tra( kt, 'TRA', jp_tem, jptra_evd, zavt_evd ) 
Note: See TracChangeset for help on using the changeset viewer.