72   CHARACTER(CHRLEN) :: rcsidentstring = & 
 
   73     '$RCSfile: RFLO_ModMoveGridNconform3.F90,v $ $Revision: 1.26 $'         
  113   include 
'roccomf90.h' 
  117   TYPE(t_region
), 
POINTER :: regions(:)
 
  120   INTEGER :: ireg, iter, ipatch, ijk
 
  123   LOGICAL :: somemoved, someremesh
 
  125   INTEGER :: bctype, iremesh, jremesh, nremesh, itype
 
  127   REAL(RFREAL)          :: resid, globalresid
 
  128   REAL(RFREAL), 
POINTER :: xyz(:,:), xyzold(:,:)
 
  134   DOUBLE PRECISION :: dalpha
 
  139   global => regions(1)%global
 
  142   'RFLO_ModMoveGridNconform3.F90' )
 
  149   dalpha = global%dtMin/global%dTimeSystem
 
  150   CALL com_call_function( global%genxHandleGm,1,dalpha )
 
  165   DO ireg=1,global%nRegions
 
  166     IF (regions(ireg)%procid==global%myProcid .AND. &  
 
  167         regions(ireg)%active==active .AND. &           
 
  168         regions(ireg)%mixtInput%moveGrid) 
THEN          
  172       grid    => regions(ireg)%levels(1)%grid
 
  173       gridold => regions(ireg)%levels(1)%gridOld
 
  177                                     gridold%xyzOld,
grid%xyz )
 
  190   IF (global%moveGridNiter < 1) 
THEN  
  191     IF (global%verbLevel >= verbose_high) 
THEN 
  192       IF (global%myProcid == masterproc) 
THEN 
  193         WRITE(stdout,4000) solver_name,global%skewness,global%minVol
 
  194         WRITE(stdout,1000) solver_name, &
 
  195                   global%moveGridNiter,global%moveGridNsmatch, &
 
  196                   global%moveGridAmplifX,global%moveGridAmplifY, &
 
  197                   global%moveGridAmplifZ,global%moveGridPower, &
 
  198                   global%moveGridOrthDir,global%moveGridOrthWghtX, &
 
  199                   global%moveGridOrthWghtY,global%moveGridOrthWghtZ
 
  206     DO iter=1,global%moveGridNiter
 
  210     IF (global%verbLevel >= verbose_high) 
THEN 
  212       CALL mpi_reduce( resid,globalresid,1,mpi_rfreal,mpi_sum, &
 
  213                        masterproc,global%mpiComm,global%mpierr )
 
  214       IF (global%mpierr /= 0) CALL 
errorstop( global,err_mpi_trouble,__line__ )
 
  218       IF (global%myProcid == masterproc) 
THEN 
  219         WRITE(stdout,4000) solver_name,global%skewness,global%minVol
 
  221         IF (global%moveGridScheme==movegrid_frame) 
THEN 
  222           WRITE(stdout,2000) solver_name, &
 
  223                   global%moveGridNiter,global%moveGridNsmatch, &
 
  224                   global%moveGridAmplifX,global%moveGridAmplifY, &
 
  225                   global%moveGridAmplifZ,global%moveGridPower, &
 
  226                   global%moveGridOrthDir,global%moveGridOrthWghtX, &
 
  227                   global%moveGridOrthWghtY,global%moveGridOrthWghtZ, &
 
  229         ELSEIF (global%moveGridScheme==movegrid_foms) 
THEN 
  230           WRITE(stdout,3000) solver_name, &
 
  231                   global%moveGridNiter,global%moveGridNsmatch, &
 
  232                   global%moveGridAmplifX,global%moveGridAmplifY, &
 
  233                   global%moveGridAmplifZ,global%moveGridPower, &
 
  234                   global%moveGridOrthDir,global%moveGridOrthWghtX, &
 
  235                   global%moveGridOrthWghtY,global%moveGridOrthWghtZ, &
 
  236                   global%moveGridWeight,global%moveGridOrthCell, &
 
  245   DO ireg=1,global%nRegions
 
  246     IF (regions(ireg)%procid==global%myProcid .AND. &  
 
  247         regions(ireg)%active==active .AND. &           
 
  248         regions(ireg)%mixtInput%moveGrid) 
THEN          
  252       xyz    => regions(ireg)%levels(1)%grid%xyz
 
  253       xyzold => regions(ireg)%levels(1)%gridOld%xyz
 
  263       grid    => regions(ireg)%levels(1)%grid
 
  264       gridold => regions(ireg)%levels(1)%gridOld
 
  265       grid%boundMoved(:) = .true.
 
  266       grid%edgeMoved(:)  = .true.
 
  267       DO ipatch=1,regions(ireg)%nPatches
 
  268         patch  => regions(ireg)%levels(1)%patches(ipatch)
 
  269         bctype =  
patch%bcType
 
  273         IF ((bctype==bc_symmetry)) 
THEN 
  305   DO ireg=1,global%nRegions
 
  306     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
  307         regions(ireg)%active==active .AND. &             
 
  308         regions(ireg)%mixtInput%moveGrid) 
THEN            
  312       IF (global%moveGridScheme==movegrid_foms) &
 
  314       IF (regions(ireg)%mixtInput%faceEdgeAvg==fe_avg_linear) &
 
  327   CALL mpi_allreduce( iremesh, nremesh, 1, mpi_integer, mpi_sum, &
 
  328                       global%mpiComm, global%mpierr )
 
  329   IF (global%mpierr /=0 ) CALL 
errorstop( global,err_mpi_trouble,__line__ )
 
  330   IF (nremesh > 0) someremesh = .true.
 
  335     DO ireg=1,global%nRegions
 
  336       IF (regions(ireg)%procid==global%myProcid .AND. &    
 
  337           regions(ireg)%active==active .AND. &             
 
  342         IF (global%moveGridScheme==movegrid_foms) &
 
  344         IF (regions(ireg)%mixtInput%faceEdgeAvg==fe_avg_linear) &
 
  359 1000 
FORMAT(
a,1
x,
'Global-TFI grid motion:', &
 
  360             2i5,4(1pe9.2),i4,3(1pe9.2))
 
  361 2000 
FORMAT(
a,1
x,
'Global-Weighted-Laplacian grid motion:', &
 
  362             2i5,4(1pe9.2),i4,3(1pe9.2),1pe13.4)
 
  363 3000 
FORMAT(
a,1
x,
'Global-Orthogonal-Laplacian gridmotion:', &
 
  364             2i3,4(1pe9.2),i4,3(1pe9.2),3(1pe9.2),1pe10.2)
 
  365 4000 
FORMAT(
a,1
x,
'global skewness, minvol:',2(1pe14.5))
 
  390 #include "Indexing.h" 
  393   TYPE(t_region
), 
POINTER :: regions(:)
 
  396   INTEGER :: l, ipatch, ireg, ipcorn, intcorn, nreg
 
  399   INTEGER, 
PARAMETER :: ncmax=100
 
  402   INTEGER :: iptc, jptc, kptc, iblk, jblk, kblk, ijkcurr
 
  403   INTEGER :: inoff, ijnoff, lbound, regnc, errfl
 
  404   INTEGER, 
ALLOCATABLE :: ivar(:), ijkcorn(:,:)
 
  413   global => regions(1)%global
 
  416   'RFLO_ModMoveGridNconform3.F90' )
 
  420   ALLOCATE( ivar(global%nRegions),stat=errfl )
 
  422   IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  424   ALLOCATE( ijkcorn(ncmax,global%nRegions),stat=errfl )
 
  426   IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  430   DO ireg = 1,global%nRegions
 
  431     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
  432         regions(ireg)%active==active) 
THEN                
  434       grid => regions(ireg)%levels(ilev)%grid
 
  442       grid%nCorns(ireg) = 8
 
  444       ijkcorn(2,ireg) = indijk(
ipnbeg,
jpnbeg,kpnend,inoff,ijnoff)
 
  445       ijkcorn(3,ireg) = indijk(
ipnbeg,
jpnend,kpnend,inoff,ijnoff)
 
  448       ijkcorn(6,ireg) = indijk(
ipnend,
jpnbeg,kpnend,inoff,ijnoff)
 
  449       ijkcorn(7,ireg) = indijk(
ipnend,
jpnend,kpnend,inoff,ijnoff)
 
  452       DO ipatch=1,regions(ireg)%nPatches
 
  453         patch  => regions(ireg)%levels(ilev)%patches(ipatch)
 
  454         lbound =  
patch%lbound
 
  460           IF (lbound==1 .OR. lbound==2) 
THEN 
  462             IF (lbound==1) iblk = 
ipnbeg 
  463             IF (lbound==2) iblk = 
ipnend 
  469             ELSEIF (ipcorn==2) 
THEN 
  474             ELSEIF (ipcorn==3) 
THEN 
  479             ELSEIF (ipcorn==4) 
THEN 
  485           ELSEIF (lbound==3 .OR. lbound==4) 
THEN 
  487             IF (lbound==3) jblk = 
jpnbeg 
  488             IF (lbound==4) jblk = 
jpnend 
  494             ELSEIF (ipcorn==2) 
THEN 
  499             ELSEIF (ipcorn==3) 
THEN 
  504             ELSEIF (ipcorn==4) 
THEN 
  510           ELSEIF (lbound==5 .OR. lbound==6) 
THEN 
  512             IF (lbound==5) kblk = 
kpnbeg 
  513             IF (lbound==6) kblk = kpnend
 
  519             ELSEIF (ipcorn==2) 
THEN 
  524             ELSEIF (ipcorn==3) 
THEN 
  529             ELSEIF (ipcorn==4) 
THEN 
  537           patch%corns(ipcorn) = indijk(iptc,jptc,kptc,inoff,ijnoff) 
 
  539           IF (iptc/=iblk .OR. jptc/=jblk .OR. kptc/=kblk) 
THEN 
  541             ijkcurr  = indijk(iptc,jptc,kptc,inoff,ijnoff)
 
  542             DO intcorn=1,
grid%nCorns(ireg)
 
  543               IF (ijkcorn(intcorn,ireg)==ijkcurr) 
THEN 
  547             IF (.NOT. wasfound) 
THEN 
  548               grid%nCorns(ireg) = 
grid%nCorns(ireg) +1
 
  549               ijkcorn(
grid%nCorns(ireg),ireg) = ijkcurr
 
  552           IF (
grid%nCorns(ireg) >= ncmax) 
THEN 
  553             CALL 
errorstop( global,err_illegal_value,__line__, &
 
  554             'too low ncMax in RFLO_ModMoveGridFrame/RFLO_MgFrameCornPoints')
 
  559       ivar(ireg) = 
grid%nCorns(ireg)
 
  564   DO ireg = 1,global%nRegions
 
  565     CALL mpi_bcast( ivar(ireg),1,mpi_integer, &
 
  566                     regions(ireg)%procId,global%mpiComm,global%mpierr )
 
  567     IF (global%mpierr /=0 ) CALL 
errorstop( global,err_mpi_trouble,__line__ )
 
  569     CALL mpi_bcast( ijkcorn(1:ncmax,ireg),ncmax,mpi_integer, &
 
  570                     regions(ireg)%procId,global%mpiComm,global%mpierr )
 
  571     IF (global%mpierr /=0 ) CALL 
errorstop( global,err_mpi_trouble,__line__ )
 
  576   DO ireg = 1,global%nRegions
 
  577     regnc = 
max( regnc,ivar(ireg) )
 
  579   global%moveGridRegNc = regnc
 
  581   DO ireg = 1,global%nRegions
 
  582     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
  583         regions(ireg)%active==active) 
THEN                
  585       grid => regions(ireg)%levels(ilev)%grid
 
  586       DO nreg = 1,global%nRegions
 
  587         grid%nCorns(nreg) = ivar(nreg)
 
  590       ALLOCATE( 
grid%ijkCorn(      regnc,global%nRegions),stat=errfl )
 
  592       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  594       ALLOCATE( 
grid%regCorn(    3,regnc,global%nRegions),stat=errfl )
 
  596       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  598       ALLOCATE( 
grid%regCornOld( 3,regnc,global%nRegions),stat=errfl )
 
  600       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  602       ALLOCATE( 
grid%regCornOrig(3,regnc,global%nRegions),stat=errfl )
 
  604       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  606       ALLOCATE( 
grid%nghbor(     3,global%moveGridNbour,regnc),stat=errfl )
 
  608       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  610       DO l = 1,
grid%nCorns(ireg)
 
  611         grid%ijkCorn(l,ireg) = ijkcorn(l,ireg)
 
  616       ALLOCATE( 
grid%nShared( regnc),stat=errfl )
 
  618       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  620       ALLOCATE( 
grid%regCornBuff(3,regnc,global%nRegions),stat=errfl )
 
  622       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  624       ALLOCATE( 
grid%regCornOrth(3,regnc,global%nRegions),stat=errfl )
 
  626       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  633   DEALLOCATE( ivar,stat=errfl )
 
  635   IF (global%error /= 0) CALL 
errorstop( global,err_deallocate,__line__ )
 
  663 #include "Indexing.h" 
  666   TYPE(t_region
), 
POINTER :: regions(:)
 
  667   INTEGER :: iselect, iter
 
  670   INTEGER :: 
i, l, ireg
 
  673   INTEGER :: ilev, ncorns, errfl
 
  674   INTEGER, 
ALLOCATABLE :: corner(:)
 
  676   REAL(RFREAL), 
ALLOCATABLE :: rvar(:,:,:)
 
  677   REAL(RFREAL), 
POINTER :: dxyz(:,:), xyzold(:,:)
 
  684   global => regions(1)%global
 
  687   'RFLO_ModMoveGridNconform3.F90' )
 
  691   ALLOCATE( rvar(xcoord:zcoord,global%moveGridRegNc,global%nRegions), &
 
  694   IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  699   DO ireg = 1,global%nRegions
 
  700     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
  701         regions(ireg)%active==active) 
THEN                
  703       grid    => regions(ireg)%levels(ilev)%grid
 
  704       gridold => regions(ireg)%levels(ilev)%gridOld
 
  707       xyzold => gridold%xyz
 
  708       ncorns =  
