58 TYPE(t_region
),
POINTER :: regions(:)
60 INTEGER,
INTENT(IN) :: ireg
66 INTEGER :: ilev, npatches, bctype, iregsrc, irequest
68 INTEGER ::
status(mpi_status_size)
78 global => regions(1)%global
81 'RADI_rFLO_FlimClearSendRequests.F90' )
83 IF (regions(ireg)%radiInput%radiModel /= radi_model_fldtran) goto 999
88 ilev = regions(ireg)%currLevel
89 npatches = regions(ireg)%nPatches
95 patch => regions(ireg)%levels(ilev)%patches(ipatch)
98 iregsrc =
patch%srcRegion
99 irequest =
patch%valRadi%iRequest
103 dowait = ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
104 (bctype>=bc_regionint .AND. bctype<=bc_regionint +bc_range) .OR. &
105 (bctype>=bc_regnonconf .AND. bctype<=bc_regnonconf+bc_range) .OR. &
106 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
107 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range))
109 IF (iregsrc > 0)
THEN
110 IF (dowait .AND. (regions(iregsrc)%procid /= global%myProcid))
THEN
111 CALL mpi_wait( global%requests(irequest),
status, global%mpierr )
112 IF (global%mpierr /= err_none) &
113 CALL
errorstop( global,err_mpi_trouble,__line__ )
121 IF (global%nProcAlloc>1)
THEN
122 DO ir=1,global%nRegions
123 IF (regions(ireg)%levels(ilev)%sndRadiEcCells(ir)%nCells > 0)
THEN
124 irequest = regions(ireg)%levels(ilev)%sndRadiEcCells(ir)%iRequest
125 CALL mpi_wait( global%requests(irequest),
status,global%mpierr )
126 IF (global%mpierr /= 0) CALL
errorstop( global,err_mpi_trouble,__line__ )
subroutine registerfunction(global, funName, fileName)
int status() const
Obtain the status of the attribute.
subroutine radi_rflo_flimclearsendrequests(regions, iReg)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)