Ignore:
Timestamp:
01/10/20 12:20:51 (4 years ago)
Author:
adurocher
Message:

transfert_mpi : aggregate messages

Only one message is sent per MPI process pair.
One message was sent for each pair of tiles, and each MPI process can have multiple tiles.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/parallel/transfert_requests.F90

    r965 r999  
    218218      integer :: k, i, last, i_min, tmp 
    219219 
    220       displs = (points%i-1) + (points%j-1)*iim 
    221       if(allocated(points%elt)) displs = displs + (points%elt-1)*iim*jjm 
     220      displs = (points%i(1:points%npoints)-1) + (points%j(1:points%npoints)-1)*iim 
     221      if(allocated(points%elt)) displs = displs + (points%elt(1:points%npoints)-1)*iim*jjm 
    222222 
    223223      last=0 
     
    226226        tmp = displs(i_min) 
    227227        displs(i_min) = displs(i) 
    228         if(last==0 .or. displs(i_min) /= displs(last)) last=last+1 
     228        if( last==0 ) then 
     229          last=last+1 
     230        else if( displs(i_min) /= displs(last) ) then  
     231          last=last+1 
     232        endif 
    229233        displs(last) = tmp 
    230234      end do 
Note: See TracChangeset for help on using the changeset viewer.