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 1529 – NEMO

Changeset 1529


Ignore:
Timestamp:
2009-07-23T17:33:22+02:00 (15 years ago)
Author:
ctlod
Message:

synchronize loops in advection modules of LIM2.0 and LIM3.0, see ticket: #487

Location:
trunk/NEMO
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/LIM_SRC_2/limadv_2.F90

    r1510 r1529  
    2525   PUBLIC lim_adv_x_2    ! called by lim_trp 
    2626   PUBLIC lim_adv_y_2    ! called by lim_trp 
     27 
     28   !! * Substitutions 
     29#  include "vectopt_loop_substitute.h90" 
    2730 
    2831   !! * Module variables 
     
    110113 
    111114      !  Calculate fluxes and moments between boxes i<-->i+1               
    112       DO jj = 2, jpjm1                    !  Flux from i to i+1 WHEN u GT 0  
    113 !i bug   DO ji = 1, jpim1  
    114 !i    DO jj = 1, jpj                      !  Flux from i to i+1 WHEN u GT 0  
     115      DO jj = 1, jpj                      !  Flux from i to i+1 WHEN u GT 0  
    115116         DO ji = 1, jpi 
    116117            zbet(ji,jj)  =  MAX( rzero, SIGN( rone, put(ji,jj) ) ) 
     
    138139      END DO 
    139140 
    140       DO jj = 2, jpjm1                      !  Flux from i+1 to i when u LT 0. 
    141 !i    DO jj = 1, jpjm1                      !  Flux from i+1 to i when u LT 0. 
    142          DO ji = 1, jpim1 
     141      DO jj = 1, jpjm1                      !  Flux from i+1 to i when u LT 0. 
     142         DO ji = 1, fs_jpim1 
    143143            zalf          = MAX( rzero, -put(ji,jj) ) * zrdt * e2u(ji,jj) / psm(ji+1,jj)  
    144144            zalg  (ji,jj) = zalf 
     
    159159 
    160160      DO jj = 2, jpjm1                     !  Readjust moments remaining in the box.  
    161          DO ji = 2, jpim1 
     161         DO ji = fs_2, fs_jpim1 
    162162            zbt  =       zbet(ji-1,jj) 
    163163            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    174174      !   Put the temporary moments into appropriate neighboring boxes.     
    175175      DO jj = 2, jpjm1                     !   Flux from i to i+1 IF u GT 0. 
    176          DO ji = 2, jpim1 
     176         DO ji = fs_2, fs_jpim1 
    177177            zbt  =       zbet(ji-1,jj) 
    178178            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    195195 
    196196      DO jj = 2, jpjm1                     !  Flux from i+1 to i IF u LT 0. 
    197          DO ji = 2, jpim1 
     197         DO ji = fs_2, fs_jpim1 
    198198            zbt  =       zbet(ji,jj) 
    199199            zbt1 = 1.0 - zbet(ji,jj) 
     
    225225      CALL lbc_lnk( psxy, 'T',  1. ) 
    226226 
    227       IF(ln_ctl)   THEN 
     227      IF(ln_ctl) THEN 
    228228         CALL prt_ctl(tab2d_1=psm  , clinfo1=' lim_adv_x: psm  :', tab2d_2=ps0 , clinfo2=' ps0  : ') 
    229229         CALL prt_ctl(tab2d_1=psx  , clinfo1=' lim_adv_x: psx  :', tab2d_2=psxx, clinfo2=' psxx : ') 
     
    303303 
    304304       !  Calculate fluxes and moments between boxes j<-->j+1               
    305 !!bug  DO jj = 2, jpjm1 
    306305       DO jj = 1, jpj 
    307           DO ji = 2, jpim1 
    308 !!bug     DO ji = 1, jpim1 
     306          DO ji = 1, jpi 
    309307             !  Flux from j to j+1 WHEN v GT 0    
    310308             zbet(ji,jj)  =  MAX( rzero, SIGN( rone, pvt(ji,jj) ) ) 
     
    333331 
    334332       DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
    335           DO ji = 2, jpim1 
    336 !i     DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
    337 !i        DO ji = 2, jpim1 
     333          DO ji = 1, jpi 
    338334             zalf          = ( MAX(rzero, -pvt(ji,jj) ) * zrdt * e1v(ji,jj) ) / psm(ji,jj+1)  
    339335             zalg  (ji,jj) = zalf 
     
    354350  
    355351       !  Readjust moments remaining in the box.  
    356        DO jj = 2, jpjm1 
    357           DO ji = 2, jpim1 
     352       DO jj = 2, jpj 
     353          DO ji = 1, jpi 
    358354             zbt  =         zbet(ji,jj-1) 
    359355             zbt1 = ( 1.0 - zbet(ji,jj-1) ) 
     
    370366       !   Put the temporary moments into appropriate neighboring boxes.     
    371367       DO jj = 2, jpjm1                    !   Flux from j to j+1 IF v GT 0. 
    372           DO ji = 2, jpim1 
     368          DO ji = 1, jpi 
    373369             zbt  =         zbet(ji,jj-1) 
    374370             zbt1 = ( 1.0 - zbet(ji,jj-1) ) 
     
    395391 
    396392       DO jj = 2, jpjm1                   !  Flux from j+1 to j IF v LT 0. 
    397           DO ji = 2, jpim1 
     393          DO ji = 1, jpi 
    398394             zbt  =         zbet(ji,jj) 
    399395             zbt1 = ( 1.0 - zbet(ji,jj) ) 
  • trunk/NEMO/LIM_SRC_3/limadv.F90

    r1510 r1529  
    114114      !  Calculate fluxes and moments between boxes i<-->i+1               
    115115      DO jj = 1, jpj                      !  Flux from i to i+1 WHEN u GT 0  
    116          !i bug   DO ji = 1, jpim1  
    117          !i    DO jj = 1, jpj                      !  Flux from i to i+1 WHEN u GT 0  
    118116         DO ji = 1, jpi 
    119117            zbet(ji,jj)  =  MAX( rzero, SIGN( rone, put(ji,jj) ) ) 
     
    142140 
    143141      DO jj = 1, jpjm1                      !  Flux from i+1 to i when u LT 0. 
    144          !i    DO jj = 1, fs_jpjm1                   !  Flux from i+1 to i when u LT 0. 
    145142         DO ji = 1, fs_jpim1 
    146143            zalf          = MAX( rzero, -put(ji,jj) ) * zrdt * e2u(ji,jj) / psm(ji+1,jj)  
     
    162159 
    163160      DO jj = 2, jpjm1                     !  Readjust moments remaining in the box.  
    164          DO ji = fs_2, jpi 
     161         DO ji = fs_2, fs_jpim1 
    165162            zbt  =       zbet(ji-1,jj) 
    166163            zbt1 = 1.0 - zbet(ji-1,jj) 
     
    306303 
    307304      !  Calculate fluxes and moments between boxes j<-->j+1               
    308       !!bug  DO jj = 2, jpjm1 
    309305      DO jj = 1, jpj 
    310306         DO ji = 1, jpi 
    311             !!bug     DO ji = 1, jpim1 
    312307            !  Flux from j to j+1 WHEN v GT 0    
    313308            zbet(ji,jj)  =  MAX( rzero, SIGN( rone, pvt(ji,jj) ) ) 
     
    337332      DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
    338333         DO ji = 1, jpi 
    339             !i     DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
    340             !i        DO ji = 2, jpim1 
    341334            zalf          = ( MAX(rzero, -pvt(ji,jj) ) * zrdt * e1v(ji,jj) ) / psm(ji,jj+1)  
    342335            zalg  (ji,jj) = zalf 
Note: See TracChangeset for help on using the changeset viewer.