grid%nCorns(ireg)
 
  710       ALLOCATE( corner(ncorns), stat=errfl )
 
  712       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
  715         corner(l) = 
grid%ijkCorn(l,ireg)
 
  725             grid%regCornOrig(xcoord,
i,ireg) = dxyz(xcoord,corner(
i))
 
  726             grid%regCornOrig(ycoord,
i,ireg) = dxyz(ycoord,corner(
i))
 
  727             grid%regCornOrig(zcoord,
i,ireg) = dxyz(zcoord,corner(
i))
 
  728             rvar(:,
i,ireg) = 
grid%regCornOrig(:,
i,ireg)
 
  730         ELSEIF (iselect==1) 
THEN 
  732             grid%regCornOld(xcoord,
i,ireg) = dxyz(xcoord,corner(
i))
 
  733             grid%regCornOld(ycoord,
i,ireg) = dxyz(ycoord,corner(
i))
 
  734             grid%regCornOld(zcoord,
i,ireg) = dxyz(zcoord,corner(
i))
 
  735             rvar(:,
i,ireg) = 
grid%regCornOld(:,
i,ireg)
 
  741         rvar(:,:,ireg) = 
grid%regCornOld(:,:,ireg)
 
  748           grid%regCornBuff(:,
i,ireg) = xyzold(:,corner(
i))
 
  749           rvar(:,
i,ireg) = 
grid%regCornBuff(:,
i,ireg)
 
  754           rvar(:,
i,ireg) = 
grid%regCornOrth(:,
i,ireg)
 
  758       DEALLOCATE( corner, stat=errfl )
 
  760       IF (global%error /= 0) CALL 
errorstop( global,err_deallocate,__line__ )
 
  766   DO ireg = 1,global%nRegions
 
  767     ncorns =  global%moveGridRegNc
 
  769     CALL mpi_bcast( rvar(xcoord:zcoord,1:ncorns,ireg),3*ncorns, &
 
  770                mpi_rfreal,regions(ireg)%procId,global%mpiComm,global%mpierr )
 
  771     IF (global%mpierr /=0 ) CALL 
errorstop( global,err_mpi_trouble,__line__ )
 
  773   CALL mpi_barrier( global%mpiComm,global%mpierr )
 
  775   DO ireg = 1,global%nRegions
 
  776     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
  777         regions(ireg)%active==active) 
THEN                
  779       grid => regions(ireg)%levels(ilev)%grid
 
  782           DO l=1,global%nRegions
 
  783             grid%regCornOrig(:,:,l) = rvar(:,:,l)
 
  785         ELSEIF (iselect==1) 
THEN 
  786           DO l=1,global%nRegions
 
  787             grid%regCornOld(:,:,l) = rvar(:,:,l)
 
  792           DO l=1,global%nRegions
 
  793             grid%regCornOld(:,:,l) = rvar(:,:,l)
 
  798         DO l=1,global%nRegions
 
  799           grid%regCornBuff(:,:,l) = rvar(:,:,l)
 
  803         DO l=1,global%nRegions
 
  804           grid%regCornOrth(:,:,l) = rvar(:,:,l)
 
  825   DEALLOCATE( rvar,stat=errfl )
 
  827   IF (global%error /= 0) CALL 
errorstop( global,err_deallocate,__line__ )
 
  855 #include "Indexing.h" 
  858   TYPE(t_region
), 
POINTER :: regions(:)
 
  861   INTEGER :: 
i, 
j, 
k, ipatch, 
ic, ireg, nc, nreg
 
  864   INTEGER, 
PARAMETER :: nsharedmax=16
 
  868   INTEGER :: regnc, ncorns, nbour, nshared, nsmax
 
  869   INTEGER :: ijknode(4), inoff, ijnoff, lbound, errfl
 
  870   INTEGER, 
ALLOCATABLE :: ncmin(:), nregmin(:), cshared(:,:,:)
 
  871   REAL(RFREAL) :: edgelen, ds, tol
 
  872   REAL(RFREAL), 
POINTER :: xyz(:,:)
 
  873   REAL(RFREAL), 
ALLOCATABLE :: 
dist(:,:), distmin(:)
 
  881   global => regions(1)%global
 
  884   'RFLO_ModMoveGridNconform3.F90' )
 
  888   global%MoveGridNsharedMax = nsharedmax  
 
  889   nbour = global%moveGridNbour            
 
  890   regnc = global%moveGridRegNc            
 
  893   ALLOCATE( ncmin(nbour), stat=errfl );                
IF (errfl>0) goto 88
 
  894   ALLOCATE( nregmin(nbour), stat=errfl );              
IF (errfl>0) goto 88
 
  895   ALLOCATE( distmin(nbour), stat=errfl );              
IF (errfl>0) goto 88
 
  896   ALLOCATE( 
dist(regnc,global%nRegions), stat=errfl ); 
IF (errfl>0) goto 88
 
  897   ALLOCATE( cshared(2,nsharedmax,regnc), stat=errfl ); 
IF (errfl>0) goto 88
 
  899   DO ireg = 1,global%nRegions
 
  900     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
  901         regions(ireg)%active==active) 
THEN                
  903       grid => regions(ireg)%levels(ilev)%grid
 
  905       ncorns = 
grid%nCorns(ireg)
 
  913       xyz => regions(ireg)%levels(ilev)%grid%xyz
 
  917       edgelen = 1.e+30_rfreal
 
  922             ijknode(1) = indijk(
i  ,
j  ,
k  ,inoff,ijnoff)
 
  923             ijknode(2) = indijk(
i+1,
j  ,
k  ,inoff,ijnoff)
 
  924             ijknode(3) = indijk(
i  ,
j+1,
k  ,inoff,ijnoff)
 
  925             ijknode(4) = indijk(
i  ,
j  ,
k+1,inoff,ijnoff)
 
  926             ds      = 
sqrt((xyz(xcoord,ijknode(2))-xyz(xcoord,ijknode(1)))**2+ &
 
  927                            (xyz(ycoord,ijknode(2))-xyz(ycoord,ijknode(1)))**2+ &
 
  928                            (xyz(zcoord,ijknode(2))-xyz(zcoord,ijknode(1)))**2)
 
  929             edgelen = 
min(edgelen,ds)
 
  930             ds      = 
sqrt((xyz(xcoord,ijknode(3))-xyz(xcoord,ijknode(1)))**2+ &
 
  931                            (xyz(ycoord,ijknode(3))-xyz(ycoord,ijknode(1)))**2+ &
 
  932                            (xyz(zcoord,ijknode(3))-xyz(zcoord,ijknode(1)))**2)
 
  933             edgelen = 
min(edgelen,ds)
 
  934             ds      = 
sqrt((xyz(xcoord,ijknode(4))-xyz(xcoord,ijknode(1)))**2+ &
 
  935                            (xyz(ycoord,ijknode(4))-xyz(ycoord,ijknode(1)))**2+ &
 
  936                            (xyz(zcoord,ijknode(4))-xyz(zcoord,ijknode(1)))**2)
 
  937             edgelen = 
min(edgelen,ds)
 
  941       tol = 1.e-5_rfreal*edgelen
 
  946         distmin(1:nbour) = 1.e+30_rfreal
 
  950         DO nreg = 1,global%nRegions
 
  951           DO nc = 1,
grid%nCorns(nreg)
 
  952             dist(nc,nreg) = 
sqrt((
grid%regCornOrig(xcoord,nc,nreg)- &
 
  953                                   grid%regCornOrig(xcoord,
ic,ireg))**2 + &
 
  954                                  (
grid%regCornOrig(ycoord,nc,nreg)- &
 
  955                                   grid%regCornOrig(ycoord,
ic,ireg))**2 + &
 
  956                                  (
grid%regCornOrig(zcoord,nc,nreg)- &
 
  957                                   grid%regCornOrig(zcoord,
ic,ireg))**2)
 
  971             IF (
dist(nc,nreg)<distmin(1) .AND. 
dist(nc,nreg)>edgelen) 
THEN 
  973                 distmin(
k) = distmin(
k-1)
 
  974                 ncmin(
k)   = ncmin(
k-1)
 
  975                 nregmin(
k) = nregmin(
k-1)
 
  977               distmin(1) = 
dist(nc,nreg)
 
  983               IF (
dist(nc,nreg) > (distmin(
k-1) + tol) .AND. &
 
  984                   dist(nc,nreg) < (distmin(
k) - tol)) 
THEN 
  989                   distmin(
j) = distmin(
j-1)
 
  990                   ncmin(
j)   = ncmin(
j-1)
 
  991                   nregmin(
j) = nregmin(
j-1)
 
  993                 distmin(
k) = 
dist(nc,nreg)
 
 1000             IF (
dist(nc,nreg)<edgelen) 
THEN 
 1002               IF (nshared > nsharedmax) 
THEN 
 1003                 CALL 
errorstop( global,err_illegal_value,__line__, &
 
 1004                 'too low nSharedMax in RFLO_MgFrameSrchNeighbors')
 
 1006               cshared(1,nshared,
ic) = nc
 
 1007               cshared(2,nshared,
ic) = nreg
 
 1013         grid%nShared(
ic) = nshared
 
 1014         nsmax = 
max( nsmax,nshared )
 
 1026       grid%nghbor(3,:,:) = 1
 
 1030       ALLOCATE( 
grid%cshared(2,nsmax,regnc),stat=errfl )
 
 1031       global%error = errfl
 
 1032       IF (global%error /= 0) CALL 
errorstop( global,err_allocate,__line__ )
 
 1033       grid%cshared(1:2,1:nsmax,1:ncorns) = cshared(1:2,1:nsmax,1:ncorns)
 
 1040   DEALLOCATE( ncmin,   stat=errfl ); 
IF (errfl>0) goto 99
 
 1041   DEALLOCATE( nregmin, stat=errfl ); 
IF (errfl>0) goto 99
 
 1042   DEALLOCATE( distmin, stat=errfl ); 
IF (errfl>0) goto 99
 
 1043   DEALLOCATE( 
dist,    stat=errfl ); 
IF (errfl>0) goto 99
 
 1044   DEALLOCATE( cshared, stat=errfl ); 
IF (errfl>0) goto 99
 
 1048   DO ireg = 1,global%nRegions
 
 1049     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
 1050         regions(ireg)%active==active) 
THEN                
 1052       grid => regions(ireg)%levels(ilev)%grid
 
 1055       IF ((.NOT. regions(ireg)%levels(ilev)%cornerCells(1)%interact).OR. &
 
 1056           (.NOT. regions(ireg)%levels(ilev)%edgeCells(1)%interact).OR. &
 
 1057           (.NOT. regions(ireg)%levels(ilev)%edgeCells(4)%interact).OR. &
 
 1058           (.NOT. regions(ireg)%levels(ilev)%edgeCells(9)%interact)) &
 
 1059         grid%nghbor(3,1:nbour,1) = 0
 
 1062       IF ((.NOT. regions(ireg)%levels(ilev)%cornerCells(2)%interact).OR. &
 
 1063           (.NOT. regions(ireg)%levels(ilev)%edgeCells(1)%interact).OR. &
 
 1064           (.NOT. regions(ireg)%levels(ilev)%edgeCells(2)%interact).OR. &
 
 1065           (.NOT. regions(ireg)%levels(ilev)%edgeCells(10)%interact)) &
 
 1066         grid%nghbor(3,1:nbour,2) = 0
 
 1069       IF ((.NOT. regions(ireg)%levels(ilev)%cornerCells(3)%interact).OR. &
 
 1070           (.NOT. regions(ireg)%levels(ilev)%edgeCells(2)%interact).OR. &
 
 1071           (.NOT. regions(ireg)%levels(ilev)%edgeCells(3)%interact).OR. &
 
 1072           (.NOT. regions(ireg)%levels(ilev)%edgeCells(11)%interact)) &
 
 1073         grid%nghbor(3,1:nbour,3) = 0
 
 1076       IF ((.NOT. regions(ireg)%levels(ilev)%cornerCells(4)%interact).OR. &
 
 1077           (.NOT. regions(ireg)%levels(ilev)%edgeCells(3)%interact).OR. &
 
 1078           (.NOT. regions(ireg)%levels(ilev)%edgeCells(4)%interact).OR. &
 
 1079           (.NOT. regions(ireg)%levels(ilev)%edgeCells(12)%interact)) &
 
 1080         grid%nghbor(3,1:nbour,4) = 0
 
 1083       IF ((.NOT. regions(ireg)%levels(ilev)%cornerCells(5)%interact).OR. &
 
 1084           (.NOT. regions(ireg)%levels(ilev)%edgeCells(5)%interact).OR. &
 
 1085           (.NOT. regions(ireg)%levels(ilev)%edgeCells(8)%interact).OR. &
 
 1086           (.NOT. regions(ireg)%levels(ilev)%edgeCells(9)%interact)) &
 
 1087         grid%nghbor(3,1:nbour,5) = 0
 
 1090       IF ((.NOT. regions(ireg)%levels(ilev)%cornerCells(6)%interact).OR. &
 
 1091           (.NOT. regions(ireg)%levels(ilev)%edgeCells(5)%interact).OR. &
 
 1092           (.NOT. regions(ireg)%levels(ilev)%edgeCells(6)%interact).OR. &
 
 1093           (.NOT. regions(ireg)%levels(ilev)%edgeCells(10)%interact)) &
 
 1094         grid%nghbor(3,1:nbour,6) = 0
 
 1097       IF ((.NOT. regions(ireg)%levels(ilev)%cornerCells(7)%interact).OR. &
 
 1098           (.NOT. regions(ireg)%levels(ilev)%edgeCells(6)%interact).OR. &
 
 1099           (.NOT. regions(ireg)%levels(ilev)%edgeCells(7)%interact).OR. &
 
 1100           (.NOT. regions(ireg)%levels(ilev)%edgeCells(11)%interact)) &
 
 1101         grid%nghbor(3,1:nbour,7) = 0
 
 1104       IF ((.NOT. regions(ireg)%levels(ilev)%cornerCells(8)%interact).OR. &
 
 1105           (.NOT. regions(ireg)%levels(ilev)%edgeCells(7)%interact).OR. &
 
 1106           (.NOT. regions(ireg)%levels(ilev)%edgeCells(8)%interact).OR. &
 
 1107           (.NOT. regions(ireg)%levels(ilev)%edgeCells(12)%interact)) &
 
 1108         grid%nghbor(3,1:nbour,8) = 0
 
 1115   DO ireg = 1,global%nRegions
 
 1116     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
 1117         regions(ireg)%active==active) 
