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

Ignore:
Timestamp:
2017-01-04T17:47:47+01:00 (7 years ago)
Author:
mocavero
Message:

changes after review

File:
1 edited

Legend:

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

    r7513 r7525  
    132132            END DO 
    133133         END DO 
    134 !$OMP DO schedule(static) private(jk) 
     134!$OMP DO schedule(static) private(jk,jj,ji) 
    135135         DO jk = 1, jpkm1 
    136             ua(:,:,jk) = ( ua(:,:,jk) - zue(:,:) * r1_hu_a(:,:) + ua_b(:,:) ) * umask(:,:,jk) 
    137             va(:,:,jk) = ( va(:,:,jk) - zve(:,:) * r1_hv_a(:,:) + va_b(:,:) ) * vmask(:,:,jk) 
     136            DO jj = 1, jpj 
     137               DO ji = 1, jpi 
     138                  ua(ji,jj,jk) = ( ua(ji,jj,jk) - zue(ji,jj) * r1_hu_a(ji,jj) + ua_b(ji,jj) ) * umask(ji,jj,jk) 
     139                  va(ji,jj,jk) = ( va(ji,jj,jk) - zve(ji,jj) * r1_hv_a(ji,jj) + va_b(ji,jj) ) * vmask(ji,jj,jk) 
     140               END DO 
     141            END DO 
    138142         END DO 
    139143!$OMP END DO NOWAIT 
     
    145149            ! In the forward case, this is done below after asselin filtering    
    146150            ! so that asselin contribution is removed at the same time  
    147 !$OMP PARALLEL DO schedule(static) private(jk) 
     151!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    148152            DO jk = 1, jpkm1 
    149                un(:,:,jk) = ( un(:,:,jk) - un_adv(:,:) + un_b(:,:) )*umask(:,:,jk) 
    150                vn(:,:,jk) = ( vn(:,:,jk) - vn_adv(:,:) + vn_b(:,:) )*vmask(:,:,jk) 
     153               DO jj = 1, jpj 
     154                  DO ji = 1, jpi 
     155                     un(ji,jj,jk) = ( un(ji,jj,jk) - un_adv(ji,jj) + un_b(ji,jj) )*umask(ji,jj,jk) 
     156                     vn(ji,jj,jk) = ( vn(ji,jj,jk) - vn_adv(ji,jj) + vn_b(ji,jj) )*vmask(ji,jj,jk) 
     157                  END DO 
     158               END DO 
    151159            END DO   
    152160         ENDIF 
     
    198206                  zua(ji,jj,jk) = un(ji,jj,jk)             ! save the now velocity before the asselin filter 
    199207                  zva(ji,jj,jk) = vn(ji,jj,jk)             ! (caution: there will be a shift by 1 timestep in the 
    200                END DO 
    201             END DO 
    202          END DO 
    203          !                                  !  computation of the asselin filter trends) 
     208                                                           !  computation of the asselin filter trends) 
     209               END DO 
     210            END DO 
     211         END DO 
    204212      ENDIF 
    205213 
     
    208216      IF( neuler == 0 .AND. kt == nit000 ) THEN        !* Euler at first time-step: only swap 
    209217!$OMP PARALLEL 
    210 !$OMP DO schedule(static) private(jk) 
     218!$OMP DO schedule(static) private(jk,jj,ji) 
    211219         DO jk = 1, jpkm1 
    212             un(:,:,jk) = ua(:,:,jk)                          ! un <-- ua 
    213             vn(:,:,jk) = va(:,:,jk) 
     220            DO jj = 1, jpj 
     221               DO ji = 1, jpi 
     222                  un(ji,jj,jk) = ua(ji,jj,jk)                          ! un <-- ua 
     223                  vn(ji,jj,jk) = va(ji,jj,jk) 
     224               END DO 
     225            END DO 
    214226         END DO 
    215227!$OMP END DO NOWAIT 
    216228         IF(.NOT.ln_linssh ) THEN 
    217 !$OMP DO schedule(static) private(jk) 
     229!$OMP DO schedule(static) private(jk,jj,ji) 
    218230            DO jk = 1, jpkm1 
    219                e3t_b(:,:,jk) = e3t_n(:,:,jk) 
    220                e3u_b(:,:,jk) = e3u_n(:,:,jk) 
    221                e3v_b(:,:,jk) = e3v_n(:,:,jk) 
     231               DO jj = 1, jpj 
     232                  DO ji = 1, jpi 
     233                     e3t_b(ji,jj,jk) = e3t_n(ji,jj,jk) 
     234                     e3u_b(ji,jj,jk) = e3u_n(ji,jj,jk) 
     235                     e3v_b(ji,jj,jk) = e3v_n(ji,jj,jk) 
     236                  END DO 
     237               END DO 
    222238            END DO 
    223239!$OMP END DO NOWAIT 
     
    256272               END DO 
    257273            ELSE 
    258 !$OMP PARALLEL DO schedule(static) private(jk) 
     274!$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    259275               DO jk = 1, jpkm1 
    260                   e3t_b(:,:,jk) = e3t_n(:,:,jk) + atfp * ( e3t_b(:,:,jk) - 2._wp * e3t_n(:,:,jk) + e3t_a(:,:,jk) ) 
     276                  DO jj = 1, jpj 
     277                     DO ji = 1, jpi     
     278                        e3t_b(ji,jj,jk) = e3t_n(ji,jj,jk) + atfp * ( e3t_b(ji,jj,jk) - 2._wp * e3t_n(ji,jj,jk) + e3t_a(ji,jj,jk) ) 
     279                     END DO 
     280                  END DO 
    261281               END DO 
    262282               ! Add volume filter correction: compatibility with tracer advection scheme 
     
    365385               END DO 
    366386            END DO 
    367 !$OMP DO schedule(static) private(jk) 
     387!$OMP DO schedule(static) private(jk,jj,ji) 
    368388            DO jk = 1, jpkm1 
    369                ub(:,:,jk) = ub(:,:,jk) - (zue(:,:) * r1_hu_n(:,:) - un_b(:,:)) * umask(:,:,jk) 
    370                vb(:,:,jk) = vb(:,:,jk) - (zve(:,:) * r1_hv_n(:,:) - vn_b(:,:)) * vmask(:,:,jk) 
     389               DO jj = 1, jpj 
     390                  DO ji = 1, jpi 
     391                     ub(ji,jj,jk) = ub(ji,jj,jk) - (zue(ji,jj) * r1_hu_n(ji,jj) - un_b(ji,jj)) * umask(ji,jj,jk) 
     392                     vb(ji,jj,jk) = vb(ji,jj,jk) - (zve(ji,jj) * r1_hv_n(ji,jj) - vn_b(ji,jj)) * vmask(ji,jj,jk) 
     393                  END DO 
     394               END DO 
    371395            END DO 
    372396!$OMP END DO NOWAIT 
     
    446470      ENDIF 
    447471      IF( l_trddyn ) THEN                ! 3D output: asselin filter trends on momentum 
    448 !$OMP DO schedule(static) private(jk, jj, ji) 
     472!$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    449473         DO jk = 1, jpkm1 
    450474            DO jj = 1, jpj 
Note: See TracChangeset for help on using the changeset viewer.