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 7753 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90 – NEMO

Ignore:
Timestamp:
2017-03-03T12:46:59+01:00 (7 years ago)
Author:
mocavero
Message:

Reverting trunk to remove OpenMP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90

    r7698 r7753  
    9292      ! 
    9393      IF( ln_dynadv_vec .OR. ln_linssh ) THEN      ! applied on velocity 
    94 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    9594         DO jk = 1, jpkm1 
    96             DO jj = 1, jpj 
    97                DO ji = 1, jpi 
    98                   ua(ji,jj,jk) = ( ub(ji,jj,jk) + p2dt * ua(ji,jj,jk) ) * umask(ji,jj,jk) 
    99                   va(ji,jj,jk) = ( vb(ji,jj,jk) + p2dt * va(ji,jj,jk) ) * vmask(ji,jj,jk) 
    100                END DO 
    101             END DO 
     95            ua(:,:,jk) = ( ub(:,:,jk) + p2dt * ua(:,:,jk) ) * umask(:,:,jk) 
     96            va(:,:,jk) = ( vb(:,:,jk) + p2dt * va(:,:,jk) ) * vmask(:,:,jk) 
    10297         END DO 
    10398      ELSE                                         ! applied on thickness weighted velocity 
    104 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    10599         DO jk = 1, jpkm1 
    106             DO jj = 1, jpj 
    107                DO ji = 1, jpi 
    108                   ua(ji,jj,jk) = (         e3u_b(ji,jj,jk) * ub(ji,jj,jk)  & 
    109                      &          + p2dt * e3u_n(ji,jj,jk) * ua(ji,jj,jk)  ) / e3u_a(ji,jj,jk) * umask(ji,jj,jk) 
    110                   va(ji,jj,jk) = (         e3v_b(ji,jj,jk) * vb(ji,jj,jk)  & 
    111                      &          + p2dt * e3v_n(ji,jj,jk) * va(ji,jj,jk)  ) / e3v_a(ji,jj,jk) * vmask(ji,jj,jk) 
    112                END DO 
    113             END DO 
     100            ua(:,:,jk) = (         e3u_b(:,:,jk) * ub(:,:,jk)  & 
     101               &          + p2dt * e3u_n(:,:,jk) * ua(:,:,jk)  ) / e3u_a(:,:,jk) * umask(:,:,jk) 
     102            va(:,:,jk) = (         e3v_b(:,:,jk) * vb(:,:,jk)  & 
     103               &          + p2dt * e3v_n(:,:,jk) * va(:,:,jk)  ) / e3v_a(:,:,jk) * vmask(:,:,jk) 
    114104         END DO 
    115105      ENDIF 
     
    122112      ! 
    123113      IF( ln_bfrimp ) THEN 
    124 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv) 
    125114         DO jj = 2, jpjm1 
    126115            DO ji = 2, jpim1 
     
    132121         END DO 
    133122         IF ( ln_isfcav ) THEN 
    134 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv) 
    135123            DO jj = 2, jpjm1 
    136124               DO ji = 2, jpim1 
     
    150138      ! G. Madec : in linear free surface, e3u_a = e3u_n = e3u_0, so systematic use of e3u_a 
    151139      IF( ln_bfrimp .AND. ln_dynspg_ts ) THEN 
    152 !$OMP PARALLEL 
    153 !$OMP DO schedule(static) private(jk,jj,ji) 
    154140         DO jk = 1, jpkm1        ! remove barotropic velocities 
    155             DO jj = 1, jpj 
    156                DO ji = 1, jpi 
    157                   ua(ji,jj,jk) = ( ua(ji,jj,jk) - ua_b(ji,jj) ) * umask(ji,jj,jk) 
    158                   va(ji,jj,jk) = ( va(ji,jj,jk) - va_b(ji,jj) ) * vmask(ji,jj,jk) 
    159                END DO 
    160             END DO 
    161          END DO 
    162 !$OMP DO schedule(static) private(jj, ji, ikbu, ikbv, ze3ua, ze3va) 
     141            ua(:,:,jk) = ( ua(:,:,jk) - ua_b(:,:) ) * umask(:,:,jk) 
     142            va(:,:,jk) = ( va(:,:,jk) - va_b(:,:) ) * vmask(:,:,jk) 
     143         END DO 
    163144         DO jj = 2, jpjm1        ! Add bottom/top stress due to barotropic component only 
    164145            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    171152            END DO 
    172153         END DO 
    173 !$OMP END DO NOWAIT 
    174 !$OMP END PARALLEL 
    175154         IF( ln_isfcav ) THEN    ! Ocean cavities (ISF) 
    176 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv, ze3ua, ze3va) 
    177155            DO jj = 2, jpjm1         
    178156               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    194172      ! non zero value at the ocean bottom depending on the bottom friction used. 
    195173      ! 
    196 !$OMP PARALLEL 
    197 !$OMP DO schedule(static) private(jk, jj, ji, ze3ua, zzwi, zzws) 
    198174      DO jk = 1, jpkm1        ! Matrix 
    199175         DO jj = 2, jpjm1  
     
    208184         END DO 
    209185      END DO 
    210 !$OMP DO schedule(static) private(jj, ji) 
    211186      DO jj = 2, jpjm1        ! Surface boundary conditions 
    212187         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    232207      ! 
    233208      DO jk = 2, jpkm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
    234 !$OMP DO schedule(static) private(jj, ji) 
    235209         DO jj = 2, jpjm1    
    236210            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    238212            END DO 
    239213         END DO 
    240 !$OMP END DO NOWAIT 
    241       END DO 
    242       ! 
    243 !$OMP DO schedule(static) private(jj, ji, ze3ua) 
     214      END DO 
     215      ! 
    244216      DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1  Lk-1  ==! 
    245217         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    250222      END DO 
    251223      DO jk = 2, jpkm1 
    252 !$OMP DO schedule(static) private(jj, ji) 
    253224         DO jj = 2, jpjm1 
    254225            DO ji = fs_2, fs_jpim1 
     
    258229      END DO 
    259230      ! 
    260 !$OMP DO schedule(static) private(jj, ji) 
    261231      DO jj = 2, jpjm1        !==  thrid recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk  ==! 
    262232         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    265235      END DO 
    266236      DO jk = jpk-2, 1, -1 
    267 !$OMP DO schedule(static) private(jj, ji) 
    268237         DO jj = 2, jpjm1 
    269238            DO ji = fs_2, fs_jpim1 
     
    279248      ! non zero value at the ocean bottom depending on the bottom friction used 
    280249      ! 
    281 !$OMP DO schedule(static) private(jk, jj, ji, ze3va, zzwi, zzws) 
    282250      DO jk = 1, jpkm1        ! Matrix 
    283251         DO jj = 2, jpjm1    
     
    292260         END DO 
    293261      END DO 
    294 !$OMP DO schedule(static) private(jj, ji) 
    295262      DO jj = 2, jpjm1        ! Surface boundary conditions 
    296263         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    316283      ! 
    317284      DO jk = 2, jpkm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
    318 !$OMP DO schedule(static) private(jj, ji) 
    319285         DO jj = 2, jpjm1    
    320286            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    322288            END DO 
    323289         END DO 
    324 !$OMP END DO NOWAIT 
    325       END DO 
    326       ! 
    327 !$OMP DO schedule(static) private(jj, ji, ze3va) 
     290      END DO 
     291      ! 
    328292      DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1  Lk-1  ==! 
    329293         DO ji = fs_2, fs_jpim1   ! vector opt.           
     
    334298      END DO 
    335299      DO jk = 2, jpkm1 
    336 !$OMP DO schedule(static) private(jj, ji) 
    337300         DO jj = 2, jpjm1 
    338301            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    342305      END DO 
    343306      ! 
    344 !$OMP DO schedule(static) private(jj, ji) 
    345307      DO jj = 2, jpjm1        !==  third recurrence : SOLk = ( Lk - Uk * SOLk+1 ) / Dk  ==! 
    346308         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    349311      END DO 
    350312      DO jk = jpk-2, 1, -1 
    351 !$OMP DO schedule(static) private(jj, ji) 
    352313         DO jj = 2, jpjm1 
    353314            DO ji = fs_2, fs_jpim1 
     
    355316            END DO 
    356317         END DO 
    357 !$OMP END DO NOWAIT 
    358       END DO 
    359 !$OMP END PARALLEL  
     318      END DO 
    360319       
    361320      ! J. Chanut: Lines below are useless ? 
     
    363322      !!gm  I almost sure it is !!!! 
    364323      IF( ln_bfrimp ) THEN 
    365 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv) 
    366324        DO jj = 2, jpjm1 
    367325           DO ji = 2, jpim1 
     
    373331        END DO 
    374332        IF (ln_isfcav) THEN 
    375 !$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv) 
    376333           DO jj = 2, jpjm1 
    377334              DO ji = 2, jpim1 
Note: See TracChangeset for help on using the changeset viewer.