THEN                
 1119       grid => regions(ireg)%levels(ilev)%grid
 
 1123       DO ipatch=1,regions(ireg)%nPatches
 
 1124         patch  => regions(ireg)%levels(ilev)%patches(ipatch)
 
 1125         lbound =  
patch%lbound
 
 1126         bctype =  
patch%bcType
 
 1131         IF ((bctype>=bc_inflow     .AND. bctype<=bc_inflow    +bc_range) .OR. &
 
 1132             (bctype>=bc_outflow    .AND. bctype<=bc_outflow   +bc_range) .OR. &
 
 1133             (bctype>=bc_slipwall   .AND. bctype<=bc_slipwall  +bc_range) .OR. &
 
 1134             (bctype>=bc_noslipwall .AND. bctype<=bc_noslipwall+bc_range) .OR. &
 
 1135             (bctype>=bc_farfield   .AND. bctype<=bc_farfield  +bc_range) .OR. &
 
 1136             (bctype>=bc_injection  .AND. bctype<=bc_injection +bc_range) .OR. &
 
 1137             (bctype>=bc_tra_peri   .AND. bctype<=bc_tra_peri  +bc_range) .OR. &
 
 1138             (bctype>=bc_rot_peri   .AND. bctype<=bc_rot_peri  +bc_range)) 
THEN 
 1139           IF (lbound==1 .OR. lbound==2) 
THEN 
 1141             ijknode(2) = indijk(
ibeg,
jbeg,kend,inoff,ijnoff)
 
 1142             ijknode(3) = indijk(
ibeg,
jend,kend,inoff,ijnoff)
 
 1144           ELSEIF (lbound==3 .OR. lbound==4) 
THEN 
 1146             ijknode(2) = indijk(
ibeg,
jbeg,kend,inoff,ijnoff)
 
 1147             ijknode(3) = indijk(
iend,
jbeg,kend,inoff,ijnoff)
 
 1149           ELSEIF (lbound==5 .OR. lbound==6) 
THEN 
 1155           DO ic = 1,
grid%nCorns(ireg)
 
 1156             IF (ijknode(1)==
grid%ijkCorn(
ic,ireg) .OR. &
 
 1157                 ijknode(2)==
grid%ijkCorn(
ic,ireg) .OR. &
 
 1158                 ijknode(3)==
grid%ijkCorn(
ic,ireg) .OR. &
 
 1159                 ijknode(4)==
grid%ijkCorn(
ic,ireg)) 
grid%nghbor(3,1:nbour,
ic)= 2
 
 1169   DO ireg = 1,global%nRegions
 
 1170     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
 1171         regions(ireg)%active==active) 
THEN                
 1173       grid => regions(ireg)%levels(ilev)%grid
 
 1177       DO ipatch=1,regions(ireg)%nPatches
 
 1178         patch  => regions(ireg)%levels(ilev)%patches(ipatch)
 
 1179         lbound =  
patch%lbound
 
 1180         bctype =  
patch%bcType
 
 1185         IF (
patch%bcMotion == bc_external) 
THEN 
 1186           IF (lbound==1 .OR. lbound==2) 
THEN 
 1188             ijknode(2) = indijk(
ibeg,
jbeg,kend,inoff,ijnoff)
 
 1189             ijknode(3) = indijk(
ibeg,
jend,kend,inoff,ijnoff)
 
 1191           ELSEIF (lbound==3 .OR. lbound==4) 
THEN 
 1193             ijknode(2) = indijk(
ibeg,
jbeg,kend,inoff,ijnoff)
 
 1194             ijknode(3) = indijk(
iend,
jbeg,kend,inoff,ijnoff)
 
 1196           ELSEIF (lbound==5 .OR. lbound==6) 
THEN 
 1202           DO ic = 1,
grid%nCorns(ireg)
 
 1203             IF (ijknode(1)==
grid%ijkCorn(
ic,ireg) .OR. &
 
 1204                 ijknode(2)==
grid%ijkCorn(
ic,ireg) .OR. &
 
 1205                 ijknode(3)==
grid%ijkCorn(
ic,ireg) .OR. &
 
 1206                 ijknode(4)==
grid%ijkCorn(
ic,ireg)) 
grid%nghbor(3,1:nbour,
ic)= 0
 
 1230   global%error = errfl
 
 1231   CALL 
errorstop( global,err_allocate,__line__ )
 
 1235   global%error = errfl
 
 1236   CALL 
errorstop( global,err_deallocate,__line__ )
 
 1264 #include "Indexing.h" 
 1267   TYPE(t_region
), 
POINTER :: regions(:)
 
 1270   INTEGER :: 
i, 
j, 
k, 
ic, ireg, nc, nreg, lc, lreg
 
 1274   INTEGER :: ijknode(4), inoff, ijnoff, errfl
 
 1275   REAL(RFREAL) :: edgelen, ds, du2, dumax
 
 1276   REAL(RFREAL), 
POINTER :: xyz(:,:)
 
 1277   REAL(RFREAL), 
ALLOCATABLE :: 
dist(:,:)
 
 1285   global => regions(1)%global
 
 1288   'RFLO_ModMoveGridNconform3.F90' )
 
 1292   ALLOCATE( 
dist(global%moveGridRegNc,global%nRegions), stat=errfl )
 
 1293   IF (errfl>0) goto 88
 
 1297   DO ireg = 1,global%nRegions
 
 1298     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
 1299         regions(ireg)%active==active) 
THEN                
 1301       grid => regions(ireg)%levels(ilev)%grid
 
 1307       xyz => regions(ireg)%levels(ilev)%gridOld%xyz
 
 1311       edgelen = 1.e+30_rfreal
 
 1316             ijknode(1) = indijk(
i  ,
j  ,
k  ,inoff,ijnoff)
 
 1317             ijknode(2) = indijk(
i+1,
j  ,
k  ,inoff,ijnoff)
 
 1318             ijknode(3) = indijk(
i  ,
j+1,
k  ,inoff,ijnoff)
 
 1319             ijknode(4) = indijk(
i  ,
j  ,
k+1,inoff,ijnoff)
 
 1320             ds      = 
sqrt((xyz(xcoord,ijknode(2))-xyz(xcoord,ijknode(1)))**2+ &
 
 1321                            (xyz(ycoord,ijknode(2))-xyz(ycoord,ijknode(1)))**2+ &
 
 1322                            (xyz(zcoord,ijknode(2))-xyz(zcoord,ijknode(1)))**2)
 
 1323             edgelen = 
min(edgelen,ds)
 
 1324             ds      = 
sqrt((xyz(xcoord,ijknode(3))-xyz(xcoord,ijknode(1)))**2+ &
 
 1325                            (xyz(ycoord,ijknode(3))-xyz(ycoord,ijknode(1)))**2+ &
 
 1326                            (xyz(zcoord,ijknode(3))-xyz(zcoord,ijknode(1)))**2)
 
 1327             edgelen = 
min(edgelen,ds)
 
 1328             ds      = 
sqrt((xyz(xcoord,ijknode(4))-xyz(xcoord,ijknode(1)))**2+ &
 
 1329                            (xyz(ycoord,ijknode(4))-xyz(ycoord,ijknode(1)))**2+ &
 
 1330                            (xyz(zcoord,ijknode(4))-xyz(zcoord,ijknode(1)))**2)
 
 1331             edgelen = 
min(edgelen,ds)
 
 1336       DO ic = 1,
grid%nCorns(ireg)
 
 1337         DO k = 1,global%moveGridNbour
 
 1340           dumax = -1.e+20_rfreal
 
 1342           DO lreg = 1,global%nRegions
 
 1343             DO lc = 1,
grid%nCorns(lreg)
 
 1344               dist(lc,lreg) = 
sqrt((
grid%regCornOrig(xcoord,nc,nreg)- &
 
 1345                                     grid%regCornOrig(xcoord,lc,lreg))**2 + &
 
 1346                                     (
grid%regCornOrig(ycoord,nc,nreg)- &
 
 1347                                     grid%regCornOrig(ycoord,lc,lreg))**2 + &
 
 1348                                     (
grid%regCornOrig(zcoord,nc,nreg)- &
 
 1349                                     grid%regCornOrig(zcoord,lc,lreg))**2)
 
 1351               IF (
dist(lc,lreg) < 0.1_rfreal*edgelen) 
THEN 
 1352                 du2 = 
grid%regCornOld(xcoord,lc,lreg)**2 + &
 
 1353                       grid%regCornOld(ycoord,lc,lreg)**2 + &
 
 1354                       grid%regCornOld(zcoord,lc,lreg)**2
 
 1356                 IF ( du2 > dumax ) 
THEN 
 1372   DEALLOCATE( 
dist, stat=errfl ); 
IF (errfl>0) goto 99
 
 1380   global%error = errfl
 
 1381   CALL 
errorstop( global,err_allocate,__line__ )
 
 1385   global%error = errfl
 
 1386   CALL 
errorstop( global,err_deallocate,__line__ )
 
 1413 #include "Indexing.h" 
 1416   TYPE(t_region
), 
POINTER :: regions(:)
 
 1419   INTEGER :: ireg, ico, 
k, l
 
 1422   INTEGER :: ilev, interior, ijkcorn, nbour, errfl
 
 1424   INTEGER, 
ALLOCATABLE :: nco(:), nreg(:)
 
 1425   REAL(RFREAL) :: rdenom, amp(3), pow, 
sum 
 1426   REAL(RFREAL), 
ALLOCATABLE :: 
dist(:), wght(:)
 
 1433   global => regions(1)%global
 
 1436   'RFLO_ModMoveGridNconform3.F90' )
 
 1441   amp(1) = global%moveGridAmplifX
 
 1442   amp(2) = global%moveGridAmplifY
 
 1443   amp(3) = global%moveGridAmplifZ
 
 1444   pow    = global%moveGridPower
 
 1445   nbour  = global%moveGridNbour
 
 1447   ALLOCATE( nco(nbour), stat=errfl ); 
IF (errfl>0) goto 88
 
 1448   ALLOCATE( nreg(nbour), stat=errfl ); 
IF (errfl>0) goto 88
 
 1450   ALLOCATE( 
dist(nbour), stat=errfl ); 
IF (errfl>0) goto 88
 
 1451   ALLOCATE( wght(nbour), stat=errfl ); 
IF (errfl>0) goto 88
 
 1453   DO ireg = 1,global%nRegions
 
 1454     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
 1455         regions(ireg)%active==active) 
THEN                
 1457       grid => regions(ireg)%levels(ilev)%grid
 
 1459       DO ico = 1,
grid%nCorns(ireg)
 
 1460         nco(1:nbour)  = 
grid%nghbor(1,1:nbour,ico)
 
 1461         nreg(1:nbour) = 
grid%nghbor(2,1:nbour,ico)
 
 1462         interior  = 
grid%nghbor(3,1  ,ico)
 
 1464         IF (interior==1) 
THEN 
 1466             dist(
k) = (
grid%regCornOrig(xcoord,nco(
k),nreg(
k)) - &
 
 1467                        grid%regCornOrig(xcoord,ico,ireg))**2 +   &
 
 1468                       (
grid%regCornOrig(ycoord,nco(
k),nreg(
k)) - &
 
 1469                        grid%regCornOrig(ycoord,ico,ireg))**2 +   &
 
 1470                       (
grid%regCornOrig(zcoord,nco(
k),nreg(
k)) - &
 
 1471                        grid%regCornOrig(zcoord,ico,ireg))**2
 
 1479           rdenom = 1._rfreal/
sum 
 1485               CALL 
errorstop( global,err_illegal_value,__line__, &
 
 1486                               'invalid weights for global frame motion')
 
 1491             sum = 
sum + wght(l)*
grid%regCornOld(xcoord,nco(l),nreg(l))
 
 1493           grid%regCorn(xcoord,ico,ireg) = 
sum 
 1497             sum = 
sum + wght(l)*
grid%regCornOld(ycoord,nco(l),nreg(l))
 
 1499           grid%regCorn(ycoord,ico,ireg) = 
sum 
 1503             sum = 
sum + wght(l)*
grid%regCornOld(zcoord,nco(l),nreg(l))
 
 1505           grid%regCorn(zcoord,ico,ireg) = 
sum 
 1512   DO ireg = 1,global%nRegions
 
 1513     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
 1514         regions(ireg)%active==active) 
THEN                
 1516       grid => regions(ireg)%levels(ilev)%grid
 
 1518       DO ico = 1,
grid%nCorns(ireg)
 
 1519         interior = 
grid%nghbor(3, 1, ico)
 
 1520         IF (interior==1) 
THEN 
 1521           grid%regCornOld(xcoord,ico,ireg)=amp(1)*
grid%regCorn(xcoord,ico,ireg)
 
 1522           grid%regCornOld(ycoord,ico,ireg)=amp(2)*
grid%regCorn(ycoord,ico,ireg)
 
 1523           grid%regCornOld(zcoord,ico,ireg)=amp(3)*
grid%regCorn(zcoord,ico,ireg)
 
 1525           ijkcorn = 
grid%ijkCorn(ico,ireg)
 
 1526           grid%xyz(xcoord,ijkcorn) = 
grid%regCorn(xcoord,ico,ireg)
 
 1527           grid%xyz(ycoord,ijkcorn) = 
grid%regCorn(ycoord,ico,ireg)
 
 1528           grid%xyz(zcoord,ijkcorn) = 
