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/TRA/traldf_iso.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/TRA/traldf_iso.F90

    r7698 r7753  
    125125         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~' 
    126126         ! 
    127 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    128          DO jk = 1, jpk 
    129             DO jj = 1, jpj 
    130                DO ji = 1, jpi 
    131                   akz     (ji,jj,jk) = 0._wp 
    132                   ah_wslp2(ji,jj,jk) = 0._wp 
    133                END DO 
    134             END DO 
    135          END DO 
     127         akz     (:,:,:) = 0._wp       
     128         ah_wslp2(:,:,:) = 0._wp 
    136129      ENDIF 
    137130      !    
     
    158151      IF( kpass == 1 ) THEN                  !==  first pass only  ==! 
    159152         ! 
    160 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zmsku, zmskv, zahu_w, zahv_w) 
    161153         DO jk = 2, jpkm1 
    162154            DO jj = 2, jpjm1 
     
    180172         ! 
    181173         IF( ln_traldf_msc ) THEN                ! stabilizing vertical diffusivity coefficient 
    182 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    183174            DO jk = 2, jpkm1 
    184175               DO jj = 2, jpjm1 
     
    194185            ! 
    195186            IF( ln_traldf_blp ) THEN                ! bilaplacian operator 
    196 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    197187               DO jk = 2, jpkm1 
    198188                  DO jj = 1, jpjm1 
     
    204194               END DO 
    205195            ELSEIF( ln_traldf_lap ) THEN              ! laplacian operator 
    206 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, ze3w_2, zcoef0) 
    207196               DO jk = 2, jpkm1 
    208197                  DO jj = 1, jpjm1 
     
    217206           ! 
    218207         ELSE                                    ! 33 flux set to zero with akz=ah_wslp2 ==>> computed in full implicit 
    219 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    220            DO jk = 1, jpk 
    221               DO jj = 1, jpj 
    222                  DO ji = 1, jpi 
    223                     akz(ji,jj,jk) = ah_wslp2(ji,jj,jk) 
    224                  END DO 
    225               END DO 
    226            END DO 
     208            akz(:,:,:) = ah_wslp2(:,:,:)       
    227209         ENDIF 
    228210      ENDIF 
     
    236218         !!---------------------------------------------------------------------- 
    237219!!gm : bug.... why (x,:,:)?   (1,jpj,:) and (jpi,1,:) should be sufficient.... 
    238 !$OMP PARALLEL 
    239 !$OMP DO schedule(static) private(jk, jj) 
    240          DO jk = 1, jpk 
    241             DO jj = 1, jpj 
    242                zdit (1,jj,jk) = 0._wp     ;     zdit (jpi,jj,jk) = 0._wp 
    243                zdjt (1,jj,jk) = 0._wp     ;     zdjt (jpi,jj,jk) = 0._wp 
    244             END DO 
    245          END DO 
     220         zdit (1,:,:) = 0._wp     ;     zdit (jpi,:,:) = 0._wp 
     221         zdjt (1,:,:) = 0._wp     ;     zdjt (jpi,:,:) = 0._wp 
    246222         !!end 
    247223 
    248224         ! Horizontal tracer gradient  
    249 !$OMP DO schedule(static) private(jk, jj, ji) 
    250225         DO jk = 1, jpkm1 
    251226            DO jj = 1, jpjm1 
     
    256231            END DO 
    257232         END DO 
    258 !$OMP END PARALLEL 
    259233         IF( ln_zps ) THEN      ! botton and surface ocean correction of the horizontal gradient 
    260 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    261234            DO jj = 1, jpjm1              ! bottom correction (partial bottom cell) 
    262235               DO ji = 1, fs_jpim1   ! vector opt. 
     
    266239            END DO 
    267240            IF( ln_isfcav ) THEN      ! first wet level beneath a cavity 
    268 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    269241               DO jj = 1, jpjm1 
    270242                  DO ji = 1, fs_jpim1   ! vector opt. 
     
    280252         !!---------------------------------------------------------------------- 
    281253         ! 
    282 !$OMP PARALLEL 
    283254         DO jk = 1, jpkm1                                 ! Horizontal slab 
    284255            ! 
    285256            !                             !== Vertical tracer gradient 
    286 !$OMP DO schedule(static) private(jj, ji) 
    287             DO jj = 1 , jpj 
    288                DO ji = 1, jpi 
    289                   zdk1t(ji,jj) = ( ptb(ji,jj,jk,jn) - ptb(ji,jj,jk+1,jn) ) * wmask(ji,jj,jk+1)     ! level jk+1 
    290                END DO 
    291             END DO 
    292             ! 
    293             IF( jk == 1 ) THEN    
    294 !$OMP DO schedule(static) private(jj, ji) 
    295                DO jj = 1 , jpj 
    296                   DO ji = 1, jpi 
    297                      zdkt(ji,jj) = zdk1t(ji,jj)                          ! surface: zdkt(jk=1)=zdkt(jk=2) 
    298                   END DO 
    299                END DO 
    300             ELSE   
    301 !$OMP DO schedule(static) private(jj, ji) 
    302                DO jj = 1 , jpj 
    303                   DO ji = 1, jpi 
    304                      zdkt(ji,jj) = ( ptb(ji,jj,jk-1,jn) - ptb(ji,jj,jk,jn) ) * wmask(ji,jj,jk) 
    305                   END DO 
    306                END DO 
     257            zdk1t(:,:) = ( ptb(:,:,jk,jn) - ptb(:,:,jk+1,jn) ) * wmask(:,:,jk+1)     ! level jk+1 
     258            ! 
     259            IF( jk == 1 ) THEN   ;   zdkt(:,:) = zdk1t(:,:)                          ! surface: zdkt(jk=1)=zdkt(jk=2) 
     260            ELSE                 ;   zdkt(:,:) = ( ptb(:,:,jk-1,jn) - ptb(:,:,jk,jn) ) * wmask(:,:,jk) 
    307261            ENDIF 
    308 !$OMP DO schedule(static) private(jj, ji, zmsku, zmskv, zabe1, zabe2, zcof1, zcof2) 
    309262            DO jj = 1 , jpjm1            !==  Horizontal fluxes 
    310263               DO ji = 1, fs_jpim1   ! vector opt. 
     
    330283            END DO 
    331284            ! 
    332 !$OMP DO schedule(static) private(jj, ji) 
    333285            DO jj = 2 , jpjm1          !== horizontal divergence and add to pta 
    334286               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    344296         !!---------------------------------------------------------------------- 
    345297         ! 
    346 !$OMP DO schedule(static) private(jk, jj) 
    347          DO jk = 1, jpk 
    348             DO jj = 1, jpj 
    349                ztfw(1,jj,jk) = 0._wp     ;     ztfw(jpi,jj,jk) = 0._wp 
    350             END DO 
    351          END DO 
     298         ztfw(1,:,:) = 0._wp     ;     ztfw(jpi,:,:) = 0._wp 
    352299         ! 
    353300         ! Vertical fluxes 
    354301         ! --------------- 
    355302         !                          ! Surface and bottom vertical fluxes set to zero 
    356 !$OMP DO schedule(static) private(jj, ji) 
    357          DO jj = 1, jpj 
    358             DO ji = 1, jpi 
    359                ztfw(ji,jj, 1 ) = 0._wp      ;      ztfw(ji,jj,jpk) = 0._wp 
    360             END DO 
    361          END DO 
     303         ztfw(:,:, 1 ) = 0._wp      ;      ztfw(:,:,jpk) = 0._wp 
    362304          
    363 !$OMP DO schedule(static) private(jk, jj, ji, zmsku, zmskv, zahu_w, zahv_w, zcoef3, zcoef4) 
    364305         DO jk = 2, jpkm1           ! interior (2=<jk=<jpk-1) 
    365306            DO jj = 2, jpjm1 
     
    386327            END DO 
    387328         END DO 
    388 !$OMP END PARALLEL 
    389329         !                                !==  add the vertical 33 flux  ==! 
    390330         IF( ln_traldf_lap ) THEN               ! laplacian case: eddy coef = ah_wslp2 - akz 
    391 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    392331            DO jk = 2, jpkm1        
    393332               DO jj = 1, jpjm1 
     
    403342            SELECT CASE( kpass ) 
    404343            CASE(  1  )                            ! 1st pass : eddy coef = ah_wslp2 
    405 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    406344               DO jk = 2, jpkm1  
    407345                  DO jj = 1, jpjm1 
     
    414352               END DO  
    415353            CASE(  2  )                         ! 2nd pass : eddy flux = ah_wslp2 and akz applied on ptb  and ptbb gradients, resp. 
    416 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    417354               DO jk = 2, jpkm1  
    418355                  DO jj = 1, jpjm1 
     
    427364         ENDIF 
    428365         !          
    429 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    430366         DO jk = 1, jpkm1                 !==  Divergence of vertical fluxes added to pta  ==! 
    431367            DO jj = 2, jpjm1 
Note: See TracChangeset for help on using the changeset viewer.