62 CHARACTER(CHRLEN) :: RCSIdentString = &
63 '$RCSfile: RFLO_ModGridRegionShape.F90,v $ $Revision: 1.3 $'
96 TYPE(t_region
) :: region
103 INTEGER :: ilev, lbound, ihlf, jhlf, khlf
106 REAL(RFREAL) :: vmag, eps
107 REAL(RFREAL) :: v11(xcoord:zcoord), v12(xcoord:zcoord)
108 REAL(RFREAL) :: v21(xcoord:zcoord), v22(xcoord:zcoord)
109 REAL(RFREAL) :: v31(xcoord:zcoord), v32(xcoord:zcoord)
110 REAL(RFREAL) :: v41(xcoord:zcoord), v42(xcoord:zcoord)
111 REAL(RFREAL) :: v1(xcoord:zcoord), v2(xcoord:zcoord)
112 REAL(RFREAL) :: v3(xcoord:zcoord), v4(xcoord:zcoord), vec(xcoord:zcoord)
113 REAL(RFREAL),
POINTER :: xyz(:,:)
118 'RFLO_ModGridRegionShape.F90' )
123 lbound =
patch%lbound
129 xyz => region%levels(ilev)%grid%xyz
137 patch%bndFlat = .false.
142 IF (lbound==1 .OR. lbound==2)
THEN
143 v11(:) = xyz(:,indijk(
ibeg,jhlf,
kbeg,inoff,ijnoff)) - &
145 v12(:) = xyz(:,indijk(
ibeg,
jbeg,khlf,inoff,ijnoff)) - &
147 v21(:) = xyz(:,indijk(
ibeg,
jbeg,khlf,inoff,ijnoff)) - &
148 xyz(:,indijk(
ibeg,
jbeg,kend,inoff,ijnoff))
149 v22(:) = xyz(:,indijk(
ibeg,jhlf,kend,inoff,ijnoff)) - &
150 xyz(:,indijk(
ibeg,
jbeg,kend,inoff,ijnoff))
151 v31(:) = xyz(:,indijk(
ibeg,jhlf,kend,inoff,ijnoff)) - &
152 xyz(:,indijk(
ibeg,
jend,kend,inoff,ijnoff))
153 v32(:) = xyz(:,indijk(
ibeg,
jend,khlf,inoff,ijnoff)) - &
154 xyz(:,indijk(
ibeg,
jend,kend,inoff,ijnoff))
155 v41(:) = xyz(:,indijk(
ibeg,
jend,khlf,inoff,ijnoff)) - &
157 v42(:) = xyz(:,indijk(
ibeg,jhlf,
kbeg,inoff,ijnoff)) - &
159 ELSEIF (lbound==3 .OR. lbound==4)
THEN
160 v11(:) = xyz(:,indijk(ihlf,
jbeg,
kbeg,inoff,ijnoff)) - &
162 v12(:) = xyz(:,indijk(
ibeg,
jbeg,khlf,inoff,ijnoff)) - &
164 v21(:) = xyz(:,indijk(
ibeg,
jbeg,khlf,inoff,ijnoff)) - &
165 xyz(:,indijk(
ibeg,
jbeg,kend,inoff,ijnoff))
166 v22(:) = xyz(:,indijk(ihlf,
jbeg,kend,inoff,ijnoff)) - &
167 xyz(:,indijk(
ibeg,
jbeg,kend,inoff,ijnoff))
168 v31(:) = xyz(:,indijk(ihlf,
jbeg,kend,inoff,ijnoff)) - &
169 xyz(:,indijk(
iend,
jbeg,kend,inoff,ijnoff))
170 v32(:) = xyz(:,indijk(
iend,
jbeg,khlf,inoff,ijnoff)) - &
171 xyz(:,indijk(
iend,
jbeg,kend,inoff,ijnoff))
172 v41(:) = xyz(:,indijk(
iend,
jbeg,khlf,inoff,ijnoff)) - &
174 v42(:) = xyz(:,indijk(ihlf,
jbeg,
kbeg,inoff,ijnoff)) - &
176 ELSEIF (lbound==5 .OR. lbound==6)
THEN
177 v11(:) = xyz(:,indijk(ihlf,
jbeg,
kbeg,inoff,ijnoff)) - &
179 v12(:) = xyz(:,indijk(
ibeg,jhlf,
kbeg,inoff,ijnoff)) - &
181 v21(:) = xyz(:,indijk(
ibeg,jhlf,
kbeg,inoff,ijnoff)) - &
183 v22(:) = xyz(:,indijk(ihlf,
jend,
kbeg,inoff,ijnoff)) - &
185 v31(:) = xyz(:,indijk(ihlf,
jend,
kbeg,inoff,ijnoff)) - &
187 v32(:) = xyz(:,indijk(
iend,jhlf,
kbeg,inoff,ijnoff)) - &
189 v41(:) = xyz(:,indijk(
iend,jhlf,
kbeg,inoff,ijnoff)) - &
191 v42(:) = xyz(:,indijk(ihlf,
jbeg,
kbeg,inoff,ijnoff)) - &
206 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
207 IF (abs( vmag-4._rfreal) < eps)
THEN
208 patch%bndFlat = .true.
211 region%levels(ilev)%grid%boundFlat(lbound) = .false.
217 v1 = v12/
sqrt( v12(xcoord)**2 + v12(ycoord)**2 + v12(zcoord)**2 )
218 v2 = v21/
sqrt( v21(xcoord)**2 + v21(ycoord)**2 + v21(zcoord)**2 )
220 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
221 IF (abs( vmag-2._rfreal) > eps)
THEN
222 region%levels(ilev)%grid%edgeStraight(1) = .false.
225 v1 = v22/
sqrt( v22(xcoord)**2 + v22(ycoord)**2 + v22(zcoord)**2 )
226 v2 = v31/
sqrt( v31(xcoord)**2 + v31(ycoord)**2 + v31(zcoord)**2 )
228 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
229 IF (abs( vmag-2._rfreal) > eps)
THEN
230 region%levels(ilev)%grid%edgeStraight(2) = .false.
233 v1 = v32/
sqrt( v32(xcoord)**2 + v32(ycoord)**2 + v32(zcoord)**2 )
234 v2 = v41/
sqrt( v41(xcoord)**2 + v41(ycoord)**2 + v41(zcoord)**2 )
236 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
237 IF (abs( vmag-2._rfreal) > eps)
THEN
238 region%levels(ilev)%grid%edgeStraight(3) = .false.
241 v1 = v42/
sqrt( v42(xcoord)**2 + v42(ycoord)**2 + v42(zcoord)**2 )
242 v2 = v11/
sqrt( v11(xcoord)**2 + v11(ycoord)**2 + v11(zcoord)**2 )
244 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
245 IF (abs( vmag-2._rfreal) > eps)
THEN
246 region%levels(ilev)%grid%edgeStraight(4) = .false.
249 ELSEIF (lbound==2)
THEN
250 v1 = v12/
sqrt( v12(xcoord)**2 + v12(ycoord)**2 + v12(zcoord)**2 )
251 v2 = v21/
sqrt( v21(xcoord)**2 + v21(ycoord)**2 + v21(zcoord)**2 )
253 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
254 IF (abs( vmag-2._rfreal) > eps)
THEN
255 region%levels(ilev)%grid%edgeStraight(5) = .false.
258 v1 = v22/
sqrt( v22(xcoord)**2 + v22(ycoord)**2 + v22(zcoord)**2 )
259 v2 = v31/
sqrt( v31(xcoord)**2 + v31(ycoord)**2 + v31(zcoord)**2 )
261 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
262 IF (abs( vmag-2._rfreal) > eps)
THEN
263 region%levels(ilev)%grid%edgeStraight(6) = .false.
266 v1 = v32/
sqrt( v32(xcoord)**2 + v32(ycoord)**2 + v32(zcoord)**2 )
267 v2 = v41/
sqrt( v41(xcoord)**2 + v41(ycoord)**2 + v41(zcoord)**2 )
269 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
270 IF (abs( vmag-2._rfreal) > eps)
THEN
271 region%levels(ilev)%grid%edgeStraight(7) = .false.
274 v1 = v42/
sqrt( v42(xcoord)**2 + v42(ycoord)**2 + v42(zcoord)**2 )
275 v2 = v11/
sqrt( v11(xcoord)**2 + v11(ycoord)**2 + v11(zcoord)**2 )
277 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
278 IF (abs( vmag-2._rfreal) > eps)
THEN
279 region%levels(ilev)%grid%edgeStraight(8) = .false.
282 ELSEIF (lbound==3)
THEN
283 v1 = v11/
sqrt( v11(xcoord)**2 + v11(ycoord)**2 + v11(zcoord)**2 )
284 v2 = v42/
sqrt( v42(xcoord)**2 + v42(ycoord)**2 + v42(zcoord)**2 )
286 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
287 IF (abs( vmag-2._rfreal) > eps)
THEN
288 region%levels(ilev)%grid%edgeStraight(9) = .false.
291 v1 = v22/
sqrt( v22(xcoord)**2 + v22(ycoord)**2 + v22(zcoord)**2 )
292 v2 = v31/
sqrt( v31(xcoord)**2 + v31(ycoord)**2 + v31(zcoord)**2 )
294 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
295 IF (abs( vmag-2._rfreal) > eps)
THEN
296 region%levels(ilev)%grid%edgeStraight(10) = .false.
299 ELSEIF (lbound==4)
THEN
300 v1 = v11/
sqrt( v11(xcoord)**2 + v11(ycoord)**2 + v11(zcoord)**2 )
301 v2 = v42/
sqrt( v42(xcoord)**2 + v42(ycoord)**2 + v42(zcoord)**2 )
303 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
304 IF (abs( vmag-2._rfreal) > eps)
THEN
305 region%levels(ilev)%grid%edgeStraight(11) = .false.
308 v1 = v22/
sqrt( v22(xcoord)**2 + v22(ycoord)**2 + v22(zcoord)**2 )
309 v2 = v31/
sqrt( v31(xcoord)**2 + v31(ycoord)**2 + v31(zcoord)**2 )
311 vmag =
sqrt( vec(xcoord)**2 + vec(ycoord)**2 + vec(zcoord)**2 )
312 IF (abs( vmag-2._rfreal) > eps)
THEN
313 region%levels(ilev)%grid%edgeStraight(12) = .false.
320 IF (.NOT.
patch%bndFlat)
THEN
322 IF ((region%levels(ilev)%grid%edgeStraight(1) .EQV. .true.) .AND. &
323 (region%levels(ilev)%grid%edgeStraight(3) .EQV. .true.))
THEN
324 patch%dirFlat = kcoord
325 ELSEIF ((region%levels(ilev)%grid%edgeStraight(2) .EQV. .true.) .AND. &
326 (region%levels(ilev)%grid%edgeStraight(4) .EQV. .true.))
THEN
327 patch%dirFlat = jcoord
329 ELSEIF (lbound==2)
THEN
330 IF ((region%levels(ilev)%grid%edgeStraight(5) .EQV. .true.) .AND. &
331 (region%levels(ilev)%grid%edgeStraight(7) .EQV. .true.))
THEN
332 patch%dirFlat = kcoord
333 ELSEIF ((region%levels(ilev)%grid%edgeStraight(6) .EQV. .true.) .AND. &
334 (region%levels(ilev)%grid%edgeStraight(8) .EQV. .true.))
THEN
335 patch%dirFlat = jcoord
337 ELSEIF (lbound==3)
THEN
338 IF ((region%levels(ilev)%grid%edgeStraight(1) .EQV. .true.) .AND. &
339 (region%levels(ilev)%grid%edgeStraight(5) .EQV. .true.))
THEN
340 patch%dirFlat = kcoord
341 ELSEIF ((region%levels(ilev)%grid%edgeStraight(9) .EQV. .true.) .AND. &
342 (region%levels(ilev)%grid%edgeStraight(10) .EQV. .true.))
THEN
343 patch%dirFlat = icoord
345 ELSEIF (lbound==4)
THEN
346 IF ((region%levels(ilev)%grid%edgeStraight(3) .EQV. .true.) .AND. &
347 (region%levels(ilev)%grid%edgeStraight(7) .EQV. .true.))
THEN
348 patch%dirFlat = kcoord
349 ELSEIF ((region%levels(ilev)%grid%edgeStraight(11) .EQV. .true.) .AND. &
350 (region%levels(ilev)%grid%edgeStraight(12) .EQV. .true.))
THEN
351 patch%dirFlat = icoord
353 ELSEIF (lbound==5)
THEN
354 IF ((region%levels(ilev)%grid%edgeStraight(4) .EQV. .true.) .AND. &
355 (region%levels(ilev)%grid%edgeStraight(8) .EQV. .true.))
THEN
356 patch%dirFlat = jcoord
357 ELSEIF ((region%levels(ilev)%grid%edgeStraight(9) .EQV. .true.) .AND. &
358 (region%levels(ilev)%grid%edgeStraight(11) .EQV. .true.))
THEN
359 patch%dirFlat = icoord
361 ELSEIF (lbound==6)
THEN
362 IF ((region%levels(ilev)%grid%edgeStraight(2) .EQV. .true.) .AND. &
363 (region%levels(ilev)%grid%edgeStraight(6) .EQV. .true.))
THEN
364 patch%dirFlat = jcoord
365 ELSEIF ((region%levels(ilev)%grid%edgeStraight(10) .EQV. .true.) .AND. &
366 (region%levels(ilev)%grid%edgeStraight(12) .EQV. .true.))
THEN
367 patch%dirFlat = icoord
400 TYPE (t_region
),
POINTER :: regions(:)
408 'RFLO_ModGridRegionShape.F90' )
417 DO ireg=1,regions(1)%global%nRegions
418 IF (regions(ireg)%procid==regions(ireg)%global%myProcid &
419 .AND. regions(ireg)%active==active)
THEN
458 #include "Indexing.h"
461 TYPE(t_region
) :: region
464 INTEGER ::
i,
j,
k, l
469 INTEGER :: ilev, inoff, ijnoff, ijknode(8),
face(6)
470 INTEGER :: im, jm, km
472 REAL(RFREAL) :: edge(3,4), dprod(8)
473 REAL(RFREAL) :: dprodm, dpmax, emag, smag1, smag2
474 REAL(RFREAL),
POINTER :: xyz(:,:), si(:,:), sj(:,:), sk(:,:)
479 'RFLO_ModGridRegionShape.F90' )
489 xyz => region%levels(ilev)%grid%xyz
490 si => region%levels(ilev)%grid%si
491 sj => region%levels(ilev)%grid%sj
492 sk => region%levels(ilev)%grid%sk
502 ijknode(1) = indijk(
i ,
j ,
k ,inoff,ijnoff)
503 ijknode(2) = indijk(
i+1,
j ,
k ,inoff,ijnoff)
504 ijknode(3) = indijk(
i ,
j+1,
k ,inoff,ijnoff)
505 ijknode(4) = indijk(
i ,
j ,
k+1,inoff,ijnoff)
506 ijknode(5) = indijk(
i+1,
j+1,
k+1,inoff,ijnoff)
507 ijknode(6) = indijk(
i+1,
j+1,
k ,inoff,ijnoff)
508 ijknode(7) = indijk(
i+1,
j ,
k+1,inoff,ijnoff)
509 ijknode(8) = indijk(
i ,
j+1,
k+1,inoff,ijnoff)
518 edge(1,1) = xyz(xcoord,ijknode(1))-xyz(xcoord,ijknode(2))
519 edge(2,1) = xyz(ycoord,ijknode(1))-xyz(ycoord,ijknode(2))
520 edge(3,1) = xyz(zcoord,ijknode(1))-xyz(zcoord,ijknode(2))
522 edge(1,2) = xyz(xcoord,ijknode(3))-xyz(xcoord,ijknode(6))
523 edge(2,2) = xyz(ycoord,ijknode(3))-xyz(ycoord,ijknode(6))
524 edge(3,2) = xyz(zcoord,ijknode(3))-xyz(zcoord,ijknode(6))
526 edge(1,3) = xyz(xcoord,ijknode(8))-xyz(xcoord,ijknode(5))
527 edge(2,3) = xyz(ycoord,ijknode(8))-xyz(ycoord,ijknode(5))
528 edge(3,3) = xyz(zcoord,ijknode(8))-xyz(zcoord,ijknode(5))
530 edge(1,4) = xyz(xcoord,ijknode(4))-xyz(xcoord,ijknode(7))
531 edge(2,4) = xyz(ycoord,ijknode(4))-xyz(ycoord,ijknode(7))
532 edge(3,4) = xyz(zcoord,ijknode(4))-xyz(zcoord,ijknode(7))
535 emag =
sqrt( edge(1,l)*edge(1,l) + &
536 edge(2,l)*edge(2,l) + &
537 edge(3,l)*edge(3,l) )
545 dprod(l) = (si(1,
face(1))*edge(1,l) + &
546 si(2,
face(1))*edge(2,l) + &
547 si(3,
face(1))*edge(3,l))/(smag1*emag)
549 dprod(l+4) = (si(1,
face(2))*edge(1,l) + &
550 si(2,
face(2))*edge(2,l) + &
551 si(3,
face(2))*edge(3,l))/(smag2*emag)
554 IF (minval(dprod) < dprodm)
THEN
555 dprodm = minval( dprod )
561 IF (maxval(dprod) > dpmax)
THEN
562 dpmax = maxval( dprod )
567 edge(1,1) = xyz(xcoord,ijknode(1))-xyz(xcoord,ijknode(3))
568 edge(2,1) = xyz(ycoord,ijknode(1))-xyz(ycoord,ijknode(3))
569 edge(3,1) = xyz(zcoord,ijknode(1))-xyz(zcoord,ijknode(3))
571 edge(1,2) = xyz(xcoord,ijknode(4))-xyz(xcoord,ijknode(8))
572 edge(2,2) = xyz(ycoord,ijknode(4))-xyz(ycoord,ijknode(8))
573 edge(3,2) = xyz(zcoord,ijknode(4))-xyz(zcoord,ijknode(8))
575 edge(1,3) = xyz(xcoord,ijknode(7))-xyz(xcoord,ijknode(5))
576 edge(2,3) = xyz(ycoord,ijknode(7))-xyz(ycoord,ijknode(5))
577 edge(3,3) = xyz(zcoord,ijknode(7))-xyz(zcoord,ijknode(5))
579 edge(1,4) = xyz(xcoord,ijknode(2))-xyz(xcoord,ijknode(6))
580 edge(2,4) = xyz(ycoord,ijknode(2))-xyz(ycoord,ijknode(6))
581 edge(3,4) = xyz(zcoord,ijknode(2))-xyz(zcoord,ijknode(6))
584 emag =
sqrt( edge(1,l)*edge(1,l) + &
585 edge(2,l)*edge(2,l) + &
586 edge(3,l)*edge(3,l) )
594 dprod(l) = (sj(1,
face(1))*edge(1,l) + &
595 sj(2,
face(1))*edge(2,l) + &
596 sj(3,
face(1))*edge(3,l))/(smag1*emag)
598 dprod(l+4) = (sj(1,
face(4))*edge(1,l) + &
599 sj(2,
face(4))*edge(2,l) + &
600 sj(3,
face(4))*edge(3,l))/(smag2*emag)
603 IF (minval(dprod) < dprodm)
THEN
604 dprodm = minval( dprod )
610 IF (maxval(dprod) > dpmax)
THEN
611 dpmax = maxval( dprod )
616 edge(1,1) = xyz(xcoord,ijknode(1))-xyz(xcoord,ijknode(4))
617 edge(2,1) = xyz(ycoord,ijknode(1))-xyz(ycoord,ijknode(4))
618 edge(3,1) = xyz(zcoord,ijknode(1))-xyz(zcoord,ijknode(4))
620 edge(1,2) = xyz(xcoord,ijknode(2))-xyz(xcoord,ijknode(7))
621 edge(2,2) = xyz(ycoord,ijknode(2))-xyz(ycoord,ijknode(7))
622 edge(3,2) = xyz(zcoord,ijknode(2))-xyz(zcoord,ijknode(7))
624 edge(1,3) = xyz(xcoord,ijknode(6))-xyz(xcoord,ijknode(5))
625 edge(2,3) = xyz(ycoord,ijknode(6))-xyz(ycoord,ijknode(5))
626 edge(3,3) = xyz(zcoord,ijknode(6))-xyz(zcoord,ijknode(5))
628 edge(1,4) = xyz(xcoord,ijknode(3))-xyz(xcoord,ijknode(8))
629 edge(2,4) = xyz(ycoord,ijknode(3))-xyz(ycoord,ijknode(8))
630 edge(3,4) = xyz(zcoord,ijknode(3))-xyz(zcoord,ijknode(8))
633 emag =
sqrt( edge(1,l)*edge(1,l) + &
634 edge(2,l)*edge(2,l) + &
635 edge(3,l)*edge(3,l) )
643 dprod(l) = (sk(1,
face(1))*edge(1,l) + &
644 sk(2,
face(1))*edge(2,l) + &
645 sk(3,
face(1))*edge(3,l))/(smag1*emag)
647 dprod(l+4) = (sk(1,
face(6))*edge(1,l) + &
648 sk(2,
face(6))*edge(2,l) + &
649 sk(3,
face(6))*edge(3,l))/(smag2*emag)
652 IF (minval(dprod) < dprodm)
THEN
653 dprodm = minval( dprod )
659 IF (maxval(dprod) > dpmax)
THEN
660 dpmax = maxval( dprod )
667 IF (dprodm < 1.e-1_rfreal)
THEN
668 region%blockShape = region_shape_funky
670 IF ( region%global%verbLevel >= verbose_none )
THEN
671 WRITE(stdout,
'(A,1X,A,I6)') solver_name, &
672 'Warning: found funky block, region',region%iRegionGlobal
**********************************************************************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
**********************************************************************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 kpcbeg
subroutine registerfunction(global, funName, fileName)
subroutine, public rflo_normcrossprod(s1, s2, s3)
subroutine, public rflo_findfunkyblocks(regions)
**********************************************************************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 jpcbeg
**********************************************************************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 ipcend
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_calcfacevectors(region)
**********************************************************************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 ipcbeg
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 jpcend
**********************************************************************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
**********************************************************************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
subroutine rflo_blockskewedcell(region)
subroutine, public rflo_gridflatpatch(region, patch)
**********************************************************************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)
subroutine rflo_getdimensphys(region, iLev, ipcbeg, ipcend, jpcbeg, jpcend, kpcbeg, kpcend)