grid%regCorn(zcoord,ico,ireg)
 
 1537   DEALLOCATE( nco, stat=errfl );  
IF (errfl>0) goto 99
 
 1538   DEALLOCATE( nreg, stat=errfl ); 
IF (errfl>0) goto 99
 
 1540   DEALLOCATE( 
dist, stat=errfl ); 
IF (errfl>0) goto 99
 
 1541   DEALLOCATE( wght, stat=errfl ); 
IF (errfl>0) goto 99
 
 1549   global%error = errfl
 
 1550   CALL 
errorstop( global,err_allocate,__line__ )
 
 1554   global%error = errfl
 
 1555   CALL 
errorstop( global,err_deallocate,__line__ )
 
 1585 #include "Indexing.h" 
 1588   TYPE(t_region
), 
POINTER :: regions(:)
 
 1591   INTEGER :: ireg, ico, lb, mc, 
k 
 1594   INTEGER :: ilev, interior, ijkcorn, ind(6,4,4), kf, nc, nreg
 
 1595   INTEGER :: lbb, lbe, orthdir
 
 1596   REAL(RFREAL) :: rlen, eps, orthwg(xcoord:zcoord)
 
 1597   REAL(RFREAL) :: dif(xcoord:zcoord), shift(xcoord:zcoord)
 
 1598   REAL(RFREAL) :: s1(xcoord:zcoord), s2(xcoord:zcoord), s3(xcoord:zcoord) 
 
 1599   REAL(RFREAL), 
POINTER :: cbuff(:,:,:), corth(:,:,:)
 
 1607   global => regions(1)%global
 
 1610   'RFLO_ModMoveGridNconform3.F90' )
 
 1618   ind(1, 1,:) = (/5, 1, 4, 2/)
 
 1619   ind(1, 2,:) = (/6, 2, 1, 3/)
 
 1620   ind(1, 3,:) = (/7, 3, 2, 4/)
 
 1621   ind(1, 4,:) = (/8, 4, 3, 1/)
 
 1622   ind(2, 1,:) = (/1, 5, 6, 8/)
 
 1623   ind(2, 2,:) = (/2, 6, 7, 5/)
 
 1624   ind(2, 3,:) = (/3, 7, 8, 6/)
 
 1625   ind(2, 4,:) = (/4, 8, 5, 7/)
 
 1626   ind(3, 1,:) = (/4, 1, 2, 5/)
 
 1627   ind(3, 2,:) = (/8, 5, 1, 6/)
 
 1628   ind(3, 3,:) = (/7, 6, 5, 2/)
 
 1629   ind(3, 4,:) = (/3, 2, 6, 1/)
 
 1630   ind(4, 1,:) = (/1, 4, 8, 3/)
 
 1631   ind(4, 2,:) = (/5, 8, 7, 4/)
 
 1632   ind(4, 3,:) = (/6, 7, 3, 8/)
 
 1633   ind(4, 4,:) = (/2, 3, 4, 7/)
 
 1634   ind(5, 1,:) = (/2, 1, 5, 4/)
 
 1635   ind(5, 2,:) = (/3, 4, 1, 8/)
 
 1636   ind(5, 3,:) = (/7, 8, 4, 5/)
 
 1637   ind(5, 4,:) = (/6, 5, 8, 1/)
 
 1638   ind(6, 1,:) = (/1, 2, 3, 6/)
 
 1639   ind(6, 2,:) = (/4, 3, 7, 2/)
 
 1640   ind(6, 3,:) = (/8, 7, 6, 3/)
 
 1641   ind(6, 4,:) = (/5, 6, 2, 7/)
 
 1645   orthdir        = global%moveGridOrthDir
 
 1646   orthwg(xcoord) = global%moveGridOrthWghtX *(1._rfreal + global%skewness)
 
 1647   orthwg(ycoord) = global%moveGridOrthWghtY *(1._rfreal + global%skewness)
 
 1648   orthwg(zcoord) = global%moveGridOrthWghtZ *(1._rfreal + global%skewness)
 
 1656   DO ireg = 1,global%nRegions
 
 1657     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
 1658         regions(ireg)%active==active) 
THEN                
 1660       grid   => regions(ireg)%levels(ilev)%grid
 
 1661       cbuff  => 
grid%regCornBuff
 
 1662       corth  => 
grid%regCornOrth
 
 1668         IF (
grid%boundMoved(lb)) solidreg = .true.
 
 1671       IF (orthdir==off) 
THEN           
 1674       ELSEIF (orthdir==icoord) 
THEN    
 1677       ELSEIF (orthdir==jcoord) 
THEN    
 1680       ELSEIF (orthdir==kcoord) 
THEN    
 1689         IF (
grid%boundMoved(lb)) 
THEN 
 1693             rlen = 
sqrt( (cbuff(xcoord,ind(lb,mc,1),ireg)- &
 
 1694                           cbuff(xcoord,ind(lb,mc,2),ireg))**2 + &
 
 1695                          (cbuff(ycoord,ind(lb,mc,1),ireg)- &
 
 1696                           cbuff(ycoord,ind(lb,mc,2),ireg))**2 + &
 
 1697                          (cbuff(zcoord,ind(lb,mc,1),ireg)- &
 
 1698                           cbuff(zcoord,ind(lb,mc,2),ireg))**2 )
 
 1699             s1(:) = cbuff(:,ind(lb,mc,3),ireg)-cbuff(:,ind(lb,mc,2),ireg)
 
 1700             s2(:) = cbuff(:,ind(lb,mc,4),ireg)-cbuff(:,ind(lb,mc,2),ireg)
 
 1702             corth(:,ind(lb,mc,1),ireg) = cbuff(:,ind(lb,mc,2),ireg)+ &
 
 1715   DO ireg = 1,global%nRegions
 
 1716     IF (regions(ireg)%procid==global%myProcid .AND. &    
 
 1717         regions(ireg)%active==active) 
THEN                
 1719       grid   => regions(ireg)%levels(ilev)%grid
 
 1720       cbuff  => 
grid%regCornBuff
 
 1721       corth  => 
grid%regCornOrth
 
 1723       DO ico = 1,
grid%nCorns(ireg)
 
 1724         interior = 
grid%nghbor(3, 1, ico)
 
 1726         IF (interior==1) 
THEN 
 1727           ijkcorn = 
grid%ijkCorn(ico,ireg)
 
 1730           eps = 100._rfreal*epsilon( 1._rfreal )
 
 1732           DO k = 1,
grid%nshared(ico)
 
 1733             nc   = 
grid%cshared(1,
k,ico)
 
 1734             nreg = 
grid%cshared(2,
k,ico)
 
 1735             dif(:)   = corth(:,nc,nreg) - cbuff(:,nc,nreg)
 
 1736             IF ((abs(dif(xcoord)) > eps) .OR. &
 
 1737                 (abs(dif(ycoord)) > eps) .OR. &
 
 1738                 (abs(dif(zcoord)) > eps)) kf = kf+1
 
 1739             shift(:) = shift(:) + dif(:)
 
 1741           IF ((abs(shift(xcoord)) > eps) .OR. &
 
 1742               (abs(shift(ycoord)) > eps) .OR. &
 
 1743               (abs(shift(zcoord)) > eps)) 
THEN 
 1746             grid%regCorn(:,ico,ireg) = (1._rfreal-orthwg(:))* &
 
 1747                                        grid%regCorn(:,ico,ireg) + &
 
 1748                                        orthwg(:)*shift(:)/kf
 
 1751           ijkcorn = 
grid%ijkCorn(ico,ireg)
 
 1752           grid%xyz(xcoord,ijkcorn) = 
grid%regCorn(xcoord,ico,ireg)
 
 1753           grid%xyz(ycoord,ijkcorn) = 
grid%regCorn(ycoord,ico,ireg)
 
 1754           grid%xyz(zcoord,ijkcorn) = 
grid%regCorn(zcoord,ico,ireg)
 
 1794   LOGICAL :: somemoved
 
 1797   TYPE(t_region
), 
POINTER :: regions(:)
 
 1800   INTEGER :: ireg, iter, ipatch, 
i, 
j, 
k, ijkn
 
 1803   INTEGER :: ilev, bctype
 
 1811   global => regions(1)%global
 
 1814   'RFLO_ModMoveGridNconform3.F90' )
 
 1821   DO ireg=1,global%nRegions
 
 1822     IF (regions(ireg)%procid==global%myProcid .AND. &   
 
 1823         regions(ireg)%active==active .AND. &            
 
 1824         regions(ireg)%mixtInput%moveGrid) 
THEN           
 1826       grid      => regions(ireg)%levels(ilev)%grid
 
 1827       gridold   => regions(ireg)%levels(ilev)%gridOld
 
 1832       gridold%indSvel  = 
grid%indSvel
 
 1833       gridold%ipc      = 
grid%ipc
 
 1834       gridold%jpc      = 
grid%jpc
 
 1835       gridold%kpc      = 
grid%kpc
 
 1836       gridold%xyz(:,:) = 
grid%xyz(:,:)
 
 1837       gridold%si(:,:)  = 
grid%si(:,:)
 
 1838       gridold%sj(:,:)  = 
grid%sj(:,:)
 
 1839       gridold%sk(:,:)  = 
grid%sk(:,:)
 
 1840       gridold%vol(:)   = 
grid%vol(:)
 
 1870   DO ireg=1,global%nRegions
 
 1871     IF (regions(ireg)%procid==global%myProcid .AND. &   
 
 1872         regions(ireg)%active==active .AND. &            
 
 1873         regions(ireg)%mixtInput%moveGrid) 
THEN           
 1875       grid      => regions(ireg)%levels(ilev)%grid
 
 1876       gridold   => regions(ireg)%levels(ilev)%gridOld
 
 1884                               gridold%xyzOld,
grid%xyz )
 
 1901                                        gridold%xyzOld,
grid%xyz )
 
 1934 #include "Indexing.h" 
 1937   TYPE(t_region
) :: region
 
 1940   INTEGER :: ireg, ipatch, 
i, 
j, 
k 
 1943   INTEGER :: ilev, ijkn, lbound
 
 1951   global => region%global
 
 1954   'RFLO_ModMoveGridNconform3.F90' )
 
 1961   grid => region%levels(ilev)%grid
 
 1965   DO ipatch=1,region%nPatches
 
 1966     patch  => region%levels(ilev)%patches(ipatch)
 
 1967     lbound =  
patch%lbound
 
 1969     IF (
patch%bcMotion == bc_external .AND. &
 
 1970         (
grid%allExternal(lbound).EQV..false.)) 
THEN 
 1978             ijkn = indijk(
i,
j,
k,inoff,ijnoff)
 
 1979             grid%xyz(xcoord,ijkn) = 
grid%xyzOld(xcoord,ijkn)
 
 1980             grid%xyz(ycoord,ijkn) = 
grid%xyzOld(ycoord,ijkn)
 
 1981             grid%xyz(zcoord,ijkn) = 
grid%xyzOld(zcoord,ijkn)
 
 2019                               arclen12,arclen34,arclen56,xyzold,dnode )
 
 2025 #include "Indexing.h" 
 2028   LOGICAL :: boundmoved(6), allexternal(6), edgemoved(12)
 
 2031   REAL(RFREAL), 
POINTER :: arclen12(:,:), arclen34(:,:), arclen56(:,:)
 
 2032   REAL(RFREAL), 
POINTER :: dnode(:,:), xyzold(:,:)
 
 2034   TYPE(t_region
) :: region
 
 2037   INTEGER :: iedge, ind
 
 2041   INTEGER :: indbeg, indend, ijkn, ijkn1, ijknbeg, ijknend, inoff, ijnoff
 
 2042   INTEGER :: switch(12,11), intertype, iedgeglo
 
 2044   REAL(RFREAL) :: arclen, ds, 
s, dn(3), dnbeg(3), dnend(3)
 
 2050   'RFLO_ModMoveGridNconform3.F90' )
 
 2072   switch( 1,:) = (/5, 6, 1, 3, 56, 
kpnbeg, kpnend, 
ipnbeg, 
jpnbeg,  1,  2/)
 
 2073   switch( 2,:) = (/3, 4, 1, 6, 34, 
jpnbeg, 
jpnend, kpnend, 
ipnbeg,  2,  3/)
 
 2074   switch( 3,:) = (/5, 6, 1, 4, 56, 
kpnbeg, kpnend, 
ipnbeg, 
jpnend,  4,  3/)
 
 2075   switch( 4,:) = (/3, 4, 1, 5, 34, 
jpnbeg, 
jpnend, 
kpnbeg, 
ipnbeg,  1,  4/)
 
 2076   switch( 5,:) = (/5, 6, 2, 3, 56, 
kpnbeg, kpnend, 
ipnend, 
jpnbeg,  5,  6/)
 
 2077   switch( 6,:) = (/3, 4, 2, 6, 34, 
jpnbeg, 
jpnend, kpnend, 
ipnend,  6,  7/)
 
 2078   switch( 7,:) = (/5, 6, 2, 4, 56, 
kpnbeg, kpnend, 
ipnend, 
jpnend,  8,  7/)
 
 2079   switch( 8,:) = (/3, 4, 2, 5, 34, 
jpnbeg, 
jpnend, 
kpnbeg, 
ipnend,  5,  8/)
 
 2080   switch( 9,:) = (/1, 2, 3, 5, 12, 
ipnbeg, 
ipnend, 
jpnbeg, 
kpnbeg,  1,  5/)
 
 2081   switch(10,:) = (/1, 2, 3, 6, 12, 
ipnbeg, 
ipnend, 
jpnbeg, kpnend,  2,  6/)
 
 2082   switch(11,:) = (/1, 2, 4, 5, 12, 
ipnbeg, 
ipnend, 
jpnend, 
kpnbeg,  4,  8/)
 
 2083   switch(12,:) = (/1, 2, 4, 6, 12, 
ipnbeg, 
ipnend, 
jpnend, kpnend,  3,  7/)
 
 2087   edgemoved(:) = .false.
 
 2090     IF (boundmoved(1) .AND. allexternal(1)) 
