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/bdyice.F90

    r11048 r11049  
    116116            ji    = idx%nbi(i_bdy,jgrd) 
    117117            jj    = idx%nbj(i_bdy,jgrd) 
    118             IF( ji == 1 .OR. ji == jpi .OR. jj == 1 .OR. jj == jpj )  CYCLE   ! to remove 
    119118            zwgt  = idx%nbw(i_bdy,jgrd) 
    120119            zwgt1 = 1.e0 - idx%nbw(i_bdy,jgrd) 
     
    148147            ji = idx%nbi(i_bdy,jgrd) 
    149148            jj = idx%nbj(i_bdy,jgrd) 
    150             IF( ji == 1 .OR. ji == jpi .OR. jj == 1 .OR. jj == jpj )  CYCLE   ! to remove 
    151149            flagu => idx%flagu(i_bdy,jgrd) 
    152150            flagv => idx%flagv(i_bdy,jgrd) 
     
    155153            jpbound = 0   ;   ib = ji   ;   jb = jj 
    156154            ! 
    157             IF( u_ice(ji  ,jj  ) < 0. .AND. flagu ==  1. )   jpbound = 1 ; ib = ji+1  
    158             IF( u_ice(ji-1,jj  ) > 0. .AND. flagu == -1. )   jpbound = 1 ; ib = ji-1 
    159             IF( v_ice(ji  ,jj  ) < 0. .AND. flagv ==  1. )   jpbound = 1             ; jb = jj+1 
    160             IF( v_ice(ji  ,jj-1) > 0. .AND. flagv == -1. )   jpbound = 1             ; jb = jj-1 
     155            IF( flagu ==  1. )   THEN 
     156               IF( ji+1 > jpi  )   CYCLE 
     157               IF( u_ice(ji  ,jj  ) < 0. )   jpbound = 1 ; ib = ji+1 
     158            END IF 
     159            IF( flagu == -1. )   THEN 
     160               IF( ji-1 < 1    )   CYCLE 
     161               IF( u_ice(ji-1,jj  ) < 0. )   jpbound = 1 ; ib = ji-1 
     162            END IF 
     163            IF( flagv ==  1. )   THEN 
     164               IF( ji+1 > jpj )   CYCLE 
     165               IF( v_ice(ji  ,jj  ) < 0. )   jpbound = 1 ; jb = jj+1 
     166            END IF 
     167            IF( flagv == -1. )   THEN 
     168               IF( jj-1 < 1   )   CYCLE 
     169               IF( v_ice(ji  ,jj-1) < 0. )   jpbound = 1 ; jb = jj-1 
     170            END IF 
    161171            ! 
    162172            IF( nn_ice_dta(jbdy) == 0 )   jpbound = 0 ; ib = ji ; jb = jj   ! case ice boundaries = initial conditions 
     
    308318                  ji    = idx_bdy(jbdy)%nbi(i_bdy,jgrd) 
    309319                  jj    = idx_bdy(jbdy)%nbj(i_bdy,jgrd) 
    310                   IF( ji == 1 .OR. ji == jpi .OR. jj == 1 .OR. jj == jpj )  CYCLE   ! to remove 
    311320                  zflag = idx_bdy(jbdy)%flagu(i_bdy,jgrd) 
    312321                  !     i-1  i   i    |  !        i  i i+1 |  !          i  i i+1 | 
     
    337346                  ji    = idx_bdy(jbdy)%nbi(i_bdy,jgrd) 
    338347                  jj    = idx_bdy(jbdy)%nbj(i_bdy,jgrd) 
    339                   IF( ji == 1 .OR. ji == jpi .OR. jj == 1 .OR. jj == jpj )  CYCLE   ! to remove 
    340348                  zflag = idx_bdy(jbdy)%flagv(i_bdy,jgrd) 
    341349                  !    ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨     !  ¨¨¨¨ïce¨¨¨(jj+1)¨¨     ! ¨¨¨¨¨¨ö¨¨¨¨(jj+1)        
Note: See TracChangeset for help on using the changeset viewer.