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 7508 for branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90 – NEMO

Ignore:
Timestamp:
2016-12-19T13:15:59+01:00 (7 years ago)
Author:
mocavero
Message:

changes on code duplication and workshare construct

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfbfr.F90

    r6748 r7508  
    112112         IF ( ln_loglayer.AND. .NOT.ln_linssh ) THEN ! "log layer" bottom friction coefficient 
    113113 
    114 !$OMP PARALLEL DO private(jj,ji,ikbt,ztmp) 
     114!$OMP PARALLEL DO schedule(static) private(jj,ji,ikbt,ztmp) 
    115115            DO jj = 1, jpj 
    116116               DO ji = 1, jpi 
     
    124124! (ISF) 
    125125            IF ( ln_isfcav ) THEN 
    126 !$OMP PARALLEL DO private(jj,ji,ikbt,ztmp) 
     126!$OMP PARALLEL DO schedule(static) private(jj,ji,ikbt,ztmp) 
    127127               DO jj = 1, jpj 
    128128                  DO ji = 1, jpi 
     
    137137            !    
    138138         ELSE 
    139 !$OMP PARALLEL WORKSHARE 
    140             zbfrt(:,:) = bfrcoef2d(:,:) 
    141             ztfrt(:,:) = tfrcoef2d(:,:) 
    142 !$OMP END PARALLEL WORKSHARE 
    143          ENDIF 
    144  
    145 !$OMP PARALLEL DO private(jj,ji,ikbu,ikbv,zvu,zuv,zecu,zecv) 
     139!$OMP PARALLEL DO schedule(static) private(jj,ji) 
     140            DO jj = 1, jpj 
     141               DO ji = 1, jpi 
     142                  zbfrt(ji,jj) = bfrcoef2d(ji,jj) 
     143                  ztfrt(ji,jj) = tfrcoef2d(ji,jj) 
     144               END DO 
     145            END DO 
     146         ENDIF 
     147 
     148!$OMP PARALLEL DO schedule(static) private(jj,ji,ikbu,ikbv,zvu,zuv,zecu,zecv) 
    146149         DO jj = 2, jpjm1 
    147150            DO ji = 2, jpim1 
     
    178181 
    179182         IF( ln_isfcav ) THEN 
    180 !$OMP PARALLEL DO private(jj,ji,ikbu,ikbv,zvu,zuv,zecu,zecv) 
     183!$OMP PARALLEL DO schedule(static) private(jj,ji,ikbu,ikbv,zvu,zuv,zecu,zecv) 
    181184            DO jj = 2, jpjm1 
    182185               DO ji = 2, jpim1 
     
    272275      CASE( 0 ) 
    273276         IF(lwp) WRITE(numout,*) '      free-slip ' 
    274 !$OMP PARALLEL WORKSHARE 
    275          bfrua(:,:) = 0.e0 
    276          bfrva(:,:) = 0.e0 
    277          tfrua(:,:) = 0.e0 
    278          tfrva(:,:) = 0.e0 
    279 !$OMP END PARALLEL WORKSHARE 
     277!$OMP PARALLEL DO schedule(static) private(jj,ji) 
     278            DO jj = 1, jpj 
     279               DO ji = 1, jpi 
     280                  bfrua(ji,jj) = 0.e0 
     281                  bfrva(ji,jj) = 0.e0 
     282                  tfrua(ji,jj) = 0.e0 
     283                  tfrva(ji,jj) = 0.e0 
     284               END DO 
     285            END DO 
    280286         ! 
    281287      CASE( 1 ) 
     
    304310         ENDIF 
    305311         ! 
    306 !$OMP PARALLEL WORKSHARE 
    307          bfrua(:,:) = - bfrcoef2d(:,:) 
    308          bfrva(:,:) = - bfrcoef2d(:,:) 
    309 !$OMP END PARALLEL WORKSHARE 
     312!$OMP PARALLEL DO schedule(static) private(jj,ji) 
     313            DO jj = 1, jpj 
     314               DO ji = 1, jpi 
     315                  bfrua(ji,jj) = - bfrcoef2d(ji,jj) 
     316                  bfrva(ji,jj) = - bfrcoef2d(ji,jj) 
     317               END DO 
     318            END DO 
    310319         ! 
    311320         IF ( ln_isfcav ) THEN 
     
    320329            ENDIF 
    321330            ! 
    322 !$OMP PARALLEL WORKSHARE 
    323             tfrua(:,:) = - tfrcoef2d(:,:) 
    324             tfrva(:,:) = - tfrcoef2d(:,:) 
    325 !$OMP END PARALLEL WORKSHARE 
     331!$OMP PARALLEL DO schedule(static) private(jj,ji) 
     332            DO jj = 1, jpj 
     333               DO ji = 1, jpi 
     334                  tfrua(ji,jj) = - tfrcoef2d(ji,jj) 
     335                  tfrva(ji,jj) = - tfrcoef2d(ji,jj) 
     336               END DO 
     337            END DO 
    326338         END IF 
    327339         ! 
     
    383395         ! 
    384396         IF( ln_loglayer.AND. ln_linssh ) THEN ! set "log layer" bottom friction once for all 
    385 !$OMP PARALLEL DO private(jj,ji,ikbt,ztmp) 
     397!$OMP PARALLEL DO schedule(static) private(jj,ji,ikbt,ztmp) 
    386398            DO jj = 1, jpj 
    387399               DO ji = 1, jpi 
     
    393405            END DO 
    394406            IF ( ln_isfcav ) THEN 
    395 !$OMP PARALLEL DO private(jj,ji,ikbt,ztmp) 
     407!$OMP PARALLEL DO schedule(static) private(jj,ji,ikbt,ztmp) 
    396408               DO jj = 1, jpj 
    397409                  DO ji = 1, jpi 
     
    433445      zmaxtfr = -1.e10_wp    ! initialise tracker for maximum of bottom friction coefficient 
    434446      ! 
    435 !$OMP PARALLEL DO private(jj,ji,ikbu,ikbv,zfru,zfrv,ictu,ictv,zminbfr,zmaxbfr,zmintfr,zmaxtfr) 
     447!$OMP PARALLEL DO schedule(static) private(jj,ji,ikbu,ikbv,zfru,zfrv,ictu,ictv,zminbfr,zmaxbfr,zmintfr,zmaxtfr) 
    436448      DO jj = 2, jpjm1 
    437449         DO ji = 2, jpim1 
Note: See TracChangeset for help on using the changeset viewer.