THEN 
 2091       edgemoved( 1) = .true.; edgemoved( 2) = .true.
 
 2092       edgemoved( 3) = .true.; edgemoved( 4) = .true.
 
 2094     IF (boundmoved(2) .AND. allexternal(2)) 
THEN 
 2095       edgemoved( 5) = .true.; edgemoved( 6) = .true.
 
 2096       edgemoved( 7) = .true.; edgemoved( 8) = .true.
 
 2098     IF (boundmoved(3) .AND. allexternal(3)) 
THEN 
 2099       edgemoved( 1) = .true.; edgemoved( 5) = .true.
 
 2100       edgemoved( 9) = .true.; edgemoved(10) = .true.
 
 2102     IF (boundmoved(4) .AND. allexternal(4)) 
THEN 
 2103       edgemoved( 3) = .true.; edgemoved( 7) = .true.
 
 2104       edgemoved(11) = .true.; edgemoved(12) = .true.
 
 2106     IF (boundmoved(5) .AND. allexternal(5)) 
THEN 
 2107       edgemoved( 4) = .true.; edgemoved( 8) = .true.
 
 2108       edgemoved( 9) = .true.; edgemoved(11) = .true.
 
 2110     IF (boundmoved(6) .AND. allexternal(6)) 
THEN 
 2111       edgemoved( 2) = .true.; edgemoved( 6) = .true.
 
 2112       edgemoved(10) = .true.; edgemoved(12) = .true.
 
 2119     IF (.NOT.edgemoved(iedge)) 
THEN 
 2121       edgemoved(iedge) = .true.
 
 2124       indbeg = switch(iedge,6)
 
 2125       indend = switch(iedge,7)
 
 2126       l1c    = switch(iedge,8)
 
 2127       l2c    = switch(iedge,9)
 
 2130       IF (iedge==11) iedgeglo=12
 
 2131       IF (iedge==12) iedgeglo=11
 
 2132       interact  = region%levels(ilev)%edgeCells(iedgeglo)%interact
 
 2133       intertype = region%levels(ilev)%edgeCells(iedgeglo)%interType
 
 2135       IF (((region%levels(ilev)%grid%nghbor(3,1,switch(iedge,10))==1 .OR. &
 
 2136             region%levels(ilev)%grid%nghbor(3,1,switch(iedge,11))==1) .AND. &
 
 2137            ((interact .EQV. .true.) .AND. (intertype==edge_interact_full))) &
 
 2139           region%levels(ilev)%grid%nghbor(3,1,switch(iedge,10))==2 .OR. &
 
 2140           region%levels(ilev)%grid%nghbor(3,1,switch(iedge,11))==2) 
THEN 
 2147         DO ind=indbeg+1,indend-1
 
 2148           IF (switch(iedge,5) == 12) 
THEN 
 2149             ijkn     = indijk(ind   ,l1c,l2c,inoff,ijnoff)
 
 2150             ijkn1    = indijk(ind-1 ,l1c,l2c,inoff,ijnoff)
 
 2151             ijknbeg  = indijk(indbeg,l1c,l2c,inoff,ijnoff)
 
 2152             ijknend  = indijk(indend,l1c,l2c,inoff,ijnoff)
 
 2153             arclen   = arclen12(l1c,l2c)
 
 2154             dnbeg(:) = dnode(:,ijknbeg)
 
 2155             dnend(:) = dnode(:,ijknend)
 
 2156           ELSE IF (switch(iedge,5) == 34) 
THEN 
 2157             ijkn     = indijk(l2c,ind   ,l1c,inoff,ijnoff)
 
 2158             ijkn1    = indijk(l2c,ind-1 ,l1c,inoff,ijnoff)
 
 2159             ijknbeg  = indijk(l2c,indbeg,l1c,inoff,ijnoff)
 
 2160             ijknend  = indijk(l2c,indend,l1c,inoff,ijnoff)
 
 2161             arclen   = arclen34(l1c,l2c)
 
 2162             dnbeg(:) = dnode(:,ijknbeg)
 
 2163             dnend(:) = dnode(:,ijknend)
 
 2164           ELSE IF (switch(iedge,5) == 56) 
