Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLO_CalcGradVector.F90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
23 !******************************************************************************
24 !
25 ! Purpose: Compute gradients of a given vector at i,j,k faces
26 !
27 ! Description: Computation performed first at interior points
28 ! then at patches for:
29 ! - connecting (periodic and block interface) b.c. case
30 ! - physical b.c. case
31 ! then their corresponding dummies
32 !
33 ! Input: region = data of current region
34 ! iBegV = begin component index of vector variable to be grad
35 ! iEndV = end component index of vector variable to be grad
36 ! iBegG = begin component index of resulting gradient vector
37 ! iEndG = end component index of resulting gradient vector
38 ! var = vector variable to be grad
39 !
40 ! Output: gradi,gradj,gradk = region%levels%mixt%gradi,j,k =
41 ! resulting gradient vector at i,j,k faces
42 !
43 ! Notes: Subroutine CheckVelTIndx and CheckGrad contained in this file
44 ! to check consistency of component indices and to check results of
45 ! velocity and temperature gradients-computation
46 !
47 !******************************************************************************
48 !
49 ! $Id: RFLO_CalcGradVector.F90,v 1.3 2008/12/06 08:44:06 mtcampbe Exp $
50 !
51 ! Copyright: (c) 2001 by the University of Illinois
52 !
53 !******************************************************************************
54 
55 SUBROUTINE rflo_calcgradvector( region,iBegV,iEndV,iBegG,iEndG,var, &
56  gradi,gradj,gradk )
57 
58  USE moddatatypes
59  USE moddatastruct, ONLY : t_region
63  USE moderror
64  USE modparameters
65  IMPLICIT NONE
66 
67 ! ... parameters
68  TYPE(t_region) :: region
69  INTEGER :: ibegv, iendv, ibegg, iendg
70  REAL(RFREAL), POINTER :: var(:,:), gradi(:,:), gradj(:,:), gradk(:,:)
71 
72 ! ... loop variables
73  INTEGER :: i, j, k, ipatch
74 
75 ! ... local variables
76  INTEGER :: ilev
77  INTEGER :: iconbc(6)
78 
79 !******************************************************************************
80 
81  CALL registerfunction( region%global,'RFLO_CalcGradVector',&
82  'RFLO_CalcGradVector.F90' )
83 
84 ! get some parameters and flags --------------------------------------------
85 
86  ilev = region%currLevel
87  iconbc(:) = 0 ! this flag identifies connecting patch is treated or not yet
88 
89 ! check consistency of indices
90 
91  CALL checkindxrange
92 
93 ! gradient in i, j and k-faces without dummy faces -------------------------
94 
95  CALL rflo_calcgradfaces( region,ilev,ibegv,iendv,ibegg,iendg,var, &
96  gradi,gradj,gradk )
97 
98 ! apply boundary conditions to the gradients at the patches -----------------
99 ! ConnBc covers connecting bc: periodic and region-interface
100 ! PhysBc covers physical bc: in/outflow, farfield, wall and injection
101 ! Symmetry bc is covered in PhysBc for compactness
102 
103  DO ipatch=1,region%nPatches
104  CALL rflo_calcgradconnbc( region,region%levels(ilev)%patches(ipatch), &
105  iconbc,ibegv,iendv,ibegg,iendg,var, &
106  gradi,gradj,gradk )
107  CALL rflo_calcgradphysbc( region,region%levels(ilev)%patches(ipatch), &
108  ibegv,iendv,ibegg,iendg,var,gradi,gradj,gradk )
109  ENDDO
110 
111 ! extend to patch dummies
112 
113  DO ipatch=1,region%nPatches
114  CALL rflo_calcgraddummy( region,region%levels(ilev)%patches(ipatch), &
115  ibegv,iendv,ibegg,iendg,gradi,gradj,gradk )
116  ENDDO
117 
118 ! and copy to edge/corner dummies --------------------------------------------
119 ! the edge length is extended that corners are covered to minimize work
120 
121  CALL rflo_copyedgefacenorm( region,ibegg,iendg,gradi,gradj,gradk )
122  CALL rflo_copyedgefaceparal( region,ibegg,iendg,gradi,gradj,gradk )
123 
124 ! if needed, check all gradients up to dummy points (for debugging)-----------
125 
126 #ifdef CHECK_GRAD
127  CALL checkgrad
128 #endif
129 
130 ! finalize --------------------------------------------------------------------
131 
132  CALL deregisterfunction( region%global )
133 
134 !==============================================================================
135 
136 CONTAINS
137 
138  SUBROUTINE checkindxrange
139  USE moderror
140 
141 ! ... local variables
142  INTEGER :: nvar, ngrd, istop
143 
144 ! - get number of array components and check consistency of component index
145 
146  nvar = iendv - ibegv+1
147  ngrd = iendg - ibegg+1
148 
149  istop = 0
150  IF ((nvar<1) .OR. (ngrd<1) .OR. (mod(ngrd,nvar)/=0)) istop = 1
151  IF (istop == 1) THEN
152  CALL errorstop( region%global,err_grad_index,__line__, &
153  'Gradient indices are not consistent' )
154  ENDIF
155 
156  END SUBROUTINE checkindxrange
157 
158 !==============================================================================
159 
160 #ifdef CHECK_GRAD
161  SUBROUTINE checkgrad
162 
163  USE modglobal, ONLY : t_global
166  USE modparameters
167  IMPLICIT NONE
168 
169 #include "Indexing.h"
170 
171  INTEGER :: idnbeg,idnend,jdnbeg,jdnend,kdnbeg,kdnend
172  INTEGER :: ijkc,ijkn,icoff,inoff,ijcoff,ijnoff
173  INTEGER :: ip1jkn,ijp1kn,ijkp1n,ip1jp1kn,ip1jkp1n,ijp1kp1n,ip1jp1kp1n
174  INTEGER :: m,l, mindx(9),iermax(9,3),jermax(9,3),kermax(9,3)
175  REAL(RFREAL) :: xc, yc, zc
176  REAL(RFREAL) :: diff(9,3), errmax(9,3), rval(9)
177 
178  CALL rflo_getdimensdummynodes( region,ilev,idnbeg,idnend, &
179  jdnbeg,jdnend,kdnbeg,kdnend )
180  CALL rflo_getnodeoffset( region,ilev,inoff,ijnoff )
181  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
182 
183  mindx(1)=1 ;rval(1)=0._rfreal
184  mindx(2)=2 ;rval(2)=0._rfreal
185  mindx(3)=3 ;rval(3)=0._rfreal
186  mindx(4)=5 ;rval(4)=0._rfreal
187  mindx(5)=6 ;rval(5)=0._rfreal
188  mindx(6)=7 ;rval(6)=0._rfreal
189  mindx(7)=9 ;rval(7)=0._rfreal
190  mindx(8)=10 ;rval(8)=0._rfreal
191  mindx(9)=11 ;rval(9)=0._rfreal
192  DO m=1,9
193  errmax(m,1)=0.0_rfreal
194  errmax(m,2)=0.0_rfreal
195  errmax(m,3)=0.0_rfreal
196  ENDDO
197  DO k=kdnbeg,kdnend; DO j=jdnbeg,jdnend; DO i=idnbeg,idnend;
198  ijkn = indijk(i ,j ,k ,inoff,ijnoff)
199  ip1jkn = indijk(i+1,j ,k ,inoff,ijnoff)
200  ijp1kn = indijk(i ,j+1,k ,inoff,ijnoff)
201  ijkp1n = indijk(i ,j ,k+1,inoff,ijnoff)
202  ip1jp1kn = indijk(i+1,j+1,k ,inoff,ijnoff)
203  ip1jkp1n = indijk(i+1,j ,k+1,inoff,ijnoff)
204  ijp1kp1n = indijk(i ,j+1,k+1,inoff,ijnoff)
205  ip1jp1kp1n= indijk(i+1,j+1,k+1,inoff,ijnoff)
206  ijkc = indijk(i ,j ,k ,icoff,ijcoff)
207  xc=(region%levels(ilev)%grid%xyz(xcoord,ijkn)+ &
208  region%levels(ilev)%grid%xyz(xcoord,ip1jkn)+ &
209  region%levels(ilev)%grid%xyz(xcoord,ijp1kn)+ &
210  region%levels(ilev)%grid%xyz(xcoord,ijkp1n)+ &
211  region%levels(ilev)%grid%xyz(xcoord,ip1jp1kn)+ &
212  region%levels(ilev)%grid%xyz(xcoord,ijp1kp1n)+ &
213  region%levels(ilev)%grid%xyz(xcoord,ip1jkp1n)+ &
214  region%levels(ilev)%grid%xyz(xcoord,ip1jp1kp1n))/8._rfreal
215  yc=(region%levels(ilev)%grid%xyz(ycoord,ijkn)+ &
216  region%levels(ilev)%grid%xyz(ycoord,ip1jkn)+ &
217  region%levels(ilev)%grid%xyz(ycoord,ijp1kn)+ &
218  region%levels(ilev)%grid%xyz(ycoord,ijkp1n)+ &
219  region%levels(ilev)%grid%xyz(ycoord,ip1jp1kn)+ &
220  region%levels(ilev)%grid%xyz(ycoord,ijp1kp1n)+ &
221  region%levels(ilev)%grid%xyz(ycoord,ip1jkp1n)+ &
222  region%levels(ilev)%grid%xyz(ycoord,ip1jp1kp1n))/8._rfreal
223  zc=(region%levels(ilev)%grid%xyz(zcoord,ijkn)+ &
224  region%levels(ilev)%grid%xyz(zcoord,ip1jkn)+ &
225  region%levels(ilev)%grid%xyz(zcoord,ijp1kn)+ &
226  region%levels(ilev)%grid%xyz(zcoord,ijkp1n)+ &
227  region%levels(ilev)%grid%xyz(zcoord,ip1jp1kn)+ &
228  region%levels(ilev)%grid%xyz(zcoord,ijp1kp1n)+ &
229  region%levels(ilev)%grid%xyz(zcoord,ip1jkp1n)+ &
230  region%levels(ilev)%grid%xyz(zcoord,ip1jp1kp1n))/8._rfreal
231 
232  DO m=1,9
233 ! ----- averaged cell values
234 ! diff(m,1)=0.5d0*(gradi(mindx(m),ijkN)+gradi(mindx(m),ip1jkN))-rval(m)
235 ! diff(m,2)=0.5d0*(gradj(mindx(m),ijkN)+gradj(mindx(m),ijp1kN))-rval(m)
236 ! diff(m,3)=0.5d0*(gradk(mindx(m),ijkN)+gradk(mindx(m),ijkp1N))-rval(m)
237 ! ----- face values
238  diff(m,1) = gradi(mindx(m),ijkn)-rval(m)
239  diff(m,2) = gradj(mindx(m),ijkn)-rval(m)
240  diff(m,3) = gradk(mindx(m),ijkn)-rval(m)
241 
242  IF (abs(diff(m,1)) > errmax(m,1)) THEN
243  errmax(m,1) = abs(diff(m,1))
244  iermax(m,1) = i
245  jermax(m,1) = j
246  kermax(m,1) = k
247  ENDIF
248  IF (abs(diff(m,2)) > errmax(m,2)) THEN
249  errmax(m,2) = abs(diff(m,2))
250  iermax(m,2) = i
251  jermax(m,2) = j
252  kermax(m,2) = k
253  ENDIF
254  IF (abs(diff(m,3)) > errmax(m,3)) THEN
255  errmax(m,3) = abs(diff(m,3))
256  iermax(m,3) = i
257  jermax(m,3) = j
258  kermax(m,3) = k
259  ENDIF
260  ENDDO ! m
261 
262  WRITE(stdout,*) i,j,k,gradi(1,ijkn),gradi(2,ijkn),gradi(3,ijkn)
263  WRITE(stdout,*) i,j,k,gradi(5,ijkn),gradi(6,ijkn),gradi(7,ijkn)
264  WRITE(stdout,*) i,j,k,gradi(9,ijkn),gradi(10,ijkn),gradi(11,ijkn)
265 
266  WRITE(stdout,*) i,j,k,gradj(1,ijkn),gradj(2,ijkn),gradj(3,ijkn)
267  WRITE(stdout,*) i,j,k,gradj(5,ijkn),gradj(6,ijkn),gradj(7,ijkn)
268  WRITE(stdout,*) i,j,k,gradj(9,ijkn),gradj(10,ijkn),gradj(11,ijkn)
269 
270  WRITE(stdout,*) i,j,k,gradk(1,ijkn),gradk(2,ijkn),gradk(3,ijkn)
271  WRITE(stdout,*) i,j,k,gradk(5,ijkn),gradk(6,ijkn),gradk(7,ijkn)
272  WRITE(stdout,*) i,j,k,gradk(9,ijkn),gradk(10,ijkn),gradk(11,ijkn)
273  enddo; enddo; enddo;
274 
275  WRITE(stdout,*)
276  WRITE(stdout,*) 'region:',region%localNumber
277  DO l=1,3
278  WRITE(stdout,*)
279  WRITE(stdout,*) 'max error in grad',l,'(ux) in i,j,k = ', &
280  errmax(1,l),iermax(1,l),jermax(1,l),kermax(1,l)
281  WRITE(stdout,*) 'max error in grad',l,'(vx) in i,j,k = ', &
282  errmax(2,l),iermax(2,l),jermax(2,l),kermax(2,l)
283  WRITE(stdout,*) 'max error in grad',l,'(wx) in i,j,k = ', &
284  errmax(3,l),iermax(3,l),jermax(3,l),kermax(3,l)
285  WRITE(stdout,*) 'max error in grad',l,'(uy) in i,j,k = ', &
286  errmax(4,l),iermax(4,l),jermax(4,l),kermax(4,l)
287  WRITE(stdout,*) 'max error in grad',l,'(vy) in i,j,k = ', &
288  errmax(5,l),iermax(5,l),jermax(5,l),kermax(5,l)
289  WRITE(stdout,*) 'max error in grad',l,'(wy) in i,j,k = ', &
290  errmax(6,l),iermax(6,l),jermax(6,l),kermax(6,l)
291  WRITE(stdout,*) 'max error in grad',l,'(uz) in i,j,k = ', &
292  errmax(7,l),iermax(7,l),jermax(7,l),kermax(7,l)
293  WRITE(stdout,*) 'max error in grad',l,'(vz) in i,j,k = ', &
294  errmax(8,l),iermax(8,l),jermax(8,l),kermax(8,l)
295  WRITE(stdout,*) 'max error in grad',l,'(wz) in i,j,k = ', &
296  errmax(9,l),iermax(9,l),jermax(9,l),kermax(9,l)
297  ENDDO
298 
299  IF (region%localNumber == region%global%nRegions) stop
300 
301  END SUBROUTINE checkgrad
302 #endif
303 
304 END SUBROUTINE rflo_calcgradvector
305 
306 !******************************************************************************
307 !
308 ! RCS Revision history:
309 !
310 ! $Log: RFLO_CalcGradVector.F90,v $
311 ! Revision 1.3 2008/12/06 08:44:06 mtcampbe
312 ! Updated license.
313 !
314 ! Revision 1.2 2008/11/19 22:17:20 mtcampbe
315 ! Added Illinois Open Source License/Copyright
316 !
317 ! Revision 1.1 2004/11/29 21:25:16 wasistho
318 ! lower to upper case
319 !
320 ! Revision 1.10 2004/05/03 15:07:45 jferry
321 ! minor bug fix: changed "global" to "t_global"
322 !
323 ! Revision 1.9 2003/11/20 16:40:34 mdbrandy
324 ! Backing out RocfluidMP changes from 11-17-03
325 !
326 ! Revision 1.6 2003/05/15 02:57:01 jblazek
327 ! Inlined index function.
328 !
329 ! Revision 1.5 2003/01/10 17:58:42 jblazek
330 ! Added missing explicit interfaces.
331 !
332 ! Revision 1.4 2002/09/05 17:40:19 jblazek
333 ! Variable global moved into regions().
334 !
335 ! Revision 1.3 2002/09/03 00:00:52 wasistho
336 ! Renamed CheckVelTIndx to CheckIndxRange
337 !
338 ! Revision 1.2 2002/09/02 23:33:02 wasistho
339 ! Moved grad index check to rocflo/RFLO_checkUserInput
340 !
341 ! Revision 1.1 2002/09/02 22:58:54 wasistho
342 ! RFLO grad routines migrated from rocflo to libflo
343 !
344 ! Revision 1.2 2002/08/15 19:48:05 jblazek
345 ! Implemented grid deformation capability.
346 !
347 ! Revision 1.1 2002/08/01 01:46:35 wasistho
348 ! Renamed from libfloflu/calcGradVelT
349 !
350 !******************************************************************************
351 
352 
353 
354 
355 
356 
357 
FT m(int i, int j) const
subroutine rflo_calcgradphysbc(region, patch, iBegV, iEndV, iBegG, iEndG, var, gradi, gradj, gradk)
j indices k indices k
Definition: Indexing.h:6
subroutine rflo_copyedgefacenorm(region, iFBeg, iFEnd, fvari, fvarj, fvark)
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jdnbeg
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE idnend
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jdnend
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE idnbeg
blockLoc i
Definition: read.cpp:79
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE iEndG gradi(:,:)
subroutine rflo_calcgraddummy(region, patch, iBegV, iEndV, iBegG, iEndG, gradi, gradj, gradk)
j indices j
Definition: Indexing.h:6
subroutine rflo_getdimensdummynodes(region, iLev, idnbeg, idnend, jdnbeg, jdnend, kdnbeg, kdnend)
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
subroutine rflo_copyedgefaceparal(region, iFBeg, iFEnd, fvari, fvarj, fvark)
subroutine deregisterfunction(global)
Definition: ModError.F90:469
subroutine rflo_calcgradconnbc(region, patch, iConBc, iBegV, iEndV, iBegG, iEndG, var, gradi, gradj, gradk)
subroutine checkindxrange
subroutine rflo_getdimensphys(region, iLev, ipcbeg, ipcend, jpcbeg, jpcend, kpcbeg, kpcend)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE kdnbeg
**********************************************************************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 iEndG gradj(:,:)
subroutine rflo_calcgradvector(region, iBegV, iEndV, iBegG, iEndG, var, gradi, gradj, gradk)
subroutine rflo_calcgradfaces(region, ilev, iBegV, iEndV, iBegG, iEndG, var, gradi, gradj, gradk)