Ignore:
Timestamp:
2009-11-06T13:19:48+01:00 (11 years ago)
Author:
smasson
Message:

fill extra-halo in mpp_lnk_2/3d with defined values, see ticket:591

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/lib_mpp.F90

    r1629 r1718  
    307307      REAL(wp)        , OPTIONAL      , INTENT(in   ) ::   pval     ! background value (used at closed boundaries) 
    308308      !! 
    309       INTEGER  ::   ji, jj, jl   ! dummy loop indices 
     309      INTEGER  ::   ji, jj, jk, jl             ! dummy loop indices 
    310310      INTEGER  ::   imigr, iihom, ijhom        ! temporary integers 
    311311      INTEGER  ::   ml_req1, ml_req2, ml_err   ! for key_mpi_isend 
     
    320320      ! 1. standard boundary treatment 
    321321      ! ------------------------------ 
    322       IF( PRESENT( cd_mpp ) ) THEN      ! only fill added line/raw with non zero values 
    323          ! 
    324          DO jj = nlcj+1, jpj                 ! added line(s)   (inner only) 
    325             ptab(1:nlci, jj, :) = ptab(1:nlci, nlej, :) 
    326          END DO 
    327          DO ji = nlci+1, jpi                 ! added column(s) (full) 
    328             ptab(ji    , : , :) = ptab(nlei  , :   , :) 
     322      IF( PRESENT( cd_mpp ) ) THEN      ! only fill added line/raw with existing values 
     323         ! 
     324         ! WARNING ptab is defined only between nld and nle 
     325         DO jk = 1, jpk 
     326            DO jj = nlcj+1, jpj                 ! added line(s)   (inner only) 
     327               ptab(nldi  :nlei  , jj          ,jk) = ptab(nldi:nlei,     nlej,jk)    
     328               ptab(1     :nldi-1, jj          ,jk) = ptab(nldi     ,     nlej,jk) 
     329               ptab(nlei+1:nlci  , jj          ,jk) = ptab(     nlei,     nlej,jk) 
     330            END DO 
     331            DO ji = nlci+1, jpi                 ! added column(s) (full) 
     332               ptab(ji           ,nldj  :nlej  ,jk) = ptab(     nlei,nldj:nlej,jk) 
     333               ptab(ji           ,1     :nldj-1,jk) = ptab(     nlei,nldj     ,jk) 
     334               ptab(ji           ,nlej+1:jpj   ,jk) = ptab(     nlei,     nlej,jk) 
     335            END DO 
    329336         END DO 
    330337         ! 
     
    509516      ! ------------------------------ 
    510517      ! 
    511       IF( PRESENT( cd_mpp ) ) THEN      ! only fill added line/raw with non zero values 
    512          ! 
    513          DO jj = nlcj+1, jpj                 ! last line (inner) 
    514             pt2d(1:nlci, jj) = pt2d(1:nlci, nlej) 
    515          END DO 
    516          DO ji = nlci+1, jpi                 ! last column 
    517             pt2d(ji    , : ) = pt2d(nlei  , :   ) 
     518      IF( PRESENT( cd_mpp ) ) THEN      ! only fill added line/raw with existing values 
     519         ! 
     520         ! WARNING pt2d is defined only between nld and nle 
     521         DO jj = nlcj+1, jpj                 ! added line(s)   (inner only) 
     522            pt2d(nldi  :nlei  , jj          ) = pt2d(nldi:nlei,     nlej)    
     523            pt2d(1     :nldi-1, jj          ) = pt2d(nldi     ,     nlej) 
     524            pt2d(nlei+1:nlci  , jj          ) = pt2d(     nlei,     nlej) 
     525         END DO 
     526         DO ji = nlci+1, jpi                 ! added column(s) (full) 
     527            pt2d(ji           ,nldj  :nlej  ) = pt2d(     nlei,nldj:nlej) 
     528            pt2d(ji           ,1     :nldj-1) = pt2d(     nlei,nldj     ) 
     529            pt2d(ji           ,nlej+1:jpj   ) = pt2d(     nlei,     nlej) 
    518530         END DO 
    519531         ! 
Note: See TracChangeset for help on using the changeset viewer.