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 1694 for trunk/NEMO/OPA_SRC/SBC/sbccpl.F90 – NEMO

Ignore:
Timestamp:
2009-10-30T17:06:23+01:00 (15 years ago)
Author:
smasson
Message:

avoid out of bounds access, see ticket:576

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SBC/sbccpl.F90

    r1693 r1694  
    796796            CASE( 'U' ) 
    797797               DO jj = 2, jpjm1                                   ! (U,V) ==> I 
    798                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     798                  DO ji = 2, jpim1   ! NO vector opt. 
    799799                     p_taui(ji,jj) = 0.5 * ( frcv(ji-1,jj  ,jpr_itx1) + frcv(ji-1,jj-1,jpr_itx1) ) 
    800800                     p_tauj(ji,jj) = 0.5 * ( frcv(ji  ,jj-1,jpr_ity1) + frcv(ji-1,jj-1,jpr_ity1) ) 
     
    803803            CASE( 'F' ) 
    804804               DO jj = 2, jpjm1                                   ! F ==> I 
    805                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     805                  DO ji = 2, jpim1   ! NO vector opt. 
    806806                     p_taui(ji,jj) = frcv(ji-1,jj-1,jpr_itx1)  
    807807                     p_tauj(ji,jj) = frcv(ji-1,jj-1,jpr_ity1)   
     
    810810            CASE( 'T' ) 
    811811               DO jj = 2, jpjm1                                   ! T ==> I 
    812                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     812                  DO ji = 2, jpim1   ! NO vector opt. 
    813813                     p_taui(ji,jj) = 0.25 * ( frcv(ji,jj  ,jpr_itx1) + frcv(ji-1,jj  ,jpr_itx1)   & 
    814814                        &                   + frcv(ji,jj-1,jpr_itx1) + frcv(ji-1,jj-1,jpr_itx1) )  
     
    836836            CASE( 'I' ) 
    837837               DO jj = 2, jpjm1                                   ! I ==> F 
    838                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     838                  DO ji = 2, jpim1   ! NO vector opt. 
    839839                     p_taui(ji,jj) = frcv(ji+1,jj+1,jpr_itx1)  
    840840                     p_tauj(ji,jj) = frcv(ji+1,jj+1,jpr_ity1)   
     
    843843            CASE( 'T' ) 
    844844               DO jj = 2, jpjm1                                   ! T ==> F 
    845                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     845                  DO ji = 2, jpim1   ! NO vector opt. 
    846846                     p_taui(ji,jj) = 0.25 * ( frcv(ji,jj  ,jpr_itx1) + frcv(ji+1,jj  ,jpr_itx1)   & 
    847847                        &                   + frcv(ji,jj+1,jpr_itx1) + frcv(ji+1,jj+1,jpr_itx1) )  
     
    879879            CASE( 'I' ) 
    880880               DO jj = 2, jpjm1                                   ! I ==> (U,V) 
    881                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     881                  DO ji = 2, jpim1   ! NO vector opt. 
    882882                     p_taui(ji,jj) = 0.5 * ( frcv(ji+1,jj+1,jpr_itx1) + frcv(ji+1,jj  ,jpr_itx1) ) 
    883883                     p_tauj(ji,jj) = 0.5 * ( frcv(ji+1,jj+1,jpr_ity1) + frcv(ji  ,jj+1,jpr_ity1) ) 
     
    11341134         !     
    11351135         !                                                  j+1   j     -----V---F 
    1136          ! surfacz velocity always sent from T point                     !       | 
     1136         ! surface velocity always sent from T point                     !       | 
    11371137         !                                                        j      |   T   U 
    11381138         !                                                               |       | 
     
    11621162            CASE( 'I' )                      ! Ocean on C grid, Ice on I-point (B-grid) ==> T 
    11631163               DO jj = 2, jpjm1 
    1164                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     1164                  DO ji = 2, jpim1   ! NO vector opt. 
    11651165                     zotx1(ji,jj) = 0.5  * ( un(ji,jj,1)      + un(ji-1,jj  ,1) ) * zfr_l(ji,jj)   
    11661166                     zoty1(ji,jj) = 0.5  * ( vn(ji,jj,1)      + vn(ji  ,jj-1,1) ) * zfr_l(ji,jj)   
     
    11731173            CASE( 'F' )                      ! Ocean on C grid, Ice on F-point (B-grid) ==> T 
    11741174               DO jj = 2, jpjm1 
    1175                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     1175                  DO ji = 2, jpim1   ! NO vector opt. 
    11761176                     zotx1(ji,jj) = 0.5  * ( un(ji,jj,1)      + un(ji-1,jj  ,1) ) * zfr_l(ji,jj)   
    11771177                     zoty1(ji,jj) = 0.5  * ( vn(ji,jj,1)      + vn(ji  ,jj-1,1) ) * zfr_l(ji,jj)   
     
    11971197            CASE( 'I' )                      ! Ocean on C grid, Ice on I-point (B-grid) ==> T 
    11981198               DO jj = 2, jpjm1 
    1199                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     1199                  DO ji = 2, jpim1   ! NO vector opt. 
    12001200                     zotx1(ji,jj) = 0.5  * ( un(ji,jj,1)      + un(ji-1,jj  ,1) ) * zfr_l(ji,jj)   &    
    12011201                        &         + 0.25 * ( u_ice(ji+1,jj+1) + u_ice(ji,jj+1)                     & 
     
    12081208            CASE( 'F' )                      ! Ocean on C grid, Ice on F-point (B-grid) ==> T 
    12091209               DO jj = 2, jpjm1 
    1210                   DO ji = fs_2, fs_jpim1   ! vector opt. 
     1210                  DO ji = 2, jpim1   ! NO vector opt. 
    12111211                     zotx1(ji,jj) = 0.5  * ( un(ji,jj,1)      + un(ji-1,jj  ,1) ) * zfr_l(ji,jj)   &    
    12121212                        &         + 0.25 * ( u_ice(ji-1,jj-1) + u_ice(ji,jj-1)                     & 
Note: See TracChangeset for help on using the changeset viewer.