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

Ignore:
Timestamp:
2016-10-18T15:32:04+02:00 (8 years ago)
Author:
mocavero
Message:

ORCA2_LIM_PISCES hybrid version update

File:
1 edited

Legend:

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

    r6748 r7037  
    9292      ! 
    9393      IF( ln_dynadv_vec .OR. ln_linssh ) THEN      ! applied on velocity 
     94!$OMP PARALLEL DO schedule(static) private(jk) 
    9495         DO jk = 1, jpkm1 
    9596            ua(:,:,jk) = ( ub(:,:,jk) + p2dt * ua(:,:,jk) ) * umask(:,:,jk) 
     
    9798         END DO 
    9899      ELSE                                         ! applied on thickness weighted velocity 
     100!$OMP PARALLEL DO schedule(static) private(jk) 
    99101         DO jk = 1, jpkm1 
    100102            ua(:,:,jk) = (         e3u_b(:,:,jk) * ub(:,:,jk)  & 
     
    140142      ! G. Madec : in linear free surface, e3u_a = e3u_n = e3u_0, so systematic use of e3u_a 
    141143      IF( ln_bfrimp .AND. ln_dynspg_ts ) THEN 
     144!$OMP PARALLEL 
     145!$OMP DO schedule(static) private(jk) 
    142146         DO jk = 1, jpkm1        ! remove barotropic velocities 
    143147            ua(:,:,jk) = ( ua(:,:,jk) - ua_b(:,:) ) * umask(:,:,jk) 
    144148            va(:,:,jk) = ( va(:,:,jk) - va_b(:,:) ) * vmask(:,:,jk) 
    145149         END DO 
     150!$OMP DO schedule(static) private(jj, ji, ikbu, ikbv, ze3ua, ze3va) 
    146151         DO jj = 2, jpjm1        ! Add bottom/top stress due to barotropic component only 
    147152            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    154159            END DO 
    155160         END DO 
     161!$OMP END DO NOWAIT 
     162!$OMP END PARALLEL 
    156163         IF( ln_isfcav ) THEN    ! Ocean cavities (ISF) 
     164!$OMP PARALLEL DO schedule(static) private(jj, ji, ikbu, ikbv, ze3ua, ze3va) 
    157165            DO jj = 2, jpjm1         
    158166               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    174182      ! non zero value at the ocean bottom depending on the bottom friction used. 
    175183      ! 
    176 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, ze3ua, zzwi, zzws) 
     184!$OMP PARALLEL 
     185!$OMP DO schedule(static) private(jk, jj, ji, ze3ua, zzwi, zzws) 
    177186      DO jk = 1, jpkm1        ! Matrix 
    178187         DO jj = 2, jpjm1  
     
    187196         END DO 
    188197      END DO 
     198!$OMP DO schedule(static) private(jj, ji) 
    189199      DO jj = 2, jpjm1        ! Surface boundary conditions 
    190200         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    210220      ! 
    211221      DO jk = 2, jpkm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
    212 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     222!$OMP DO schedule(static) private(jj, ji) 
    213223         DO jj = 2, jpjm1    
    214224            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    216226            END DO 
    217227         END DO 
    218       END DO 
    219       ! 
    220 !$OMP PARALLEL DO schedule(static) private(jj, ji, ze3ua) 
     228!$OMP END DO NOWAIT 
     229      END DO 
     230      ! 
     231!$OMP DO schedule(static) private(jj, ji, ze3ua) 
    221232      DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1  Lk-1  ==! 
    222233         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    227238      END DO 
    228239      DO jk = 2, jpkm1 
    229 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     240!$OMP DO schedule(static) private(jj, ji) 
    230241         DO jj = 2, jpjm1 
    231242            DO ji = fs_2, fs_jpim1 
     
    235246      END DO 
    236247      ! 
    237 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     248!$OMP DO schedule(static) private(jj, ji) 
    238249        DO jj = 2, jpjm1        !==  thrid recurrence : SOLk = ( Lk - Uk * Ek+1 ) / Dk  ==! 
    239250         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    242253      END DO 
    243254      DO jk = jpk-2, 1, -1 
    244 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     255!$OMP DO schedule(static) private(jj, ji) 
    245256        DO jj = 2, jpjm1 
    246257            DO ji = fs_2, fs_jpim1 
     
    256267      ! non zero value at the ocean bottom depending on the bottom friction used 
    257268      ! 
    258 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, ze3va, zzwi, zzws) 
     269!$OMP DO schedule(static) private(jk, jj, ji, ze3va, zzwi, zzws) 
    259270      DO jk = 1, jpkm1        ! Matrix 
    260271         DO jj = 2, jpjm1    
     
    269280         END DO 
    270281      END DO 
    271 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     282!$OMP DO schedule(static) private(jj, ji) 
    272283      DO jj = 2, jpjm1        ! Surface boundary conditions 
    273284         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    293304      ! 
    294305      DO jk = 2, jpkm1        !==  First recurrence : Dk = Dk - Lk * Uk-1 / Dk-1   (increasing k)  == 
    295 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     306!$OMP DO schedule(static) private(jj, ji) 
    296307         DO jj = 2, jpjm1    
    297308            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    299310            END DO 
    300311         END DO 
    301       END DO 
    302       ! 
    303 !$OMP PARALLEL DO schedule(static) private(jj, ji, ze3va) 
     312!$OMP END DO NOWAIT 
     313      END DO 
     314      ! 
     315!$OMP DO schedule(static) private(jj, ji, ze3va) 
    304316      DO jj = 2, jpjm1        !==  second recurrence:    SOLk = RHSk - Lk / Dk-1  Lk-1  ==! 
    305317         DO ji = fs_2, fs_jpim1   ! vector opt.           
     
    310322      END DO 
    311323      DO jk = 2, jpkm1 
    312 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     324!$OMP DO schedule(static) private(jj, ji) 
    313325         DO jj = 2, jpjm1 
    314326            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    318330      END DO 
    319331      ! 
    320 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     332!$OMP DO schedule(static) private(jj, ji) 
    321333      DO jj = 2, jpjm1        !==  third recurrence : SOLk = ( Lk - Uk * SOLk+1 ) / Dk  ==! 
    322334         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    325337      END DO 
    326338      DO jk = jpk-2, 1, -1 
    327 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
     339!$OMP DO schedule(static) private(jj, ji) 
    328340         DO jj = 2, jpjm1 
    329341            DO ji = fs_2, fs_jpim1 
     
    331343            END DO 
    332344         END DO 
    333       END DO 
    334        
     345!$OMP END DO NOWAIT 
     346      END DO 
     347!$OMP END PARALLEL       
    335348      ! J. Chanut: Lines below are useless ? 
    336349      !! restore bottom layer avmu(v)  
Note: See TracChangeset for help on using the changeset viewer.