69 REAL(RFREAL),
POINTER :: dnode(:,:)
71 TYPE(t_region
) :: region, regionsrc
75 INTEGER ::
i,
j,
k, ijkbuff
79 INTEGER ::
status(mpi_status_size)
82 ijkn, ijknb, ibnd, jbnd, kbnd, n1, n2, ndim, lb,
source,
tag
84 REAL(RFREAL) ::
dx,
dy,
dz, dyr, dzr, cosa, sina
85 REAL(RFREAL),
POINTER :: xyz(:,:), dold(:,:)
91 global => region%global
94 'RFLO_ExchangeDnodeRecv.F90' )
98 IF (regionsrc%active == off)
THEN
99 CALL
errorstop( global,err_srcregion_off,&
109 xyz => region%levels(1)%gridOld%xyz
110 dold => region%levels(1)%grid%xyzOld
120 tag = region%localNumber + mpi_patchoff*patchsrc%srcPatch
121 CALL mpi_recv(
patch%mixt%recvBuff,3*ndim,mpi_rfreal,
source,
tag, &
122 global%mpiComm,
status,global%mpierr )
123 IF (global%mpierr /= 0) CALL
errorstop( global,err_mpi_trouble,&
130 bctype =
patch%bcType
135 IF (lb==1 .OR. lb==2)
THEN
140 ELSE IF (lb == 2)
THEN
145 IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
146 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range))
THEN
149 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
150 ijkbuff = ijkbuff + 1
151 dx =
patch%mixt%recvBuff(ijkbuff )
152 dy =
patch%mixt%recvBuff(ijkbuff+ ndim)
153 dz =
patch%mixt%recvBuff(ijkbuff+2*ndim)
155 IF (abs(
dx-dold(xcoord,ijkn))<1.e-30_rfreal .OR. &
156 abs(dnode(xcoord,ijkn)-dold(xcoord,ijkn))<1.e-30_rfreal)
THEN
157 dnode(xcoord,ijkn) = dold(xcoord,ijkn)
159 dnode(xcoord,ijkn) = 0.5_rfreal*(dnode(xcoord,ijkn)+
dx)
161 IF (abs(
dy-dold(ycoord,ijkn))<1.e-30_rfreal .OR. &
162 abs(dnode(ycoord,ijkn)-dold(ycoord,ijkn))<1.e-30_rfreal)
THEN
163 dnode(ycoord,ijkn) = dold(ycoord,ijkn)
165 dnode(ycoord,ijkn) = 0.5_rfreal*(dnode(ycoord,ijkn)+
dy)
167 IF (abs(
dz-dold(zcoord,ijkn))<1.e-30_rfreal .OR. &
168 abs(dnode(zcoord,ijkn)-dold(zcoord,ijkn))<1.e-30_rfreal)
THEN
169 dnode(zcoord,ijkn) = dold(zcoord,ijkn)
171 dnode(zcoord,ijkn) = 0.5_rfreal*(dnode(zcoord,ijkn)+
dz)
174 IF (abs(
dx) > abs(dnode(xcoord,ijkn)))
THEN
175 region%levels(1)%grid%boundMoved(lb) = .true.
176 dnode(xcoord,ijkn) =
dx
178 IF (abs(
dy) > abs(dnode(ycoord,ijkn)))
THEN
179 region%levels(1)%grid%boundMoved(lb) = .true.
180 dnode(ycoord,ijkn) =
dy
182 IF (abs(
dz) > abs(dnode(zcoord,ijkn)))
THEN
183 region%levels(1)%grid%boundMoved(lb) = .true.
184 dnode(zcoord,ijkn) =
dz
189 ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range)
THEN
194 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
195 ijkbuff = ijkbuff + 1
196 dx =
patch%mixt%recvBuff(ijkbuff )
197 dy =
patch%mixt%recvBuff(ijkbuff+ ndim)
198 dz =
patch%mixt%recvBuff(ijkbuff+2*ndim)
199 dyr = cosa*
dy - sina*
dz
200 dzr = sina*
dy + cosa*
dz
202 dnode(xcoord,ijkn) = dold(xcoord,ijkn)
203 dnode(ycoord,ijkn) = dold(ycoord,ijkn)
204 dnode(zcoord,ijkn) = dold(zcoord,ijkn)
206 IF (abs(
dx ) > abs(dnode(xcoord,ijkn)))
THEN
207 region%levels(1)%grid%boundMoved(lb) = .true.
208 dnode(xcoord,ijkn) =
dx
210 IF (abs(dyr) > abs(dnode(ycoord,ijkn)))
THEN
211 region%levels(1)%grid%boundMoved(lb) = .true.
212 dnode(ycoord,ijkn) = dyr
214 IF (abs(dzr) > abs(dnode(zcoord,ijkn)))
THEN
215 region%levels(1)%grid%boundMoved(lb) = .true.
216 dnode(zcoord,ijkn) = dzr
225 ELSE IF (lb==3 .OR. lb==4)
THEN
230 ELSE IF (lb == 4)
THEN
235 IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
236 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range))
THEN
239 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
240 ijkbuff = ijkbuff + 1
241 dx =
patch%mixt%recvBuff(ijkbuff )
242 dy =
patch%mixt%recvBuff(ijkbuff+ ndim)
243 dz =
patch%mixt%recvBuff(ijkbuff+2*ndim)
245 IF (abs(
dx-dold(xcoord,ijkn))<1.e-30_rfreal .OR. &
246 abs(dnode(xcoord,ijkn)-dold(xcoord,ijkn))<1.e-30_rfreal)
THEN
247 dnode(xcoord,ijkn) = dold(xcoord,ijkn)
249 dnode(xcoord,ijkn) = 0.5_rfreal*(dnode(xcoord,ijkn)+
dx)
251 IF (abs(
dy-dold(ycoord,ijkn))<1.e-30_rfreal .OR. &
252 abs(dnode(ycoord,ijkn)-dold(ycoord,ijkn))<1.e-30_rfreal)
THEN
253 dnode(ycoord,ijkn) = dold(ycoord,ijkn)
255 dnode(ycoord,ijkn) = 0.5_rfreal*(dnode(ycoord,ijkn)+
dy)
257 IF (abs(
dz-dold(zcoord,ijkn))<1.e-30_rfreal .OR. &
258 abs(dnode(zcoord,ijkn)-dold(zcoord,ijkn))<1.e-30_rfreal)
THEN
259 dnode(zcoord,ijkn) = dold(zcoord,ijkn)
261 dnode(zcoord,ijkn) = 0.5_rfreal*(dnode(zcoord,ijkn)+
dz)
264 IF (abs(
dx) > abs(dnode(xcoord,ijkn)))
THEN
265 region%levels(1)%grid%boundMoved(lb) = .true.
266 dnode(xcoord,ijkn) =
dx
268 IF (abs(
dy) > abs(dnode(ycoord,ijkn)))
THEN
269 region%levels(1)%grid%boundMoved(lb) = .true.
270 dnode(ycoord,ijkn) =
dy
272 IF (abs(
dz) > abs(dnode(zcoord,ijkn)))
THEN
273 region%levels(1)%grid%boundMoved(lb) = .true.
274 dnode(zcoord,ijkn) =
dz
279 ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range)
THEN
284 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
285 ijkbuff = ijkbuff + 1
286 dx =
patch%mixt%recvBuff(ijkbuff )
287 dy =
patch%mixt%recvBuff(ijkbuff+ ndim)
288 dz =
patch%mixt%recvBuff(ijkbuff+2*ndim)
289 dyr = cosa*
dy - sina*
dz
290 dzr = sina*
dy + cosa*
dz
292 dnode(xcoord,ijkn) = dold(xcoord,ijkn)
293 dnode(ycoord,ijkn) = dold(ycoord,ijkn)
294 dnode(zcoord,ijkn) = dold(zcoord,ijkn)
296 IF (abs(
dx ) > abs(dnode(xcoord,ijkn)))
THEN
297 region%levels(1)%grid%boundMoved(lb) = .true.
298 dnode(xcoord,ijkn) =
dx
300 IF (abs(dyr) > abs(dnode(ycoord,ijkn)))
THEN
301 region%levels(1)%grid%boundMoved(lb) = .true.
302 dnode(ycoord,ijkn) = dyr
304 IF (abs(dzr) > abs(dnode(zcoord,ijkn)))
THEN
305 region%levels(1)%grid%boundMoved(lb) = .true.
306 dnode(zcoord,ijkn) = dzr
315 ELSE IF (lb==5 .OR. lb==6)
THEN
320 ELSE IF (lb == 6)
THEN
325 IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
326 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range))
THEN
329 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
330 ijkbuff = ijkbuff + 1
331 dx =
patch%mixt%recvBuff(ijkbuff )
332 dy =
patch%mixt%recvBuff(ijkbuff+ ndim)
333 dz =
patch%mixt%recvBuff(ijkbuff+2*ndim)
335 IF (abs(
dx-dold(xcoord,ijkn))<1.e-30_rfreal .OR. &
336 abs(dnode(xcoord,ijkn)-dold(xcoord,ijkn))<1.e-30_rfreal)
THEN
337 dnode(xcoord,ijkn) = dold(xcoord,ijkn)
339 dnode(xcoord,ijkn) = 0.5_rfreal*(dnode(xcoord,ijkn)+
dx)
341 IF (abs(
dy-dold(ycoord,ijkn))<1.e-30_rfreal .OR. &
342 abs(dnode(ycoord,ijkn)-dold(ycoord,ijkn))<1.e-30_rfreal)
THEN
343 dnode(ycoord,ijkn) = dold(ycoord,ijkn)
345 dnode(ycoord,ijkn) = 0.5_rfreal*(dnode(ycoord,ijkn)+
dy)
347 IF (abs(
dz-dold(zcoord,ijkn))<1.e-30_rfreal .OR. &
348 abs(dnode(zcoord,ijkn)-dold(zcoord,ijkn))<1.e-30_rfreal)
THEN
349 dnode(zcoord,ijkn) = dold(zcoord,ijkn)
351 dnode(zcoord,ijkn) = 0.5_rfreal*(dnode(zcoord,ijkn)+
dz)
354 IF (abs(
dx) > abs(dnode(xcoord,ijkn)))
THEN
355 region%levels(1)%grid%boundMoved(lb) = .true.
356 dnode(xcoord,ijkn) =
dx
358 IF (abs(
dy) > abs(dnode(ycoord,ijkn)))
THEN
359 region%levels(1)%grid%boundMoved(lb) = .true.
360 dnode(ycoord,ijkn) =
dy
362 IF (abs(
dz) > abs(dnode(zcoord,ijkn)))
THEN
363 region%levels(1)%grid%boundMoved(lb) = .true.
364 dnode(zcoord,ijkn) =
dz
369 ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range)
THEN
374 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
375 ijkbuff = ijkbuff + 1
376 dx =
patch%mixt%recvBuff(ijkbuff )
377 dy =
patch%mixt%recvBuff(ijkbuff+ ndim)
378 dz =
patch%mixt%recvBuff(ijkbuff+2*ndim)
379 dyr = cosa*
dy - sina*
dz
380 dzr = sina*
dy + cosa*
dz
382 dnode(xcoord,ijkn) = dold(xcoord,ijkn)
383 dnode(ycoord,ijkn) = dold(ycoord,ijkn)
384 dnode(zcoord,ijkn) = dold(zcoord,ijkn)
386 IF (abs(
dx ) > abs(dnode(xcoord,ijkn)))
THEN
387 region%levels(1)%grid%boundMoved(lb) = .true.
388 dnode(xcoord,ijkn) =
dx
390 IF (abs(dyr) > abs(dnode(ycoord,ijkn)))
THEN
391 region%levels(1)%grid%boundMoved(lb) = .true.
392 dnode(ycoord,ijkn) = dyr
394 IF (abs(dzr) > abs(dnode(zcoord,ijkn)))
THEN
395 region%levels(1)%grid%boundMoved(lb) = .true.
396 dnode(zcoord,ijkn) = dzr
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ibeg
subroutine registerfunction(global, funName, fileName)
int status() const
Obtain the status of the attribute.
subroutine rflo_exchangednoderecv(region, regionSrc, patch, patchSrc, average, dNode)
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode iend
subroutine rflo_getpatchindicesnodes(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode jend
CGAL::Point_2< R > source() const
subroutine errorstop(global, errorCode, errorLine, addMessage)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode jbeg
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode kbeg
subroutine deregisterfunction(global)