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/LDF/ldfslp.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/LDF/ldfslp.F90

    r7698 r7753  
    135135      z1_slpmax = 1._wp / rn_slpmax 
    136136      ! 
    137 !$OMP PARALLEL 
    138 !$OMP DO schedule(static) private(jk, jj, ji) 
    139       DO jk = 1, jpk 
    140          DO jj = 1, jpj 
    141             DO ji = 1, jpi 
    142                zww(ji,jj,jk) = 0._wp 
    143                zwz(ji,jj,jk) = 0._wp 
    144             END DO 
    145          END DO 
    146       END DO 
    147 !$OMP END DO NOWAIT 
    148       ! 
    149 !$OMP DO schedule(static) private(jk, jj, ji) 
     137      zww(:,:,:) = 0._wp 
     138      zwz(:,:,:) = 0._wp 
     139      ! 
    150140      DO jk = 1, jpk             !==   i- & j-gradient of density   ==! 
    151141         DO jj = 1, jpjm1 
     
    156146         END DO 
    157147      END DO 
    158 !$OMP END PARALLEL 
    159148      IF( ln_zps ) THEN                           ! partial steps correction at the bottom ocean level 
    160 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    161149         DO jj = 1, jpjm1 
    162150            DO ji = 1, jpim1 
     
    167155      ENDIF 
    168156      IF( ln_zps .AND. ln_isfcav ) THEN           ! partial steps correction at the bottom ocean level 
    169 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    170157         DO jj = 1, jpjm1 
    171158            DO ji = 1, jpim1 
     
    176163      ENDIF 
    177164      ! 
    178 !$OMP PARALLEL 
    179 !$OMP DO schedule(static) private(jj, ji) 
    180          DO jj = 1, jpj 
    181             DO ji = 1, jpi 
    182                zdzr(ji,jj,1) = 0._wp        !==   Local vertical density gradient at T-point   == !   (evaluated from N^2) 
    183             END DO 
    184          END DO 
    185 !$OMP DO schedule(static) private(jk,jj,ji) 
     165      zdzr(:,:,1) = 0._wp        !==   Local vertical density gradient at T-point   == !   (evaluated from N^2) 
    186166      DO jk = 2, jpkm1 
    187167         !                                ! zdzr = d/dz(prd)= - ( prd ) / grav * mk(pn2) -- at t point 
     
    190170         !                                !          umask(ik+1) /= 0   =>   all pn2  /= 0   =>   zdzr divides by 2 
    191171         !                                ! NB: 1/(tmask+1) = (1-.5*tmask)  substitute a / by a *  ==> faster 
    192          DO jj = 1, jpj 
    193             DO ji = 1, jpi 
    194                zdzr(ji,jj,jk) = zm1_g * ( prd(ji,jj,jk) + 1._wp )              & 
    195                     &                 * ( pn2(ji,jj,jk) + pn2(ji,jj,jk+1) ) * ( 1._wp - 0.5_wp * tmask(ji,jj,jk+1) ) 
    196             END DO 
    197          END DO 
    198       END DO 
    199 !$OMP END PARALLEL 
     172         zdzr(:,:,jk) = zm1_g * ( prd(:,:,jk) + 1._wp )              & 
     173            &                 * ( pn2(:,:,jk) + pn2(:,:,jk+1) ) * ( 1._wp - 0.5_wp * tmask(:,:,jk+1) ) 
     174      END DO 
    200175      ! 
    201176      !                          !==   Slopes just below the mixed layer   ==! 
     
    207182      ! 
    208183      IF ( ln_isfcav ) THEN 
    209 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    210184         DO jj = 2, jpjm1 
    211185            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    217191         END DO 
    218192      ELSE 
    219 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    220193         DO jj = 2, jpjm1 
    221194            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    226199      END IF 
    227200 
    228 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zau, zav, zbu, zbv, zfj, zfi, zdepu, zdepv) 
    229201      DO jk = 2, jpkm1                            !* Slopes at u and v points 
    230202         DO jj = 2, jpjm1 
     
    267239      ! 
    268240      !                                            !* horizontal Shapiro filter 
    269 !$OMP PARALLEL  
    270 !$OMP DO schedule(static) private(jk, jj, ji) 
    271241      DO jk = 2, jpkm1 
    272242         DO jj = 2, jpjm1, MAX(1, jpj-3)                        ! rows jj=2 and =jpjm1 only 
     
    313283      ! ===========================      | wslpj = mij( d/dj( prd ) / d/dz( prd ) 
    314284      ! 
    315 !$OMP DO schedule(static) private(jk, jj, ji, zbw, zfk, zck, zbi, zbj, zai, zaj, zci, zcj) 
    316285      DO jk = 2, jpkm1 
    317286         DO jj = 2, jpjm1 
     
    349318         END DO 
    350319      END DO 
    351 !$OMP END PARALLEL 
    352320      CALL lbc_lnk( zwz, 'T', -1. )   ;    CALL lbc_lnk( zww, 'T', -1. )      ! lateral boundary conditions 
    353321      ! 
    354322      !                                           !* horizontal Shapiro filter 
    355 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zcofw, zck) 
    356323      DO jk = 2, jpkm1 
    357324         DO jj = 2, jpjm1, MAX(1, jpj-3)                        ! rows jj=2 and =jpjm1 only 
     
    703670      z1_slpmax = 1._wp / rn_slpmax 
    704671      ! 
    705 !$OMP PARALLEL 
    706 !$OMP DO schedule(static) private(jj)        
    707       DO jj = 1, jpj 
    708          uslpml (1,jj) = 0._wp      ;      uslpml (jpi,jj) = 0._wp 
    709          vslpml (1,jj) = 0._wp      ;      vslpml (jpi,jj) = 0._wp 
    710          wslpiml(1,jj) = 0._wp      ;      wslpiml(jpi,jj) = 0._wp 
    711          wslpjml(1,jj) = 0._wp      ;      wslpjml(jpi,jj) = 0._wp 
    712       END DO 
     672      uslpml (1,:) = 0._wp      ;      uslpml (jpi,:) = 0._wp 
     673      vslpml (1,:) = 0._wp      ;      vslpml (jpi,:) = 0._wp 
     674      wslpiml(1,:) = 0._wp      ;      wslpiml(jpi,:) = 0._wp 
     675      wslpjml(1,:) = 0._wp      ;      wslpjml(jpi,:) = 0._wp 
    713676      ! 
    714677      !                                            !==   surface mixed layer mask   ! 
    715 !$OMP DO schedule(static) private(jk, jj, ji, ik) 
    716678      DO jk = 1, jpk                               ! =1 inside the mixed layer, =0 otherwise 
    717679         DO jj = 1, jpj 
     
    724686         END DO 
    725687      END DO 
    726 !$OMP END DO NOWAIT 
    727688 
    728689 
     
    737698      !----------------------------------------------------------------------- 
    738699      ! 
    739 !$OMP DO schedule(static) private(jj, ji, iku, ikv, zbu, zbv, zau, zav, ik, ikm1, zbw, zci, zcj, zai, zaj, zbi, zbj)  
    740700      DO jj = 2, jpjm1 
    741701         DO ji = 2, jpim1 
     
    782742         END DO 
    783743      END DO 
    784 !$OMP END PARALLEL 
    785744      !!gm this lbc_lnk should be useless.... 
    786745      CALL lbc_lnk( uslpml , 'U', -1. )   ;   CALL lbc_lnk( vslpml , 'V', -1. )   ! lateral boundary cond. (sign change) 
     
    832791         ! Direction of lateral diffusion (tracers and/or momentum) 
    833792         ! ------------------------------ 
    834  
    835 !$OMP PARALLEL 
    836 !$OMP DO schedule(static) private(jk, jj, ji)    
    837         DO jk = 1, jpk 
    838            DO jj = 1, jpj 
    839               DO ji = 1, jpi 
    840                  uslp (ji,jj,jk) = 0._wp 
    841                  vslp (ji,jj,jk) = 0._wp 
    842                  wslpi(ji,jj,jk) = 0._wp 
    843                  wslpj(ji,jj,jk) = 0._wp 
    844               END DO 
    845            END DO 
    846         END DO 
    847 !$OMP END DO NOWAIT 
    848 !$OMP DO schedule(static) private(jj, ji)        
    849         DO jj = 1, jpj 
    850             DO ji = 1, jpi 
    851                uslpml (ji,jj) = 0._wp 
    852                vslpml (ji,jj) = 0._wp 
    853                wslpiml(ji,jj) = 0._wp 
    854                wslpjml(ji,jj) = 0._wp 
    855              END DO 
    856         END DO 
    857 !$OMP END PARALLEL 
     793         uslp (:,:,:) = 0._wp   ;   uslpml (:,:) = 0._wp      ! set the slope to zero (even in s-coordinates) 
     794         vslp (:,:,:) = 0._wp   ;   vslpml (:,:) = 0._wp 
     795         wslpi(:,:,:) = 0._wp   ;   wslpiml(:,:) = 0._wp 
     796         wslpj(:,:,:) = 0._wp   ;   wslpjml(:,:) = 0._wp 
     797 
    858798         !!gm I no longer understand this..... 
    859799!!gm         IF( (ln_traldf_hor .OR. ln_dynldf_hor) .AND. .NOT. (.NOT.ln_linssh .AND. ln_rstart) ) THEN 
Note: See TracChangeset for help on using the changeset viewer.