64 CHARACTER(CHRLEN) :: RCSIdentString = &
65 '$RCSfile: RFLO_ModLaplaceSmoothing.F90,v $ $Revision: 1.13 $'
102 REAL(RFREAL) :: resid
104 TYPE(t_region
),
POINTER :: regions(:)
107 INTEGER :: ireg, ipatch, ijk,
i,
j,
k, iter
111 INTEGER :: bctype, iregsrc, ipatchsrc
113 REAL(RFREAL) ::
dx,
dy,
dz
114 REAL(RFREAL),
POINTER :: xyz(:,:), xyzold(:,:), xyztemp(:,:)
117 TYPE(t_grid),
POINTER ::
grid, gridold, gridsrc
122 global => regions(1)%global
125 'RFLO_ModLaplaceSmoothing.F90' )
131 DO ireg=1,global%nRegions
132 IF (regions(ireg)%procid==global%myProcid .AND. &
133 regions(ireg)%active==active .AND. &
134 regions(ireg)%mixtInput%moveGrid)
THEN
136 IF (global%moveGridScheme==movegrid_foms)
THEN
149 DO ipatch=1,regions(ireg)%nPatches
150 patch => regions(ireg)%levels(1)%patches(ipatch)
151 bctype =
patch%bcType
152 IF ((bctype>=bc_inflow .AND. bctype<=bc_inflow +bc_range) .OR. &
153 (bctype>=bc_outflow .AND. bctype<=bc_outflow +bc_range) .OR. &
154 (bctype>=bc_slipwall .AND. bctype<=bc_slipwall +bc_range) .OR. &
155 (bctype>=bc_noslipwall .AND. bctype<=bc_noslipwall+bc_range) .OR. &
156 (bctype>=bc_farfield .AND. bctype<=bc_farfield +bc_range) .OR. &
157 (bctype>=bc_injection .AND. bctype<=bc_injection +bc_range) .OR. &
158 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
159 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range) .OR. &
160 (bctype>=bc_symmetry_free .AND. bctype<=bc_symmetry +bc_range))
THEN
169 xyz => regions(ireg)%levels(1)%grid%xyz
170 xyzold => regions(ireg)%levels(1)%grid%xyzOld
175 ijk = indijk(
i,
j,
k,inoff,ijnoff)
176 dx = xyz(xcoord,ijk) - xyzold(xcoord,ijk)
177 dy = xyz(ycoord,ijk) - xyzold(ycoord,ijk)
178 dz = xyz(zcoord,ijk) - xyzold(zcoord,ijk)
190 DO ireg=1,global%nRegions
191 IF (regions(ireg)%procid==global%myProcid .AND. &
192 regions(ireg)%active==active .AND. &
193 regions(ireg)%mixtInput%moveGrid)
THEN
195 grid => regions(ireg)%levels(1)%grid
196 gridold => regions(ireg)%levels(1)%gridOld
198 DO ipatch=1,regions(ireg)%nPatches
199 patch => regions(ireg)%levels(1)%patches(ipatch)
200 bctype =
patch%bcType
201 IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
202 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
203 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range))
THEN
204 iregsrc =
patch%srcRegion
205 ipatchsrc =
patch%srcPatch
206 patchsrc => regions(iregsrc)%levels(1)%patches(ipatchsrc)
207 gridsrc => regions(iregsrc)%levels(1)%grid
209 IF (regions(iregsrc)%procid == global%myProcid)
THEN
211 patch,patchsrc,.true., &
212 grid%xyz,gridsrc%xyz )
225 DO ireg=1,global%nRegions
226 IF (regions(ireg)%procid==global%myProcid .AND. &
227 regions(ireg)%active==active .AND. &
228 regions(ireg)%mixtInput%moveGrid)
THEN
230 grid => regions(ireg)%levels(1)%grid
231 gridold => regions(ireg)%levels(1)%gridOld
233 DO ipatch=1,regions(ireg)%nPatches
234 patch => regions(ireg)%levels(1)%patches(ipatch)
235 bctype =
patch%bcType
236 IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
237 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
238 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range))
THEN
239 iregsrc =
patch%srcRegion
240 ipatchsrc =
patch%srcPatch
241 patchsrc => regions(iregsrc)%levels(1)%patches(ipatchsrc)
242 gridsrc => regions(iregsrc)%levels(1)%grid
244 IF (regions(iregsrc)%procid /= global%myProcid)
THEN
256 DO ireg=1,global%nRegions
257 IF (regions(ireg)%procid==global%myProcid .AND. &
258 regions(ireg)%active==active .AND. &
259 regions(ireg)%mixtInput%moveGrid)
THEN
266 DO ireg=1,global%nRegions
267 IF (regions(ireg)%procid==global%myProcid .AND. &
268 regions(ireg)%active==active .AND. &
269 regions(ireg)%mixtInput%moveGrid)
THEN
273 xyz => regions(ireg)%levels(1)%grid%xyz
274 xyzold => regions(ireg)%levels(1)%gridOld%xyz
276 DO ijk=lbound(xyz,2),ubound(xyz,2)
277 xyz(xcoord,ijk) = xyz(xcoord,ijk) + xyzold(xcoord,ijk)
278 xyz(ycoord,ijk) = xyz(ycoord,ijk) + xyzold(ycoord,ijk)
279 xyz(zcoord,ijk) = xyz(zcoord,ijk) + xyzold(zcoord,ijk)
297 DO ireg=1,global%nRegions
298 IF (regions(ireg)%procid==global%myProcid .AND. &
299 regions(ireg)%active==active .AND. &
300 regions(ireg)%mixtInput%moveGrid)
THEN
309 DO ireg=1,global%nRegions
310 IF (regions(ireg)%procid==global%myProcid .AND. &
311 regions(ireg)%active==active .AND. &
312 regions(ireg)%mixtInput%moveGrid)
THEN
322 DO ipatch=1,regions(ireg)%nPatches
323 patch => regions(ireg)%levels(1)%patches(ipatch)
324 bctype =
patch%bcType
325 IF ((bctype>=bc_inflow .AND. bctype<=bc_inflow +bc_range).OR. &
326 (bctype>=bc_outflow .AND. bctype<=bc_outflow +bc_range).OR. &
327 (bctype>=bc_slipwall .AND. bctype<=bc_slipwall +bc_range).OR. &
328 (bctype>=bc_noslipwall .AND. bctype<=bc_noslipwall+bc_range).OR. &
329 (bctype>=bc_farfield .AND. bctype<=bc_farfield +bc_range).OR. &
330 (bctype>=bc_injection .AND. bctype<=bc_injection +bc_range).OR. &
331 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range).OR. &
332 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range).OR. &
333 (bctype>=bc_symmetry_free .AND. bctype<=bc_symmetry +bc_range))
THEN
371 xyz => regions(ireg)%levels(1)%grid%xyz
372 xyzold => regions(ireg)%levels(1)%grid%xyzOld
377 ijk = indijk(
i,
j,
k,inoff,ijnoff)
378 dx = xyz(xcoord,ijk) - xyzold(xcoord,ijk)
379 dy = xyz(ycoord,ijk) - xyzold(ycoord,ijk)
380 dz = xyz(zcoord,ijk) - xyzold(zcoord,ijk)
392 DO ireg=1,global%nRegions
393 IF (regions(ireg)%procid==global%myProcid .AND. &
394 regions(ireg)%active==active .AND. &
395 regions(ireg)%mixtInput%moveGrid)
THEN
397 grid => regions(ireg)%levels(1)%grid
398 gridold => regions(ireg)%levels(1)%gridOld
400 DO ipatch=1,regions(ireg)%nPatches
401 patch => regions(ireg)%levels(1)%patches(ipatch)
402 bctype =
patch%bcType
403 IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
404 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
405 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range))
THEN
406 iregsrc =
patch%srcRegion
407 ipatchsrc =
patch%srcPatch
408 patchsrc => regions(iregsrc)%levels(1)%patches(ipatchsrc)
409 gridsrc => regions(iregsrc)%levels(1)%grid
411 IF (regions(iregsrc)%procid == global%myProcid)
THEN
413 patch,patchsrc,.true., &
414 grid%xyz,gridsrc%xyz )
427 DO ireg=1,global%nRegions
428 IF (regions(ireg)%procid==global%myProcid .AND. &
429 regions(ireg)%active==active .AND. &
430 regions(ireg)%mixtInput%moveGrid)
THEN
432 grid => regions(ireg)%levels(1)%grid
433 gridold => regions(ireg)%levels(1)%gridOld
435 DO ipatch=1,regions(ireg)%nPatches
436 patch => regions(ireg)%levels(1)%patches(ipatch)
437 bctype =
patch%bcType
438 IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
439 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
440 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range))
THEN
441 iregsrc =
patch%srcRegion
442 ipatchsrc =
patch%srcPatch
443 patchsrc => regions(iregsrc)%levels(1)%patches(ipatchsrc)
444 gridsrc => regions(iregsrc)%levels(1)%grid
446 IF (regions(iregsrc)%procid /= global%myProcid)
THEN
458 DO ireg=1,global%nRegions
459 IF (regions(ireg)%procid==global%myProcid .AND. &
460 regions(ireg)%active==active .AND. &
461 regions(ireg)%mixtInput%moveGrid)
THEN
468 DO ireg=1,global%nRegions
469 IF (regions(ireg)%procid==global%myProcid .AND. &
470 regions(ireg)%active==active .AND. &
471 regions(ireg)%mixtInput%moveGrid)
THEN
475 xyz => regions(ireg)%levels(1)%grid%xyz
476 xyzold => regions(ireg)%levels(1)%gridOld%xyz
478 DO ijk=lbound(xyz,2),ubound(xyz,2)
479 xyz(xcoord,ijk) = xyz(xcoord,ijk) + xyzold(xcoord,ijk)
480 xyz(ycoord,ijk) = xyz(ycoord,ijk) + xyzold(ycoord,ijk)
481 xyz(zcoord,ijk) = xyz(zcoord,ijk) + xyzold(zcoord,ijk)
526 #include "Indexing.h"
529 TYPE(t_region
) :: region
539 REAL(RFREAL),
POINTER :: xyz(:,:), xyzold(:,:)
544 'RFLO_ModLaplaceSmoothing.F90' )
554 xyz => region%levels(ilev)%grid%xyz
555 xyzold => region%levels(ilev)%grid%xyzOld
562 ijknb = indijk(
i,
j,
k,inoff,ijnoff)
563 xyz(xcoord,ijknb) = xyzold(xcoord,ijknb)
564 xyz(ycoord,ijknb) = xyzold(ycoord,ijknb)
565 xyz(zcoord,ijknb) = xyzold(zcoord,ijknb)
598 #include "Indexing.h"
601 TYPE(t_region
) :: region
611 REAL(RFREAL),
POINTER :: xyz(:,:), xyzorth(:,:), xyztemp(:,:)
616 'RFLO_ModLaplaceSmoothing.F90' )
626 xyz => region%levels(ilev)%grid%xyz
627 xyzorth => region%levels(ilev)%grid%xyzOrth
628 xyztemp => region%levels(ilev)%grid%xyzTemp
635 ijknb = indijk(
i,
j,
k,inoff,ijnoff)
636 xyztemp(xcoord,ijknb) = xyz(xcoord,ijknb) - xyzorth(xcoord,ijknb)
637 xyztemp(ycoord,ijknb) = xyz(ycoord,ijknb) - xyzorth(ycoord,ijknb)
638 xyztemp(zcoord,ijknb) = xyz(zcoord,ijknb) - xyzorth(zcoord,ijknb)
672 #include "Indexing.h"
675 TYPE(t_region
) :: region
683 INTEGER :: ijk, ip1, ip2, im1, im2, jp1, jp2, jm1, jm2, kp1, kp2, km1, km2
684 INTEGER :: moveblock, method, in, ico,
ic(8)
685 INTEGER,
POINTER :: idgen(:)
687 LOGICAL,
POINTER :: bndmoved(:)
689 REAL(RFREAL) :: rxi, ryi, rzi, rxj, ryj, rzj, rxk, ryk, rzk, wi, wj, wk, &
690 si, sj, sk, sim, sjm, skm, sip, sjp, skp,
d, p, eps
692 REAL(RFREAL),
POINTER :: xyz(:,:), xyzold(:,:), xyzorig(:,:)
697 'RFLO_ModLaplaceSmoothing.F90' )
711 xyz => region%levels(ilev)%grid%xyz
712 xyzold => region%levels(ilev)%grid%xyzOld
713 xyzorig => region%levels(ilev)%gridOld%xyz
714 bndmoved => region%levels(ilev)%grid%boundMoved
715 idgen => region%levels(ilev)%grid%ijkDgen
717 p = region%global%moveGridPower
718 eps = epsilon( 1._rfreal )
723 xyzold(xcoord,ijk) = xyz(xcoord,ijk) - xyzorig(xcoord,ijk)
724 xyzold(ycoord,ijk) = xyz(ycoord,ijk) - xyzorig(ycoord,ijk)
725 xyzold(zcoord,ijk) = xyz(zcoord,ijk) - xyzorig(zcoord,ijk)
733 IF (moveblock==1)
THEN
744 denom(ico) = 0._rfreal
747 dist(in,ico) =
sqrt( (xyz(xcoord,
ic(in))-xyz(xcoord,
ic(ico)))**2 + &
748 (xyz(ycoord,
ic(in))-xyz(ycoord,
ic(ico)))**2 + &
749 (xyz(zcoord,
ic(in))-xyz(zcoord,
ic(ico)))**2 )
750 dist(in,ico) = 1._rfreal/
dist(in,ico)
756 IF (.NOT. bndmoved(1))
THEN
757 IF ((.NOT. bndmoved(3)).AND.(.NOT. bndmoved(5)))
THEN
758 xyz(xcoord,
ic(1)) = 0._rfreal
759 xyz(ycoord,
ic(1)) = 0._rfreal
760 xyz(zcoord,
ic(1)) = 0._rfreal
763 xyz(xcoord,
ic(1))= xyz(xcoord,
ic(1))+
dist(in,1)*xyzold(xcoord,
ic(in))
764 xyz(ycoord,
ic(1))= xyz(ycoord,
ic(1))+
dist(in,1)*xyzold(ycoord,
ic(in))
765 xyz(zcoord,
ic(1))= xyz(zcoord,
ic(1))+
dist(in,1)*xyzold(zcoord,
ic(in))
768 xyzold(xcoord,
ic(1)) = xyz(xcoord,
ic(1))/
denom(1)
769 xyzold(ycoord,
ic(1)) = xyz(ycoord,
ic(1))/
denom(1)
770 xyzold(zcoord,
ic(1)) = xyz(zcoord,
ic(1))/
denom(1)
772 IF ((.NOT. bndmoved(3)).AND.(.NOT. bndmoved(6)))
THEN
773 xyz(xcoord,
ic(2)) = 0._rfreal
774 xyz(ycoord,
ic(2)) = 0._rfreal
775 xyz(zcoord,
ic(2)) = 0._rfreal
778 xyz(xcoord,
ic(2))= xyz(xcoord,
ic(2))+
dist(in,2)*xyzold(xcoord,
ic(in))
779 xyz(ycoord,
ic(2))= xyz(ycoord,
ic(2))+
dist(in,2)*xyzold(ycoord,
ic(in))
780 xyz(zcoord,
ic(2))= xyz(zcoord,
ic(2))+
dist(in,2)*xyzold(zcoord,
ic(in))
783 xyzold(xcoord,
ic(2)) = xyz(xcoord,
ic(2))/
denom(2)
784 xyzold(ycoord,
ic(2)) = xyz(ycoord,
ic(2))/
denom(2)
785 xyzold(zcoord,
ic(2)) = xyz(zcoord,
ic(2))/
denom(2)
787 IF ((.NOT. bndmoved(4)).AND.(.NOT. bndmoved(6)))
THEN
788 xyz(xcoord,
ic(3)) = 0._rfreal
789 xyz(ycoord,
ic(3)) = 0._rfreal
790 xyz(zcoord,
ic(3)) = 0._rfreal
793 xyz(xcoord,
ic(3))= xyz(xcoord,
ic(3))+
dist(in,3)*xyzold(xcoord,
ic(in))
794 xyz(ycoord,
ic(3))= xyz(ycoord,
ic(3))+
dist(in,3)*xyzold(ycoord,
ic(in))
795 xyz(zcoord,
ic(3))= xyz(zcoord,
ic(3))+
dist(in,3)*xyzold(zcoord,
ic(in))
798 xyzold(xcoord,
ic(3)) = xyz(xcoord,
ic(3))/
denom(3)
799 xyzold(ycoord,
ic(3)) = xyz(ycoord,
ic(3))/
denom(3)
800 xyzold(zcoord,
ic(3)) = xyz(zcoord,
ic(3))/
denom(3)
802 IF ((.NOT. bndmoved(4)).AND.(.NOT. bndmoved(5)))
THEN
803 xyz(xcoord,
ic(4)) = 0._rfreal
804 xyz(ycoord,
ic(4)) = 0._rfreal
805 xyz(zcoord,
ic(4)) = 0._rfreal
808 xyz(xcoord,
ic(4))= xyz(xcoord,
ic(4))+
dist(in,4)*xyzold(xcoord,
ic(in))
809 xyz(ycoord,
ic(4))= xyz(ycoord,
ic(4))+
dist(in,4)*xyzold(ycoord,
ic(in))
810 xyz(zcoord,
ic(4))= xyz(zcoord,
ic(4))+
dist(in,4)*xyzold(zcoord,
ic(in))
813 xyzold(xcoord,
ic(4)) = xyz(xcoord,
ic(4))/
denom(4)
814 xyzold(ycoord,
ic(4)) = xyz(ycoord,
ic(4))/
denom(4)
815 xyzold(zcoord,
ic(4)) = xyz(zcoord,
ic(4))/
denom(4)
819 IF (.NOT. bndmoved(2))
THEN
820 IF ((.NOT. bndmoved(3)).AND.(.NOT. bndmoved(5)))
THEN
821 xyz(xcoord,
ic(5)) = 0._rfreal
822 xyz(ycoord,
ic(5)) = 0._rfreal
823 xyz(zcoord,
ic(5)) = 0._rfreal
826 xyz(xcoord,
ic(5))= xyz(xcoord,
ic(5))+
dist(in,5)*xyzold(xcoord,
ic(in))
827 xyz(ycoord,
ic(5))= xyz(ycoord,
ic(5))+
dist(in,5)*xyzold(ycoord,
ic(in))
828 xyz(zcoord,
ic(5))= xyz(zcoord,
ic(5))+
dist(in,5)*xyzold(zcoord,
ic(in))
831 xyzold(xcoord,
ic(5)) = xyz(xcoord,
ic(5))/
denom(5)
832 xyzold(ycoord,
ic(5)) = xyz(ycoord,
ic(5))/
denom(5)
833 xyzold(zcoord,
ic(5)) = xyz(zcoord,
ic(5))/
denom(5)
835 IF ((.NOT. bndmoved(3)).AND.(.NOT. bndmoved(6)))
THEN
836 xyz(xcoord,
ic(6)) = 0._rfreal
837 xyz(ycoord,
ic(6)) = 0._rfreal
838 xyz(zcoord,
ic(6)) = 0._rfreal
841 xyz(xcoord,
ic(6))= xyz(xcoord,
ic(6))+
dist(in,6)*xyzold(xcoord,
ic(in))
842 xyz(ycoord,
ic(6))= xyz(ycoord,
ic(6))+
dist(in,6)*xyzold(ycoord,
ic(in))
843 xyz(zcoord,
ic(6))= xyz(zcoord,
ic(6))+
dist(in,6)*xyzold(zcoord,
ic(in))
846 xyzold(xcoord,
ic(6)) = xyz(xcoord,
ic(6))/
denom(6)
847 xyzold(ycoord,
ic(6)) = xyz(ycoord,
ic(6))/
denom(6)
848 xyzold(zcoord,
ic(6)) = xyz(zcoord,
ic(6))/
denom(6)
850 IF ((.NOT. bndmoved(4)).AND.(.NOT. bndmoved(6)))
THEN
851 xyz(xcoord,
ic(7)) = 0._rfreal
852 xyz(ycoord,
ic(7)) = 0._rfreal
853 xyz(zcoord,
ic(7)) = 0._rfreal
856 xyz(xcoord,
ic(7))= xyz(xcoord,
ic(7))+
dist(in,7)*xyzold(xcoord,
ic(in))
857 xyz(ycoord,
ic(7))= xyz(ycoord,
ic(7))+
dist(in,7)*xyzold(ycoord,
ic(in))
858 xyz(zcoord,
ic(7))= xyz(zcoord,
ic(7))+
dist(in,7)*xyzold(zcoord,
ic(in))
861 xyzold(xcoord,
ic(7)) = xyz(xcoord,
ic(7))/
denom(7)
862 xyzold(ycoord,
ic(7)) = xyz(ycoord,
ic(7))/
denom(7)
863 xyzold(zcoord,
ic(7)) = xyz(zcoord,
ic(7))/
denom(7)
865 IF ((.NOT. bndmoved(4)).AND.(.NOT. bndmoved(5)))
THEN
866 xyz(xcoord,
ic(8)) = 0._rfreal
867 xyz(ycoord,
ic(8)) = 0._rfreal
868 xyz(zcoord,
ic(8)) = 0._rfreal
871 xyz(xcoord,
ic(8))= xyz(xcoord,
ic(8))+
dist(in,8)*xyzold(xcoord,
ic(in))
872 xyz(ycoord,
ic(8))= xyz(ycoord,
ic(8))+
dist(in,8)*xyzold(ycoord,
ic(in))
873 xyz(zcoord,
ic(8))= xyz(zcoord,
ic(8))+
dist(in,8)*xyzold(zcoord,
ic(in))
876 xyzold(xcoord,
ic(8)) = xyz(xcoord,
ic(8))/
denom(8)
877 xyzold(ycoord,
ic(8)) = xyz(ycoord,
ic(8))/
denom(8)
878 xyzold(zcoord,
ic(8)) = xyz(zcoord,
ic(8))/
denom(8)
892 ijk = indijk(
i ,
j ,
k ,inoff,ijnoff)
893 ip1 = indijk(
i+1,
j ,
k ,inoff,ijnoff)
894 ip2 = indijk(
i+2,
j ,
k ,inoff,ijnoff)
895 im1 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
896 im2 = indijk(
i-2,
j ,
k ,inoff,ijnoff)
897 jp1 = indijk(
i ,
j+1,
k ,inoff,ijnoff)
898 jp2 = indijk(
i ,
j+2,
k ,inoff,ijnoff)
899 jm1 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
900 jm2 = indijk(
i ,
j-2,
k ,inoff,ijnoff)
901 kp1 = indijk(
i ,
j ,
k+1,inoff,ijnoff)
902 kp2 = indijk(
i ,
j ,
k+2,inoff,ijnoff)
903 km1 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
904 km2 = indijk(
i ,
j ,
k-2,inoff,ijnoff)
906 sim =
sqrt( (xyzorig(xcoord,im1)+xyzold(xcoord,im1)-xyzorig(xcoord,ijk)- &
907 xyzold(xcoord,ijk))**2 + &
908 (xyzorig(ycoord,im1)+xyzold(ycoord,im1)-xyzorig(ycoord,ijk)- &
909 xyzold(ycoord,ijk))**2 + &
910 (xyzorig(zcoord,im1)+xyzold(zcoord,im1)-xyzorig(zcoord,ijk)- &
911 xyzold(zcoord,ijk))**2 )**p
912 sip =
sqrt( (xyzorig(xcoord,ip1)+xyzold(xcoord,ip1)-xyzorig(xcoord,ijk)- &
913 xyzold(xcoord,ijk))**2 + &
914 (xyzorig(ycoord,ip1)+xyzold(ycoord,ip1)-xyzorig(ycoord,ijk)- &
915 xyzold(ycoord,ijk))**2 + &
916 (xyzorig(zcoord,ip1)+xyzold(zcoord,ip1)-xyzorig(zcoord,ijk)- &
917 xyzold(zcoord,ijk))**2 )**p
919 sjm =
sqrt( (xyzorig(xcoord,jm1)+xyzold(xcoord,jm1)-xyzorig(xcoord,ijk)- &
920 xyzold(xcoord,ijk))**2 + &
921 (xyzorig(ycoord,jm1)+xyzold(ycoord,jm1)-xyzorig(ycoord,ijk)- &
922 xyzold(ycoord,ijk))**2 + &
923 (xyzorig(zcoord,jm1)+xyzold(zcoord,jm1)-xyzorig(zcoord,ijk)- &
924 xyzold(zcoord,ijk))**2 )**p
925 sjp =
sqrt( (xyzorig(xcoord,jp1)+xyzold(xcoord,jp1)-xyzorig(xcoord,ijk)- &
926 xyzold(xcoord,ijk))**2 + &
927 (xyzorig(ycoord,jp1)+xyzold(ycoord,jp1)-xyzorig(ycoord,ijk)- &
928 xyzold(ycoord,ijk))**2 + &
929 (xyzorig(zcoord,jp1)+xyzold(zcoord,jp1)-xyzorig(zcoord,ijk)- &
930 xyzold(zcoord,ijk))**2 )**p
932 skm =
sqrt( (xyzorig(xcoord,km1)+xyzold(xcoord,km1)-xyzorig(xcoord,ijk)- &
933 xyzold(xcoord,ijk))**2 + &
934 (xyzorig(ycoord,km1)+xyzold(ycoord,km1)-xyzorig(ycoord,ijk)- &
935 xyzold(ycoord,ijk))**2 + &
936 (xyzorig(zcoord,km1)+xyzold(zcoord,km1)-xyzorig(zcoord,ijk)- &
937 xyzold(zcoord,ijk))**2 )**p
938 skp =
sqrt( (xyzorig(xcoord,kp1)+xyzold(xcoord,kp1)-xyzorig(xcoord,ijk)- &
939 xyzold(xcoord,ijk))**2 + &
940 (xyzorig(ycoord,kp1)+xyzold(ycoord,kp1)-xyzorig(ycoord,ijk)- &
941 xyzold(ycoord,ijk))**2 + &
942 (xyzorig(zcoord,kp1)+xyzold(zcoord,kp1)-xyzorig(zcoord,ijk)- &
943 xyzold(zcoord,ijk))**2 )**p
945 sim = 1._rfreal/(sim+eps)
946 sip = 1._rfreal/(sip+eps)
947 sjm = 1._rfreal/(sjm+eps)
948 sjp = 1._rfreal/(sjp+eps)
949 skm = 1._rfreal/(skm+eps)
950 skp = 1._rfreal/(skp+eps)
952 rxi = sim*xyzold(xcoord,im1) + sip*xyzold(xcoord,ip1)
953 ryi = sim*xyzold(ycoord,im1) + sip*xyzold(ycoord,ip1)
954 rzi = sim*xyzold(zcoord,im1) + sip*xyzold(zcoord,ip1)
956 rxj = sjm*xyzold(xcoord,jm1) + sjp*xyzold(xcoord,jp1)
957 ryj = sjm*xyzold(ycoord,jm1) + sjp*xyzold(ycoord,jp1)
958 rzj = sjm*xyzold(zcoord,jm1) + sjp*xyzold(zcoord,jp1)
960 rxk = skm*xyzold(xcoord,km1) + skp*xyzold(xcoord,kp1)
961 ryk = skm*xyzold(ycoord,km1) + skp*xyzold(ycoord,kp1)
962 rzk = skm*xyzold(zcoord,km1) + skp*xyzold(zcoord,kp1)
964 d = 1._rfreal/(sim+sip+sjm+sjp+skm+skp)
970 xyz(xcoord,ijk) = (1._rfreal-
REAL( idgen(ijk) ))*(rxi+rxj+rxk)*
d + &
971 REAL( idgen(ijk) )*(xyz(xcoord,ijk)-xyzorig(xcoord,ijk))
972 xyz(ycoord,ijk) = (1._rfreal-
REAL( idgen(ijk) ))*(ryi+ryj+ryk)*
d + &
973 REAL( idgen(ijk) )*(xyz(ycoord,ijk)-xyzorig(ycoord,ijk))
974 xyz(zcoord,ijk) = (1._rfreal-
REAL( idgen(ijk) ))*(rzi+rzj+rzk)*
d + &
975 REAL( idgen(ijk) )*(xyz(zcoord,ijk)-xyzorig(zcoord,ijk))
981 ELSEIF (method==2)
THEN
988 ijk = indijk(
i ,
j ,
k ,inoff,ijnoff)
989 ip1 = indijk(
i+1,
j ,
k ,inoff,ijnoff)
990 ip2 = indijk(
i+2,
j ,
k ,inoff,ijnoff)
991 im1 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
992 im2 = indijk(
i-2,
j ,
k ,inoff,ijnoff)
993 jp1 = indijk(
i ,
j+1,
k ,inoff,ijnoff)
994 jp2 = indijk(
i ,
j+2,
k ,inoff,ijnoff)
995 jm1 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
996 jm2 = indijk(
i ,
j-2,
k ,inoff,ijnoff)
997 kp1 = indijk(
i ,
j ,
k+1,inoff,ijnoff)
998 kp2 = indijk(
i ,
j ,
k+2,inoff,ijnoff)
999 km1 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
1000 km2 = indijk(
i ,
j ,
k-2,inoff,ijnoff)
1002 rxi = xyzold(xcoord,im1) + xyzold(xcoord,ip1)
1003 ryi = xyzold(ycoord,im1) + xyzold(ycoord,ip1)
1004 rzi = xyzold(zcoord,im1) + xyzold(zcoord,ip1)
1006 rxj = xyzold(xcoord,jm1) + xyzold(xcoord,jp1)
1007 ryj = xyzold(ycoord,jm1) + xyzold(ycoord,jp1)
1008 rzj = xyzold(zcoord,jm1) + xyzold(zcoord,jp1)
1010 rxk = xyzold(xcoord,km1) + xyzold(xcoord,kp1)
1011 ryk = xyzold(ycoord,km1) + xyzold(ycoord,kp1)
1012 rzk = xyzold(zcoord,km1) + xyzold(zcoord,kp1)
1014 si = (xyzold(xcoord,ip1)+xyzorig(xcoord,ip1)- &
1015 xyzold(xcoord,ijk)-xyzorig(xcoord,ijk))**2 + &
1016 (xyzold(ycoord,ip1)+xyzorig(ycoord,ip1)- &
1017 xyzold(ycoord,ijk)-xyzorig(ycoord,ijk))**2 + &
1018 (xyzold(zcoord,ip1)+xyzorig(zcoord,ip1)- &
1019 xyzold(zcoord,ijk)-xyzorig(zcoord,ijk))**2 + &
1020 (xyzold(xcoord,im1)+xyzorig(xcoord,im1)- &
1021 xyzold(xcoord,ijk)-xyzorig(xcoord,ijk))**2 + &
1022 (xyzold(ycoord,im1)+xyzorig(ycoord,im1)- &
1023 xyzold(ycoord,ijk)-xyzorig(ycoord,ijk))**2 + &
1024 (xyzold(zcoord,im1)+xyzorig(zcoord,im1)- &
1025 xyzold(zcoord,ijk)-xyzorig(zcoord,ijk))**2 + &
1026 (xyzold(xcoord,ip2)+xyzorig(xcoord,ip2)- &
1027 xyzold(xcoord,ip1)-xyzorig(xcoord,ip1))**2 + &
1028 (xyzold(ycoord,ip2)+xyzorig(ycoord,ip2)- &
1029 xyzold(ycoord,ip1)-xyzorig(ycoord,ip1))**2 + &
1030 (xyzold(zcoord,ip2)+xyzorig(zcoord,ip2)- &
1031 xyzold(zcoord,ip1)-xyzorig(zcoord,ip1))**2 + &
1032 (xyzold(xcoord,im2)+xyzorig(xcoord,im2)- &
1033 xyzold(xcoord,im1)-xyzorig(xcoord,im1))**2 + &
1034 (xyzold(ycoord,im2)+xyzorig(ycoord,im2)- &
1035 xyzold(ycoord,im1)-xyzorig(ycoord,im1))**2 + &
1036 (xyzold(zcoord,im2)+xyzorig(zcoord,im2)- &
1037 xyzold(zcoord,im1)-xyzorig(zcoord,im1))**2
1039 sj = (xyzold(xcoord,jp1)+xyzorig(xcoord,jp1)- &
1040 xyzold(xcoord,ijk)-xyzorig(xcoord,ijk))**2 + &
1041 (xyzold(ycoord,jp1)+xyzorig(ycoord,jp1)- &
1042 xyzold(ycoord,ijk)-xyzorig(ycoord,ijk))**2 + &
1043 (xyzold(zcoord,jp1)+xyzorig(zcoord,jp1)- &
1044 xyzold(zcoord,ijk)-xyzorig(zcoord,ijk))**2 + &
1045 (xyzold(xcoord,jm1)+xyzorig(xcoord,jm1)- &
1046 xyzold(xcoord,ijk)-xyzorig(xcoord,ijk))**2 + &
1047 (xyzold(ycoord,jm1)+xyzorig(ycoord,jm1)- &
1048 xyzold(ycoord,ijk)-xyzorig(ycoord,ijk))**2 + &
1049 (xyzold(zcoord,jm1)+xyzorig(zcoord,jm1)- &
1050 xyzold(zcoord,ijk)-xyzorig(zcoord,ijk))**2 + &
1051 (xyzold(xcoord,jp2)+xyzorig(xcoord,jp2)- &
1052 xyzold(xcoord,jp1)-xyzorig(xcoord,jp1))**2 + &
1053 (xyzold(ycoord,jp2)+xyzorig(ycoord,jp2)- &
1054 xyzold(ycoord,jp1)-xyzorig(ycoord,jp1))**2 + &
1055 (xyzold(zcoord,jp2)+xyzorig(zcoord,jp2)- &
1056 xyzold(zcoord,jp1)-xyzorig(zcoord,jp1))**2 + &
1057 (xyzold(xcoord,jm2)+xyzorig(xcoord,jm2)- &
1058 xyzold(xcoord,jm1)-xyzorig(xcoord,jm1))**2 + &
1059 (xyzold(ycoord,jm2)+xyzorig(ycoord,jm2)- &
1060 xyzold(ycoord,jm1)-xyzorig(ycoord,jm1))**2 + &
1061 (xyzold(zcoord,jm2)+xyzorig(zcoord,jm2)- &
1062 xyzold(zcoord,jm1)-xyzorig(zcoord,jm1))**2
1064 sk = (xyzold(xcoord,kp1)+xyzorig(xcoord,kp1)- &
1065 xyzold(xcoord,ijk)-xyzorig(xcoord,ijk))**2 + &
1066 (xyzold(ycoord,kp1)+xyzorig(ycoord,kp1)- &
1067 xyzold(ycoord,ijk)-xyzorig(ycoord,ijk))**2 + &
1068 (xyzold(zcoord,kp1)+xyzorig(zcoord,kp1)- &
1069 xyzold(zcoord,ijk)-xyzorig(zcoord,ijk))**2 + &
1070 (xyzold(xcoord,km1)+xyzorig(xcoord,km1)- &
1071 xyzold(xcoord,ijk)-xyzorig(xcoord,ijk))**2 + &
1072 (xyzold(ycoord,km1)+xyzorig(ycoord,km1)- &
1073 xyzold(ycoord,ijk)-xyzorig(ycoord,ijk))**2 + &
1074 (xyzold(zcoord,km1)+xyzorig(zcoord,km1)- &
1075 xyzold(zcoord,ijk)-xyzorig(zcoord,ijk))**2 + &
1076 (xyzold(xcoord,kp2)+xyzorig(xcoord,kp2)- &
1077 xyzold(xcoord,kp1)-xyzorig(xcoord,kp1))**2 + &
1078 (xyzold(ycoord,kp2)+xyzorig(ycoord,kp2)- &
1079 xyzold(ycoord,kp1)-xyzorig(ycoord,kp1))**2 + &
1080 (xyzold(zcoord,kp2)+xyzorig(zcoord,kp2)- &
1081 xyzold(zcoord,kp1)-xyzorig(zcoord,kp1))**2 + &
1082 (xyzold(xcoord,km2)+xyzorig(xcoord,km2)- &
1083 xyzold(xcoord,km1)-xyzorig(xcoord,km1))**2 + &
1084 (xyzold(ycoord,km2)+xyzorig(ycoord,km2)- &
1085 xyzold(ycoord,km1)-xyzorig(ycoord,km1))**2 + &
1086 (xyzold(zcoord,km2)+xyzorig(zcoord,km2)- &
1087 xyzold(zcoord,km1)-xyzorig(zcoord,km1))**2
1089 wi = 1._rfreal/(si)**p
1090 wj = 1._rfreal/(sj)**p
1091 wk = 1._rfreal/(sk)**p
1092 d = 2._rfreal*(wi+wj+wk)
1098 xyz(xcoord,ijk) = (1._rfreal-
REAL( idgen(ijk) ))* &
1099 (wi*rxi+wj*rxj+wk*rxk)/
d + &
1100 REAL( idgen(ijk) )*(xyz(xcoord,ijk)-xyzorig(xcoord,ijk))
1101 xyz(ycoord,ijk) = (1._rfreal-
REAL( idgen(ijk) ))* &
1102 (wi*ryi+wj*ryj+wk*ryk)/
d + &
1103 REAL( idgen(ijk) )*(xyz(ycoord,ijk)-xyzorig(ycoord,ijk))
1104 xyz(zcoord,ijk) = (1._rfreal-
REAL( idgen(ijk) ))* &
1105 (wi*rzi+wj*rzj+wk*rzk)/
d + &
1106 REAL( idgen(ijk) )*(xyz(zcoord,ijk)-xyzorig(zcoord,ijk))
1143 #include "Indexing.h"
1146 TYPE(t_region
) :: region
1152 INTEGER :: ilev, ibn, ien, ibc, iec, icoff, ijcoff, inoff, ijnoff
1156 INTEGER :: ijk, ijkc, ijkn, ijkm, ijkp, ijka(3), errorflag
1157 INTEGER :: ijkn1, ijkn2, ijkn3, ijkn4, ijkn5, ijkn6, ijkn7, ijkn8
1158 INTEGER :: ijkp1, ijkm1, ijkp2, ijkm2, ijkp3, ijkm3, ijkp4, ijkm4
1159 INTEGER,
POINTER :: idgen(:)
1161 REAL(RFREAL) :: rnfac, ocell, eps, oo6, oo8, smod, fac1, fac2
1162 REAL(RFREAL) :: usf(xcoord:zcoord), fc(xcoord:zcoord)
1163 REAL(RFREAL),
POINTER :: xyz(:,:), xyzorig(:,:), xyzold(:,:), xyzorth(:,:)
1164 REAL(RFREAL),
POINTER :: xyztemp(:,:), si(:,:), sj(:,:), sk(:,:)
1166 REAL(RFREAL),
ALLOCATABLE :: cofg(:,:)
1167 REAL(RFREAL),
ALLOCATABLE :: xyzwork(:,:), xyzbuf(:,:)
1168 REAL(RFREAL),
ALLOCATABLE :: fci(:,:), fcj(:,:), fck(:,:)
1174 global => region%global
1176 'RFLO_ModLaplaceSmoothing.F90' )
1180 rnfac = 1._rfreal/12._rfreal
1181 oo6 = 1._rfreal/6._rfreal
1182 oo8 = 1._rfreal/8._rfreal
1183 ocell = global%moveGridOrthCell
1184 eps = 100._rfreal*epsilon(1._rfreal)
1185 fac1 = region%global%moveGridWeight
1186 fac2 = 1._rfreal-fac1
1205 xyz => region%levels(ilev)%grid%xyz
1206 xyzorig => region%levels(ilev)%gridOld%xyz
1207 xyzold => region%levels(ilev)%grid%xyzOld
1208 xyzorth => region%levels(ilev)%grid%xyzOrth
1209 xyztemp => region%levels(ilev)%grid%xyzTemp
1210 si => region%levels(ilev)%grid%si
1211 sj => region%levels(ilev)%grid%sj
1212 sk => region%levels(ilev)%grid%sk
1214 idgen => region%levels(ilev)%grid%ijkDgen
1216 ALLOCATE( xyzwork(3,ibn:ien),stat=errorflag )
1217 global%error = errorflag
1218 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
1221 ALLOCATE( xyzbuf(3,ibn:ien),stat=errorflag )
1222 global%error = errorflag
1223 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
1226 ALLOCATE( fci(3,ibn:ien),stat=errorflag )
1227 global%error = errorflag
1228 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
1231 ALLOCATE( fcj(3,ibn:ien),stat=errorflag )
1232 global%error = errorflag
1233 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
1236 ALLOCATE( fck(3,ibn:ien),stat=errorflag )
1237 global%error = errorflag
1238 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
1241 ALLOCATE( cofg(3,ibc:iec),stat=errorflag )
1242 global%error = errorflag
1243 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
1251 xyzold(xcoord,ijk) = xyz(xcoord,ijk) - xyzorig(xcoord,ijk)
1252 xyzold(ycoord,ijk) = xyz(ycoord,ijk) - xyzorig(ycoord,ijk)
1253 xyzold(zcoord,ijk) = xyz(zcoord,ijk) - xyzorig(zcoord,ijk)
1257 xyztemp = xyzorig + xyzold
1265 ijkc = indijk(
i ,
j ,
k ,icoff,ijcoff)
1266 ijkn1 = indijk(
i ,
j ,
k ,inoff,ijnoff)
1267 ijkn2 = indijk(
i ,
j ,
k+1,inoff,ijnoff)
1268 ijkn3 = indijk(
i ,
j+1,
k+1,inoff,ijnoff)
1269 ijkn4 = indijk(
i ,
j+1,
k ,inoff,ijnoff)
1270 ijkn5 = indijk(
i+1,
j ,
k ,inoff,ijnoff)
1271 ijkn6 = indijk(
i+1,
j ,
k+1,inoff,ijnoff)
1272 ijkn7 = indijk(
i+1,
j+1,
k+1,inoff,ijnoff)
1273 ijkn8 = indijk(
i+1,
j+1,
k ,inoff,ijnoff)
1274 cofg(:,ijkc) = xyztemp(:,ijkn1)+xyztemp(:,ijkn2)+xyztemp(:,ijkn3)+ &
1275 xyztemp(:,ijkn4)+xyztemp(:,ijkn5)+xyztemp(:,ijkn6)+ &
1276 xyztemp(:,ijkn7)+xyztemp(:,ijkn8)
1277 cofg(:,ijkc) = oo8*cofg(:,ijkc)
1287 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1288 ijkn1 = indijk(
i+1,
j ,
k ,inoff,ijnoff)
1289 ijkn2 = indijk(
i ,
j+1,
k ,inoff,ijnoff)
1290 ijkn3 = indijk(
i ,
j ,
k+1,inoff,ijnoff)
1291 ijkn4 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
1292 ijkn5 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
1293 ijkn6 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
1294 xyzorth(:,ijkn) = xyztemp(:,ijkn1)+xyztemp(:,ijkn2)+xyztemp(:,ijkn3)+ &
1295 xyztemp(:,ijkn4)+xyztemp(:,ijkn5)+xyztemp(:,ijkn6)
1296 xyz(:,ijkn) = oo6*xyzorth(:,ijkn)
1310 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1311 ijkp = indijk(
i ,
j ,
k ,icoff,ijcoff)
1312 ijkm = indijk(
i-1,
j ,
k ,icoff,ijcoff)
1313 fci(:,ijkn) = fac1*cofg(:,ijkm) + fac2*cofg(:,ijkp)
1316 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1317 ijkp = indijk(
i ,
j ,
k ,icoff,ijcoff)
1318 ijkm = indijk(
i-1,
j ,
k ,icoff,ijcoff)
1319 fci(:,ijkn) = fac2*cofg(:,ijkm) + fac1*cofg(:,ijkp)
1326 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1327 ijkp = indijk(
i ,
j ,
k ,icoff,ijcoff)
1328 ijkm = indijk(
i ,
j-1,
k ,icoff,ijcoff)
1329 fcj(:,ijkn) = fac1*cofg(:,ijkm) + fac2*cofg(:,ijkp)
1334 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1335 ijkp = indijk(
i ,
j ,
k ,icoff,ijcoff)
1336 ijkm = indijk(
i ,
j-1,
k ,icoff,ijcoff)
1337 fcj(:,ijkn) = fac2*cofg(:,ijkm) + fac1*cofg(:,ijkp)
1344 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1345 ijkp = indijk(
i ,
j ,
k ,icoff,ijcoff)
1346 ijkm = indijk(
i ,
j ,
k-1,icoff,ijcoff)
1347 fck(:,ijkn) = fac1*cofg(:,ijkm) + fac2*cofg(:,ijkp)
1354 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1355 ijkp = indijk(
i ,
j ,
k ,icoff,ijcoff)
1356 ijkm = indijk(
i ,
j ,
k-1,icoff,ijcoff)
1357 fck(:,ijkn) = fac2*cofg(:,ijkm) + fac1*cofg(:,ijkp)
1370 ijkn1 = indijk(
i ,
j ,
k ,inoff,ijnoff)
1371 ijkn2 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
1372 ijkn3 = indijk(
i ,
j-1,
k-1,inoff,ijnoff)
1373 ijkn4 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
1374 ijkp1 = indijk(
i ,
j ,
k ,icoff,ijcoff)
1375 ijkm1 = indijk(
i-1,
j ,
k ,icoff,ijcoff)
1376 ijkp2 = indijk(
i ,
j-1,
k ,icoff,ijcoff)
1377 ijkm2 = indijk(
i-1,
j-1,
k ,icoff,ijcoff)
1378 ijkp3 = indijk(
i ,
j-1,
k-1,icoff,ijcoff)
1379 ijkm3 = indijk(
i-1,
j-1,
k-1,icoff,ijcoff)
1380 ijkp4 = indijk(
i ,
j ,
k-1,icoff,ijcoff)
1381 ijkm4 = indijk(
i-1,
j ,
k-1,icoff,ijcoff)
1384 fci(:,ijkn1),fci(:,ijkn2),fci(:,ijkn3),fci(:,ijkn4) )
1388 ijkn1 = indijk(
i ,
j ,
k ,inoff,ijnoff)
1389 ijkn2 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
1390 ijkn3 = indijk(
i-1,
j ,
k-1,inoff,ijnoff)
1391 ijkn4 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
1392 ijkp1 = indijk(
i ,
j ,
k ,icoff,ijcoff)
1393 ijkm1 = indijk(
i ,
j-1,
k ,icoff,ijcoff)
1394 ijkp2 = indijk(
i ,
j ,
k-1,icoff,ijcoff)
1395 ijkm2 = indijk(
i ,
j-1,
k-1,icoff,ijcoff)
1396 ijkp3 = indijk(
i-1,
j ,
k-1,icoff,ijcoff)
1397 ijkm3 = indijk(
i-1,
j-1,
k-1,icoff,ijcoff)
1398 ijkp4 = indijk(
i-1,
j ,
k ,icoff,ijcoff)
1399 ijkm4 = indijk(
i-1,
j-1,
k ,icoff,ijcoff)
1402 fcj(:,ijkn1),fcj(:,ijkn2),fcj(:,ijkn3),fcj(:,ijkn4) )
1406 ijkn1 = indijk(
i ,
j ,
k ,inoff,ijnoff)
1407 ijkn2 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
1408 ijkn3 = indijk(
i-1,
j-1,
k ,inoff,ijnoff)
1409 ijkn4 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
1410 ijkp1 = indijk(
i ,
j ,
k ,icoff,ijcoff)
1411 ijkm1 = indijk(
i ,
j ,
k-1,icoff,ijcoff)
1412 ijkp2 = indijk(
i-1,
j ,
k ,icoff,ijcoff)
1413 ijkm2 = indijk(
i-1,
j ,
k-1,icoff,ijcoff)
1414 ijkp3 = indijk(
i-1,
j-1,
k ,icoff,ijcoff)
1415 ijkm3 = indijk(
i-1,
j-1,
k-1,icoff,ijcoff)
1416 ijkp4 = indijk(
i ,
j-1,
k ,icoff,ijcoff)
1417 ijkm4 = indijk(
i ,
j-1,
k-1,icoff,ijcoff)
1420 fck(:,ijkn1),fck(:,ijkn2),fck(:,ijkn3),fck(:,ijkn4) )
1428 xyz = xyzbuf-xyzorig
1431 DO k=
kpnbeg+ijka(3),kpnend-ijka(3)
1434 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1435 xyzorth(:,ijkn) = ocell*rnfac*xyzwork(:,ijkn)
1437 xyz(:,ijkn) = xyzorth(:,ijkn)
1446 DEALLOCATE( xyzwork,stat=errorflag )
1447 global%error = errorflag
1448 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
1451 DEALLOCATE( xyzbuf,stat=errorflag )
1452 global%error = errorflag
1453 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
1456 DEALLOCATE( fci,stat=errorflag )
1457 global%error = errorflag
1458 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
1461 DEALLOCATE( fcj,stat=errorflag )
1462 global%error = errorflag
1463 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
1466 DEALLOCATE( fck,stat=errorflag )
1467 global%error = errorflag
1468 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
1471 DEALLOCATE( cofg,stat=errorflag )
1472 global%error = errorflag
1473 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
1489 REAL(RFREAL),
POINTER :: sf(:,:)
1490 REAL(RFREAL) :: fc1(xcoord:zcoord), fc2(xcoord:zcoord)
1491 REAL(RFREAL) :: fc3(xcoord:zcoord), fc4(xcoord:zcoord)
1493 smod =
sqrt( sf(xcoord,ijkn1)*sf(xcoord,ijkn1) + &
1494 sf(ycoord,ijkn1)*sf(ycoord,ijkn1) + &
1495 sf(zcoord,ijkn1)*sf(zcoord,ijkn1) )
1496 usf(:) = sf(:,ijkn1)/(smod+eps)
1498 xyzwork(:,ijkn1) = xyzwork(:,ijkn1) + &
1499 dot_product( fc1(:)-xyztemp(:,ijkn1), usf(:) )*usf(:)
1502 smod =
sqrt( sf(xcoord,ijkn2)*sf(xcoord,ijkn2) + &
1503 sf(ycoord,ijkn2)*sf(ycoord,ijkn2) + &
1504 sf(zcoord,ijkn2)*sf(zcoord,ijkn2) )
1505 usf(:) = sf(:,ijkn2)/(smod+eps)
1507 xyzwork(:,ijkn1) = xyzwork(:,ijkn1) + &
1508 dot_product( fc2(:)-xyztemp(:,ijkn1), usf(:) )*usf(:)
1511 smod =
sqrt( sf(xcoord,ijkn3)*sf(xcoord,ijkn3) + &
1512 sf(ycoord,ijkn3)*sf(ycoord,ijkn3) + &
1513 sf(zcoord,ijkn3)*sf(zcoord,ijkn3) )
1514 usf(:) = sf(:,ijkn3)/(smod+eps)
1516 xyzwork(:,ijkn1) = xyzwork(:,ijkn1) + &
1517 dot_product( fc3(:)-xyztemp(:,ijkn1), usf(:) )*usf(:)
1520 smod =
sqrt( sf(xcoord,ijkn4)*sf(xcoord,ijkn4) + &
1521 sf(ycoord,ijkn4)*sf(ycoord,ijkn4) + &
1522 sf(zcoord,ijkn4)*sf(zcoord,ijkn4) )
1523 usf(:) = sf(:,ijkn4)/(smod+eps)
1525 xyzwork(:,ijkn1) = xyzwork(:,ijkn1) + &
1526 dot_product( fc4(:)-xyztemp(:,ijkn1), usf(:) )*usf(:)
1555 #include "Indexing.h"
1558 TYPE(t_region
) :: region
1564 INTEGER :: ilev, ibn, ien, icoff, ijcoff, inoff, ijnoff
1567 INTEGER :: ijk, ijkc1, ijkc2, ijkc3, ijkc4, ijkn1, ijkn2, ijkn3, ijkn4
1568 INTEGER :: ijkc1m, ijkc2m, ijkc3m, ijkc4m, ia, ja, ka, errorflag
1570 REAL(RFREAL) :: rnfac, ocell, eps
1571 REAL(RFREAL) :: cofgp(xcoord:zcoord), cofgm(xcoord:zcoord), cfc(xcoord:zcoord)
1572 REAL(RFREAL) :: xyzc(xcoord:zcoord), xyzp(xcoord:zcoord)
1573 REAL(RFREAL),
POINTER :: xyz(:,:), xyzorig(:,:), xyzold(:,:), xyzorth(:,:)
1574 REAL(RFREAL),
POINTER :: cofg(:,:), cfci(:,:), cfcj(:,:), cfck(:,:)
1575 REAL(RFREAL),
ALLOCATABLE :: xyzwork(:,:)
1581 global => region%global
1583 'RFLO_ModLaplaceSmoothing.F90' )
1587 rnfac = 1._rfreal/12._rfreal
1588 ocell = global%moveGridOrthCell
1589 eps = 100._rfreal*epsilon(1._rfreal)
1607 xyz => region%levels(ilev)%grid%xyz
1608 xyzorig => region%levels(ilev)%gridOld%xyz
1609 xyzold => region%levels(ilev)%grid%xyzOld
1610 xyzorth => region%levels(ilev)%grid%xyzOrth
1611 cofg => region%levels(ilev)%grid%cofg
1612 cfci => region%levels(ilev)%grid%cfcI
1613 cfcj => region%levels(ilev)%grid%cfcJ
1614 cfck => region%levels(ilev)%grid%cfcK
1616 ALLOCATE( xyzwork(3,ibn:ien),stat=errorflag )
1617 global%error = errorflag
1618 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
1626 xyzorth = xyz + xyzorig
1647 ijkc1 = indijk(
i ,
j ,
k ,icoff,ijcoff)
1648 ijkc1m = indijk(
i-1,
j ,
k ,icoff,ijcoff)
1649 ijkc2 = indijk(
i ,
j ,
k-1,icoff,ijcoff)
1650 ijkc2m = indijk(
i-1,
j ,
k-1,icoff,ijcoff)
1651 ijkc3 = indijk(
i ,
j-1,
k-1,icoff,ijcoff)
1652 ijkc3m = indijk(
i-1,
j-1,
k-1,icoff,ijcoff)
1653 ijkc4 = indijk(
i ,
j-1,
k ,icoff,ijcoff)
1654 ijkc4m = indijk(
i-1,
j-1,
k ,icoff,ijcoff)
1655 ijkn1 = indijk(
i ,
j ,
k ,inoff,ijnoff)
1656 ijkn2 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
1657 ijkn3 = indijk(
i ,
j-1,
k-1,inoff,ijnoff)
1658 ijkn4 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
1665 ijkc1 = indijk(
i ,
j ,
k ,icoff,ijcoff)
1666 ijkc1m = indijk(
i ,
j-1,
k ,icoff,ijcoff)
1667 ijkc2 = indijk(
i-1,
j ,
k ,icoff,ijcoff)
1668 ijkc2m = indijk(
i-1,
j-1,
k ,icoff,ijcoff)
1669 ijkc3 = indijk(
i-1,
j ,
k-1,icoff,ijcoff)
1670 ijkc3m = indijk(
i-1,
j-1,
k-1,icoff,ijcoff)
1671 ijkc4 = indijk(
i ,
j ,
k-1,icoff,ijcoff)
1672 ijkc4m = indijk(
i ,
j-1,
k-1,icoff,ijcoff)
1673 ijkn1 = indijk(
i ,
j ,
k ,inoff,ijnoff)
1674 ijkn2 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
1675 ijkn3 = indijk(
i-1,
j ,
k-1,inoff,ijnoff)
1676 ijkn4 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
1683 ijkc1 = indijk(
i ,
j ,
k ,icoff,ijcoff)
1684 ijkc1m = indijk(
i ,
j ,
k-1,icoff,ijcoff)
1685 ijkc2 = indijk(
i ,
j-1,
k ,icoff,ijcoff)
1686 ijkc2m = indijk(
i ,
j-1,
k-1,icoff,ijcoff)
1687 ijkc3 = indijk(
i-1,
j-1,
k ,icoff,ijcoff)
1688 ijkc3m = indijk(
i-1,
j-1,
k-1,icoff,ijcoff)
1689 ijkc4 = indijk(
i-1,
j ,
k ,icoff,ijcoff)
1690 ijkc4m = indijk(
i-1,
j ,
k-1,icoff,ijcoff)
1691 ijkn1 = indijk(
i ,
j ,
k ,inoff,ijnoff)
1692 ijkn2 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
1693 ijkn3 = indijk(
i-1,
j-1,
k ,inoff,ijnoff)
1694 ijkn4 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
1716 ijk = indijk(
i ,
j ,
k ,inoff,ijnoff)
1717 xyzorth(:,ijk) = rnfac*xyzwork(:,ijk) - xyzorig(:,ijk)
1718 xyz(xcoord,ijk) = xyzorth(xcoord,ijk)
1719 xyz(ycoord,ijk) = xyzorth(ycoord,ijk)
1720 xyz(zcoord,ijk) = xyzorth(zcoord,ijk)
1728 DEALLOCATE( xyzwork,stat=errorflag )
1729 global%error = errorflag
1730 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
1746 REAL(RFREAL),
POINTER :: cfac(:,:)
1748 cofgp(:) = cofg(:,ijkc1)
1749 cofgm(:) = cofg(:,ijkc1m)
1750 cfc(:) = cfac(:,ijkn1)
1752 xyzc(:) = xyzorth(:,ijkn1)
1754 xyzwork(:,ijkn1) = xyzwork(:,ijkn1) + xyzp(:)
1757 cofgp(:) = cofg(:,ijkc2)
1758 cofgm(:) = cofg(:,ijkc2m)
1759 cfc(:) = cfac(:,ijkn2)
1761 xyzc(:) = xyzorth(:,ijkn1)
1763 xyzwork(:,ijkn1) = xyzwork(:,ijkn1) + xyzp(:)
1766 cofgp(:) = cofg(:,ijkc3)
1767 cofgm(:) = cofg(:,ijkc3m)
1768 cfc(:) = cfac(:,ijkn3)
1770 xyzc(:) = xyzorth(:,ijkn1)
1772 xyzwork(:,ijkn1) = xyzwork(:,ijkn1) + xyzp(:)
1775 cofgp(:) = cofg(:,ijkc4)
1776 cofgm(:) = cofg(:,ijkc4m)
1777 cfc(:) = cfac(:,ijkn4)
1779 xyzc(:) = xyzorth(:,ijkn1)
1781 xyzwork(:,ijkn1) = xyzwork(:,ijkn1) + xyzp(:)
1810 #include "Indexing.h"
1813 TYPE(t_region
) :: region
1819 INTEGER :: ilev, ibn, ien, icoff, ijcoff, inoff, ijnoff
1822 INTEGER :: ijk, ijkn, ijkn1, ijkn2, ijkn3, ijkn4, errorflag
1824 REAL(RFREAL) :: rnfac, ocell, eps, a11, a12, a21, a22, rh1, rh2, rja, c1, c2
1825 REAL(RFREAL) :: delt(xcoord:zcoord),
f1(xcoord:zcoord),
f2(xcoord:zcoord)
1826 REAL(RFREAL) :: xyzp(xcoord:zcoord)
1827 REAL(RFREAL),
POINTER :: xyz(:,:), xyzorig(:,:), xyzold(:,:), xyzorth(:,:)
1828 REAL(RFREAL),
POINTER :: xyztemp(:,:)
1829 REAL(RFREAL),
ALLOCATABLE :: xyzwork(:,:)
1835 global => region%global
1837 'RFLO_ModLaplaceSmoothing.F90' )
1841 rnfac = 1._rfreal/12._rfreal
1842 ocell = global%moveGridOrthCell
1843 eps = 100._rfreal*epsilon(1._rfreal)
1858 xyz => region%levels(ilev)%grid%xyz
1859 xyzorig => region%levels(ilev)%gridOld%xyz
1860 xyzold => region%levels(ilev)%grid%xyzOld
1861 xyzorth => region%levels(ilev)%grid%xyzOrth
1862 xyztemp => region%levels(ilev)%grid%xyzTemp
1864 ALLOCATE( xyzwork(3,ibn:ien),stat=errorflag )
1865 global%error = errorflag
1866 IF (global%error /= 0) CALL
errorstop( global,err_allocate,&
1875 xyzold(:,ijk) = xyzold(:,ijk) + xyzorig(:,ijk)
1876 xyzorth(:,ijk) = xyz( :,ijk) + xyzorig(:,ijk)
1889 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1890 ijkn1 = indijk(
i ,
j+1,
k ,inoff,ijnoff)
1891 ijkn2 = indijk(
i ,
j ,
k+1,inoff,ijnoff)
1892 ijkn3 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
1893 ijkn4 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
1902 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1903 ijkn1 = indijk(
i ,
j ,
k+1,inoff,ijnoff)
1904 ijkn2 = indijk(
i+1,
j ,
k ,inoff,ijnoff)
1905 ijkn3 = indijk(
i ,
j ,
k-1,inoff,ijnoff)
1906 ijkn4 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
1915 ijkn = indijk(
i ,
j ,
k ,inoff,ijnoff)
1916 ijkn1 = indijk(
i+1,
j ,
k ,inoff,ijnoff)
1917 ijkn2 = indijk(
i ,
j+1,
k ,inoff,ijnoff)
1918 ijkn3 = indijk(
i-1,
j ,
k ,inoff,ijnoff)
1919 ijkn4 = indijk(
i ,
j-1,
k ,inoff,ijnoff)
1935 ijk = indijk(
i ,
j ,
k ,inoff,ijnoff)
1936 xyzorth(:,ijk) = rnfac*xyzwork(:,ijk) - xyzorig(:,ijk)
1937 xyz( :,ijk) = xyzorth(:,ijk)
1949 DEALLOCATE( xyzwork,stat=errorflag )
1950 global%error = errorflag
1951 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,&
1968 delt(:) = xyzorth(:,ijkn)-xyzold(:,ijkn)
1970 f1(:) = xyzold(:,ijkn1)-xyzold(:,ijkn)
1971 f2(:) = xyzold(:,ijkn2)-xyzold(:,ijkn)
1978 rja = 1._rfreal/(a11*a22-a12*a21+eps)
1979 c1 = (a22*rh1 - a12*rh2)*rja
1980 c2 = (a11*rh2 - a21*rh1)*rja
1981 xyzp(:) = ocell*(xyzold(:,ijkn) + c1*
f1(:) + c2*
f2(:)) + &
1982 (1._rfreal-ocell)*xyzorth(:,ijkn)
1983 xyzwork(:,ijkn) = xyzwork(:,ijkn) + xyzp(:)
1985 f1(:) = xyzold(:,ijkn2)-xyzold(:,ijkn)
1986 f2(:) = xyzold(:,ijkn3)-xyzold(:,ijkn)
1993 rja = 1._rfreal/(a11*a22-a12*a21+eps)
1994 c1 = (a22*rh1 - a12*rh2)*rja
1995 c2 = (a11*rh2 - a21*rh1)*rja
1996 xyzp(:) = ocell*(xyzold(:,ijkn) + c1*
f1(:) + c2*
f2(:)) + &
1997 (1._rfreal-ocell)*xyzorth(:,ijkn)
1998 xyzwork(:,ijkn) = xyzwork(:,ijkn) + xyzp(:)
2000 f1(:) = xyzold(:,ijkn3)-xyzold(:,ijkn)
2001 f2(:) = xyzold(:,ijkn4)-xyzold(:,ijkn)
2008 rja = 1._rfreal/(a11*a22-a12*a21+eps)
2009 c1 = (a22*rh1 - a12*rh2)*rja
2010 c2 = (a11*rh2 - a21*rh1)*rja
2011 xyzp(:) = ocell*(xyzold(:,ijkn) + c1*
f1(:) + c2*
f2(:)) + &
2012 (1._rfreal-ocell)*xyzorth(:,ijkn)
2013 xyzwork(:,ijkn) = xyzwork(:,ijkn) + xyzp(:)
2015 f1(:) = xyzold(:,ijkn4)-xyzold(:,ijkn)
2016 f2(:) = xyzold(:,ijkn1)-xyzold(:,ijkn)
2023 rja = 1._rfreal/(a11*a22-a12*a21+eps)
2024 c1 = (a22*rh1 - a12*rh2)*rja
2025 c2 = (a11*rh2 - a21*rh1)*rja
2026 xyzp(:) = ocell*(xyzold(:,ijkn) + c1*
f1(:) + c2*
f2(:)) + &
2027 (1._rfreal-ocell)*xyzorth(:,ijkn)
2028 xyzwork(:,ijkn) = xyzwork(:,ijkn) + xyzp(:)
2053 REAL(RFREAL) :: ocell, eps
2054 REAL(RFREAL) :: cofgp(:), cofgm(:), cfc(:), xyzc(:), xyzp(:)
2059 REAL(RFREAL) :: cfcgp(xcoord:zcoord), cfcgm(xcoord:zcoord)
2060 REAL(RFREAL) :: sqrp, sqrm, cp, cm, fac
2064 cfcgp(:) = cofgp(:) - cfc(:)
2065 cfcgm(:) = cofgm(:) - cfc(:)
2067 sqrp = cfcgp(xcoord)*cfcgp(xcoord) + &
2068 cfcgp(ycoord)*cfcgp(ycoord) + &
2069 cfcgp(zcoord)*cfcgp(zcoord)
2071 sqrm = cfcgm(xcoord)*cfcgm(xcoord) + &
2072 cfcgm(ycoord)*cfcgm(ycoord) + &
2073 cfcgm(zcoord)*cfcgm(zcoord)
2075 cp =
dot_product( (cfc(:)-xyzc(:)),cfcgp(:) )/(sqrp + epsilon( 1._rfreal ))
2076 cm =
dot_product( (cfc(:)-xyzc(:)),cfcgm(:) )/(sqrm + epsilon( 1._rfreal ))
2080 xyzp(:) = xyzc(:) + ocell*fac*(cp*cfcgp(:) + cm*cfcgm(:))
**********************************************************************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 rflo_copygeometrydummy(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 idcend
**********************************************************************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 jpnbeg
subroutine rflo_calccellcentroids(region)
subroutine rflo_laplacegridortho2(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 kpnbeg
subroutine rflo_laplacegridortho1(region)
subroutine registerfunction(global, funName, fileName)
**********************************************************************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 ic
subroutine rflo_exchangednoderecv(region, regionSrc, patch, patchSrc, average, dNode)
subroutine rflo_laplacegridortho(region)
subroutine rflo_changeinteriorgrid(region, boundMoved, edgeMoved, arcLen12, arcLen34, arcLen56, xyzOld, xyz)
subroutine rflo_projectquadcorner(ocell, eps, cofgp, cofgm, cfc, xyzc, xyzp)
**********************************************************************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 jdnbeg
subroutine, public rflo_laplacegridjump(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 jpnend
**********************************************************************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 idnend
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 jdnend
subroutine rflo_getdimensdummy(region, iLev, idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend)
**********************************************************************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 idnbeg
**********************************************************************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 kdcbeg
subroutine rflo_exchangegeometry(regions)
subroutine rflo_generatecoarsegrids(region)
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 ipnbeg
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
**********************************************************************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 idcbeg
subroutine rflo_clearsendrequests(regions, iReg, geometry)
subroutine rflo_laplacegridpatch(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 jdcend
subroutine rflo_getdimensphysnodes(region, iLev, ipnbeg, ipnend, jpnbeg, jpnend, kpnbeg, kpnend)
subroutine rflo_laplacegridsolve(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 knode jend
subroutine rflo_exchangednodecopy(region, regionSrc, patch, patchSrc, average, dNode, dNodeSrc)
**********************************************************************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 jdcbeg
subroutine rflo_getdimensdummynodes(region, iLev, idnbeg, idnend, jdnbeg, jdnend, kdnbeg, kdnend)
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
long double dist(long double *coord1, long double *coord2, int size)
long double dot_product(pnt vec1, pnt vec2)
**********************************************************************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)
**********************************************************************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 ipnend
subroutine rflo_exchangednodesend(region, regionSrc, patch, dNode)
CGAL_BEGIN_NAMESPACE void const NT NT NT NT & denom
**********************************************************************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 kdnbeg
subroutine rflo_laplacegridsmoo(regions, resid)
subroutine rflo_calcfacecentroids(region)
subroutine accumulatexyzwork(sf, fc1, fc2, fc3, fc4)