Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PLAG_CECellsExchange.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: copy values to edge and corner cells of an adjacent region
26 ! and append Lagrangian particle datastructure from buffers
27 ! communicated via the corner and edge cell infrastructure.
28 !
29 ! Description: this is for the case if the other region is located
30 ! on the same processor.
31 !
32 ! Input: regions = data of all regions,
33 ! iReg = current region.
34 !
35 ! Output: regionDes%level%plag%aiv,arv,cv,dv,tv = Lagrangian particles data.
36 !
37 ! Notes: none.
38 !
39 !******************************************************************************
40 !
41 ! $Id: PLAG_CECellsExchange.F90,v 1.4 2008/12/06 08:44:32 mtcampbe Exp $
42 !
43 ! Copyright: (c) 2003 by the University of Illinois
44 !
45 !******************************************************************************
46 
47 SUBROUTINE plag_cecellsexchange( regions,iReg )
48 
49  USE moddatatypes
51  USE moddatastruct, ONLY : t_region, t_level, t_dcell
52  USE modglobal, ONLY : t_global
53  USE modinterfaces, ONLY : rflo_getcelloffset, &
56  USE moderror
57  USE modparameters
59  IMPLICIT NONE
60 
61 #include "Indexing.h"
62 
63 ! ... parameters
64  TYPE(t_region), POINTER :: regions(:)
65 
66  INTEGER, INTENT(IN) :: ireg
67 
68 ! ... loop variables
69  INTEGER :: i, j, k, ijk, iedge, icorner, ipcls
70 
71 ! ... local variables
72  INTEGER :: ibuff, icell, iregdes, ilev, icoff, ijcoff
73  INTEGER :: ibeg, iend, jbeg, jend, kbeg, kend
74  INTEGER :: ncornbuffsize, nedgebuffsize
75  INTEGER :: ncorners, nedges
76  INTEGER :: npclsdes, npclsend, npclsprev, npclssrc, npclsstart
77  INTEGER :: icornerbuffloaded, iedgebuffloaded
78  INTEGER :: errorflag,iccmax, iecmax
79 
80  INTEGER, POINTER, DIMENSION(:,:) :: paivbuff, paivoldbuff
81  INTEGER, POINTER, DIMENSION(:,:) :: paivdes, paivolddes
82  INTEGER, ALLOCATABLE, DIMENSION(:,:) :: corncellcounter, edgecellcounter
83 
84  REAL(RFREAL), POINTER, DIMENSION(:,:) :: parvbuff, parvoldbuff, &
85  pcvbuff, pcvoldbuff, pdvbuff, &
86  ptvbuff, prhsbuff, prhssumbuff
87 
88  REAL(RFREAL), POINTER, DIMENSION(:,:) :: parvdes, parvolddes, &
89  pcvdes, pcvolddes, pdvdes, &
90  ptvdes, prhsdes, prhssumdes
91 
92  TYPE(t_region), POINTER :: pregion, pregiondes
93  TYPE(t_level), POINTER :: plevel
94  TYPE(t_buffer_plag), POINTER :: pcorncellsxbuff, pedgecellsxbuff
95  TYPE(t_plag), POINTER :: pplagdes
96  TYPE(t_global), POINTER :: global
97 
98 !******************************************************************************
99 
100  global => regions(ireg)%global
101 
102  CALL registerfunction( global,'PLAG_CECellsExchange',&
103  'PLAG_CECellsExchange.F90' )
104 
105 ! Get dimensions --------------------------------------------------------------
106 
107  ilev = regions(ireg)%currLevel
108 
109  CALL rflo_getcelloffset( regions(ireg),ilev,icoff,ijcoff )
110 
111 ! Initialize values -----------------------------------------------------------
112 
113  ncorners = 8
114  nedges = 12
115 
116  npclsstart = 0
117  npclsend = 0
118  npclsprev = 0
119  npclsdes = 0
120 
121  ncornbuffsize = 0
122  nedgebuffsize = 0
123 
124  icornerbuffloaded = 0
125  iedgebuffloaded = 0
126 
127 ! Set pointers ----------------------------------------------------------------
128 
129  pregion => regions(ireg)
130  plevel => regions(ireg)%levels(ilev)
131 
132  npclssrc = plevel%plag%nPcls
133 
134 ! Allocate corner cell buffer counter -----------------------------------------
135 
136  iccmax = 0
137  DO icorner=1,ncorners
138  IF( plevel%cornerCells(icorner)%interact ) &
139  iccmax = max(iccmax,ubound(plevel%cornerCells(icorner)%cells,1))
140  ENDDO ! iCorner
141 
142  ALLOCATE( corncellcounter(ncorners,iccmax),stat=errorflag )
143  global%error = errorflag
144  IF (global%error /= err_none) &
145  CALL errorstop( global,err_allocate,__line__ )
146 
147  corncellcounter = 0
148 
149 #ifdef PLAG_CECELLS_DEBUG
150  print*,'PLAG_CECellsExchange: iReg,iCCMax = ', ireg, iccmax
151 #endif
152 
153 ! Allocate edge cell buffer counter -------------------------------------------
154 
155  iecmax = 0
156  DO iedge=1,nedges
157  IF( plevel%edgeCells(iedge)%interact ) &
158  iecmax = max(iecmax,ubound(plevel%edgeCells(iedge)%cells,1))
159  ENDDO ! iEdge
160 
161  ALLOCATE( edgecellcounter(nedges,iecmax),stat=errorflag )
162  global%error = errorflag
163  IF (global%error /= err_none) &
164  CALL errorstop( global,err_allocate,__line__ )
165 
166  edgecellcounter = 0
167 
168 #ifdef PLAG_CECELLS_DEBUG
169  print*,'PLAG_CECellsExchange: iReg,iECMax = ', ireg, iecmax
170 #endif
171 
172 ! Corner cells ----------------------------------------------------------------
173 
174  DO icorner=1,ncorners
175 
176 ! - Bypass for noninteracting regions -----------------------------------------
177 
178  IF( .NOT. plevel%cornerCells(icorner)%interact ) goto 1999
179 
180 ! - Bypass for degenerate corner cells ----------------------------------------
181 
182  IF( plevel%cornerCells(icorner)%degenrt /= degenerat_none ) goto 1999
183 
184 ! - Get corner indices --------------------------------------------------------
185 
186  CALL rflo_getcornercellsindices( pregion,ilev,icorner, &
187  ibeg,iend,jbeg,jend,kbeg,kend )
188 
189  ijk = 0
190  icornerbuffloaded = 0
191  DO k=kbeg,kend
192  DO j=jbeg,jend
193  DO i=ibeg,iend
194  ijk = ijk + 1
195 
196 ! -- Set pointers -------------------------------------------------------------
197 
198  pcorncellsxbuff => plevel%cornerCells(icorner)%cells(ijk)%bufferExchPlag
199 
200  paivbuff => pcorncellsxbuff%aiv
201  parvbuff => pcorncellsxbuff%arv
202  pcvbuff => pcorncellsxbuff%cv
203  pdvbuff => pcorncellsxbuff%dv
204  ptvbuff => pcorncellsxbuff%tv
205  prhsbuff => pcorncellsxbuff%rhs
206  prhssumbuff => pcorncellsxbuff%rhsSum
207 
208  paivoldbuff => pcorncellsxbuff%aivOld
209  parvoldbuff => pcorncellsxbuff%arvOld
210  pcvoldbuff => pcorncellsxbuff%cvOld
211 
212 ! -- Destination region infrastructure ----------------------------------------
213 
214  icell = plevel%cornerCells(icorner)%cells(ijk)%srcCell
215  iregdes = plevel%cornerCells(icorner)%cells(ijk)%srcRegion
216 
217  IF ( iregdes > 0 ) THEN
218  pregiondes => regions(iregdes)
219  pplagdes => pregiondes%levels(ilev)%plag
220 
221 ! -- Get buffer size and start appending for non-null size --------------------
222 
223  ncornbuffsize = pcorncellsxbuff%nBuffSize
224  IF ( corncellcounter(icorner,ijk) >= ncornbuffsize ) cycle
225 
226  npclsstart = 0
227  npclsend = 0
228  npclsprev = 0
229  npclsdes = 0
230 
231  IF ( pregiondes%procid == global%myProcid .AND. &
232  ncornbuffsize > 0 ) THEN
233 
234 #ifdef PLAG_CECELLS_DEBUG
235  WRITE(stdout,'(A,1PE12.5,3(2X,I5),6(3X,I4))') &
236  ' PLAG_CECellsExchange: time, iReg, iRegDes, iCorner, nCornBuffSize,iCornerBuffLoaded, ijk, i ,j, k = ',&
237  global%currentTime+global%dtMin,ireg, iregdes,icorner, ncornbuffsize,icornerbuffloaded, ijk, i ,j, k
238 #endif
239 
240 ! -- Set pointers on destination region ---------------------------------------
241 
242  paivdes => pplagdes%aiv
243 
244  parvdes => pplagdes%arv
245  pcvdes => pplagdes%cv
246  pdvdes => pplagdes%dv
247  ptvdes => pplagdes%tv
248  prhsdes => pplagdes%rhs
249  prhssumdes => pplagdes%rhsSum
250 
251  paivolddes => pplagdes%aivOld
252  parvolddes => pplagdes%arvOld
253  pcvolddes => pplagdes%cvOld
254 
255 ! -- Set loop extent-----------------------------------------------------------
256 
257  npclsdes = pplagdes%nPcls
258  npclsprev = npclsdes
259 
260  npclsstart = npclsdes+1
261  npclsend = npclsstart + (ncornbuffsize-1)
262 
263 ! -- Append to PLAG datastructure with buffer arrays --------------------------
264 
265  DO ipcls = npclsstart,npclsend
266  ibuff = ipcls-npclsstart+1
267  corncellcounter(icorner,ijk) = corncellcounter(icorner,ijk)+1
268  icornerbuffloaded = corncellcounter(icorner,ijk)
269 
270  paivdes(:,ipcls) = paivbuff(:,ibuff)
271  parvdes(:,ipcls) = parvbuff(:,ibuff)
272  pcvdes(:,ipcls) = pcvbuff( :,ibuff)
273  pdvdes(:,ipcls) = pdvbuff( :,ibuff)
274  ptvdes(:,ipcls) = ptvbuff( :,ibuff)
275  prhsdes(:,ipcls) = prhsbuff(:,ibuff)
276  prhssumdes(:,ipcls) = prhssumbuff(:,ibuff)
277 
278  paivolddes(:,ipcls) = paivoldbuff(:,ibuff)
279  parvolddes(:,ipcls) = parvoldbuff(:,ibuff)
280  pcvolddes(:,ipcls) = pcvoldbuff( :,ibuff)
281  END DO ! iPcls
282 
283 ! -- Get new particle datasize ------------------------------------------------
284 
285  npclsdes = npclsdes+ncornbuffsize
286  pplagdes%nPcls = npclsdes
287 
288 #ifdef PLAG_CECELLS_DEBUG
289  WRITE(stdout,'(A,A,2X,1PE15.7,2X,3(I3,2X),3(I4,3X))') &
290  ' PLAG_CECellsExchange: time, iReg, iRegDes, iCorner, nPclsDes, nPclsSrc,iCornerBuffLoaded, ',&
291  ' pAivDes(PIdini,Regini,RegC,ICells,IndexIJK,)', &
292  global%currentTime+global%dtMin,ireg, iregdes, icorner, pplagdes%nPcls, npclssrc,icornerbuffloaded
293  DO ipcls = 1, pplagdes%nPcls
294  WRITE(stdout,'(9(I4,3X),8(1PE12.5,3X))') &
295  ipcls, &
296  paivdes(aiv_plag_pidini,ipcls),&
297  paivdes(aiv_plag_regini,ipcls),&
298  paivdes(aiv_plag_regcrt,ipcls),&
299  paivdes(aiv_plag_icells,ipcls),&
300  paivdes(aiv_plag_indexi,ipcls),&
301  paivdes(aiv_plag_indexj,ipcls),&
302  paivdes(aiv_plag_indexk,ipcls),&
303  paivdes(aiv_plag_burnstat,ipcls),&
304  pcvdes(cv_plag_xpos:cv_plag_zpos,ipcls),&
305  pcvdes(cv_plag_xmom:cv_plag_ener,ipcls),&
306  pcvdes(cv_plag_enervapor,ipcls)
307  ENDDO ! iPcls
308 #endif
309 
310  ENDIF ! procid
311  ENDIF ! iRegDes
312 
313  ENDDO ! i
314  ENDDO ! j
315  ENDDO ! k
316 
317 #ifdef PLAG_CECELLS_DEBUG
318  IF ( ncornbuffsize > 0 ) THEN
319 
320  WRITE(stdout,'(A,A,2X,1PE15.7,2X,3(I3,2X),5(I4,3X))') &
321  ' PLAG_CECellsExchange-iReg: iReg, iCorner, iRegDes, nCornBuffSize, ',&
322  ' nPclsSrc,nPclsDesPrev,nPclsDes,nPclsStart,nPclsEnd = ',&
323  global%currentTime+global%dtMin,ireg,icorner,iregdes, &
324  ncornbuffsize,npclssrc,npclsprev,npclsdes,npclsstart,npclsend
325 
326  ENDIF ! nCornBuffSize
327 
328 #endif
329 
330 ! -- Reset buffer size to null ------------------------------------------------
331 ! -- This insures no data clobbering occur for null particle size -----------
332 
333  IF ( pregiondes%procid == global%myProcid ) THEN
334  DO ijk = 1, ubound(plevel%cornerCells(icorner)%cells,1)
335  plevel%cornerCells(icorner)%cells(ijk)%bufferExchPlag%nBuffSize = 0
336  ENDDO ! ijk
337  ENDIF ! pRegionDes%procid
338 
339 1999 CONTINUE
340 
341  ENDDO ! iCorner
342 
343 ! Edge cells ------------------------------------------------------------------
344 
345  DO iedge=1,nedges
346 
347 ! - Bypass for noninteracting regions -----------------------------------------
348 
349  IF( .NOT. plevel%edgeCells(iedge)%interact ) goto 2999
350 
351 ! - Bypass for degenerate edge cells ------------------------------------------
352 
353  IF( plevel%edgeCells(iedge)%degenrt /= degenerat_none ) goto 2999
354 
355 ! - Get edge indices ----------------------------------------------------------
356 
357  CALL rflo_getedgecellsindices( pregion,ilev,iedge, &
358  ibeg,iend,jbeg,jend,kbeg,kend )
359 
360  ijk = 0
361 ! iEdgeBuffLoaded = 0
362  DO k=kbeg,kend
363  DO j=jbeg,jend
364  DO i=ibeg,iend
365  ijk = ijk + 1
366 
367 ! -- Set pointers -------------------------------------------------------------
368 
369  pedgecellsxbuff => plevel%edgeCells(iedge)%cells(ijk)%bufferExchPlag
370 
371  paivbuff => pedgecellsxbuff%aiv
372  parvbuff => pedgecellsxbuff%arv
373  pcvbuff => pedgecellsxbuff%cv
374  pdvbuff => pedgecellsxbuff%dv
375  ptvbuff => pedgecellsxbuff%tv
376  prhsbuff => pedgecellsxbuff%rhs
377  prhssumbuff => pedgecellsxbuff%rhsSum
378 
379  paivoldbuff => pedgecellsxbuff%aivOld
380  parvoldbuff => pedgecellsxbuff%arvOld
381  pcvoldbuff => pedgecellsxbuff%cvOld
382 
383 ! -- Destination region infrastructure ----------------------------------------
384 
385  icell = plevel%edgeCells(iedge)%cells(ijk)%srcCell
386  iregdes = plevel%edgeCells(iedge)%cells(ijk)%srcRegion
387 
388  IF ( iregdes > 0 ) THEN
389  pregiondes => regions(iregdes)
390  pplagdes => pregiondes%levels(ilev)%plag
391 
392 ! -- Get buffer size and start appending for non-null size --------------------
393 
394  nedgebuffsize = pedgecellsxbuff%nBuffSize
395  IF ( edgecellcounter(iedge,ijk) >= nedgebuffsize ) cycle
396 
397  npclsstart = 0
398  npclsend = 0
399  npclsprev = 0
400  npclsdes = 0
401 
402  IF ( pregiondes%procid == global%myProcid .AND. &
403  nedgebuffsize > 0 ) THEN
404 
405 #ifdef PLAG_CECELLS_DEBUG
406  WRITE(stdout,'(A,1PE12.5,3(2X,I3),5(3X,I4))') &
407  ' PLAG_CECellsExchange: time, iReg, iRegDes, iEdge, nEdgeBuffSize,iEdgeBuffLoaded, ijk, i ,j, k = ',&
408  global%currentTime+global%dtMin,ireg, iregdes,iedge, nedgebuffsize, iedgebuffloaded ,ijk, i ,j, k
409 #endif
410 
411 ! -- Set pointers on destination region ---------------------------------------
412 
413  paivdes => pplagdes%aiv
414 
415  parvdes => pplagdes%arv
416  pcvdes => pplagdes%cv
417  pdvdes => pplagdes%dv
418  ptvdes => pplagdes%tv
419  prhsdes => pplagdes%rhs
420  prhssumdes => pplagdes%rhsSum
421 
422  paivolddes => pplagdes%aivOld
423  parvolddes => pplagdes%arvOld
424  pcvolddes => pplagdes%cvOld
425 
426 ! -- Set loop extent-----------------------------------------------------------
427 
428  npclsdes = pplagdes%nPcls
429  npclsprev = npclsdes
430 
431  npclsstart = npclsdes+1
432  npclsend = npclsstart + (nedgebuffsize-1)
433 
434 ! -- Append to PLAG datastructure with buffer arrays --------------------------
435 
436  DO ipcls = npclsstart,npclsend
437  ibuff = ipcls-npclsstart+1
438  edgecellcounter(iedge,ijk) = edgecellcounter(iedge,ijk)+1
439  iedgebuffloaded = edgecellcounter(iedge,ijk)
440 
441  paivdes(:,ipcls) = paivbuff(:,ibuff)
442  parvdes(:,ipcls) = parvbuff(:,ibuff)
443  pcvdes(:,ipcls) = pcvbuff( :,ibuff)
444  pdvdes(:,ipcls) = pdvbuff( :,ibuff)
445  ptvdes(:,ipcls) = ptvbuff( :,ibuff)
446  prhsdes(:,ipcls) = prhsbuff(:,ibuff)
447  prhssumdes(:,ipcls) = prhssumbuff(:,ibuff)
448 
449  paivolddes(:,ipcls) = paivoldbuff(:,ibuff)
450  parvolddes(:,ipcls) = parvoldbuff(:,ibuff)
451  pcvolddes(:,ipcls) = pcvoldbuff( :,ibuff)
452  END DO ! iPcls
453 
454 ! -- Get new particle datasize ------------------------------------------------
455 
456  npclsdes = npclsdes+nedgebuffsize
457  pplagdes%nPcls = npclsdes
458 
459 #ifdef PLAG_CECELLS_DEBUG
460  WRITE(stdout,'(A,A,2X,1PE15.7,2X,3(I3,2X),3(I4,3X))') &
461  ' PLAG_CECellsExchange: time, iReg, iRegDes, iEdge, nPclsDes, nPclsSrc,iEdgeBuffLoaded, ',&
462  ' pAivDes(PIdini,Regini,RegC,ICells,IndexIJK,)', &
463  global%currentTime+global%dtMin,ireg, iregdes, iedge, pplagdes%nPcls, npclssrc,iedgebuffloaded
464  DO ipcls = 1, pplagdes%nPcls
465  WRITE(stdout,'(9(I4,3X),8(1PE12.5,3X))') &
466  ipcls, &
467  paivdes(aiv_plag_pidini,ipcls),&
468  paivdes(aiv_plag_regini,ipcls),&
469  paivdes(aiv_plag_regcrt,ipcls),&
470  paivdes(aiv_plag_icells,ipcls),&
471  paivdes(aiv_plag_indexi,ipcls),&
472  paivdes(aiv_plag_indexj,ipcls),&
473  paivdes(aiv_plag_indexk,ipcls),&
474  paivdes(aiv_plag_burnstat,ipcls),&
475  pcvdes(cv_plag_xpos:cv_plag_zpos,ipcls),&
476  pcvdes(cv_plag_xmom:cv_plag_ener,ipcls),&
477  pcvdes(cv_plag_enervapor,ipcls)
478  ENDDO ! iPcls
479 #endif
480 
481  ENDIF ! procid
482  ENDIF ! iRegDes
483 
484  ENDDO ! i
485  ENDDO ! j
486  ENDDO ! k
487 
488 #ifdef PLAG_CECELLS_DEBUG
489  IF ( nedgebuffsize > 0 ) THEN
490 
491  WRITE(stdout,'(A,A,2X,1PE15.7,2X,3(I3,2X),5(I4,3X))') &
492  ' PLAG_CECellsExchange-iReg: iReg, iEdge, iRegDes, nEdgeBuffSize, ',&
493  ' nPclsSrc,nPclsDesPrev,nPclsDes,nPclsStart,nPclsEnd = ',&
494  global%currentTime+global%dtMin,ireg,iedge,iregdes, &
495  nedgebuffsize,npclssrc,npclsprev,npclsdes,npclsstart,npclsend
496 
497  ENDIF ! nEdgeBuffSize
498 
499 #endif
500 
501 ! -- Reset buffer size to null ------------------------------------------------
502 ! -- This insures no data clobbering occur for null particle size -----------
503 
504  IF ( pregiondes%procid == global%myProcid ) THEN
505  DO ijk = 1, ubound(plevel%edgeCells(iedge)%cells,1)
506  plevel%edgeCells(iedge)%cells(ijk)%bufferExchPlag%nBuffSize = 0
507  ENDDO ! ijk
508  ENDIF ! pRegionDes%procid
509 
510 2999 CONTINUE
511 
512  ENDDO ! iEdge
513 
514 ! finalize --------------------------------------------------------------------
515 
516  CALL deregisterfunction( global )
517 
518 END SUBROUTINE plag_cecellsexchange
519 
520 !******************************************************************************
521 !
522 ! RCS Revision history:
523 !
524 ! $Log: PLAG_CECellsExchange.F90,v $
525 ! Revision 1.4 2008/12/06 08:44:32 mtcampbe
526 ! Updated license.
527 !
528 ! Revision 1.3 2008/11/19 22:17:45 mtcampbe
529 ! Added Illinois Open Source License/Copyright
530 !
531 ! Revision 1.2 2006/04/07 15:19:23 haselbac
532 ! Removed tabs
533 !
534 ! Revision 1.1 2004/12/01 20:57:09 fnajjar
535 ! Initial revision after changing case
536 !
537 ! Revision 1.10 2004/11/29 19:24:34 fnajjar
538 ! Added bypass statement for dengerate cells
539 !
540 ! Revision 1.9 2004/03/25 21:16:43 jferry
541 ! fixed Vapor Energy bug
542 !
543 ! Revision 1.8 2004/03/20 21:59:58 fnajjar
544 ! Included reset buffer size to zero in IF statement of on-processor communication
545 !
546 ! Revision 1.7 2004/03/20 21:51:51 fnajjar
547 ! Reset buffer size to null to insure no data clobbering
548 !
549 ! Revision 1.6 2004/03/20 00:17:58 fnajjar
550 ! Moved and added IFDEF with WRITE statement for corner cell section
551 !
552 ! Revision 1.5 2004/03/19 23:49:50 fnajjar
553 ! Fixed WRITE formating
554 !
555 ! Revision 1.4 2004/03/18 21:42:14 fnajjar
556 ! Various bug fixed for proper buffer loading
557 !
558 ! Revision 1.3 2004/01/26 22:54:01 fnajjar
559 ! Renamed ifdef PLAG_DEBUG to PLAG_CECELLS_DEBUG
560 !
561 ! Revision 1.2 2003/11/21 22:41:18 fnajjar
562 ! Activated IFDEF PLAG_DEBUG
563 !
564 ! Revision 1.1 2003/11/12 21:37:59 fnajjar
565 ! Initial import of Corner-Edge cells Infrastructure
566 !
567 !******************************************************************************
568 
569 
570 
571 
572 
573 
574 
subroutine rflo_getedgecellsindices(region, iLev, iedge, iebeg, ieend, jebeg, jeend, kebeg, keend)
**********************************************************************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
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:354
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
IndexType nedges() const
Definition: Mesh.H:564
subroutine plag_cecellsexchange(regions, iReg)
**********************************************************************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
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 icorner
subroutine rflo_getcornercellsindices(region, iLev, icorner, icbeg, icend, jcbeg, jcend, kcbeg, kcend)
**********************************************************************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 icell
virtual std::ostream & print(std::ostream &os) const
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
**********************************************************************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