THEN 
 2165             ijkn     = indijk(l1c,l2c,ind   ,inoff,ijnoff)
 
 2166             ijkn1    = indijk(l1c,l2c,ind-1 ,inoff,ijnoff)
 
 2167             ijknbeg  = indijk(l1c,l2c,indbeg,inoff,ijnoff)
 
 2168             ijknend  = indijk(l1c,l2c,indend,inoff,ijnoff)
 
 2169             arclen   = arclen56(l1c,l2c)
 
 2170             dnbeg(:) = dnode(:,ijknbeg)
 
 2171             dnend(:) = dnode(:,ijknend)
 
 2173           ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2174                          (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2175                          (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2179           dnode(:,ijkn) = dn(:)
 
 2216 #include "Indexing.h" 
 2219   TYPE(t_region
) :: region
 
 2220   LOGICAL :: edgemoved(12)
 
 2221   REAL(RFREAL), 
POINTER :: dnode(:,:), xyzold(:,:)
 
 2224   INTEGER :: ipedge, ind, ipatch, 
ic 
 2227   INTEGER :: ilev, 
ibeg, 
iend, 
jbeg, 
jend, 
kbeg, kend, ib, ie, jb, je , kb, ke
 
 2228   INTEGER :: indbeg, indend, ijkn, ijkn1, ijknbeg, ijknend, inoff, ijnoff
 
 2229   INTEGER :: lbound, intb, inte, ireg, iedge, intertype, ijktest, iset
 
 2231   REAL(RFREAL)  :: arclen, ds, 
s, dn(3), dnbeg(3), dnend(3), eps
 
 2238   'RFLO_ModMoveGridNconform3.F90' )
 
 2242   eps = epsilon( 1._rfreal )
 
 2246   ireg = region%iRegionGlobal
 
 2250   grid => region%levels(ilev)%grid
 
 2254   edgemoved(:) = .true.
 
 2258   DO ipatch=1,region%nPatches
 
 2259     patch  => region%levels(ilev)%patches(ipatch)
 
 2260     lbound =  
patch%lbound
 
 2265     IF (
patch%bcMotion == bc_external) goto 777
 
 2268       IF (lbound==1 .OR. lbound==2) 
THEN 
 2278           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2279           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2280           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2288           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2289           DO ic = 1,
grid%nCorns(ireg)
 
 2290             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2291             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2293           patch%position(1) = intb
 
 2294           patch%position(2) = inte
 
 2297           DO ind=indbeg+1,indend-1
 
 2298             ijkn = indijk(
ibeg,
jbeg,ind  ,inoff,ijnoff)
 
 2299             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2300                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2301                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2307           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2308                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2311               (intb==2 .OR. inte==2) &
 
 2313               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2314                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2315                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2317             dnbeg(:) = dnode(:,ijknbeg)
 
 2318             dnend(:) = dnode(:,ijknend)
 
 2321             DO ind=indbeg+1,indend
 
 2322               ijkn   = indijk(
ibeg,
jbeg,ind  ,inoff,ijnoff)
 
 2323               ijkn1  = indijk(
ibeg,
jbeg,ind-1,inoff,ijnoff)
 
 2325                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2326                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2327                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2330             DO ind=indbeg+1,indend-1
 
 2331               ijkn     = indijk(
ibeg,
jbeg,ind  ,inoff,ijnoff)
 
 2332               ijkn1    = indijk(
ibeg,
jbeg,ind-1,inoff,ijnoff)
 
 2333               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2334                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2335                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2338               dnode(:,ijkn) = dn(:)
 
 2341         ELSEIF (ipedge==2) 
THEN 
 2350           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2351           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2352           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2360           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2361           DO ic = 1,
grid%nCorns(ireg)
 
 2362             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2363             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2368           patch%position(2) = intb
 
 2369           patch%position(3) = inte
 
 2372           DO ind=indbeg+1,indend-1
 
 2373             ijkn = indijk(
ibeg,ind  ,kend,inoff,ijnoff)
 
 2374             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2375                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2376                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2382           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2383                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2386               (intb==2 .OR. inte==2) &
 
 2388               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2389                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2390                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2392             dnbeg(:) = dnode(:,ijknbeg)
 
 2393             dnend(:) = dnode(:,ijknend)
 
 2396             DO ind=indbeg+1,indend
 
 2397               ijkn   = indijk(
ibeg,ind  ,kend,inoff,ijnoff)
 
 2398               ijkn1  = indijk(
ibeg,ind-1,kend,inoff,ijnoff)
 
 2400                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2401                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2402                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2405             DO ind=indbeg+1,indend-1
 
 2406               ijkn     = indijk(
ibeg,ind  ,kend,inoff,ijnoff)
 
 2407               ijkn1    = indijk(
ibeg,ind-1,kend,inoff,ijnoff)
 
 2408               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2409                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2410                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2413               dnode(:,ijkn) = dn(:)
 
 2416         ELSEIF (ipedge==3) 
THEN 
 2425           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2426           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2427           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2435           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2436           DO ic = 1,
grid%nCorns(ireg)
 
 2437             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2438             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2440           patch%position(3) = inte
 
 2441           patch%position(4) = intb
 
 2444           DO ind=indbeg+1,indend-1
 
 2445             ijkn = indijk(
ibeg,
jend,ind  ,inoff,ijnoff)
 
 2446             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2447                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2448                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2454           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2455                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2458               (intb==2 .OR. inte==2) &
 
 2460               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2461                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2462                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2464             dnbeg(:) = dnode(:,ijknbeg)
 
 2465             dnend(:) = dnode(:,ijknend)
 
 2468             DO ind=indbeg+1,indend
 
 2469               ijkn   = indijk(
ibeg,
jend,ind  ,inoff,ijnoff)
 
 2470               ijkn1  = indijk(
ibeg,
jend,ind-1,inoff,ijnoff)
 
 2472                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2473                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2474                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2477             DO ind=indbeg+1,indend-1
 
 2478               ijkn     = indijk(
ibeg,
jend,ind  ,inoff,ijnoff)
 
 2479               ijkn1    = indijk(
ibeg,
jend,ind-1,inoff,ijnoff)
 
 2480               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2481                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2482                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2485               dnode(:,ijkn) = dn(:)
 
 2488         ELSEIF (ipedge==4) 
THEN 
 2497           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2498           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2499           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2507           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2508           DO ic = 1,
grid%nCorns(ireg)
 
 2509             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2510             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2512           patch%position(4) = inte
 
 2513           patch%position(1) = intb
 
 2516           DO ind=indbeg+1,indend-1
 
 2517             ijkn = indijk(
ibeg,ind  ,
kbeg,inoff,ijnoff)
 
 2518             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2519                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2520                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2526           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2527                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2530               (intb==2 .OR. inte==2) &
 
 2532               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2533                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2534                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2536             dnbeg(:) = dnode(:,ijknbeg)
 
 2537             dnend(:) = dnode(:,ijknend)
 
 2540             DO ind=indbeg+1,indend
 
 2541               ijkn   = indijk(
ibeg,ind  ,
kbeg,inoff,ijnoff)
 
 2542               ijkn1  = indijk(
ibeg,ind-1,
kbeg,inoff,ijnoff)
 
 2544                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2545                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2546                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2549             DO ind=indbeg+1,indend-1
 
 2550               ijkn     = indijk(
ibeg,ind  ,
kbeg,inoff,ijnoff)
 
 2551               ijkn1    = indijk(
ibeg,ind-1,
kbeg,inoff,ijnoff)
 
 2552               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2553                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2554                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2557               dnode(:,ijkn) = dn(:)
 
 2565       IF (lbound==3 .OR. lbound==4) 
THEN 
 2575           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2576           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2577           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2585           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2586           DO ic = 1,
grid%nCorns(ireg)
 
 2587             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2588             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2590           patch%position(1) = intb
 
 2591           patch%position(2) = inte
 
 2594           DO ind=indbeg+1,indend-1
 
 2595             ijkn = indijk(ind  ,
jbeg,
kbeg,inoff,ijnoff)
 
 2596             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2597                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2598                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2604           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2605                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2608               (intb==2 .OR. inte==2) &
 
 2610               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2611                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2612                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2614             dnbeg(:) = dnode(:,ijknbeg)
 
 2615             dnend(:) = dnode(:,ijknend)
 
 2618             DO ind=indbeg+1,indend
 
 2619               ijkn   = indijk(ind  ,
jbeg,
kbeg,inoff,ijnoff)
 
 2620               ijkn1  = indijk(ind-1,
jbeg,
kbeg,inoff,ijnoff)
 
 2622                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2623                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2624                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2627             DO ind=indbeg+1,indend-1
 
 2628               ijkn     = indijk(ind  ,
jbeg,
kbeg,inoff,ijnoff)
 
 2629               ijkn1    = indijk(ind-1,
jbeg,
kbeg,inoff,ijnoff)
 
 2630               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2631                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2632                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2635               dnode(:,ijkn) = dn(:)
 
 2638         ELSEIF (ipedge==2) 
THEN 
 2647           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2648           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2649           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2657           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2658           DO ic = 1,
grid%nCorns(ireg)
 
 2659             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2660             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2662           patch%position(2) = intb
 
 2663           patch%position(3) = inte
 
 2666           DO ind=indbeg+1,indend-1
 
 2667             ijkn = indijk(
iend,
jbeg,ind  ,inoff,ijnoff)
 
 2668             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2669                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2670                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2676           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2677                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2680               (intb==2 .OR. inte==2) &
 
 2682               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2683                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2684                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2686             dnbeg(:) = dnode(:,ijknbeg)
 
 2687             dnend(:) = dnode(:,ijknend)
 
 2690             DO ind=indbeg+1,indend
 
 2691               ijkn   = indijk(
iend,
jbeg,ind  ,inoff,ijnoff)
 
 2692               ijkn1  = indijk(
iend,
jbeg,ind-1,inoff,ijnoff)
 
 2694                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2695                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2696                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2699             DO ind=indbeg+1,indend-1
 
 2700               ijkn     = indijk(
iend,
jbeg,ind  ,inoff,ijnoff)
 
 2701               ijkn1    = indijk(
iend,
jbeg,ind-1,inoff,ijnoff)
 
 2702               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2703                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2704                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2707               dnode(:,ijkn) = dn(:)
 
 2710         ELSEIF (ipedge==3) 
THEN 
 2719           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2720           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2721           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2729           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2730           DO ic = 1,
grid%nCorns(ireg)
 
 2731             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2732             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2734           patch%position(3) = inte
 
 2735           patch%position(4) = intb
 
 2738           DO ind=indbeg+1,indend-1
 
 2739             ijkn = indijk(ind  ,
jbeg,kend,inoff,ijnoff)
 
 2740             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2741                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2742                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2748           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2749                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2752               (intb==2 .OR. inte==2) &
 
 2754               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2755                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2756                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2758             dnbeg(:) = dnode(:,ijknbeg)
 
 2759             dnend(:) = dnode(:,ijknend)
 
 2762             DO ind=indbeg+1,indend
 
 2763               ijkn   = indijk(ind  ,
jbeg,kend,inoff,ijnoff)
 
 2764               ijkn1  = indijk(ind-1,
jbeg,kend,inoff,ijnoff)
 
 2766                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2767                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2768                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2771             DO ind=indbeg+1,indend-1
 
 2772               ijkn     = indijk(ind  ,
jbeg,kend,inoff,ijnoff)
 
 2773               ijkn1    = indijk(ind-1,
jbeg,kend,inoff,ijnoff)
 
 2774               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2775                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2776                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2779               dnode(:,ijkn) = dn(:)
 
 2782         ELSEIF (ipedge==4) 
THEN 
 2791           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2792           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2793           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2801           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2802           DO ic = 1,
grid%nCorns(ireg)
 
 2803             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2804             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2806           patch%position(4) = inte
 
 2807           patch%position(1) = intb
 
 2810           DO ind=indbeg+1,indend-1
 
 2811             ijkn = indijk(
ibeg,
jbeg,ind  ,inoff,ijnoff)
 
 2812             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2813                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2814                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2820           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2821                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2824               (intb==2 .OR. inte==2) &
 
 2826               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2827                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2828                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2830             dnbeg(:) = dnode(:,ijknbeg)
 
 2831             dnend(:) = dnode(:,ijknend)
 
 2834             DO ind=indbeg+1,indend
 
 2835               ijkn   = indijk(
ibeg,
jbeg,ind  ,inoff,ijnoff)
 
 2836               ijkn1  = indijk(
ibeg,
jbeg,ind-1,inoff,ijnoff)
 
 2838                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2839                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2840                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2843             DO ind=indbeg+1,indend-1
 
 2844               ijkn     = indijk(
ibeg,
jbeg,ind  ,inoff,ijnoff)
 
 2845               ijkn1    = indijk(
ibeg,
jbeg,ind-1,inoff,ijnoff)
 
 2846               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2847                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2848                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2851               dnode(:,ijkn) = dn(:)
 
 2857       IF (lbound==5 .OR. lbound==6) 
THEN 
 2867           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2868           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2869           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2877           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2878           DO ic = 1,
grid%nCorns(ireg)
 
 2879             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2880             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2882           patch%position(1) = intb
 
 2883           patch%position(2) = inte
 
 2886           DO ind=indbeg+1,indend-1
 
 2887             ijkn = indijk(
ibeg,ind  ,
kbeg,inoff,ijnoff)
 
 2888             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2889                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2890                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2896           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2897                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2900               (intb==2 .OR. inte==2) &
 
 2902               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2903                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2904                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2906             dnbeg(:) = dnode(:,ijknbeg)
 
 2907             dnend(:) = dnode(:,ijknend)
 
 2910             DO ind=indbeg+1,indend
 
 2911               ijkn   = indijk(
ibeg,ind  ,
kbeg,inoff,ijnoff)
 
 2912               ijkn1  = indijk(
ibeg,ind-1,
kbeg,inoff,ijnoff)
 
 2914                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2915                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2916                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2919             DO ind=indbeg+1,indend-1
 
 2920               ijkn     = indijk(
ibeg,ind  ,
kbeg,inoff,ijnoff)
 
 2921               ijkn1    = indijk(
ibeg,ind-1,
kbeg,inoff,ijnoff)
 
 2922               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2923                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2924                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2927               dnode(:,ijkn) = dn(:)
 
 2930         ELSEIF (ipedge==2) 
THEN 
 2939           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 2940           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 2941           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 2949           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 2950           DO ic = 1,
grid%nCorns(ireg)
 
 2951             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 2952             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 2954           patch%position(2) = intb
 
 2955           patch%position(3) = inte
 
 2958           DO ind=indbeg+1,indend-1
 
 2959             ijkn = indijk(ind  ,
jend,
kbeg,inoff,ijnoff)
 
 2960             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2961                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 2962                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 2968           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 2969                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 2972               (intb==2 .OR. inte==2) &
 
 2974               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 2975                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 2976                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 2978             dnbeg(:) = dnode(:,ijknbeg)
 
 2979             dnend(:) = dnode(:,ijknend)
 
 2982             DO ind=indbeg+1,indend
 
 2983               ijkn   = indijk(ind  ,
jend,
kbeg,inoff,ijnoff)
 
 2984               ijkn1  = indijk(ind-1,
jend,
kbeg,inoff,ijnoff)
 
 2986                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2987                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2988                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2991             DO ind=indbeg+1,indend-1
 
 2992               ijkn   = indijk(ind  ,
jend,
kbeg,inoff,ijnoff)
 
 2993               ijkn1  = indijk(ind-1,
jend,
kbeg,inoff,ijnoff)
 
 2994               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 2995                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 2996                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 2999               dnode(:,ijkn) = dn(:)
 
 3002         ELSEIF (ipedge==3) 
THEN 
 3011           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 3012           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 3013           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 3021           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 3022           DO ic = 1,
grid%nCorns(ireg)
 
 3023             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 3024             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 3026           patch%position(3) = inte
 
 3027           patch%position(4) = intb
 
 3030           DO ind=indbeg+1,indend-1
 
 3031             ijkn = indijk(
iend,ind  ,
kbeg,inoff,ijnoff)
 
 3032             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 3033                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 3034                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 3040           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 3041                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 3044               (intb==2 .OR. inte==2) &
 
 3046               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 3047                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 3048                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 3050             dnbeg(:) = dnode(:,ijknbeg)
 
 3051             dnend(:) = dnode(:,ijknend)
 
 3054             DO ind=indbeg+1,indend
 
 3055               ijkn   = indijk(
iend,ind  ,
kbeg,inoff,ijnoff)
 
 3056               ijkn1  = indijk(
iend,ind-1,
kbeg,inoff,ijnoff)
 
 3058                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 3059                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 3060                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 3063             DO ind=indbeg+1,indend-1
 
 3064               ijkn     = indijk(
iend,ind  ,
kbeg,inoff,ijnoff)
 
 3065               ijkn1    = indijk(
iend,ind-1,
kbeg,inoff,ijnoff)
 
 3066               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 3067                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 3068                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 3071               dnode(:,ijkn) = dn(:)
 
 3074         ELSEIF (ipedge==4) 
THEN 
 3083           ijknbeg  = indijk(ib,jb,kb,inoff,ijnoff)
 
 3084           ijknend  = indijk(ie,je,ke,inoff,ijnoff)
 
 3085           ijktest  = indijk((ib+ie)/2,(jb+je)/2,(kb+ke)/2,inoff,ijnoff)
 
 3093           intertype =  region%levels(ilev)%edgeCells(iedge)%interType
 
 3094           DO ic = 1,
grid%nCorns(ireg)
 
 3095             IF (
grid%ijkCorn(
ic,ireg)==ijknbeg) intb = 
grid%nghbor(3,1,
ic) 
 
 3096             IF (
grid%ijkCorn(
ic,ireg)==ijknend) inte = 
grid%nghbor(3,1,
ic)
 
 3098           patch%position(4) = inte
 
 3099           patch%position(1) = intb
 
 3102           DO ind=indbeg+1,indend-1
 
 3103             ijkn = indijk(ind  ,
jbeg,
kbeg,inoff,ijnoff)
 
 3104             IF (abs( dnode(xcoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 3105                 abs( dnode(ycoord,ijkn) ) > 100._rfreal*eps .OR. &
 
 3106                 abs( dnode(zcoord,ijkn) ) > 100._rfreal*eps) 
THEN 
 3112           IF ((((intb/=0 .OR. inte/=0) .AND. (intertype==edge_interact_full .AND.&
 
 3113                 region%levels(ilev)%edgeCells(iedge)%interact .EQV. .true.)) &
 
 3116               (intb==2 .OR. inte==2) &
 
 3118               ((intb==0 .AND. inte==0) .AND. abs(dnode(xcoord,ijktest)+ &
 
 3119                 dnode(ycoord,ijktest)+dnode(zcoord,ijktest)) < &
 
 3120                 100._rfreal*eps)) .AND. (iset==0)) 
THEN 
 3122             dnbeg(:) = dnode(:,ijknbeg)
 
 3123             dnend(:) = dnode(:,ijknend)
 
 3126             DO ind=indbeg+1,indend
 
 3127               ijkn   = indijk(ind  ,
jbeg,
kbeg,inoff,ijnoff)
 
 3128               ijkn1  = indijk(ind-1,
jbeg,
kbeg,inoff,ijnoff)
 
 3130                        sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 3131                             (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 3132                             (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 3135             DO ind=indbeg+1,indend-1
 
 3136               ijkn   = indijk(ind  ,
jbeg,
kbeg,inoff,ijnoff)
 
 3137               ijkn1  = indijk(ind-1,
jbeg,
kbeg,inoff,ijnoff)
 
 3138               ds = ds + 
sqrt((xyzold(xcoord,ijkn)-xyzold(xcoord,ijkn1))**2 + &
 
 3139                              (xyzold(ycoord,ijkn)-xyzold(ycoord,ijkn1))**2 + &
 
 3140                              (xyzold(zcoord,ijkn)-xyzold(zcoord,ijkn1))**2)
 
 3143               dnode(:,ijkn) = dn(:)
 
 3185   TYPE(t_region
), 
POINTER :: regions(:)
 
 3189   INTEGER :: ireg, ipatch, ipass
 
 3192   INTEGER :: bctype, iregsrc, ipatchsrc, ltype, npass
 
 3194   TYPE(t_grid), 
POINTER   :: 
grid, gridold, gridsrc
 
 3200   global => regions(1)%global
 
 3203   'RFLO_ModMoveGridNconform3.F90' )
 
 3208   npass = global%moveGridNsmatch
 
 3209   npass = 
max( npass,4 )
 
 3214     DO ireg=1,global%nRegions
 
 3215       IF (regions(ireg)%procid==global%myProcid .AND. &  
 
 3216           regions(ireg)%active==active .AND. &           
 
 3217           regions(ireg)%mixtInput%moveGrid) 
THEN          
 3219         grid    => regions(ireg)%levels(1)%grid
 
 3220         gridold => regions(ireg)%levels(1)%gridOld
 
 3222         DO ipatch=1,regions(ireg)%nPatches
 
 3223           patch  => regions(ireg)%levels(1)%patches(ipatch)
 
 3224           bctype =  
patch%bcType
 
 3225           IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
 
 3226               (bctype>=bc_tra_peri   .AND. bctype<=bc_tra_peri  +bc_range) .OR. &
 
 3227               (bctype>=bc_rot_peri   .AND. bctype<=bc_rot_peri  +bc_range)) 
THEN 
 3228             iregsrc   =  
patch%srcRegion
 
 3229             ipatchsrc =  
patch%srcPatch
 
 3230             patchsrc  => regions(iregsrc)%levels(1)%patches(ipatchsrc)
 
 3231             gridsrc   => regions(iregsrc)%levels(1)%grid
 
 3233             IF (regions(iregsrc)%procid == global%myProcid) 
THEN 
 3235                                            patch,patchsrc,.false., &
 
 3236                                            grid%xyz,gridsrc%xyz )
 
 3237               IF (ipass < npass-1 .AND. ltype==1) 
THEN 
 3239                                         gridold%xyzOld,
grid%xyz )
 
 3243               ELSEIF (ipass < npass-1 .AND. ltype==2) 
THEN 
 3247                                         grid%arcLen56,gridold%xyzOld,
grid%xyz )
 
 3252                                         gridold%xyzOld,
grid%xyz )
 
 3266     DO ireg=1,global%nRegions
 
 3267       IF (regions(ireg)%procid==global%myProcid .AND. &  
 
 3268           regions(ireg)%active==active .AND. &           
 
 3269           regions(ireg)%mixtInput%moveGrid) 
THEN          
 3271         grid    => regions(ireg)%levels(1)%grid
 
 3272         gridold => regions(ireg)%levels(1)%gridOld
 
 3274         DO ipatch=1,regions(ireg)%nPatches
 
 3275           patch  => regions(ireg)%levels(1)%patches(ipatch)
 
 3276           bctype =  
patch%bcType
 
 3277           IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
 
 3278               (bctype>=bc_tra_peri   .AND. bctype<=bc_tra_peri  +bc_range) .OR. &
 
 3279               (bctype>=bc_rot_peri   .AND. bctype<=bc_rot_peri  +bc_range)) 
THEN 
 3280             iregsrc   =  
patch%srcRegion
 
 3281             ipatchsrc =  
patch%srcPatch
 
 3282             patchsrc  => regions(iregsrc)%levels(1)%patches(ipatchsrc)
 
 3283             gridsrc   => regions(iregsrc)%levels(1)%grid
 
 3285             IF (regions(iregsrc)%procid /= global%myProcid) 
THEN 
 3289               IF (ipass < npass-1 .AND. ltype==1) 
THEN 
 3291                                         gridold%xyzOld,
grid%xyz )
 
 3295               ELSEIF (ipass < npass-1 .AND. ltype==2) 
THEN 
 3299                                         grid%arcLen56,gridold%xyzOld,
