Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLO_ExchangeGeometrySend.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: send geometry of interior nodes to adjacent region
26 ! which is on another processor.
27 !
28 ! Description: none.
29 !
30 ! Input: region = current region
31 ! regionSrc = region to send data to
32 ! patch = current patch of region.
33 !
34 ! Output: patch%mixt%sendBuff = send buffer.
35 !
36 ! Notes: operation carried out for the finest grid only. Intended for
37 ! conforming grid boundaries (also periodic) only.
38 !
39 !******************************************************************************
40 !
41 ! $Id: RFLO_ExchangeGeometrySend.F90,v 1.4 2008/12/06 08:44:27 mtcampbe Exp $
42 !
43 ! Copyright: (c) 2001 by the University of Illinois
44 !
45 !******************************************************************************
46 
47 SUBROUTINE rflo_exchangegeometrysend( region,regionSrc,patch )
48 
49  USE moddatatypes
50  USE modbndpatch, ONLY : t_patch
51  USE moddatastruct, ONLY : t_region
52  USE modglobal, ONLY : t_global
54  USE moderror
55  USE modmpi
56  USE modparameters
57  IMPLICIT NONE
58 
59 #include "Indexing.h"
60 
61 ! ... parameters
62  TYPE(t_region) :: region, regionsrc
63  TYPE(t_patch) :: patch
64 
65 ! ... loop variables
66  INTEGER :: idum, i, j, k, ijkbuff
67 
68 ! ... local variables
69  INTEGER :: bctype, ibeg, iend, jbeg, jend, kbeg, kend, inoff, ijnoff, ijkn, &
70  ijknb, n1, n2, ndim, dest, tag, request, ibnd, jbnd, kbnd
71  INTEGER :: lb, l1srcdir, l2srcdir, l1beg, l1end, l1step, l2beg, l2end, l2step
72 
73  LOGICAL :: align
74 
75  REAL(RFREAL) :: v1(3), v2(3)
76  REAL(RFREAL), POINTER :: xyz(:,:)
77 
78  TYPE(t_global), POINTER :: global
79 
80 !******************************************************************************
81 
82  global => region%global
83 
84  CALL registerfunction( global,'RFLO_ExchangeGeometrySend',&
85  'RFLO_ExchangeGeometrySend.F90' )
86 
87 ! check if the source region is active
88 
89  IF (regionsrc%active == off) THEN
90  CALL errorstop( global,err_srcregion_off,__line__ )
91  ENDIF
92 
93 ! get dimensions and pointers
94 
95  CALL rflo_getpatchindicesnodes( region,patch,1,ibeg,iend, &
96  jbeg,jend,kbeg,kend )
97  CALL rflo_getnodeoffset( region,1,inoff,ijnoff )
98 
99  xyz => region%levels(1)%grid%xyz
100 
101  n1 = abs(patch%l1end-patch%l1beg) + 2 ! here, dimensions of current
102  n2 = abs(patch%l2end-patch%l2beg) + 2 ! and source patch are identical
103  ndim = n1*n2*regionsrc%nDumCells ! ... but not the # of dummy cells
104 
105  lb = patch%lbound
106  align = patch%align
107  bctype = patch%bcType
108 
109 ! mapping between patches
110 
111  l1srcdir = 1
112  IF (patch%srcL1beg > patch%srcL1end) THEN
113  l1srcdir = -1
114  ELSE IF (patch%srcL1beg == patch%srcL1end) THEN
115  IF (lb==1 .OR. lb==2) THEN
116  IF (align) THEN
117  v2(:) = xyz(:,indijk(ibeg,jend,kbeg,inoff,ijnoff)) - &
118  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
119  ELSE
120  v2(:) = xyz(:,indijk(ibeg,jbeg,kend,inoff,ijnoff)) - &
121  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
122  ENDIF
123  ELSE IF (lb==3 .OR. lb==4) THEN
124  IF (align) THEN
125  v2(:) = xyz(:,indijk(ibeg,jbeg,kend,inoff,ijnoff)) - &
126  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
127  ELSE
128  v2(:) = xyz(:,indijk(iend,jbeg,kbeg,inoff,ijnoff)) - &
129  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
130  ENDIF
131  ELSE IF (lb==5 .OR. lb==6) THEN
132  IF (align) THEN
133  v2(:) = xyz(:,indijk(iend,jbeg,kbeg,inoff,ijnoff)) - &
134  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
135  ELSE
136  v2(:) = xyz(:,indijk(ibeg,jend,kbeg,inoff,ijnoff)) - &
137  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
138  ENDIF
139  ENDIF
140  v1(:) = patch%l1VecSrc(:)
141  IF (dot_product(v1,v2) < 0._rfreal) l1srcdir = -1
142  ENDIF
143 
144  l2srcdir = 1
145  IF (patch%srcL2beg > patch%srcL2end) THEN
146  l2srcdir = -1
147  ELSE IF (patch%srcL2beg == patch%srcL2end) THEN
148  IF (lb==1 .OR. lb==2) THEN
149  IF (align) THEN
150  v2(:) = xyz(:,indijk(ibeg,jbeg,kend,inoff,ijnoff)) - &
151  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
152  ELSE
153  v2(:) = xyz(:,indijk(ibeg,jend,kbeg,inoff,ijnoff)) - &
154  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
155  ENDIF
156  ELSE IF (lb==3 .OR. lb==4) THEN
157  IF (align) THEN
158  v2(:) = xyz(:,indijk(iend,jbeg,kbeg,inoff,ijnoff)) - &
159  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
160  ELSE
161  v2(:) = xyz(:,indijk(ibeg,jbeg,kend,inoff,ijnoff)) - &
162  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
163  ENDIF
164  ELSE IF (lb==5 .OR. lb==6) THEN
165  IF (align) THEN
166  v2(:) = xyz(:,indijk(ibeg,jend,kbeg,inoff,ijnoff)) - &
167  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
168  ELSE
169  v2(:) = xyz(:,indijk(iend,jbeg,kbeg,inoff,ijnoff)) - &
170  xyz(:,indijk(ibeg,jbeg,kbeg,inoff,ijnoff))
171  ENDIF
172  ENDIF
173  v1(:) = patch%l2VecSrc(:)
174  IF (dot_product(v1,v2) < 0._rfreal) l2srcdir = -1
175  ENDIF
176 
177 ! loop over interior nodes of current patch -----------------------------------
178 
179  ijkbuff = 0
180 
181  DO idum=1,regionsrc%nDumCells
182 
183 ! - face i=const.
184 
185  IF (lb==1 .OR. lb==2) THEN
186 
187  IF (lb == 1) THEN
188  i = ibeg + idum
189  ibnd = ibeg
190  ELSE IF (lb == 2) THEN
191  i = iend - idum
192  ibnd = iend
193  ENDIF
194 
195  IF (align) THEN
196  IF (l1srcdir > 0) THEN
197  l1beg = jbeg
198  l1end = jend
199  ELSE
200  l1beg = jend
201  l1end = jbeg
202  ENDIF
203  l1step = l1srcdir
204  IF (l2srcdir > 0) THEN
205  l2beg = kbeg
206  l2end = kend
207  ELSE
208  l2beg = kend
209  l2end = kbeg
210  ENDIF
211  l2step = l2srcdir
212  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
213  (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range)) THEN
214  DO k=l2beg,l2end,l2step
215  DO j=l1beg,l1end,l1step
216  ijkn = indijk(i,j,k,inoff,ijnoff)
217  ijkbuff = ijkbuff + 1
218  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn)
219  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn)
220  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn)
221  ENDDO
222  ENDDO
223  ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range) THEN
224  DO k=l2beg,l2end,l2step
225  DO j=l1beg,l1end,l1step
226  ijkn = indijk(i ,j,k,inoff,ijnoff)
227  ijknb = indijk(ibnd,j,k,inoff,ijnoff)
228  ijkbuff = ijkbuff + 1
229  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn ) - &
230  xyz(xcoord,ijknb)
231  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn ) - &
232  xyz(ycoord,ijknb)
233  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn ) - &
234  xyz(zcoord,ijknb)
235  ENDDO
236  ENDDO
237  ENDIF
238  ELSE ! not aligned
239  IF (l1srcdir > 0) THEN
240  l1beg = kbeg
241  l1end = kend
242  ELSE
243  l1beg = kend
244  l1end = kbeg
245  ENDIF
246  l1step = l1srcdir
247  IF (l2srcdir > 0) THEN
248  l2beg = jbeg
249  l2end = jend
250  ELSE
251  l2beg = jend
252  l2end = jbeg
253  ENDIF
254  l2step = l2srcdir
255  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
256  (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range)) THEN
257  DO j=l2beg,l2end,l2step
258  DO k=l1beg,l1end,l1step
259  ijkn = indijk(i,j,k,inoff,ijnoff)
260  ijkbuff = ijkbuff + 1
261  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn)
262  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn)
263  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn)
264  ENDDO
265  ENDDO
266  ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range) THEN
267  DO j=l2beg,l2end,l2step
268  DO k=l1beg,l1end,l1step
269  ijkn = indijk(i ,j,k,inoff,ijnoff)
270  ijknb = indijk(ibnd,j,k,inoff,ijnoff)
271  ijkbuff = ijkbuff + 1
272  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn ) - &
273  xyz(xcoord,ijknb)
274  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn ) - &
275  xyz(ycoord,ijknb)
276  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn ) - &
277  xyz(zcoord,ijknb)
278  ENDDO
279  ENDDO
280  ENDIF
281  ENDIF ! align
282 
283 ! - face j=const.
284 
285  ELSE IF (lb==3 .OR. lb==4) THEN
286 
287  IF (lb == 3) THEN
288  j = jbeg + idum
289  jbnd = jbeg
290  ELSE IF (lb == 4) THEN
291  j = jend - idum
292  jbnd = jend
293  ENDIF
294 
295  IF (align) THEN
296  IF (l1srcdir > 0) THEN
297  l1beg = kbeg
298  l1end = kend
299  ELSE
300  l1beg = kend
301  l1end = kbeg
302  ENDIF
303  l1step = l1srcdir
304  IF (l2srcdir > 0) THEN
305  l2beg = ibeg
306  l2end = iend
307  ELSE
308  l2beg = iend
309  l2end = ibeg
310  ENDIF
311  l2step = l2srcdir
312  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
313  (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range)) THEN
314  DO i=l2beg,l2end,l2step
315  DO k=l1beg,l1end,l1step
316  ijkn = indijk(i,j,k,inoff,ijnoff)
317  ijkbuff = ijkbuff + 1
318  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn)
319  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn)
320  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn)
321  ENDDO
322  ENDDO
323  ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range) THEN
324  DO i=l2beg,l2end,l2step
325  DO k=l1beg,l1end,l1step
326  ijkn = indijk(i,j ,k,inoff,ijnoff)
327  ijknb = indijk(i,jbnd,k,inoff,ijnoff)
328  ijkbuff = ijkbuff + 1
329  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn ) - &
330  xyz(xcoord,ijknb)
331  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn ) - &
332  xyz(ycoord,ijknb)
333  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn ) - &
334  xyz(zcoord,ijknb)
335  ENDDO
336  ENDDO
337  ENDIF
338  ELSE ! not aligned
339  IF (l1srcdir > 0) THEN
340  l1beg = ibeg
341  l1end = iend
342  ELSE
343  l1beg = iend
344  l1end = ibeg
345  ENDIF
346  l1step = l1srcdir
347  IF (l2srcdir > 0) THEN
348  l2beg = kbeg
349  l2end = kend
350  ELSE
351  l2beg = kend
352  l2end = kbeg
353  ENDIF
354  l2step = l2srcdir
355  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
356  (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range)) THEN
357  DO k=l2beg,l2end,l2step
358  DO i=l1beg,l1end,l1step
359  ijkn = indijk(i,j,k,inoff,ijnoff)
360  ijkbuff = ijkbuff + 1
361  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn)
362  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn)
363  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn)
364  ENDDO
365  ENDDO
366  ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range) THEN
367  DO k=l2beg,l2end,l2step
368  DO i=l1beg,l1end,l1step
369  ijkn = indijk(i,j ,k,inoff,ijnoff)
370  ijknb = indijk(i,jbnd,k,inoff,ijnoff)
371  ijkbuff = ijkbuff + 1
372  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn ) - &
373  xyz(xcoord,ijknb)
374  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn ) - &
375  xyz(ycoord,ijknb)
376  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn ) - &
377  xyz(zcoord,ijknb)
378  ENDDO
379  ENDDO
380  ENDIF
381  ENDIF ! align
382 
383 ! - face k=const.
384 
385  ELSE IF (lb==5 .OR. lb==6) THEN
386 
387  IF (lb == 5) THEN
388  k = kbeg + idum
389  kbnd = kbeg
390  ELSE IF (lb == 6) THEN
391  k = kend - idum
392  kbnd = kend
393  ENDIF
394 
395  IF (align) THEN
396  IF (l1srcdir > 0) THEN
397  l1beg = ibeg
398  l1end = iend
399  ELSE
400  l1beg = iend
401  l1end = ibeg
402  ENDIF
403  l1step = l1srcdir
404  IF (l2srcdir > 0) THEN
405  l2beg = jbeg
406  l2end = jend
407  ELSE
408  l2beg = jend
409  l2end = jbeg
410  ENDIF
411  l2step = l2srcdir
412  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
413  (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range)) THEN
414  DO j=l2beg,l2end,l2step
415  DO i=l1beg,l1end,l1step
416  ijkn = indijk(i,j,k,inoff,ijnoff)
417  ijkbuff = ijkbuff + 1
418  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn)
419  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn)
420  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn)
421  ENDDO
422  ENDDO
423  ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range) THEN
424  DO j=l2beg,l2end,l2step
425  DO i=l1beg,l1end,l1step
426  ijkn = indijk(i,j,k ,inoff,ijnoff)
427  ijknb = indijk(i,j,kbnd,inoff,ijnoff)
428  ijkbuff = ijkbuff + 1
429  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn ) - &
430  xyz(xcoord,ijknb)
431  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn ) - &
432  xyz(ycoord,ijknb)
433  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn ) - &
434  xyz(zcoord,ijknb)
435  ENDDO
436  ENDDO
437  ENDIF
438  ELSE ! not aligned
439  IF (l1srcdir > 0) THEN
440  l1beg = jbeg
441  l1end = jend
442  ELSE
443  l1beg = jend
444  l1end = jbeg
445  ENDIF
446  l1step = l1srcdir
447  IF (l2srcdir > 0) THEN
448  l2beg = ibeg
449  l2end = iend
450  ELSE
451  l2beg = iend
452  l2end = ibeg
453  ENDIF
454  l2step = l2srcdir
455  IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
456  (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range)) THEN
457  DO i=l2beg,l2end,l2step
458  DO j=l1beg,l1end,l1step
459  ijkn = indijk(i,j,k,inoff,ijnoff)
460  ijkbuff = ijkbuff + 1
461  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn)
462  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn)
463  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn)
464  ENDDO
465  ENDDO
466  ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range) THEN
467  DO i=l2beg,l2end,l2step
468  DO j=l1beg,l1end,l1step
469  ijkn = indijk(i,j,k ,inoff,ijnoff)
470  ijknb = indijk(i,j,kbnd,inoff,ijnoff)
471  ijkbuff = ijkbuff + 1
472  patch%mixt%sendBuff(ijkbuff ) = xyz(xcoord,ijkn ) - &
473  xyz(xcoord,ijknb)
474  patch%mixt%sendBuff(ijkbuff+ ndim) = xyz(ycoord,ijkn ) - &
475  xyz(ycoord,ijknb)
476  patch%mixt%sendBuff(ijkbuff+2*ndim) = xyz(zcoord,ijkn ) - &
477  xyz(zcoord,ijknb)
478  ENDDO
479  ENDDO
480  ENDIF
481  ENDIF ! align
482 
483  ENDIF ! lb
484 
485  ENDDO ! idum
486 
487 ! send data -------------------------------------------------------------------
488 
489 #ifdef MPI
490  dest = regionsrc%procid
491  tag = regionsrc%localNumber + mpi_patchoff*patch%srcPatch
492  CALL mpi_isend( patch%mixt%sendBuff,3*ndim,mpi_rfreal,dest,tag, &
493  global%mpiComm,global%requests(patch%mixt%iRequest), &
494  global%mpierr )
495  IF (global%mpierr /= 0) CALL errorstop( global,err_mpi_trouble,__line__ )
496 #endif
497 
498 ! finalize --------------------------------------------------------------------
499 
500  CALL deregisterfunction( global )
501 
502 END SUBROUTINE rflo_exchangegeometrysend
503 
504 !******************************************************************************
505 !
506 ! RCS Revision history:
507 !
508 ! $Log: RFLO_ExchangeGeometrySend.F90,v $
509 ! Revision 1.4 2008/12/06 08:44:27 mtcampbe
510 ! Updated license.
511 !
512 ! Revision 1.3 2008/11/19 22:17:38 mtcampbe
513 ! Added Illinois Open Source License/Copyright
514 !
515 ! Revision 1.2 2006/08/19 15:39:39 mparmar
516 ! Renamed patch variables
517 !
518 ! Revision 1.1 2004/11/29 20:51:39 wasistho
519 ! lower to upper case
520 !
521 ! Revision 1.14 2003/11/20 16:40:39 mdbrandy
522 ! Backing out RocfluidMP changes from 11-17-03
523 !
524 ! Revision 1.10 2003/05/15 02:57:04 jblazek
525 ! Inlined index function.
526 !
527 ! Revision 1.9 2003/03/14 22:05:11 jblazek
528 ! Improved mesh motion algorithm - node movement exchaged between blocks.
529 !
530 ! Revision 1.8 2002/12/06 22:29:26 jblazek
531 ! Corrected bug for geometry exchange between minimal patches.
532 !
533 ! Revision 1.7 2002/09/27 00:57:10 jblazek
534 ! Changed makefiles - no makelinks needed.
535 !
536 ! Revision 1.6 2002/09/20 22:22:36 jblazek
537 ! Finalized integration into GenX.
538 !
539 ! Revision 1.5 2002/09/05 17:40:21 jblazek
540 ! Variable global moved into regions().
541 !
542 ! Revision 1.4 2002/06/22 01:13:38 jblazek
543 ! Modified interfaces to BC routines.
544 !
545 ! Revision 1.3 2002/03/30 00:50:49 jblazek
546 ! Cleaned up with flint.
547 !
548 ! Revision 1.2 2002/03/29 23:15:22 jblazek
549 ! Corrected bug in MPI send.
550 !
551 ! Revision 1.1 2002/03/18 23:11:33 jblazek
552 ! Finished multiblock and MPI.
553 !
554 !******************************************************************************
555 
556 
557 
558 
559 
560 
561 
**********************************************************************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
j indices k indices k
Definition: Indexing.h:6
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine rflo_exchangegeometrysend(region, regionSrc, patch)
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
Definition: patch.h:74
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode iend
subroutine rflo_getpatchindicesnodes(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
blockLoc i
Definition: read.cpp:79
j indices j
Definition: Indexing.h:6
**********************************************************************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 errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
**********************************************************************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 dot_product(pnt vec1, pnt vec2)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode kbeg
subroutine deregisterfunction(global)
Definition: ModError.F90:469