Ignore:
Timestamp:
2019-05-24T10:22:47+02:00 (18 months 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/bdydyn3d.F90

    r11048 r11049  
    8686            ii   = idx%nbi(jb,igrd) 
    8787            ij   = idx%nbj(jb,igrd) 
    88             IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    8988            ua(ii,ij,jk) = dta%u3d(jb,jk) * umask(ii,ij,jk) 
    9089         END DO 
     
    9695            ii   = idx%nbi(jb,igrd) 
    9796            ij   = idx%nbj(jb,igrd) 
    98             IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    9997            va(ii,ij,jk) = dta%v3d(jb,jk) * vmask(ii,ij,jk) 
    10098         END DO 
     
    128126         ii    = idx%nbi(jb,igrd) 
    129127         ij    = idx%nbj(jb,igrd) 
    130          IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    131128         flagu = NINT(idx%flagu(jb,igrd)) 
    132129         flagv = NINT(idx%flagv(jb,igrd)) 
    133130         ! 
    134131         IF( flagu == 0 )   THEN              ! north/south bdy 
    135             ! Rare case : rim is parallel to the mpi subdomain border and located next to the halo 
    136132            IF( ij+flagv > jpj .OR. ij+flagv < 1 )   CYCLE       
    137133            ! 
     
    147143         ii    = idx%nbi(jb,igrd) 
    148144         ij    = idx%nbj(jb,igrd) 
    149          IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    150145         flagu = NINT(idx%flagu(jb,igrd)) 
    151146         flagv = NINT(idx%flagv(jb,igrd)) 
    152147         ! 
    153148         IF( flagv == 0 )   THEN              !  west/east  bdy 
    154             ! Rare case : rim is parallel to the mpi subdomain border and located next to the halo 
    155149            IF( ii+flagu > jpi .OR. ii+flagu < 1 )   CYCLE       
    156150            ! 
     
    189183         ii = idx%nbi(ib,igrd) 
    190184         ij = idx%nbj(ib,igrd) 
    191          IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    192185         DO ik = 1, jpkm1 
    193186            ua(ii,ij,ik) = 0._wp 
     
    199192         ii = idx%nbi(ib,igrd) 
    200193         ij = idx%nbj(ib,igrd) 
    201          IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    202194         DO ik = 1, jpkm1 
    203195            va(ii,ij,ik) = 0._wp 
     
    236228            ii   = idx%nbi(jb,igrd) 
    237229            ij   = idx%nbj(jb,igrd) 
    238             IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    239230            zwgt = idx%nbw(jb,igrd) 
    240231            ua(ii,ij,jk) = ( ua(ii,ij,jk) + zwgt * ( dta%u3d(jb,jk) - ua(ii,ij,jk) ) ) * umask(ii,ij,jk) 
     
    247238            ii   = idx%nbi(jb,igrd) 
    248239            ij   = idx%nbj(jb,igrd) 
    249             IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    250240            zwgt = idx%nbw(jb,igrd) 
    251241            va(ii,ij,jk) = ( va(ii,ij,jk) + zwgt * ( dta%v3d(jb,jk) - va(ii,ij,jk) ) ) * vmask(ii,ij,jk) 
     
    316306               ii   = idx_bdy(ib_bdy)%nbi(jb,igrd) 
    317307               ij   = idx_bdy(ib_bdy)%nbj(jb,igrd) 
    318                IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    319308               zwgt = idx_bdy(ib_bdy)%nbd(jb,igrd) 
    320309               DO jk = 1, jpkm1 
     
    328317               ii   = idx_bdy(ib_bdy)%nbi(jb,igrd) 
    329318               ij   = idx_bdy(ib_bdy)%nbj(jb,igrd) 
    330                IF( ii == 1 .OR. ii == jpi .OR. ij == 1 .OR. ij == jpj )  CYCLE   ! to remove 
    331319               zwgt = idx_bdy(ib_bdy)%nbd(jb,igrd) 
    332320               DO jk = 1, jpkm1 
Note: See TracChangeset for help on using the changeset viewer.