grid%xyz )
 
 3304                                         gridold%xyzOld,
grid%xyz )
 
 3315     DO ireg=1,global%nRegions
 
 3316       IF (regions(ireg)%procid==global%myProcid .AND. &  
 
 3317           regions(ireg)%active==active .AND. &           
 
 3318           regions(ireg)%mixtInput%moveGrid) 
THEN          
 3353                                      arclen12,arclen34,arclen56,  &
 
 3360 #include "Indexing.h" 
 3363   LOGICAL :: boundmoved(6), edgemoved(12)
 
 3365   REAL(RFREAL), 
POINTER :: arclen12(:,:), arclen34(:,:), arclen56(:,:)
 
 3366   REAL(RFREAL), 
POINTER :: dnode(:,:), xyzold(:,:)
 
 3368   TYPE(t_region
) :: region
 
 3371   INTEGER :: ibound, l1, l2
 
 3375   INTEGER :: l1b, l1e, l2b, l2e, lc, ijkn, ijke(4), ijkem(4), inoff, ijnoff
 
 3376   INTEGER :: switch(6,9)
 
 3380   REAL(RFREAL) :: arclen(4), ds(4), 
s(4)
 
 3381   REAL(RFREAL) :: corner(3,8), e1(3), e2(3), e3(3), e4(3), &
 
 3382                   p1(3), p2(3), p3(3), p4(3), dn(3)
 
 3387   'RFLO_ModMoveGridNconform3.F90' )
 
 3412   corner(:,2) = dnode(:,indijk(
ipnbeg,
jpnbeg,kpnend,inoff,ijnoff))
 
 3413   corner(:,3) = dnode(:,indijk(
ipnbeg,
jpnend,kpnend,inoff,ijnoff))
 
 3416   corner(:,6) = dnode(:,indijk(
ipnend,
jpnbeg,kpnend,inoff,ijnoff))
 
 3417   corner(:,7) = dnode(:,indijk(
ipnend,
jpnend,kpnend,inoff,ijnoff))
 
 3427     IF ((edgemoved(switch(ibound,1)) .OR. edgemoved(switch(ibound,2)) .OR. &
 
 3428          edgemoved(switch(ibound,3)) .OR. edgemoved(switch(ibound,4)))) 
THEN 
 3430       l1b = switch(ibound,5)
 
 3431       l1e = switch(ibound,6)
 
 3432       l2b = switch(ibound,7)
 
 3433       l2e = switch(ibound,8)
 
 3434       lc  = switch(ibound,9)
 
 3436       IF (ibound == 1) 
THEN 
 3441       ELSE IF (ibound == 2) 
THEN 
 3446       ELSE IF (ibound == 3) 
THEN 
 3451       ELSE IF (ibound == 4) 
THEN 
 3456       ELSE IF (ibound == 5) 
THEN 
 3461       ELSE IF (ibound == 6) 
THEN 
 3474           IF (ibound==1 .OR. ibound==2) 
THEN 
 3475             ijkn      = indijk(lc,l1    ,l2    ,inoff,ijnoff)
 
 3476             ijke(1)   = indijk(lc,
jpnbeg,l2    ,inoff,ijnoff)
 
 3477             ijkem(1)  = indijk(lc,
jpnbeg,l2-1  ,inoff,ijnoff)
 
 3478             ijke(2)   = indijk(lc,
jpnend,l2    ,inoff,ijnoff)
 
 3479             ijkem(2)  = indijk(lc,
jpnend,l2-1  ,inoff,ijnoff)
 
 3480             ijke(3)   = indijk(lc,l1    ,
kpnbeg,inoff,ijnoff)
 
 3481             ijkem(3)  = indijk(lc,l1-1  ,
kpnbeg,inoff,ijnoff)
 
 3482             ijke(4)   = indijk(lc,l1    ,kpnend,inoff,ijnoff)
 
 3483             ijkem(4)  = indijk(lc,l1-1  ,kpnend,inoff,ijnoff)
 
 3484             arclen(1) = arclen56(lc,
jpnbeg)
 
 3485             arclen(2) = arclen56(lc,
jpnend)
 
 3486             arclen(3) = arclen34(
kpnbeg,lc)
 
 3487             arclen(4) = arclen34(kpnend,lc)
 
 3488           ELSE IF (ibound==3 .OR. ibound==4) 
THEN 
 3489             ijkn      = indijk(l2    ,lc,l1    ,inoff,ijnoff)
 
 3490             ijke(1)   = indijk(l2    ,lc,
kpnbeg,inoff,ijnoff)
 
 3491             ijkem(1)  = indijk(l2-1  ,lc,
kpnbeg,inoff,ijnoff)
 
 3492             ijke(2)   = indijk(l2    ,lc,kpnend,inoff,ijnoff)
 
 3493             ijkem(2)  = indijk(l2-1  ,lc,kpnend,inoff,ijnoff)
 
 3494             ijke(3)   = indijk(
ipnbeg,lc,l1    ,inoff,ijnoff)
 
 3495             ijkem(3)  = indijk(
ipnbeg,lc,l1-1  ,inoff,ijnoff)
 
 3496             ijke(4)   = indijk(
ipnend,lc,l1    ,inoff,ijnoff)
 
 3497             ijkem(4)  = indijk(
ipnend,lc,l1-1  ,inoff,ijnoff)
 
 3498             arclen(1) = arclen12(lc,
kpnbeg)
 
 3499             arclen(2) = arclen12(lc,kpnend)
 
 3500             arclen(3) = arclen56(
ipnbeg,lc)
 
 3501             arclen(4) = arclen56(
ipnend,lc)
 
 3502           ELSE IF (ibound==5 .OR. ibound==6) 
THEN 
 3503             ijkn      = indijk(l1    ,l2    ,lc,inoff,ijnoff)
 
 3504             ijke(1)   = indijk(
ipnbeg,l2    ,lc,inoff,ijnoff)
 
 3505             ijkem(1)  = indijk(
ipnbeg,l2-1  ,lc,inoff,ijnoff)
 
 3506             ijke(2)   = indijk(
ipnend,l2    ,lc,inoff,ijnoff)
 
 3507             ijkem(2)  = indijk(
ipnend,l2-1  ,lc,inoff,ijnoff)
 
 3508             ijke(3)   = indijk(l1    ,
jpnbeg,lc,inoff,ijnoff)
 
 3509             ijkem(3)  = indijk(l1-1  ,
jpnbeg,lc,inoff,ijnoff)
 
 3510             ijke(4)   = indijk(l1    ,
jpnend,lc,inoff,ijnoff)
 
 3511             ijkem(4)  = indijk(l1-1  ,
jpnend,lc,inoff,ijnoff)
 
 3512             arclen(1) = arclen34(lc,
ipnbeg)
 
 3513             arclen(2) = arclen34(lc,
ipnend)
 
 3514             arclen(3) = arclen12(
jpnbeg,lc)
 
 3515             arclen(4) = arclen12(
jpnend,lc)
 
 3519                     sqrt((xyzold(xcoord,ijke(1))-xyzold(xcoord,ijkem(1)))**2 + &
 
 3520                          (xyzold(ycoord,ijke(1))-xyzold(ycoord,ijkem(1)))**2 + &
 
 3521                          (xyzold(zcoord,ijke(1))-xyzold(zcoord,ijkem(1)))**2)
 
 3523                     sqrt((xyzold(xcoord,ijke(2))-xyzold(xcoord,ijkem(2)))**2 + &
 
 3524                          (xyzold(ycoord,ijke(2))-xyzold(ycoord,ijkem(2)))**2 + &
 
 3525                          (xyzold(zcoord,ijke(2))-xyzold(zcoord,ijkem(2)))**2)
 
 3529                   sqrt((xyzold(xcoord,ijke(3))-xyzold(xcoord,ijkem(3)))**2 + &
 
 3530                        (xyzold(ycoord,ijke(3))-xyzold(ycoord,ijkem(3)))**2 + &
 
 3531                        (xyzold(zcoord,ijke(3))-xyzold(zcoord,ijkem(3)))**2)
 
 3533                   sqrt((xyzold(xcoord,ijke(4))-xyzold(xcoord,ijkem(4)))**2 + &
 
 3534                        (xyzold(ycoord,ijke(4))-xyzold(ycoord,ijkem(4)))**2 + &
 
 3535                        (xyzold(zcoord,ijke(4))-xyzold(zcoord,ijkem(4)))**2)
 
 3536           s(:)  = ds(:)/arclen(:)
 
 3537           e1(:) = dnode(:,ijke(1))
 
 3538           e2(:) = dnode(:,ijke(2))
 
 3539           e3(:) = dnode(:,ijke(3))
 
 3540           e4(:) = dnode(:,ijke(4))
 
 3541           CALL 
rflo_tfint2d( 
s(1),
s(2),
s(3),
s(4),e1,e2,e3,e4,
p1,p2,p3,p4,dn )
 
 3542           dnode(:,ijkn) = dn(:)
 
 3577 #include "Indexing.h" 
 3581   REAL(RFREAL), 
POINTER :: dnode(:,:), xyzold(:,:)
 
 3583   TYPE(t_region
) :: region
 
 3586   INTEGER :: ipatch, l1, l2
 
 3590   INTEGER :: l1b, l1e, l2b, l2e, lc, ijkn, ijke(4), ijkem(4), inoff, ijnoff
 
 3591   INTEGER :: switch(6,9)
 
 3594   REAL(RFREAL) :: arclen(4), ds(4), 
s(4)
 
 3595   REAL(RFREAL) :: e1(3), e2(3), e3(3), e4(3), &
 
 3596                   p1(3), p2(3), p3(3), p4(3), dn(3)
 
 3602   'RFLO_ModMoveGridNconform3.F90' )
 
 3617   DO ipatch=1,region%nPatches
 
 3618     patch  => region%levels(ilev)%patches(ipatch)
 
 3619     ibound =  
patch%lbound
 
 3624     IF (
patch%bcMotion/=bc_external) 
THEN 
 3633       l1b = switch(ibound,5)
 
 3634       l1e = switch(ibound,6)
 
 3635       l2b = switch(ibound,7)
 
 3636       l2e = switch(ibound,8)
 
 3637       lc  = switch(ibound,9)
 
 3639       p1(:) = dnode(:,
patch%corns(1))
 
 3640       p2(:) = dnode(:,
patch%corns(4))
 
 3641       p3(:) = dnode(:,
patch%corns(3))
 
 3642       p4(:) = dnode(:,
patch%corns(2))
 
 3646       IF (ibound==1 .OR. ibound==2) 
THEN 
 3647         arclen(1:2) = 0._rfreal
 
 3649           ijkn      = indijk(lc,l1    ,l2    ,inoff,ijnoff)
 
 3650           ijke(1)   = indijk(lc,
jbeg  ,l2    ,inoff,ijnoff)
 
 3651           ijkem(1)  = indijk(lc,
jbeg  ,l2-1  ,inoff,ijnoff)
 
 3652           ijke(2)   = indijk(lc,
jend  ,l2    ,inoff,ijnoff)
 
 3653           ijkem(2)  = indijk(lc,
jend  ,l2-1  ,inoff,ijnoff)
 
 3654           arclen(1) = arclen(1) + &
 
 3655                 sqrt((xyzold(xcoord,ijke(1))-xyzold(xcoord,ijkem(1)))**2 + &
 
 3656                      (xyzold(ycoord,ijke(1))-xyzold(ycoord,ijkem(1)))**2 + &
 
 3657                      (xyzold(zcoord,ijke(1))-xyzold(zcoord,ijkem(1)))**2)
 
 3658           arclen(2) = arclen(2) + &
 
 3659                 sqrt((xyzold(xcoord,ijke(2))-xyzold(xcoord,ijkem(2)))**2 + &
 
 3660                      (xyzold(ycoord,ijke(2))-xyzold(ycoord,ijkem(2)))**2 + &
 
 3661                      (xyzold(zcoord,ijke(2))-xyzold(zcoord,ijkem(2)))**2)
 
 3663         arclen(3:4) = 0._rfreal
 
 3665           ijkn      = indijk(lc,l1    ,l2    ,inoff,ijnoff)
 
 3666           ijke(3)   = indijk(lc,l1    ,
kbeg  ,inoff,ijnoff)
 
 3667           ijkem(3)  = indijk(lc,l1-1  ,
kbeg  ,inoff,ijnoff)
 
 3668           ijke(4)   = indijk(lc,l1    ,kend  ,inoff,ijnoff)
 
 3669           ijkem(4)  = indijk(lc,l1-1  ,kend  ,inoff,ijnoff)
 
 3670           arclen(3) = arclen(3) + &
 
 3671                 sqrt((xyzold(xcoord,ijke(3))-xyzold(xcoord,ijkem(3)))**2 + &
 
 3672                      (xyzold(ycoord,ijke(3))-xyzold(ycoord,ijkem(3)))**2 + &
 
 3673                      (xyzold(zcoord,ijke(3))-xyzold(zcoord,ijkem(3)))**2)
 
 3674           arclen(4) = arclen(4) + &
 
 3675                 sqrt((xyzold(xcoord,ijke(4))-xyzold(xcoord,ijkem(4)))**2 + &
 
 3676                      (xyzold(ycoord,ijke(4))-xyzold(ycoord,ijkem(4)))**2 + &
 
 3677                      (xyzold(zcoord,ijke(4))-xyzold(zcoord,ijkem(4)))**2)
 
 3679       ELSE IF (ibound==3 .OR. ibound==4) 
