Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PLAG_ModEulerian.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: Collection of routines for Eulerian-based particle infrastructure.
26 !
27 ! Description: None.
28 !
29 ! Notes: None.
30 !
31 ! ******************************************************************************
32 !
33 ! $Id: PLAG_ModEulerian.F90,v 1.8 2008/12/06 08:44:34 mtcampbe Exp $
34 !
35 ! Copyright: (c) 2005 by the University of Illinois
36 !
37 ! ******************************************************************************
38 
40 
41  USE modparameters
42  USE moddatatypes
43  USE modglobal, ONLY: t_global
44  USE modgrid, ONLY: t_grid
45  USE modpartlag, ONLY: t_plag
46  USE moddatastruct, ONLY: t_region
47  USE moderror
48  USE modmpi
50 
51 #ifdef RFLO
52 #include "Indexing.h"
53  USE modinterfaces, ONLY: rflo_getcelloffset, &
55 #endif
56 
57  IMPLICIT NONE
58 
59 ! ******************************************************************************
60 ! Definitions and declarations
61 ! ******************************************************************************
62 
63 ! ==============================================================================
64 ! Private data
65 ! ==============================================================================
66 
67  CHARACTER(CHRLEN), PRIVATE :: &
68  RCSIdentString = '$RCSfile: PLAG_ModEulerian.F90,v $ $Revision: 1.8 $'
69 
70 ! ==============================================================================
71 ! Public functions
72 ! ==============================================================================
73 
74  PUBLIC :: plag_calceulerianfield, &
78 
79 ! ==============================================================================
80 ! Private functions
81 ! ==============================================================================
82 
83 ! PRIVATE ::
84 
85 ! ******************************************************************************
86 ! Routines
87 ! ******************************************************************************
88 
89  CONTAINS
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 ! *******************************************************************************
108 !
109 ! Purpose: Compute Eulerian-based field from Lagrangian datastructure.
110 !
111 ! Description: None.
112 !
113 ! Input:
114 ! pRegion Pointer to region
115 !
116 ! Output: None.
117 !
118 ! Notes: Routine relevant to RFLO.
119 !
120 ! ******************************************************************************
121 
122  SUBROUTINE plag_calceulerianfield(pRegion)
123 
124  IMPLICIT NONE
125 
126 ! ******************************************************************************
127 ! Declarations and definitions
128 ! ******************************************************************************
129 
130 ! ==============================================================================
131 ! Arguments
132 ! ==============================================================================
133 
134  TYPE(t_region), POINTER :: pregion
135 
136 ! ==============================================================================
137 ! Locals
138 ! ==============================================================================
139 
140 #ifdef RFLO
141  INTEGER :: idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend
142  INTEGER :: ilev,icelloffset, ijcelloffset
143 #endif
144 
145  INTEGER :: errorflag,ibc,ic,icont,iec,ipcl,ivar,ncont,npcls,nplagcell,nvars
146  INTEGER, POINTER, DIMENSION(:) :: cvmass
147 
148  REAL(RFREAL) :: diammicron,massl,masssqrl,nplagcellinv
149  REAL(RFREAL), POINTER, DIMENSION(:,:) :: cv,dv,ev
150 
151  TYPE(t_global), POINTER :: global
152  TYPE(t_grid), POINTER :: pgrid
153  TYPE(t_plag), POINTER :: pplag
154 
155 ! ******************************************************************************
156 ! Start, set pointers and variables
157 ! ******************************************************************************
158 
159  global => pregion%global
160 
161  CALL registerfunction(global,'PLAG_CalcEulerianField',&
162  'PLAG_ModEulerian.F90')
163 
164 #ifdef RFLO
165  ilev = pregion%currLevel
166  pgrid => pregion%levels(ilev)%grid
167  pplag => pregion%levels(ilev)%plag
168 
169  CALL rflo_getdimensdummy( pregion,ilev,idcbeg,idcend, &
170  jdcbeg,jdcend,kdcbeg,kdcend )
171  CALL rflo_getcelloffset( pregion,ilev,icelloffset,ijcelloffset )
172  ibc = indijk(idcbeg,jdcbeg,kdcbeg,icelloffset,ijcelloffset)
173  iec = indijk(idcend,jdcend,kdcend,icelloffset,ijcelloffset)
174 #endif
175 
176 #ifdef RFLU
177  pgrid => pregion%grid
178  pplag => pregion%plag
179 
180  ibc = 1
181  iec = pgrid%nCells
182 #endif
183 
184  ncont = pregion%plagInput%nCont
185  npcls = pplag%nPcls
186  nvars = pplag%nEv
187 
188  cvmass => pplag%cvPlagMass
189  cv => pplag%cv
190  dv => pplag%dv
191  ev => pplag%ev
192 
193  IF ( pplag%nPcls > 0 ) THEN
194 
195 ! ******************************************************************************
196 ! Reinitialize Eulerian field to compute instantaneous variables
197 ! ******************************************************************************
198 
199  DO ic = ibc,iec
200  DO ivar = 1, nvars
201  ev(ivar,ic) = 0.0_rfreal
202  END DO ! iVar
203  END DO ! ic
204 
205 ! ******************************************************************************
206 ! Compute instantaneous Eulerian field from Lagrangian datastructure
207 ! ******************************************************************************
208 
209  DO ipcl = 1,npcls
210  ic = pplag%aiv(aiv_plag_icells,ipcl)
211 
212  diammicron = dv(dv_plag_diam,ipcl)*1.0e+06_rfreal
213  massl = sum(cv(cvmass(:),ipcl))
214 
215  ev(ev_plag_diam3,ic) = ev(ev_plag_diam3,ic) +diammicron**3.0_rfreal
216  ev(ev_plag_diam4,ic) = ev(ev_plag_diam4,ic) +diammicron**4.0_rfreal
217 
218  ev(ev_plag_numdens,ic) = ev(ev_plag_numdens,ic) +1.0_rfreal
219 
220  ev(ev_plag_uvel,ic) = ev(ev_plag_uvel,ic) +dv(dv_plag_uvel,ipcl)
221  ev(ev_plag_vvel,ic) = ev(ev_plag_vvel,ic) +dv(dv_plag_vvel,ipcl)
222  ev(ev_plag_wvel,ic) = ev(ev_plag_wvel,ic) +dv(dv_plag_wvel,ipcl)
223 
224  ev(ev_plag_mass,ic) = ev(ev_plag_mass,ic) +massl
225 
226  DO icont = 1, ncont
227  ev(ev_plag_last+icont,ic) = ev(ev_plag_last+icont,ic) &
228  + cv(cvmass(icont),ipcl)
229  END DO ! iCont
230 
231  END DO ! iPcl
232 
233 ! ******************************************************************************
234 ! Scale field by cell-based number of particles
235 ! Do not apply scaling to number density
236 ! ******************************************************************************
237 
238  DO ic = ibc,iec
239  nplagcell = ev(ev_plag_numdens,ic)
240 
241  IF ( nplagcell > 0 ) THEN
242  nplagcellinv = 1.0/REAL(nplagcell,kind=rfreal)
243 
244  DO ivar = 1, ev_plag_numdens-1
245  ev(ivar,ic) = ev(ivar,ic) *nplagcellinv
246  END DO ! iVar
247 
248  DO ivar = ev_plag_numdens+1, nvars
249  ev(ivar,ic) = ev(ivar,ic) *nplagcellinv
250  END DO ! iVar
251 
252  ENDIF ! nPlagCell
253  END DO ! ic
254 
255  END IF ! pPlag%nPcls
256 
257 ! ******************************************************************************
258 ! End
259 ! ******************************************************************************
260 
261  CALL deregisterfunction(global)
262 
263  END SUBROUTINE plag_calceulerianfield
264 
265 
266 
267 
268 
269 
270 
271 ! *******************************************************************************
272 !
273 ! Purpose: Create eulerian field.
274 !
275 ! Description: None.
276 !
277 ! Input:
278 ! pRegion Pointer to region
279 ! pPlag Pointer to plag
280 !
281 ! Output: None.
282 !
283 ! Notes: None.
284 !
285 ! ******************************************************************************
286 
287  SUBROUTINE plag_createeulerianfield(pRegion,pPlag)
288 
289  IMPLICIT NONE
290 
291 ! ******************************************************************************
292 ! Declarations and definitions
293 ! ******************************************************************************
294 
295 ! ==============================================================================
296 ! Arguments
297 ! ==============================================================================
298 
299 #ifdef RFLO
300  TYPE(t_region) :: pregion
301 #endif
302 
303 #ifdef RFLU
304  TYPE(t_region), POINTER :: pregion
305 #endif
306 
307  TYPE(t_plag), POINTER :: pplag
308 
309 ! ==============================================================================
310 ! Locals
311 ! ==============================================================================
312 
313 #ifdef RFLO
314  INTEGER :: idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend
315  INTEGER :: ilev,icelloffset, ijcelloffset
316 #endif
317 
318  INTEGER :: errorflag,ibc,iec,nev
319  TYPE(t_global), POINTER :: global
320  TYPE(t_grid), POINTER :: pgrid
321 
322 ! ******************************************************************************
323 ! Start, set pointers and variables
324 ! ******************************************************************************
325 
326  global => pregion%global
327 
328  CALL registerfunction(global,'PLAG_CreateEulerian',&
329  'PLAG_ModEulerian.F90')
330 
331  nev = pplag%nEv
332 
333 #ifdef RFLO
334  ilev = pregion%currLevel
335  pgrid => pregion%levels(ilev)%grid
336 
337  CALL rflo_getdimensdummy( pregion,ilev,idcbeg,idcend, &
338  jdcbeg,jdcend,kdcbeg,kdcend )
339  CALL rflo_getcelloffset( pregion,ilev,icelloffset,ijcelloffset )
340  ibc = indijk(idcbeg,jdcbeg,kdcbeg,icelloffset,ijcelloffset)
341  iec = indijk(idcend,jdcend,kdcend,icelloffset,ijcelloffset)
342 #endif
343 
344 #ifdef RFLU
345  pgrid => pregion%grid
346  ibc = 1
347  iec = pgrid%nCells
348 #endif
349 
350 ! ******************************************************************************
351 ! Allocate memory
352 ! ******************************************************************************
353 
354  ALLOCATE(pplag%ev(nev,ibc:iec),stat=errorflag)
355  global%error = errorflag
356  IF ( global%error /= err_none ) THEN
357  CALL errorstop(global,err_allocate,__line__,'pPlag%ev')
358  END IF ! global%error
359 
360 ! ******************************************************************************
361 ! End
362 ! ******************************************************************************
363 
364  CALL deregisterfunction(global)
365 
366  END SUBROUTINE plag_createeulerianfield
367 
368 
369 
370 
371 
372 
373 ! *******************************************************************************
374 !
375 ! Purpose: Destroy Eulerian field.
376 !
377 ! Description: None.
378 !
379 ! Input:
380 ! pRegion Pointer to region
381 ! pPlag Pointer to plag
382 !
383 ! Output: None.
384 !
385 ! Notes: None.
386 !
387 ! ******************************************************************************
388 
389  SUBROUTINE plag_destroyeulerianfield(pRegion,pPlag)
390 
391  IMPLICIT NONE
392 
393 ! ******************************************************************************
394 ! Declarations and definitions
395 ! ******************************************************************************
396 
397 ! ==============================================================================
398 ! Arguments
399 ! ==============================================================================
400 
401 #ifdef RFLO
402  TYPE(t_region) :: pregion
403 #endif
404 
405 #ifdef RFLU
406  TYPE(t_region), POINTER :: pregion
407 #endif
408 
409  TYPE(t_plag), POINTER :: pplag
410 
411 ! ==============================================================================
412 ! Locals
413 ! ==============================================================================
414 
415  INTEGER :: errorflag
416  TYPE(t_global), POINTER :: global
417 
418 ! ******************************************************************************
419 ! Start, set pointers and variables
420 ! ******************************************************************************
421 
422  global => pregion%global
423 
424  CALL registerfunction(global,'PLAG_DestroyEulerian',&
425  'PLAG_ModEulerian.F90')
426 
427 ! ******************************************************************************
428 ! Deallocate memory
429 ! ******************************************************************************
430 
431  DEALLOCATE(pplag%ev,stat=errorflag)
432  global%error = errorflag
433  IF ( global%error /= err_none ) THEN
434  CALL errorstop(global,err_deallocate,__line__,'pPlag%ev')
435  END IF ! global%error
436 
437 ! ******************************************************************************
438 ! Nullify memory
439 ! ******************************************************************************
440 
441  nullify(pplag%ev)
442 
443 ! ******************************************************************************
444 ! End
445 ! ******************************************************************************
446 
447  CALL deregisterfunction(global)
448 
449  END SUBROUTINE plag_destroyeulerianfield
450 
451 
452 
453 
454 
455 ! *******************************************************************************
456 !
457 ! Purpose: Initialize Eulerian field.
458 !
459 ! Description: None.
460 !
461 ! Input:
462 ! pRegion Pointer to region
463 ! pPlag Pointer to plag
464 !
465 ! Output: None.
466 !
467 ! Notes: None.
468 !
469 ! ******************************************************************************
470 
471  SUBROUTINE plag_initeulerianfield(pRegion,pPlag)
472 
473  IMPLICIT NONE
474 
475 ! ******************************************************************************
476 ! Declarations and definitions
477 ! ******************************************************************************
478 
479 ! ==============================================================================
480 ! Arguments
481 ! ==============================================================================
482 
483 #ifdef RFLO
484  TYPE(t_region) :: pregion
485 #endif
486 
487 #ifdef RFLU
488  TYPE(t_region), POINTER :: pregion
489 #endif
490 
491  TYPE(t_plag), POINTER :: pplag
492 
493 ! ==============================================================================
494 ! Locals
495 ! ==============================================================================
496 
497 #ifdef RFLO
498  INTEGER :: idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend
499  INTEGER :: ilev,icelloffset, ijcelloffset
500 #endif
501 
502  INTEGER :: errorflag,ibc,iec,icell,ivar,nvars
503  TYPE(t_global), POINTER :: global
504  TYPE(t_grid), POINTER :: pgrid
505 
506 ! ******************************************************************************
507 ! Start, set pointers and variables
508 ! ******************************************************************************
509 
510  global => pregion%global
511 
512  CALL registerfunction(global,'PLAG_InitEulerianField',&
513  'PLAG_ModEulerian.F90')
514 
515  nvars = pplag%nEv
516 
517 #ifdef RFLO
518  ilev = pregion%currLevel
519  pgrid => pregion%levels(ilev)%grid
520 
521  CALL rflo_getdimensdummy( pregion,ilev,idcbeg,idcend, &
522  jdcbeg,jdcend,kdcbeg,kdcend )
523  CALL rflo_getcelloffset( pregion,ilev,icelloffset,ijcelloffset )
524  ibc = indijk(idcbeg,jdcbeg,kdcbeg,icelloffset,ijcelloffset)
525  iec = indijk(idcend,jdcend,kdcend,icelloffset,ijcelloffset)
526 #endif
527 
528 #ifdef RFLU
529  pgrid => pregion%grid
530  ibc = 1
531  iec = pgrid%nCells
532 #endif
533 
534 ! ******************************************************************************
535 ! Initialize memory
536 ! ******************************************************************************
537 
538  DO icell = ibc,iec
539  DO ivar = 1, nvars
540  pplag%ev(ivar,icell) = 0.0_rfreal
541  END DO ! iVar
542  END DO ! iCell
543 
544 ! ******************************************************************************
545 ! End
546 ! ******************************************************************************
547 
548  CALL deregisterfunction(global)
549 
550  END SUBROUTINE plag_initeulerianfield
551 
552 
553 
554 
555 
556 
557 
558 #ifdef RFLU
559 
560 ! *******************************************************************************
561 !
562 ! Purpose: Compute Eulerian-based field from Lagrangian datastructure.
563 !
564 ! Description: None.
565 !
566 ! Input:
567 ! pRegion Pointer to region
568 ! ev array containing Eulerian field
569 !
570 ! Output: None.
571 !
572 ! Notes: Routine relevant to write TECPLOT files in RFLU.
573 !
574 ! ******************************************************************************
575 
576  SUBROUTINE plag_rflu_calceulerianfield(pRegion,ev)
577 
578  IMPLICIT NONE
579 
580 ! ******************************************************************************
581 ! Declarations and definitions
582 ! ******************************************************************************
583 
584 ! ==============================================================================
585 ! Arguments
586 ! ==============================================================================
587 
588  REAL(RFREAL), DIMENSION(:,:) :: ev
589  TYPE(t_region), POINTER :: pregion
590 
591 ! ==============================================================================
592 ! Locals
593 ! ==============================================================================
594 
595  INTEGER :: errorflag,ibc,icg,icont,iec,ipcl,ivar,ncells1d,ncont,npcls, &
596  nplagcell,nvars,nvarsplot
597  INTEGER, POINTER, DIMENSION(:) :: cvmass
598 
599  REAL(RFREAL) :: diammicron,massl,masssqrl,nplagcellinv
600  REAL(RFREAL) :: massfracl,densl,densmixt,sploadl,voll,volmixt
601  REAL(RFREAL), POINTER, DIMENSION(:,:) :: cv,dv
602 
603  TYPE(t_global), POINTER :: global
604  TYPE(t_grid), POINTER :: pgrid
605  TYPE(t_plag), POINTER :: pplag
606 
607 ! ******************************************************************************
608 ! Start, set pointers and variables
609 ! ******************************************************************************
610 
611  global => pregion%global
612 
613  CALL registerfunction(global,'PLAG_RFLU_CalcEulerianField',&
614  'PLAG_ModEulerian.F90')
615 
616  pgrid => pregion%grid
617  pplag => pregion%plag
618 
619  ibc = 1
620  iec = pgrid%nCells
621 
622  ncont = pregion%plagInput%nCont
623  npcls = pplag%nPcls
624  nvars = pplag%nEv
625 
626  cvmass => pplag%cvPlagMass
627  cv => pplag%cv
628  dv => pplag%dv
629 
630  IF ( pplag%nPcls > 0 ) THEN
631 
632 ! ******************************************************************************
633 ! Check if size of array sent is aligned with the expected size
634 ! ******************************************************************************
635 
636 ! CHECK
637  nvarsplot = pplag%nEv -ncont
638 
639  IF ( nvarsplot /= SIZE(ev,1) ) THEN
640  WRITE(*,*) 'nVarsPlot = ',nvars
641  WRITE(*,*) 'SIZE(ev,1) = ',SIZE(ev,1)
642  CALL errorstop(global,err_datadim_mismatch,__line__)
643  END IF ! nVars
644 
645  IF ( iec /= SIZE(ev,2) ) THEN
646  WRITE(*,*) 'iec = ',iec
647  WRITE(*,*) 'SIZE(ev,2) = ',SIZE(ev,2)
648  CALL errorstop(global,err_datadim_mismatch,__line__)
649  END IF ! nVars
650 
651 ! END CHECK
652 
653 ! ******************************************************************************
654 ! Reinitialize Eulerian field to compute instantaneous variables
655 ! ******************************************************************************
656 
657  DO icg = ibc,iec
658  DO ivar = 1, nvarsplot
659  ev(ivar,icg) = 0.0_rfreal
660  END DO ! iVar
661  END DO ! icg
662 
663 ! ******************************************************************************
664 ! Compute instantaneous Eulerian field from Lagrangian datastructure
665 ! ******************************************************************************
666 
667  DO ipcl = 1,npcls
668  icg = pplag%aiv(aiv_plag_icells,ipcl)
669 
670  diammicron = dv(dv_plag_diam,ipcl)*1.0e+06_rfreal
671  massl = sum(cv(cvmass(:),ipcl))
672  sploadl = pplag%arv(arv_plag_spload,ipcl)
673  densl = dv(dv_plag_dens,ipcl)
674 
675  voll = dv(dv_plag_volu,ipcl)
676  massfracl = densl*voll*sploadl
677 
678  ev(ev_plag_diam3,icg) = ev(ev_plag_diam3,icg) +diammicron**3.0_rfreal
679  ev(ev_plag_diam4,icg) = ev(ev_plag_diam4,icg) +diammicron**4.0_rfreal
680 
681  ev(ev_plag_numdens,icg) = ev(ev_plag_numdens,icg) +1.0_rfreal
682 
683  ev(ev_plag_uvel,icg) = ev(ev_plag_uvel,icg) +dv(dv_plag_uvel,ipcl)
684  ev(ev_plag_vvel,icg) = ev(ev_plag_vvel,icg) +dv(dv_plag_vvel,ipcl)
685  ev(ev_plag_wvel,icg) = ev(ev_plag_wvel,icg) +dv(dv_plag_wvel,ipcl)
686 
687  ev(ev_plag_temp,icg) = ev(ev_plag_temp,icg) +dv(dv_plag_temp,ipcl)
688 
689  ev(ev_plag_mass,icg) = ev(ev_plag_mass,icg) +massfracl
690 
691 ! TEMPORARY
692 ! Not used for RFLU in tecplot files
693 ! DO iCont = 1, nCont
694 ! ev(EV_PLAG_LAST+iCont,icg) = ev(EV_PLAG_LAST+iCont,icg) &
695 ! + cv(cvMass(iCont),iPcl)
696 ! END DO ! iCont
697 ! END TEMPORARY
698 
699  END DO ! iPcl
700 
701 ! ******************************************************************************
702 ! Scale field by cell-based number of particles
703 ! Do not apply scaling to number density and mass fraction
704 ! ******************************************************************************
705 
706  DO icg = ibc,iec
707  nplagcell = ev(ev_plag_numdens,icg)
708 
709  IF ( nplagcell > 0 ) THEN
710  nplagcellinv = 1.0/REAL(nplagcell,kind=rfreal)
711 
712  DO ivar = 1, ev_plag_numdens-1
713  ev(ivar,icg) = ev(ivar,icg) *nplagcellinv
714  END DO ! iVar
715 
716  DO ivar = ev_plag_numdens+1, ev_plag_temp
717 ! TEMPORARY
718 ! DO iVar = EV_PLAG_NUMDENS+1, nVars
719 ! END TEMPORARY
720 
721  ev(ivar,icg) = ev(ivar,icg) *nplagcellinv
722  END DO ! iVar
723 
724 ! Compute Mass Fraction
725 
726  densmixt = pregion%mixt%cv(cv_mixt_dens,icg)
727  volmixt = pregion%grid%vol(icg)
728  ev(ev_plag_mass,icg) = ev(ev_plag_mass,icg)/ &
729  (ev(ev_plag_mass,icg) +densmixt *volmixt)
730  ENDIF ! nPlagCell
731  END DO ! icg
732  END IF ! pPlag%nPcls
733 
734 ! ******************************************************************************
735 ! End
736 ! ******************************************************************************
737 
738  CALL deregisterfunction(global)
739 
740  END SUBROUTINE plag_rflu_calceulerianfield
741 #endif
742 
743 
744 
745 
746 
747 END MODULE plag_modeulerian
748 
749 ! ******************************************************************************
750 !
751 ! RCS Revision history:
752 !
753 ! $Log: PLAG_ModEulerian.F90,v $
754 ! Revision 1.8 2008/12/06 08:44:34 mtcampbe
755 ! Updated license.
756 !
757 ! Revision 1.7 2008/11/19 22:17:46 mtcampbe
758 ! Added Illinois Open Source License/Copyright
759 !
760 ! Revision 1.6 2006/04/07 15:19:23 haselbac
761 ! Removed tabs
762 !
763 ! Revision 1.5 2006/02/16 14:51:58 fnajjar
764 ! Bug fix for missing ev pointer array in PLAG_CalcEulerian
765 !
766 ! Revision 1.4 2006/01/31 17:20:21 fnajjar
767 ! Bug fix to embed PLAG_RFLU_CalcEulerian in ifdef RFLU
768 !
769 ! Revision 1.3 2005/11/30 22:20:21 fnajjar
770 ! Added PLAG_RFLU_CalcEulerianField
771 !
772 ! Revision 1.2 2005/02/16 14:46:48 fnajjar
773 ! Bug fix for w-velocity component of ev and cosmetics cleanup
774 !
775 ! Revision 1.1 2005/01/08 20:44:32 fnajjar
776 ! Initial import for PLAG statistics
777 !
778 ! ******************************************************************************
779 
780 
781 
782 
783 
784 
785 
786 
787 
788 
789 
Tfloat sum() const
Return the sum of all the pixel values in an image.
Definition: CImg.h:13022
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE idcend
subroutine, public plag_calceulerianfield(pRegion)
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 ic
subroutine rflo_getdimensdummy(region, iLev, idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE kdcbeg
subroutine, public plag_destroyeulerianfield(pRegion, pPlag)
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE idcbeg
**********************************************************************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
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jdcend
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jdcbeg
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
subroutine, public plag_initeulerianfield(pRegion, pPlag)
subroutine deregisterfunction(global)
Definition: ModError.F90:469
subroutine, public plag_createeulerianfield(pRegion, pPlag)