59 TYPE(t_region
),
POINTER :: regions(:)
60 INTEGER,
INTENT(IN) :: ireg
66 CHARACTER(CHRLEN) :: rcsidentstring
68 INTEGER :: ilev, npatches, bctype, iregsrc, irequest
70 INTEGER ::
status(mpi_status_size)
76 TYPE(t_peul),
POINTER :: ppeul
81 rcsidentstring =
'$RCSfile: PEUL_ClearSendRequests.F90,v $ $Revision: 1.3 $'
83 global => regions(1)%global
86 'PEUL_ClearSendRequests.F90' )
91 ilev = regions(ireg)%currLevel
92 npatches = regions(ireg)%nPatches
94 ppeul => regions(ireg)%levels(ilev)%peul
100 patch => regions(ireg)%levels(ilev)%patches(ipatch)
102 bctype =
patch%bcType
103 iregsrc =
patch%srcRegion
104 irequest =
patch%bufferPeul%iRequest
108 dowait = ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
109 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
110 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range))
112 IF (iregsrc > 0)
THEN
113 IF (dowait .AND. (regions(iregsrc)%procid /= global%myProcid))
THEN
114 CALL mpi_wait( ppeul%requests(irequest),
status, global%mpierr )
115 IF (global%mpierr /= err_none) &
116 CALL
errorstop( global,err_mpi_trouble,__line__ )
124 IF (global%nProcAlloc>1)
THEN
125 DO ir=1,global%nRegions
126 IF (regions(ireg)%levels(ilev)%sndPeulEcCells(ir)%nCells > 0)
THEN
127 irequest = regions(ireg)%levels(ilev)%sndPeulEcCells(ir)%iRequest
128 CALL mpi_wait( global%requests(irequest),
status,global%mpierr )
129 IF (global%mpierr /= 0) &
130 CALL
errorstop( global,err_mpi_trouble,__line__ )
subroutine registerfunction(global, funName, fileName)
int status() const
Obtain the status of the attribute.
subroutine peul_clearsendrequests(regions, iReg)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)