THEN 
 3680         arclen(1:2) = 0._rfreal
 
 3682           ijkn      = indijk(l2    ,lc,l1    ,inoff,ijnoff)
 
 3683           ijke(1)   = indijk(l2    ,lc,
kbeg  ,inoff,ijnoff)
 
 3684           ijkem(1)  = indijk(l2-1  ,lc,
kbeg  ,inoff,ijnoff)
 
 3685           ijke(2)   = indijk(l2    ,lc,kend  ,inoff,ijnoff)
 
 3686           ijkem(2)  = indijk(l2-1  ,lc,kend  ,inoff,ijnoff)
 
 3687           arclen(1) = arclen(1) + &
 
 3688                 sqrt((xyzold(xcoord,ijke(1))-xyzold(xcoord,ijkem(1)))**2 + &
 
 3689                      (xyzold(ycoord,ijke(1))-xyzold(ycoord,ijkem(1)))**2 + &
 
 3690                      (xyzold(zcoord,ijke(1))-xyzold(zcoord,ijkem(1)))**2)
 
 3691           arclen(2) = arclen(2) + &
 
 3692                 sqrt((xyzold(xcoord,ijke(2))-xyzold(xcoord,ijkem(2)))**2 + &
 
 3693                      (xyzold(ycoord,ijke(2))-xyzold(ycoord,ijkem(2)))**2 + &
 
 3694                      (xyzold(zcoord,ijke(2))-xyzold(zcoord,ijkem(2)))**2)
 
 3696         arclen(3:4) = 0._rfreal
 
 3698           ijkn      = indijk(l2    ,lc,l1    ,inoff,ijnoff)
 
 3699           ijke(3)   = indijk(
ibeg  ,lc,l1    ,inoff,ijnoff)
 
 3700           ijkem(3)  = indijk(
ibeg  ,lc,l1-1  ,inoff,ijnoff)
 
 3701           ijke(4)   = indijk(
iend  ,lc,l1    ,inoff,ijnoff)
 
 3702           ijkem(4)  = indijk(
iend  ,lc,l1-1  ,inoff,ijnoff)
 
 3703           arclen(3) = arclen(3) + &
 
 3704                 sqrt((xyzold(xcoord,ijke(3))-xyzold(xcoord,ijkem(3)))**2 + &
 
 3705                      (xyzold(ycoord,ijke(3))-xyzold(ycoord,ijkem(3)))**2 + &
 
 3706                      (xyzold(zcoord,ijke(3))-xyzold(zcoord,ijkem(3)))**2)
 
 3707           arclen(4) = arclen(4) + &
 
 3708                 sqrt((xyzold(xcoord,ijke(4))-xyzold(xcoord,ijkem(4)))**2 + &
 
 3709                      (xyzold(ycoord,ijke(4))-xyzold(ycoord,ijkem(4)))**2 + &
 
 3710                      (xyzold(zcoord,ijke(4))-xyzold(zcoord,ijkem(4)))**2)
 
 3712       ELSE IF (ibound==5 .OR. ibound==6) 
THEN 
 3713         arclen(1:2) = 0._rfreal
 
 3715           ijkn      = indijk(l1    ,l2    ,lc,inoff,ijnoff)
 
 3716           ijke(1)   = indijk(
ibeg  ,l2    ,lc,inoff,ijnoff)
 
 3717           ijkem(1)  = indijk(
ibeg  ,l2-1  ,lc,inoff,ijnoff)
 
 3718           ijke(2)   = indijk(
iend  ,l2    ,lc,inoff,ijnoff)
 
 3719           ijkem(2)  = indijk(
iend  ,l2-1  ,lc,inoff,ijnoff)
 
 3720           arclen(1) = arclen(1) + &
 
 3721                 sqrt((xyzold(xcoord,ijke(1))-xyzold(xcoord,ijkem(1)))**2 + &
 
 3722                      (xyzold(ycoord,ijke(1))-xyzold(ycoord,ijkem(1)))**2 + &
 
 3723                      (xyzold(zcoord,ijke(1))-xyzold(zcoord,ijkem(1)))**2)
 
 3724           arclen(2) = arclen(2) + &
 
 3725                 sqrt((xyzold(xcoord,ijke(2))-xyzold(xcoord,ijkem(2)))**2 + &
 
 3726                      (xyzold(ycoord,ijke(2))-xyzold(ycoord,ijkem(2)))**2 + &
 
 3727                      (xyzold(zcoord,ijke(2))-xyzold(zcoord,ijkem(2)))**2)
 
 3729         arclen(3:4) = 0._rfreal
 
 3731           ijkn      = indijk(l1    ,l2    ,lc,inoff,ijnoff)
 
 3732           ijke(3)   = indijk(l1    ,
jbeg  ,lc,inoff,ijnoff)
 
 3733           ijkem(3)  = indijk(l1-1  ,
jbeg  ,lc,inoff,ijnoff)
 
 3734           ijke(4)   = indijk(l1    ,
jend  ,lc,inoff,ijnoff)
 
 3735           ijkem(4)  = indijk(l1-1  ,
jend  ,lc,inoff,ijnoff)
 
 3736           arclen(3) = arclen(3) + &
 
 3737                 sqrt((xyzold(xcoord,ijke(3))-xyzold(xcoord,ijkem(3)))**2 + &
 
 3738                      (xyzold(ycoord,ijke(3))-xyzold(ycoord,ijkem(3)))**2 + &
 
 3739                      (xyzold(zcoord,ijke(3))-xyzold(zcoord,ijkem(3)))**2)
 
 3740           arclen(4) = arclen(4) + &
 
 3741                 sqrt((xyzold(xcoord,ijke(4))-xyzold(xcoord,ijkem(4)))**2 + &
 
 3742                      (xyzold(ycoord,ijke(4))-xyzold(ycoord,ijkem(4)))**2 + &
 
 3743                      (xyzold(zcoord,ijke(4))-xyzold(zcoord,ijkem(4)))**2)
 
 3755           IF (ibound==1 .OR. ibound==2) 
THEN 
 3756             ijkn      = indijk(lc,l1    ,l2    ,inoff,ijnoff)
 
 3757             ijke(1)   = indijk(lc,
jbeg  ,l2    ,inoff,ijnoff)
 
 3758             ijkem(1)  = indijk(lc,
jbeg  ,l2-1  ,inoff,ijnoff)
 
 3759             ijke(2)   = indijk(lc,
jend  ,l2    ,inoff,ijnoff)
 
 3760             ijkem(2)  = indijk(lc,
jend  ,l2-1  ,inoff,ijnoff)
 
 3761             ijke(3)   = indijk(lc,l1    ,
kbeg  ,inoff,ijnoff)
 
 3762             ijkem(3)  = indijk(lc,l1-1  ,
kbeg  ,inoff,ijnoff)
 
 3763             ijke(4)   = indijk(lc,l1    ,kend  ,inoff,ijnoff)
 
 3764             ijkem(4)  = indijk(lc,l1-1  ,kend  ,inoff,ijnoff)
 
 3765           ELSE IF (ibound==3 .OR. ibound==4) 
THEN 
 3766             ijkn      = indijk(l2    ,lc,l1    ,inoff,ijnoff)
 
 3767             ijke(1)   = indijk(l2    ,lc,
kbeg  ,inoff,ijnoff)
 
 3768             ijkem(1)  = indijk(l2-1  ,lc,
kbeg  ,inoff,ijnoff)
 
 3769             ijke(2)   = indijk(l2    ,lc,kend  ,inoff,ijnoff)
 
 3770             ijkem(2)  = indijk(l2-1  ,lc,kend  ,inoff,ijnoff)
 
 3771             ijke(3)   = indijk(
ibeg  ,lc,l1    ,inoff,ijnoff)
 
 3772             ijkem(3)  = indijk(
ibeg  ,lc,l1-1  ,inoff,ijnoff)
 
 3773             ijke(4)   = indijk(
iend  ,lc,l1    ,inoff,ijnoff)
 
 3774             ijkem(4)  = indijk(
iend  ,lc,l1-1  ,inoff,ijnoff)
 
 3775           ELSE IF (ibound==5 .OR. ibound==6) 
THEN 
 3776             ijkn      = indijk(l1    ,l2    ,lc,inoff,ijnoff)
 
 3777             ijke(1)   = indijk(
ibeg  ,l2    ,lc,inoff,ijnoff)
 
 3778             ijkem(1)  = indijk(
ibeg  ,l2-1  ,lc,inoff,ijnoff)
 
 3779             ijke(2)   = indijk(
iend  ,l2    ,lc,inoff,ijnoff)
 
 3780             ijkem(2)  = indijk(
iend  ,l2-1  ,lc,inoff,ijnoff)
 
 3781             ijke(3)   = indijk(l1    ,
jbeg  ,lc,inoff,ijnoff)
 
 3782             ijkem(3)  = indijk(l1-1  ,
jbeg  ,lc,inoff,ijnoff)
 
 3783             ijke(4)   = indijk(l1    ,
jend  ,lc,inoff,ijnoff)
 
 3784             ijkem(4)  = indijk(l1-1  ,
jend  ,lc,inoff,ijnoff)
 
 3788                     sqrt((xyzold(xcoord,ijke(1))-xyzold(xcoord,ijkem(1)))**2 + &
 
 3789                          (xyzold(ycoord,ijke(1))-xyzold(ycoord,ijkem(1)))**2 + &
 
 3790                          (xyzold(zcoord,ijke(1))-xyzold(zcoord,ijkem(1)))**2)
 
 3792                     sqrt((xyzold(xcoord,ijke(2))-xyzold(xcoord,ijkem(2)))**2 + &
 
 3793                          (xyzold(ycoord,ijke(2))-xyzold(ycoord,ijkem(2)))**2 + &
 
 3794                          (xyzold(zcoord,ijke(2))-xyzold(zcoord,ijkem(2)))**2)
 
 3798                   sqrt((xyzold(xcoord,ijke(3))-xyzold(xcoord,ijkem(3)))**2 + &
 
 3799                        (xyzold(ycoord,ijke(3))-xyzold(ycoord,ijkem(3)))**2 + &
 
 3800                        (xyzold(zcoord,ijke(3))-xyzold(zcoord,ijkem(3)))**2)
 
 3802                   sqrt((xyzold(xcoord,ijke(4))-xyzold(xcoord,ijkem(4)))**2 + &
 
 3803                        (xyzold(ycoord,ijke(4))-xyzold(ycoord,ijkem(4)))**2 + &
 
 3804                        (xyzold(zcoord,ijke(4))-xyzold(zcoord,ijkem(4)))**2)
 
 3805           s(:)  = ds(:)/arclen(:)
 
 3806           e1(:) = dnode(:,ijke(1))
 
 3807           e2(:) = dnode(:,ijke(2))
 
 3808           e3(:) = dnode(:,ijke(3))
 
 3809           e4(:) = dnode(:,ijke(4))
 
 3810           CALL 
rflo_tfint2d( 
s(1),
s(2),
s(3),
s(4),e1,e2,e3,e4,
p1,p2,p3,p4,dn )
 
 3811           dnode(:,ijkn) = dn(:)
 
**********************************************************************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)
 
Tfloat sum() const 
Return the sum of all the pixel values in an image. 
 
**********************************************************************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_mgframesurfaces(regions, someMoved, iType)
 
subroutine rflo_mgframeedges(region, iType, boundMoved, allExternal, edgeMoved, arcLen12, arcLen34, arcLen56, xyzOld, dNode)
 
subroutine rflo_mgframeedgeso(region, iType, boundMoved, allExternal, edgeMoved, arcLen12, arcLen34, arcLen56, xyzOld, dNode)
 
**********************************************************************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
 
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
 
subroutine rflo_arclengthbounds(region, xyz, arcLen12, arcLen34, arcLen56)
 
**********************************************************************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_tfint2d(s1, s2, s3, s4, e1, e2, e3, e4, p1, p2, p3, p4, xyz)
 
subroutine rflo_c2eavgcoeffs(region)
 
subroutine, public rflo_mgframebroadcast(regions, iselect, iter)
 
subroutine registerfunction(global, funName, fileName)
 
subroutine, public rflo_normcrossprod(s1, s2, s3)
 
**********************************************************************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, public rflo_movegridframe(regions)
 
subroutine rflo_exchangednoderecv(region, regionSrc, patch, patchSrc, average, dNode)
 
subroutine rflo_c2favgcoeffs(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 jpcbeg
 
subroutine rflo_changeinteriorgrid(region, boundMoved, edgeMoved, arcLen12, arcLen34, arcLen56, xyzOld, xyz)
 
subroutine, public rflo_gridqualityglobal(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 ipcend
 
subroutine rflo_movegridinterfaces(regions)
 
subroutine rflo_calccontrolvolumes(region)
 
subroutine rflo_tfint1d(s, p1, p2, xyz)
 
**********************************************************************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
 
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
 
subroutine rflo_mgframeorthoshift(regions)
 
subroutine rflo_mgframemovecorners(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 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_exchangegeometry(regions)
 
subroutine rflo_movegridsurfaces(regions, someMoved)
 
subroutine rflo_generatecoarsegrids(region)
 
subroutine rflo_getpatchindicesnodes(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
 
subroutine rflo_mgframeinterfaces(regions, iType)
 
**********************************************************************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, public rflo_mgframesrchneighbors(regions)
 
subroutine rflo_clearsendrequests(regions, iReg, geometry)
 
subroutine rflo_calcgridspeeds(region)
 
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
 
subroutine rflo_getdimensphysnodes(region, iLev, ipnbeg, ipnend, jpnbeg, jpnend, kpnbeg, kpnend)
 
**********************************************************************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
 
subroutine rflo_mgframebnddeformation0(region, boundMoved, edgeMoved, arcLen12, arcLen34, arcLen56, xyzOld, dNode)
 
**********************************************************************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)
 
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)
 
subroutine rflo_mgframerestoreexternal(region)
 
subroutine rflo_mgframebnddeformation(region, boundMoved, edgeMoved, arcLen12, arcLen34, arcLen56, xyzOld, dNode)
 
**********************************************************************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)
 
subroutine rflo_checkmetrics(iReg, region)
 
subroutine rflo_getdimensphys(region, iLev, ipcbeg, ipcend, jpcbeg, jpcend, kpcbeg, kpcend)
 
subroutine rflo_laplacegridsmoo(regions, resid)
 
subroutine rflo_calcfacecentroids(region)
 
subroutine, public rflo_mgframecornpoints(regions)
 
subroutine rflo_mgframecorrectneighbors(regions)