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 11049 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/BDY/bdylib.F90 – NEMO

Ignore:
Timestamp:
2019-05-24T10:22:47+02:00 (5 years ago)
Author:
girrmann
Message:

dev_r10984_HPC-13 : CYCLE instruction is not systematic anymore, computation is done on the halo whenever possible and overwritten by lbc_bdy instruction, see #2285

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/src/OCE/BDY/bdylib.F90

    r11048 r11049  
    5656            ii = idx%nbi(ib,igrd)  
    5757            ij = idx%nbj(ib,igrd) 
    58             IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    5958            zwgt = idx%nbw(ib,igrd) 
    6059            pta(ii,ij,ik) = ( pta(ii,ij,ik) + zwgt * (dta(ib,ik) - pta(ii,ij,ik) ) ) * tmask(ii,ij,ik) 
     
    8483         ii = idx%nbi(ib,igrd) 
    8584         ij = idx%nbj(ib,igrd) 
    86          IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    8785         DO ik = 1, jpkm1 
    8886            pta(ii,ij,ik) = dta(ib,ik) * tmask(ii,ij,ik) 
     
    468466         ii = idx%nbi(ib,igrd) 
    469467         ij = idx%nbj(ib,igrd) 
    470          IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
     468         ! 
    471469         SELECT CASE( idx%ntreat(ib,igrd) )   ! select free ocean neighbours 
    472470            !     o  
     
    499497         SELECT CASE( idx%ntreat(ib,igrd) ) 
    500498            CASE( 0:4 ) 
     499               IF( ii1 < 1 .OR. ii1 > jpi .OR. ij1 < 1 .OR. ij1 > jpj )   CYCLE 
    501500               DO ik = 1, ipkm1 
    502501                  IF( pmask(ii1,ij1,ik) /= 0. )   phia(ii,ij,ik) = phia(ii1,ij1,ik)   
    503502               END DO 
    504503            CASE( 5:8 ) 
     504               IF( ii1 < 1 .OR. ii1 > jpi .OR. ij1 < 1 .OR. ij1 > jpj )   CYCLE 
     505               IF( ii2 < 1 .OR. ii2 > jpi .OR. ij2 < 1 .OR. ij2 > jpj )   CYCLE 
    505506               DO ik = 1, ipkm1 
    506507                  zweight = pmask(ii1,ij1,ik) + pmask(ii2,ij2,ik) 
     
    508509               END DO 
    509510            CASE( 9:12 ) 
     511               IF( ii1 < 1 .OR. ii1 > jpi .OR. ij1 < 1 .OR. ij1 > jpj )   CYCLE 
     512               IF( ii2 < 1 .OR. ii2 > jpi .OR. ij2 < 1 .OR. ij2 > jpj )   CYCLE 
     513               IF( ii3 < 1 .OR. ii3 > jpi .OR. ij3 < 1 .OR. ij3 > jpj )   CYCLE 
    510514               DO ik = 1, ipkm1 
    511515                  zweight = pmask(ii1,ij1,ik) + pmask(ii2,ij2,ik) + pmask(ii3,ij3,ik) 
Note: See TracChangeset for help on using the changeset viewer.