Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PLAG_ProcessEulerField.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: process Lagragian particle field onto Eulerian-based field data.
26 !
27 ! Description: none.
28 !
29 ! Input: regions = pointer to all regions
30 ! iReg = region number
31 ! nPclsSum = sum of number of particles in all regions
32 !
33 ! Output: to file.
34 !
35 ! Notes:
36 ! 1. The output is collected in one file, but the regions are processed
37 ! separately to save memory.
38 ! 2. The routine assumes that the superparticle loading is fixed for
39 ! all the particles.
40 ! 3. Need to fix when particles breakup in the nozzle region.
41 ! 4. No data is computed in dummy cells, copying is performed for
42 ! Tecplot plotting purpose.
43 ! 5. Raw cell-based data is saved independently for further
44 ! post-processing.
45 !
46 ! ******************************************************************************
47 !
48 ! $Id: PLAG_ProcessEulerField.F90,v 1.3 2008/12/06 08:45:07 mtcampbe Exp $
49 !
50 ! Copyright: (c) 2004 by the University of Illinois
51 !
52 ! ******************************************************************************
53 
54 SUBROUTINE plag_processeulerfield( regions, iReg, nPclsSum )
55 
56  USE moddatatypes
57  USE moderror
58  USE moddatastruct, ONLY : t_region
59  USE modglobal, ONLY : t_global
60  USE modgrid, ONLY : t_grid
61  USE modpartlag, ONLY : t_plag
72 
73  USE modparameters
75 
76  IMPLICIT NONE
77 
78 #include "Indexing.h"
79 
80 ! ******************************************************************************
81 ! Declarations
82 ! ******************************************************************************
83 
84 ! ==============================================================================
85 ! Arguments
86 ! ==============================================================================
87 
88  INTEGER, INTENT(IN) :: ireg, npclssum
89 
90  TYPE(t_region), POINTER :: regions(:)
91 
92 ! ==============================================================================
93 ! Locals
94 ! ==============================================================================
95 
96  CHARACTER(CHRLEN) :: rcsidentstring
97  CHARACTER(CHRLEN+4) :: fname,fnametec
98  CHARACTER(256) :: varstr,varstrtec
99  CHARACTER(16) :: compstr
100 
101  INTEGER, PARAMETER :: if_plot_plageul = if_plot +200
102  INTEGER, PARAMETER :: if_plot_plageul_tec = if_plot_plageul +1
103 
104  INTEGER :: ilev, ipc, jpc, kpc, ibc, iec, ibn, ien
105  INTEGER :: idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend
106  INTEGER :: ipcbeg, ipcend, jpcbeg, jpcend, kpcbeg, kpcend
107  INTEGER :: idnbeg, idnend, jdnbeg, jdnend, kdnbeg, kdnend
108  INTEGER :: ipnbeg, ipnend, jpnbeg, jpnend, kpnbeg, kpnend
109  INTEGER :: icoff, ijcoff, inoff, ijnoff
110  INTEGER :: errorflag
111  INTEGER :: i,j,k, ijkn
112  INTEGER :: cell(8),node(8)
113  INTEGER :: ic,icont,ipcl
114  INTEGER :: ijkcell,ijkdum
115  INTEGER :: ncont,ncveulertot,ndenstot,ndiamtot,nmasstot,nplagcell
116  INTEGER, POINTER, DIMENSION(:) :: cvmass
117  INTEGER, POINTER, DIMENSION(:,:) :: aiv
118 
119  REAL(RFREAL) :: currenttime,diammicron,massl,masssqrl,nplagcellinv
120  REAL(RFREAL) :: densnum,densnumsqr,diaml,diaml3,diaml4
121  REAL(RFREAL) :: xmom,ymom,zmom,temp
122  REAL(RFREAL) :: xmomsqr,ymomsqr,zmomsqr,tempsqr
123  REAL(RFREAL) :: xcell,ycell,zcell
124  REAL(RFREAL) :: u,v,w,usqr,vsqr,wsqr
125  REAL(RFREAL), ALLOCATABLE, DIMENSION(:) :: comp,compsqr
126  REAL(RFREAL), POINTER, DIMENSION(:,:) :: arv,cv,dv
127  REAL(RFREAL), POINTER, DIMENSION(:,:) :: cveuler,cvsqreuler,diam,mass,&
128  masssqr,numdens
129 
130  TYPE(t_global), POINTER :: global
131  TYPE(t_grid) , POINTER :: grid
132  TYPE(t_plag) , POINTER :: pplag
133 
134 !*******************************************************************************
135 
136 ! ******************************************************************************
137 ! Start
138 ! ******************************************************************************
139 
140  rcsidentstring = '$RCSfile: PLAG_ProcessEulerField.F90,v $ $Revision: 1.3 $'
141 
142  global => regions(1)%global
143 
144  CALL registerfunction( global,'PLAG_ProcessEulerField',&
145  'PLAG_ProcessEulerField.F90' )
146 
147  IF (.NOT. global%plagUsed) goto 999
148 
149 ! ******************************************************************************
150 ! Obtain region grid size
151 ! ******************************************************************************
152 
153  DO ilev=2,regions(ireg)%nGridLevels
154  ipc = regions(ireg)%levels(ilev-1)%grid%ipc
155  jpc = regions(ireg)%levels(ilev-1)%grid%jpc
156  kpc = regions(ireg)%levels(ilev-1)%grid%kpc
157  regions(ireg)%levels(ilev)%grid%ipc = ipc/2
158  regions(ireg)%levels(ilev)%grid%jpc = jpc/2
159  regions(ireg)%levels(ilev)%grid%kpc = kpc/2
160  ENDDO ! iLev
161 
162 ! ******************************************************************************
163 ! Allocate memory for the grid (all grid levels)
164 ! ******************************************************************************
165 
166  DO ilev=1,regions(ireg)%nGridLevels
167  CALL rflo_getdimensdummynodes( regions(ireg),ilev,idnbeg,idnend, &
168  jdnbeg,jdnend,kdnbeg,kdnend )
169  CALL rflo_getnodeoffset( regions(ireg),ilev,inoff,ijnoff )
170  ibn = indijk(idnbeg,jdnbeg,kdnbeg,inoff,ijnoff)
171  ien = indijk(idnend,jdnend,kdnend,inoff,ijnoff)
172 
173  grid => regions(ireg)%levels(ilev)%grid
174  ALLOCATE( grid%xyz(3,ibn:ien),stat=errorflag )
175  global%error = errorflag
176  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
177  ENDDO ! iLev
178 
179 ! ******************************************************************************
180 ! Set current grid level and get dummy cell dimensions
181 ! ******************************************************************************
182 
183  ilev = regions(ireg)%currLevel
184  grid => regions(ireg)%levels(ilev)%grid
185 
186  CALL rflo_getdimensdummy( regions(ireg),ilev,idcbeg,idcend, &
187  jdcbeg,jdcend,kdcbeg,kdcend )
188  CALL rflo_getcelloffset( regions(ireg),ilev,icoff,ijcoff )
189  ibc = indijk(idcbeg,jdcbeg,kdcbeg,icoff,ijcoff)
190  iec = indijk(idcend,jdcend,kdcend,icoff,ijcoff)
191 
192  CALL rflo_getdimensphysnodes( regions(ireg),ilev,ipnbeg,ipnend, &
193  jpnbeg,jpnend,kpnbeg,kpnend )
194  CALL rflo_getnodeoffset( regions(ireg),ilev,inoff,ijnoff )
195  ibn = indijk(ipnbeg,jpnbeg,kpnbeg,inoff,ijnoff)
196  ien = indijk(ipnend,jpnend,kpnend,inoff,ijnoff)
197 
198  CALL rflo_getdimensphys( regions(ireg),ilev,ipcbeg,ipcend, &
199  jpcbeg,jpcend,kpcbeg,kpcend )
200 
201 ! ******************************************************************************
202 ! Save currentTime as global value is clobbered by RFLO_ReadGridRegion
203 ! ******************************************************************************
204 
205  currenttime = global%currentTime
206 
207 ! ******************************************************************************
208 ! Read grid
209 ! ******************************************************************************
210 
211  CALL rflo_readgridregion( ireg,regions )
212  CALL rflo_generatecoarsegrids( regions(ireg) )
213  CALL rflo_copygeometrydummy( regions(ireg) )
214 
215 ! ******************************************************************************
216 ! Set pointers and variables
217 ! ******************************************************************************
218 
219  pplag => regions(ireg)%levels(ilev)%plag
220 
221  cv => pplag%cv
222  dv => pplag%dv
223  aiv => pplag%aiv
224  arv => pplag%arv
225 
226  cvmass => pplag%cvPlagMass
227 
228  ncont = regions(ireg)%plagInput%nCont
229 
230  ncveulertot = 4
231  ndenstot = 2 ! Includes square of number density
232  ndiamtot = 2 ! Includes 3rd and 4th power
233  nmasstot = ncont+1
234 
235 ! ******************************************************************************
236 ! Allocate local arrays
237 ! ******************************************************************************
238 
239  ALLOCATE(comp(ncont),stat=errorflag )
240  global%error = errorflag
241  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
242 
243  ALLOCATE(compsqr(ncont),stat=errorflag )
244  global%error = errorflag
245  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
246 
247  ALLOCATE(cveuler(ncveulertot,ibc:iec),stat=errorflag )
248  global%error = errorflag
249  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
250 
251  ALLOCATE(cvsqreuler(ncveulertot,ibc:iec),stat=errorflag )
252  global%error = errorflag
253  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
254 
255  ALLOCATE(diam(ndiamtot,ibc:iec),stat=errorflag )
256  global%error = errorflag
257  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
258 
259  ALLOCATE(mass(nmasstot,ibc:iec),stat=errorflag )
260  global%error = errorflag
261  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
262 
263  ALLOCATE(masssqr(nmasstot,ibc:iec),stat=errorflag )
264  global%error = errorflag
265  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
266 
267  ALLOCATE(numdens(ndenstot,ibc:iec),stat=errorflag )
268  global%error = errorflag
269  IF (global%error /= 0) CALL errorstop( global,err_allocate,__line__ )
270 
271 ! ******************************************************************************
272 ! Initialize local arrays
273 ! ******************************************************************************
274 
275  DO ic = ibc, iec
276  diam(:,ic) = 0.0_rfreal
277  mass(:,ic) = 0.0_rfreal
278  masssqr(:,ic) = 0.0_rfreal
279  cveuler(:,ic) = 0.0_rfreal
280  cvsqreuler(:,ic) = 0.0_rfreal
281  numdens(:,ic) = 0.0_rfreal
282  END DO
283 
284  comp(:) = 0.0_rfreal
285  compsqr(:) = 0.0_rfreal
286 
287 ! ******************************************************************************
288 ! Compute Eulerian-based field data
289 ! ******************************************************************************
290 
291  DO ipcl = 1, pplag%nPcls
292  ic = aiv(aiv_plag_icells,ipcl)
293  diammicron = dv(dv_plag_diam,ipcl)*1.0e+06_rfreal
294  massl = sum(cv(cvmass(:),ipcl))
295 
296  numdens(1,ic) = numdens(1,ic) +1.0_rfreal
297  numdens(2,ic) = numdens(2,ic) +numdens(1,ic)**2.0_rfreal
298 
299  DO icont = 1, ncont
300  mass(icont,ic) = mass(icont,ic) +cv(cvmass(icont),ipcl)
301  masssqr(icont,ic) = masssqr(icont,ic) +cv(cvmass(icont),ipcl)**2
302  END DO ! iCont
303 
304  mass(ncont+1,ic) = mass(ncont+1,ic) +massl
305  masssqr(ncont+1,ic) = mass(ncont+1,ic) +massl**2.0_rfreal
306 
307  diam(1,ic) = diam(1,ic) +diammicron**3.0_rfreal
308  diam(2,ic) = diam(2,ic) +diammicron**4.0_rfreal
309 
310  cveuler(1,ic) = cveuler(1,ic) +cv(cv_plag_xmom,ipcl)
311  cveuler(2,ic) = cveuler(2,ic) +cv(cv_plag_ymom,ipcl)
312  cveuler(3,ic) = cveuler(3,ic) +cv(cv_plag_zmom,ipcl)
313  cveuler(4,ic) = cveuler(4,ic) +dv(dv_plag_temp,ipcl)
314 
315  cvsqreuler(1,ic) = cvsqreuler(1,ic) +cv(cv_plag_xmom,ipcl)**2.0_rfreal
316  cvsqreuler(2,ic) = cvsqreuler(2,ic) +cv(cv_plag_ymom,ipcl)**2.0_rfreal
317  cvsqreuler(3,ic) = cvsqreuler(3,ic) +cv(cv_plag_zmom,ipcl)**2.0_rfreal
318  cvsqreuler(4,ic) = cvsqreuler(4,ic) +dv(dv_plag_temp,ipcl)**2.0_rfreal
319  END DO ! iPcl
320 
321 ! ******************************************************************************
322 ! Compute Eulerian-based derived field data
323 ! Scale field by cell-based number of particles
324 ! ******************************************************************************
325 
326  DO ic = ibc,iec
327  nplagcell = numdens(1,ic)
328 
329  IF ( nplagcell > 0 ) THEN
330  nplagcellinv = 1.0/REAL(nplagcell,kind=rfreal)
331 
332  diam(:,ic) = diam(:,ic) *nplagcellinv
333  numdens(2,ic) = numdens(2,ic) *nplagcellinv
334  mass(:,ic) = mass(:,ic) *nplagcellinv
335  masssqr(:,ic) = masssqr(:,ic) *nplagcellinv
336  diam(:,ic) = diam(:,ic) *nplagcellinv
337  cveuler(:,ic) = cveuler(:,ic) *nplagcellinv
338  cvsqreuler(:,ic) = cvsqreuler(:,ic) *nplagcellinv
339  ENDIF ! numPlagCell
340  END DO ! ic
341 
342  print*,' PLAG_ProcessEulerField: iReg numDenSum,nDimPlag = ', &
343  ireg,sum(numdens(1,:)),pplag%nPcls
344 
345 ! ******************************************************************************
346 ! Copy field to dummy cells
347 ! ******************************************************************************
348 
349 ! ==============================================================================
350 ! Left boundary
351 ! ==============================================================================
352 
353  i = ipcbeg
354  DO k=kpcbeg,kpcend
355  DO j=jpcbeg,jpcend
356  ijkdum = indijk(i-1,j ,k ,icoff,ijcoff)
357  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
358 
359  diam(:,ijkdum) = diam(:,ijkcell)
360  numdens(:,ijkdum) = numdens(:,ijkcell)
361  mass(:,ijkdum) = mass(:,ijkcell)
362  masssqr(:,ijkdum) = masssqr(:,ijkcell)
363  diam(:,ijkdum) = diam(:,ijkcell)
364  cveuler(:,ijkdum) = cveuler(:,ijkcell)
365  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
366  ENDDO ! j
367  ENDDO ! k
368 
369 ! ------------------------------------------------------------------------------
370 ! Edges
371 ! ------------------------------------------------------------------------------
372 
373  i = ipcbeg
374 
375  j = jpcbeg
376  DO k=kpcbeg,kpcend
377  ijkdum = indijk(i-1,j-1,k ,icoff,ijcoff)
378  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
379 
380  diam(:,ijkdum) = diam(:,ijkcell)
381  numdens(:,ijkdum) = numdens(:,ijkcell)
382  mass(:,ijkdum) = mass(:,ijkcell)
383  masssqr(:,ijkdum) = masssqr(:,ijkcell)
384  diam(:,ijkdum) = diam(:,ijkcell)
385  cveuler(:,ijkdum) = cveuler(:,ijkcell)
386  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
387  ENDDO ! k
388 
389  j = jpcend
390  DO k=kpcbeg,kpcend
391  ijkdum = indijk(i-1,j+1,k ,icoff,ijcoff)
392  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
393 
394  diam(:,ijkdum) = diam(:,ijkcell)
395  numdens(:,ijkdum) = numdens(:,ijkcell)
396  mass(:,ijkdum) = mass(:,ijkcell)
397  masssqr(:,ijkdum) = masssqr(:,ijkcell)
398  diam(:,ijkdum) = diam(:,ijkcell)
399  cveuler(:,ijkdum) = cveuler(:,ijkcell)
400  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
401  ENDDO ! k
402 
403  k = kpcbeg
404  DO j=jpcbeg,jpcend
405  ijkdum = indijk(i-1,j ,k-1,icoff,ijcoff)
406  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
407 
408  diam(:,ijkdum) = diam(:,ijkcell)
409  numdens(:,ijkdum) = numdens(:,ijkcell)
410  mass(:,ijkdum) = mass(:,ijkcell)
411  masssqr(:,ijkdum) = masssqr(:,ijkcell)
412  diam(:,ijkdum) = diam(:,ijkcell)
413  cveuler(:,ijkdum) = cveuler(:,ijkcell)
414  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
415  ENDDO ! j
416 
417  k = kpcend
418  DO j=jpcbeg,jpcend
419  ijkdum = indijk(i-1,j ,k+1,icoff,ijcoff)
420  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
421 
422  diam(:,ijkdum) = diam(:,ijkcell)
423  numdens(:,ijkdum) = numdens(:,ijkcell)
424  mass(:,ijkdum) = mass(:,ijkcell)
425  masssqr(:,ijkdum) = masssqr(:,ijkcell)
426  diam(:,ijkdum) = diam(:,ijkcell)
427  cveuler(:,ijkdum) = cveuler(:,ijkcell)
428  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
429  ENDDO ! j
430 
431 ! ------------------------------------------------------------------------------
432 ! Corners
433 ! ------------------------------------------------------------------------------
434 
435  i = ipcbeg
436  j = jpcbeg
437  k = kpcbeg
438 
439  ijkdum = indijk(i-1,j-1,k-1,icoff,ijcoff)
440  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
441 
442  diam(:,ijkdum) = diam(:,ijkcell)
443  numdens(:,ijkdum) = numdens(:,ijkcell)
444  mass(:,ijkdum) = mass(:,ijkcell)
445  masssqr(:,ijkdum) = masssqr(:,ijkcell)
446  diam(:,ijkdum) = diam(:,ijkcell)
447  cveuler(:,ijkdum) = cveuler(:,ijkcell)
448  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
449 
450  i = ipcbeg
451  j = jpcend
452  k = kpcbeg
453 
454  ijkdum = indijk(i-1,j+1,k-1,icoff,ijcoff)
455  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
456 
457  diam(:,ijkdum) = diam(:,ijkcell)
458  numdens(:,ijkdum) = numdens(:,ijkcell)
459  mass(:,ijkdum) = mass(:,ijkcell)
460  masssqr(:,ijkdum) = masssqr(:,ijkcell)
461  diam(:,ijkdum) = diam(:,ijkcell)
462  cveuler(:,ijkdum) = cveuler(:,ijkcell)
463  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
464 
465  i = ipcbeg
466  j = jpcbeg
467  k = kpcend
468 
469  ijkdum = indijk(i-1,j-1,k+1,icoff,ijcoff)
470  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
471 
472  diam(:,ijkdum) = diam(:,ijkcell)
473  numdens(:,ijkdum) = numdens(:,ijkcell)
474  mass(:,ijkdum) = mass(:,ijkcell)
475  masssqr(:,ijkdum) = masssqr(:,ijkcell)
476  diam(:,ijkdum) = diam(:,ijkcell)
477  cveuler(:,ijkdum) = cveuler(:,ijkcell)
478  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
479 
480  i = ipcbeg
481  j = jpcend
482  k = kpcend
483 
484  ijkdum = indijk(i-1,j+1,k+1,icoff,ijcoff)
485  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
486 
487  diam(:,ijkdum) = diam(:,ijkcell)
488  numdens(:,ijkdum) = numdens(:,ijkcell)
489  mass(:,ijkdum) = mass(:,ijkcell)
490  masssqr(:,ijkdum) = masssqr(:,ijkcell)
491  diam(:,ijkdum) = diam(:,ijkcell)
492  cveuler(:,ijkdum) = cveuler(:,ijkcell)
493  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
494 
495 ! ==============================================================================
496 ! Right boundary
497 ! ==============================================================================
498 
499  i = ipcend
500  DO k=kpcbeg,kpcend
501  DO j=jpcbeg,jpcend
502  ijkdum = indijk(i+1,j ,k ,icoff,ijcoff)
503  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
504 
505  diam(:,ijkdum) = diam(:,ijkcell)
506  numdens(:,ijkdum) = numdens(:,ijkcell)
507  mass(:,ijkdum) = mass(:,ijkcell)
508  masssqr(:,ijkdum) = masssqr(:,ijkcell)
509  diam(:,ijkdum) = diam(:,ijkcell)
510  cveuler(:,ijkdum) = cveuler(:,ijkcell)
511  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
512  ENDDO ! j
513  ENDDO ! k
514 
515 ! ------------------------------------------------------------------------------
516 ! Edges
517 ! ------------------------------------------------------------------------------
518 
519  i = ipcend
520  j = jpcbeg
521  DO k=kpcbeg,kpcend
522  ijkdum = indijk(i+1,j-1,k ,icoff,ijcoff)
523  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
524 
525  diam(:,ijkdum) = diam(:,ijkcell)
526  numdens(:,ijkdum) = numdens(:,ijkcell)
527  mass(:,ijkdum) = mass(:,ijkcell)
528  masssqr(:,ijkdum) = masssqr(:,ijkcell)
529  diam(:,ijkdum) = diam(:,ijkcell)
530  cveuler(:,ijkdum) = cveuler(:,ijkcell)
531  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
532  ENDDO ! k
533 
534  i = ipcend
535  j = jpcend
536  DO k=kpcbeg,kpcend
537  ijkdum = indijk(i+1,j+1,k ,icoff,ijcoff)
538  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
539 
540  diam(:,ijkdum) = diam(:,ijkcell)
541  numdens(:,ijkdum) = numdens(:,ijkcell)
542  mass(:,ijkdum) = mass(:,ijkcell)
543  masssqr(:,ijkdum) = masssqr(:,ijkcell)
544  diam(:,ijkdum) = diam(:,ijkcell)
545  cveuler(:,ijkdum) = cveuler(:,ijkcell)
546  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
547  ENDDO ! k
548 
549  i = ipcend
550  k = kpcbeg
551  DO j=jpcbeg,jpcend
552  ijkdum = indijk(i+1,j ,k-1,icoff,ijcoff)
553  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
554 
555  diam(:,ijkdum) = diam(:,ijkcell)
556  numdens(:,ijkdum) = numdens(:,ijkcell)
557  mass(:,ijkdum) = mass(:,ijkcell)
558  masssqr(:,ijkdum) = masssqr(:,ijkcell)
559  diam(:,ijkdum) = diam(:,ijkcell)
560  cveuler(:,ijkdum) = cveuler(:,ijkcell)
561  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
562  ENDDO ! j
563 
564  i = ipcend
565  k = kpcend
566  DO j=jpcbeg,jpcend
567  ijkdum = indijk(i+1,j ,k+1,icoff,ijcoff)
568  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
569 
570  diam(:,ijkdum) = diam(:,ijkcell)
571  numdens(:,ijkdum) = numdens(:,ijkcell)
572  mass(:,ijkdum) = mass(:,ijkcell)
573  masssqr(:,ijkdum) = masssqr(:,ijkcell)
574  diam(:,ijkdum) = diam(:,ijkcell)
575  cveuler(:,ijkdum) = cveuler(:,ijkcell)
576  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
577  ENDDO ! j
578 
579 ! ------------------------------------------------------------------------------
580 ! Corners
581 ! ------------------------------------------------------------------------------
582 
583  i = ipcend
584  j = jpcbeg
585  k = kpcbeg
586 
587  ijkdum = indijk(i+1,j-1,k-1,icoff,ijcoff)
588  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
589 
590  diam(:,ijkdum) = diam(:,ijkcell)
591  numdens(:,ijkdum) = numdens(:,ijkcell)
592  mass(:,ijkdum) = mass(:,ijkcell)
593  masssqr(:,ijkdum) = masssqr(:,ijkcell)
594  diam(:,ijkdum) = diam(:,ijkcell)
595  cveuler(:,ijkdum) = cveuler(:,ijkcell)
596  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
597 
598  i = ipcend
599  j = jpcend
600  k = kpcbeg
601 
602  ijkdum = indijk(i+1,j+1,k-1,icoff,ijcoff)
603  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
604 
605  diam(:,ijkdum) = diam(:,ijkcell)
606  numdens(:,ijkdum) = numdens(:,ijkcell)
607  mass(:,ijkdum) = mass(:,ijkcell)
608  masssqr(:,ijkdum) = masssqr(:,ijkcell)
609  diam(:,ijkdum) = diam(:,ijkcell)
610  cveuler(:,ijkdum) = cveuler(:,ijkcell)
611  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
612 
613  i = ipcend
614  j = jpcbeg
615  k = kpcend
616 
617  ijkdum = indijk(i+1,j-1,k+1,icoff,ijcoff)
618  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
619 
620  diam(:,ijkdum) = diam(:,ijkcell)
621  numdens(:,ijkdum) = numdens(:,ijkcell)
622  mass(:,ijkdum) = mass(:,ijkcell)
623  masssqr(:,ijkdum) = masssqr(:,ijkcell)
624  diam(:,ijkdum) = diam(:,ijkcell)
625  cveuler(:,ijkdum) = cveuler(:,ijkcell)
626  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
627 
628  i = ipcend
629  j = jpcend
630  k = kpcend
631 
632  ijkdum = indijk(i+1,j-1,k+1,icoff,ijcoff)
633  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
634 
635  diam(:,ijkdum) = diam(:,ijkcell)
636  numdens(:,ijkdum) = numdens(:,ijkcell)
637  mass(:,ijkdum) = mass(:,ijkcell)
638  masssqr(:,ijkdum) = masssqr(:,ijkcell)
639  diam(:,ijkdum) = diam(:,ijkcell)
640  cveuler(:,ijkdum) = cveuler(:,ijkcell)
641  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
642 
643 ! ==============================================================================
644 ! Bottom Boundary
645 ! ==============================================================================
646 
647  j = jpcbeg
648  DO k=kpcbeg,kpcend
649  DO i=ipcbeg,ipcend
650  ijkdum = indijk(i ,j-1,k ,icoff,ijcoff)
651  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
652 
653  diam(:,ijkdum) = diam(:,ijkcell)
654  numdens(:,ijkdum) = numdens(:,ijkcell)
655  mass(:,ijkdum) = mass(:,ijkcell)
656  masssqr(:,ijkdum) = masssqr(:,ijkcell)
657  diam(:,ijkdum) = diam(:,ijkcell)
658  cveuler(:,ijkdum) = cveuler(:,ijkcell)
659  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
660  ENDDO ! i
661  ENDDO ! k
662 
663 ! ------------------------------------------------------------------------------
664 ! Edges
665 ! ------------------------------------------------------------------------------
666 
667  j = jpcbeg
668 
669  i = ipcbeg
670  DO k=kpcbeg,kpcend
671  ijkdum = indijk(i-1,j-1,k ,icoff,ijcoff)
672  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
673 
674  diam(:,ijkdum) = diam(:,ijkcell)
675  numdens(:,ijkdum) = numdens(:,ijkcell)
676  mass(:,ijkdum) = mass(:,ijkcell)
677  masssqr(:,ijkdum) = masssqr(:,ijkcell)
678  diam(:,ijkdum) = diam(:,ijkcell)
679  cveuler(:,ijkdum) = cveuler(:,ijkcell)
680  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
681  ENDDO ! k
682 
683  i = ipcend
684  DO k=kpcbeg,kpcend
685  ijkdum = indijk(i+1,j-1,k ,icoff,ijcoff)
686  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
687 
688  diam(:,ijkdum) = diam(:,ijkcell)
689  numdens(:,ijkdum) = numdens(:,ijkcell)
690  mass(:,ijkdum) = mass(:,ijkcell)
691  masssqr(:,ijkdum) = masssqr(:,ijkcell)
692  diam(:,ijkdum) = diam(:,ijkcell)
693  cveuler(:,ijkdum) = cveuler(:,ijkcell)
694  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
695  ENDDO ! k
696 
697  k = kpcbeg
698  DO i=ipcbeg,ipcend
699  ijkdum = indijk(i ,j-1,k-1,icoff,ijcoff)
700  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
701 
702  diam(:,ijkdum) = diam(:,ijkcell)
703  numdens(:,ijkdum) = numdens(:,ijkcell)
704  mass(:,ijkdum) = mass(:,ijkcell)
705  masssqr(:,ijkdum) = masssqr(:,ijkcell)
706  diam(:,ijkdum) = diam(:,ijkcell)
707  cveuler(:,ijkdum) = cveuler(:,ijkcell)
708  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
709  ENDDO ! k
710 
711  k = kpcend
712  DO i=ipcbeg,ipcend
713  ijkdum = indijk(i ,j-1,k+1 ,icoff,ijcoff)
714  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
715 
716  diam(:,ijkdum) = diam(:,ijkcell)
717  numdens(:,ijkdum) = numdens(:,ijkcell)
718  mass(:,ijkdum) = mass(:,ijkcell)
719  masssqr(:,ijkdum) = masssqr(:,ijkcell)
720  diam(:,ijkdum) = diam(:,ijkcell)
721  cveuler(:,ijkdum) = cveuler(:,ijkcell)
722  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
723  ENDDO ! k
724 
725 ! ------------------------------------------------------------------------------
726 ! Corners
727 ! ------------------------------------------------------------------------------
728 
729  j = jpcbeg
730 
731  i = ipcbeg
732  k = kpcbeg
733  ijkdum = indijk(i-1,j-1,k-1,icoff,ijcoff)
734  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
735 
736  diam(:,ijkdum) = diam(:,ijkcell)
737  numdens(:,ijkdum) = numdens(:,ijkcell)
738  mass(:,ijkdum) = mass(:,ijkcell)
739  masssqr(:,ijkdum) = masssqr(:,ijkcell)
740  diam(:,ijkdum) = diam(:,ijkcell)
741  cveuler(:,ijkdum) = cveuler(:,ijkcell)
742  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
743 
744  i = ipcend
745  k = kpcend
746  ijkdum = indijk(i+1,j-1,k+1,icoff,ijcoff)
747  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
748 
749  diam(:,ijkdum) = diam(:,ijkcell)
750  numdens(:,ijkdum) = numdens(:,ijkcell)
751  mass(:,ijkdum) = mass(:,ijkcell)
752  masssqr(:,ijkdum) = masssqr(:,ijkcell)
753  diam(:,ijkdum) = diam(:,ijkcell)
754  cveuler(:,ijkdum) = cveuler(:,ijkcell)
755  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
756 
757  k = kpcbeg
758  i = ipcbeg
759  ijkdum = indijk(i-1,j-1,k-1,icoff,ijcoff)
760  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
761 
762  diam(:,ijkdum) = diam(:,ijkcell)
763  numdens(:,ijkdum) = numdens(:,ijkcell)
764  mass(:,ijkdum) = mass(:,ijkcell)
765  masssqr(:,ijkdum) = masssqr(:,ijkcell)
766  diam(:,ijkdum) = diam(:,ijkcell)
767  cveuler(:,ijkdum) = cveuler(:,ijkcell)
768  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
769 
770  k = kpcend
771  i = ipcend
772  ijkdum = indijk(i+1,j-1,k+1,icoff,ijcoff)
773  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
774 
775  diam(:,ijkdum) = diam(:,ijkcell)
776  numdens(:,ijkdum) = numdens(:,ijkcell)
777  mass(:,ijkdum) = mass(:,ijkcell)
778  masssqr(:,ijkdum) = masssqr(:,ijkcell)
779  diam(:,ijkdum) = diam(:,ijkcell)
780  cveuler(:,ijkdum) = cveuler(:,ijkcell)
781  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
782 
783 ! ==============================================================================
784 ! Top Boundary
785 ! ==============================================================================
786 
787  j = jpcend
788  DO k=kpcbeg,kpcend
789  DO i=ipcbeg,ipcend
790  ijkdum = indijk(i ,j+1,k ,icoff,ijcoff)
791  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
792 
793  diam(:,ijkdum) = diam(:,ijkcell)
794  numdens(:,ijkdum) = numdens(:,ijkcell)
795  mass(:,ijkdum) = mass(:,ijkcell)
796  masssqr(:,ijkdum) = masssqr(:,ijkcell)
797  diam(:,ijkdum) = diam(:,ijkcell)
798  cveuler(:,ijkdum) = cveuler(:,ijkcell)
799  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
800  ENDDO ! i
801  ENDDO ! k
802 
803 ! ------------------------------------------------------------------------------
804 ! Edges
805 ! ------------------------------------------------------------------------------
806 
807  j = jpcend
808 
809  i = ipcbeg
810  DO k=kpcbeg,kpcend
811  ijkdum = indijk(i-1,j+1,k ,icoff,ijcoff)
812  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
813 
814  diam(:,ijkdum) = diam(:,ijkcell)
815  numdens(:,ijkdum) = numdens(:,ijkcell)
816  mass(:,ijkdum) = mass(:,ijkcell)
817  masssqr(:,ijkdum) = masssqr(:,ijkcell)
818  diam(:,ijkdum) = diam(:,ijkcell)
819  cveuler(:,ijkdum) = cveuler(:,ijkcell)
820  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
821  ENDDO ! k
822 
823  i = ipcend
824  DO k=kpcbeg,kpcend
825  ijkdum = indijk(i+1,j+1,k ,icoff,ijcoff)
826  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
827 
828  diam(:,ijkdum) = diam(:,ijkcell)
829  numdens(:,ijkdum) = numdens(:,ijkcell)
830  mass(:,ijkdum) = mass(:,ijkcell)
831  masssqr(:,ijkdum) = masssqr(:,ijkcell)
832  diam(:,ijkdum) = diam(:,ijkcell)
833  cveuler(:,ijkdum) = cveuler(:,ijkcell)
834  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
835  ENDDO ! k
836 
837  k = kpcbeg
838  DO i=ipcbeg,ipcend
839  ijkdum = indijk(i ,j+1,k-1,icoff,ijcoff)
840  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
841 
842  diam(:,ijkdum) = diam(:,ijkcell)
843  numdens(:,ijkdum) = numdens(:,ijkcell)
844  mass(:,ijkdum) = mass(:,ijkcell)
845  masssqr(:,ijkdum) = masssqr(:,ijkcell)
846  diam(:,ijkdum) = diam(:,ijkcell)
847  cveuler(:,ijkdum) = cveuler(:,ijkcell)
848  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
849  ENDDO ! k
850 
851  k = kpcend
852  DO i=ipcbeg,ipcend
853  ijkdum = indijk(i ,j+1,k+1,icoff,ijcoff)
854  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
855 
856  diam(:,ijkdum) = diam(:,ijkcell)
857  numdens(:,ijkdum) = numdens(:,ijkcell)
858  mass(:,ijkdum) = mass(:,ijkcell)
859  masssqr(:,ijkdum) = masssqr(:,ijkcell)
860  diam(:,ijkdum) = diam(:,ijkcell)
861  cveuler(:,ijkdum) = cveuler(:,ijkcell)
862  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
863  ENDDO ! k
864 
865 ! ------------------------------------------------------------------------------
866 ! Corners
867 ! ------------------------------------------------------------------------------
868 
869  j = jpcend
870 
871  i = ipcbeg
872  k = kpcbeg
873  ijkdum = indijk(i-1,j+1,k-1,icoff,ijcoff)
874  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
875 
876  diam(:,ijkdum) = diam(:,ijkcell)
877  numdens(:,ijkdum) = numdens(:,ijkcell)
878  mass(:,ijkdum) = mass(:,ijkcell)
879  masssqr(:,ijkdum) = masssqr(:,ijkcell)
880  diam(:,ijkdum) = diam(:,ijkcell)
881  cveuler(:,ijkdum) = cveuler(:,ijkcell)
882  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
883 
884  i = ipcend
885  k = kpcend
886  ijkdum = indijk(i+1,j+1,k+1,icoff,ijcoff)
887  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
888 
889  diam(:,ijkdum) = diam(:,ijkcell)
890  numdens(:,ijkdum) = numdens(:,ijkcell)
891  mass(:,ijkdum) = mass(:,ijkcell)
892  masssqr(:,ijkdum) = masssqr(:,ijkcell)
893  diam(:,ijkdum) = diam(:,ijkcell)
894  cveuler(:,ijkdum) = cveuler(:,ijkcell)
895  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
896 
897  k = kpcbeg
898  i = ipcbeg
899  ijkdum = indijk(i-1,j+1,k-1,icoff,ijcoff)
900  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
901 
902  diam(:,ijkdum) = diam(:,ijkcell)
903  numdens(:,ijkdum) = numdens(:,ijkcell)
904  mass(:,ijkdum) = mass(:,ijkcell)
905  masssqr(:,ijkdum) = masssqr(:,ijkcell)
906  diam(:,ijkdum) = diam(:,ijkcell)
907  cveuler(:,ijkdum) = cveuler(:,ijkcell)
908  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
909 
910  k = kpcend
911  i = ipcend
912  ijkdum = indijk(i+1,j+1,k+1,icoff,ijcoff)
913  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
914 
915  diam(:,ijkdum) = diam(:,ijkcell)
916  numdens(:,ijkdum) = numdens(:,ijkcell)
917  mass(:,ijkdum) = mass(:,ijkcell)
918  masssqr(:,ijkdum) = masssqr(:,ijkcell)
919  diam(:,ijkdum) = diam(:,ijkcell)
920  cveuler(:,ijkdum) = cveuler(:,ijkcell)
921  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
922 
923 ! ==============================================================================
924 ! Front Boundary
925 ! ==============================================================================
926 
927  k = kpcbeg
928  DO j=jpcbeg,jpcend
929  DO i=ipcbeg,ipcend
930  ijkdum = indijk(i ,j ,k-1,icoff,ijcoff)
931  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
932 
933  diam(:,ijkdum) = diam(:,ijkcell)
934  numdens(:,ijkdum) = numdens(:,ijkcell)
935  mass(:,ijkdum) = mass(:,ijkcell)
936  masssqr(:,ijkdum) = masssqr(:,ijkcell)
937  diam(:,ijkdum) = diam(:,ijkcell)
938  cveuler(:,ijkdum) = cveuler(:,ijkcell)
939  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
940  ENDDO ! i
941  ENDDO ! j
942 
943 ! ------------------------------------------------------------------------------
944 ! Edges
945 ! ------------------------------------------------------------------------------
946 
947  k = kpcbeg
948  j = jpcbeg
949  DO i=ipcbeg,ipcend
950  ijkdum = indijk(i ,j-1,k-1,icoff,ijcoff)
951  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
952 
953  diam(:,ijkdum) = diam(:,ijkcell)
954  numdens(:,ijkdum) = numdens(:,ijkcell)
955  mass(:,ijkdum) = mass(:,ijkcell)
956  masssqr(:,ijkdum) = masssqr(:,ijkcell)
957  diam(:,ijkdum) = diam(:,ijkcell)
958  cveuler(:,ijkdum) = cveuler(:,ijkcell)
959  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
960  ENDDO ! i
961 
962  j = jpcend
963  DO i=ipcbeg,ipcend
964  ijkdum = indijk(i ,j+1,k-1,icoff,ijcoff)
965  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
966 
967  diam(:,ijkdum) = diam(:,ijkcell)
968  numdens(:,ijkdum) = numdens(:,ijkcell)
969  mass(:,ijkdum) = mass(:,ijkcell)
970  masssqr(:,ijkdum) = masssqr(:,ijkcell)
971  diam(:,ijkdum) = diam(:,ijkcell)
972  cveuler(:,ijkdum) = cveuler(:,ijkcell)
973  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
974  ENDDO ! i
975 
976  i = ipcbeg
977  DO j=jpcbeg,jpcend
978  ijkdum = indijk(i-1,j ,k-1,icoff,ijcoff)
979  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
980 
981  diam(:,ijkdum) = diam(:,ijkcell)
982  numdens(:,ijkdum) = numdens(:,ijkcell)
983  mass(:,ijkdum) = mass(:,ijkcell)
984  masssqr(:,ijkdum) = masssqr(:,ijkcell)
985  diam(:,ijkdum) = diam(:,ijkcell)
986  cveuler(:,ijkdum) = cveuler(:,ijkcell)
987  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
988  ENDDO ! j
989 
990  i = ipcend
991  DO j=jpcbeg,jpcend
992  ijkdum = indijk(i+1,j ,k-1,icoff,ijcoff)
993  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
994 
995  diam(:,ijkdum) = diam(:,ijkcell)
996  numdens(:,ijkdum) = numdens(:,ijkcell)
997  mass(:,ijkdum) = mass(:,ijkcell)
998  masssqr(:,ijkdum) = masssqr(:,ijkcell)
999  diam(:,ijkdum) = diam(:,ijkcell)
1000  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1001  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1002  ENDDO ! j
1003 
1004 ! ------------------------------------------------------------------------------
1005 ! Corners
1006 ! ------------------------------------------------------------------------------
1007 
1008  k = kpcbeg
1009 
1010  j = jpcbeg
1011  i = ipcbeg
1012  ijkdum = indijk(i-1,j-1,k-1,icoff,ijcoff)
1013  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1014 
1015  diam(:,ijkdum) = diam(:,ijkcell)
1016  numdens(:,ijkdum) = numdens(:,ijkcell)
1017  mass(:,ijkdum) = mass(:,ijkcell)
1018  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1019  diam(:,ijkdum) = diam(:,ijkcell)
1020  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1021  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1022 
1023  j = jpcbeg
1024  i = ipcend
1025  ijkdum = indijk(i+1,j-1,k-1,icoff,ijcoff)
1026  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1027 
1028  diam(:,ijkdum) = diam(:,ijkcell)
1029  numdens(:,ijkdum) = numdens(:,ijkcell)
1030  mass(:,ijkdum) = mass(:,ijkcell)
1031  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1032  diam(:,ijkdum) = diam(:,ijkcell)
1033  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1034  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1035 
1036  j = jpcend
1037  i = ipcbeg
1038  ijkdum = indijk(i-1,j+1,k-1,icoff,ijcoff)
1039  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1040 
1041  diam(:,ijkdum) = diam(:,ijkcell)
1042  numdens(:,ijkdum) = numdens(:,ijkcell)
1043  mass(:,ijkdum) = mass(:,ijkcell)
1044  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1045  diam(:,ijkdum) = diam(:,ijkcell)
1046  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1047  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1048 
1049  j = jpcend
1050  i = ipcend
1051  ijkdum = indijk(i+1,j+1,k-1,icoff,ijcoff)
1052  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1053 
1054  diam(:,ijkdum) = diam(:,ijkcell)
1055  numdens(:,ijkdum) = numdens(:,ijkcell)
1056  mass(:,ijkdum) = mass(:,ijkcell)
1057  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1058  diam(:,ijkdum) = diam(:,ijkcell)
1059  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1060  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1061 
1062 ! ==============================================================================
1063 ! Back Boundary
1064 ! ==============================================================================
1065 
1066  k = kpcend
1067  DO j=jpcbeg,jpcend
1068  DO i=ipcbeg,ipcend
1069  ijkdum = indijk(i ,j ,k+1,icoff,ijcoff)
1070  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1071 
1072  diam(:,ijkdum) = diam(:,ijkcell)
1073  numdens(:,ijkdum) = numdens(:,ijkcell)
1074  mass(:,ijkdum) = mass(:,ijkcell)
1075  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1076  diam(:,ijkdum) = diam(:,ijkcell)
1077  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1078  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1079  ENDDO ! i
1080  ENDDO ! j
1081 
1082 ! ------------------------------------------------------------------------------
1083 ! Edges
1084 ! ------------------------------------------------------------------------------
1085 
1086  k = kpcend
1087  j = jpcbeg
1088  DO i=ipcbeg,ipcend
1089  ijkdum = indijk(i ,j-1,k+1,icoff,ijcoff)
1090  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1091 
1092  diam(:,ijkdum) = diam(:,ijkcell)
1093  numdens(:,ijkdum) = numdens(:,ijkcell)
1094  mass(:,ijkdum) = mass(:,ijkcell)
1095  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1096  diam(:,ijkdum) = diam(:,ijkcell)
1097  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1098  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1099  ENDDO ! i
1100 
1101  j = jpcend
1102  DO i=ipcbeg,ipcend
1103  ijkdum = indijk(i ,j+1,k+1,icoff,ijcoff)
1104  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1105 
1106  diam(:,ijkdum) = diam(:,ijkcell)
1107  numdens(:,ijkdum) = numdens(:,ijkcell)
1108  mass(:,ijkdum) = mass(:,ijkcell)
1109  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1110  diam(:,ijkdum) = diam(:,ijkcell)
1111  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1112  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1113  ENDDO ! i
1114 
1115  i = ipcbeg
1116  DO j=jpcbeg,jpcend
1117  ijkdum = indijk(i-1,j ,k+1,icoff,ijcoff)
1118  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1119 
1120  diam(:,ijkdum) = diam(:,ijkcell)
1121  numdens(:,ijkdum) = numdens(:,ijkcell)
1122  mass(:,ijkdum) = mass(:,ijkcell)
1123  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1124  diam(:,ijkdum) = diam(:,ijkcell)
1125  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1126  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1127  ENDDO ! j
1128 
1129  i = ipcend
1130  DO j=jpcbeg,jpcend
1131  ijkdum = indijk(i+1,j ,k+1,icoff,ijcoff)
1132  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1133 
1134  diam(:,ijkdum) = diam(:,ijkcell)
1135  numdens(:,ijkdum) = numdens(:,ijkcell)
1136  mass(:,ijkdum) = mass(:,ijkcell)
1137  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1138  diam(:,ijkdum) = diam(:,ijkcell)
1139  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1140  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1141  ENDDO ! j
1142 
1143 ! ------------------------------------------------------------------------------
1144 ! Corners
1145 ! ------------------------------------------------------------------------------
1146 
1147  k = kpcend
1148 
1149  j = jpcbeg
1150  i = ipcbeg
1151  ijkdum = indijk(i-1,j-1,k+1,icoff,ijcoff)
1152  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1153 
1154  diam(:,ijkdum) = diam(:,ijkcell)
1155  numdens(:,ijkdum) = numdens(:,ijkcell)
1156  mass(:,ijkdum) = mass(:,ijkcell)
1157  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1158  diam(:,ijkdum) = diam(:,ijkcell)
1159  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1160  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1161 
1162  j = jpcbeg
1163  i = ipcend
1164  ijkdum = indijk(i+1,j-1,k+1,icoff,ijcoff)
1165  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1166 
1167  diam(:,ijkdum) = diam(:,ijkcell)
1168  numdens(:,ijkdum) = numdens(:,ijkcell)
1169  mass(:,ijkdum) = mass(:,ijkcell)
1170  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1171  diam(:,ijkdum) = diam(:,ijkcell)
1172  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1173  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1174 
1175  j = jpcend
1176  i = ipcbeg
1177  ijkdum = indijk(i-1,j+1,k+1,icoff,ijcoff)
1178  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1179 
1180  diam(:,ijkdum) = diam(:,ijkcell)
1181  numdens(:,ijkdum) = numdens(:,ijkcell)
1182  mass(:,ijkdum) = mass(:,ijkcell)
1183  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1184  diam(:,ijkdum) = diam(:,ijkcell)
1185  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1186  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1187 
1188  j = jpcend
1189  i = ipcend
1190  ijkdum = indijk(i+1,j+1,k+1,icoff,ijcoff)
1191  ijkcell = indijk(i ,j ,k ,icoff,ijcoff)
1192 
1193  diam(:,ijkdum) = diam(:,ijkcell)
1194  numdens(:,ijkdum) = numdens(:,ijkcell)
1195  mass(:,ijkdum) = mass(:,ijkcell)
1196  masssqr(:,ijkdum) = masssqr(:,ijkcell)
1197  diam(:,ijkdum) = diam(:,ijkcell)
1198  cveuler(:,ijkdum) = cveuler(:,ijkcell)
1199  cvsqreuler(:,ijkdum) = cvsqreuler(:,ijkcell)
1200 
1201 ! ******************************************************************************
1202 ! Write data to Tecplot file
1203 ! ******************************************************************************
1204 
1205 ! ==============================================================================
1206 ! Open file and write the header
1207 ! ==============================================================================
1208 
1209  IF (ireg == 1) THEN
1210  WRITE(fnametec,'(A,ES11.5,A)') &
1211  trim(global%casename)//'.plag_eulerVarsTec_',currenttime,'.dat'
1212  OPEN(if_plot_plageul_tec,file=fnametec,status='unknown',form='formatted',&
1213  iostat=errorflag)
1214  global%error = errorflag
1215  IF (global%error /= 0) &
1216  CALL errorstop( global,err_file_open,__line__,fnametec )
1217 
1218  WRITE(if_plot_plageul_tec,1005,err=10) &
1219  trim(global%casename),global%currentTime,npclssum
1220 
1221  varstrtec = 'x y z nDens nDensSqr diam diam3 diam4 mass u v w temp massSqr uSqr vSqr wSqr tempSqr'
1222 
1223  DO icont=1,ncont
1224  SELECT CASE (icont)
1225  CASE ( 0: 9)
1226  WRITE(compstr,'(A,I1)') 'comp_', icont
1227  CASE (10:99)
1228  WRITE(compstr,'(A,I2)') 'comp_', icont
1229  CASE default
1230  WRITE(compstr,'(A)') 'comp_?'
1231  END SELECT ! iCont
1232  varstrtec = trim(varstrtec)//' '//trim(compstr)
1233  ENDDO ! iCont
1234 
1235  DO icont=1,ncont
1236  SELECT CASE (icont)
1237  CASE ( 0: 9)
1238  WRITE(compstr,'(A,I1)') 'compSqr_', icont
1239  CASE (10:99)
1240  WRITE(compstr,'(A,I2)') 'compSqr_', icont
1241  CASE default
1242  WRITE(compstr,'(A)') 'compSqr_?'
1243  END SELECT ! iCont
1244  varstrtec = trim(varstrtec)//' '//trim(compstr)
1245  ENDDO ! iCont
1246 
1247  WRITE(if_plot_plageul_tec,1010,err=10) trim(varstrtec)
1248  ENDIF ! iReg=1
1249 
1250 ! ==============================================================================
1251 ! Write zone header for plotting data based on nodes
1252 ! ==============================================================================
1253 
1254  WRITE(if_plot_plageul_tec,1015) ireg,ipnend-ipnbeg+1,jpnend-jpnbeg+1,&
1255  kpnend-kpnbeg+1
1256 
1257 ! ==============================================================================
1258 ! Write plotting data
1259 ! ==============================================================================
1260 
1261  DO k=kpnbeg,kpnend
1262  DO j=jpnbeg,jpnend
1263  DO i=ipnbeg,ipnend
1264  ijkn = indijk(i,j,k,inoff,ijnoff)
1265 
1266  cell(1) = indijk(i ,j ,k ,icoff,ijcoff)
1267  cell(2) = indijk(i+1,j ,k ,icoff,ijcoff)
1268  cell(3) = indijk(i ,j+1,k ,icoff,ijcoff)
1269  cell(4) = indijk(i+1,j+1,k ,icoff,ijcoff)
1270  cell(5) = indijk(i ,j ,k+1,icoff,ijcoff)
1271  cell(6) = indijk(i+1,j ,k+1,icoff,ijcoff)
1272  cell(7) = indijk(i ,j+1,k+1,icoff,ijcoff)
1273  cell(8) = indijk(i+1,j+1,k+1,icoff,ijcoff)
1274 
1275  diaml3 = aver(cell,1,diam)
1276  diaml4 = aver(cell,2,diam)
1277 
1278  IF( diaml3 > 0.0_rfreal) THEN
1279  diaml = diaml4/diaml3
1280  ELSE
1281  diaml = 0.0_rfreal
1282  ENDIF ! diamL3
1283 
1284  densnum = aver(cell,1,numdens)
1285  densnumsqr = aver(cell,2,numdens)
1286 
1287  massl = aver(cell,ncont+1,mass)
1288  masssqrl = aver(cell,ncont+1,masssqr)
1289 
1290  xmom = aver(cell,1,cveuler)
1291  ymom = aver(cell,2,cveuler)
1292  zmom = aver(cell,3,cveuler)
1293  temp = aver(cell,4,cveuler)
1294 
1295  xmomsqr = aver(cell,1,cvsqreuler)
1296  ymomsqr = aver(cell,2,cvsqreuler)
1297  zmomsqr = aver(cell,3,cvsqreuler)
1298  tempsqr = aver(cell,4,cvsqreuler)
1299 
1300  IF ( massl > 0.0_rfreal ) THEN
1301  u = xmom/massl
1302  v = ymom/massl
1303  w = zmom/massl
1304  ELSE
1305  u = 0.0_rfreal; v = 0.0_rfreal; w = 0.0_rfreal;
1306  END IF ! massL
1307 
1308  IF ( masssqrl > 0.0_rfreal ) THEN
1309  usqr = xmomsqr/masssqrl
1310  vsqr = ymomsqr/masssqrl
1311  wsqr = zmomsqr/masssqrl
1312  ELSE
1313  usqr = 0.0_rfreal; vsqr = 0.0_rfreal; wsqr = 0.0_rfreal;
1314  END IF ! massSqrL
1315 
1316  DO icont = 1, ncont
1317  comp(icont) = aver(cell,icont,mass)
1318  compsqr(icont) = aver(cell,icont,mass)
1319 
1320  IF ( massl > 0.0_rfreal ) THEN
1321  comp(icont) = comp(icont)/massl
1322  ELSE
1323  comp(icont) = 0.0_rfreal
1324  END IF ! massL
1325 
1326  IF ( masssqrl > 0.0_rfreal) THEN
1327  compsqr(icont) = compsqr(icont)/masssqrl
1328  ELSE
1329  compsqr(icont) = 0.0_rfreal
1330  END IF ! massSqrL
1331  END DO ! iCont
1332 
1333 !! ic = cell(1)
1334 ! ic = ijkN
1335 !
1336 !
1337 ! diamL3 = diam(1,ic)
1338 ! diamL4 = diam(2,ic)
1339 ! IF( diamL3 > 0.0_RFREAL) THEN
1340 ! diamL = diamL4/diamL3
1341 ! ELSE
1342 ! diamL = 0.0_RFREAL
1343 ! ENDIF ! diamL3
1344 !
1345 ! densNum = numDens(1,ic)
1346 ! densNumSqr = numDens(2,ic)
1347 ! massL = mass(nCont+1,ic)
1348 ! massSqrL = massSqr(nCont+1,ic)
1349 !
1350 ! xMom = cvEuler(1,ic)
1351 ! yMom = cvEuler(2,ic)
1352 ! zmom = cvEuler(3,ic)
1353 ! temp = cvEuler(4,ic)
1354 !
1355 ! xMomSqr = cvSqrEuler(1,ic)
1356 ! yMomSqr = cvSqrEuler(2,ic)
1357 ! zMomSqr = cvSqrEuler(3,ic)
1358 ! tempSqr = cvSqrEuler(4,ic)
1359 !
1360 
1361  WRITE(if_plot_plageul_tec,1020,err=10) grid%xyz(xcoord,ijkn), &
1362  grid%xyz(ycoord,ijkn), &
1363  grid%xyz(zcoord,ijkn), &
1364  densnum,densnumsqr, &
1365  diaml,diaml3,diaml4, &
1366  massl,u,v,w,temp, &
1367  masssqrl,usqr,vsqr,wsqr,tempsqr, &
1368  (comp(icont),icont=1,ncont), &
1369  (compsqr(icont),icont=1,ncont)
1370 
1371  ENDDO ! i
1372  ENDDO ! j
1373  ENDDO ! k
1374 
1375 ! ******************************************************************************
1376 ! Write raw data to formatted file
1377 ! ******************************************************************************
1378 
1379 ! ==============================================================================
1380 ! Open file and write the header
1381 ! ==============================================================================
1382 
1383  IF (ireg == 1) THEN
1384  WRITE(fname,'(A,ES11.5,A)') &
1385  trim(global%casename)//'.plag_eulerVars_',currenttime,'.dat'
1386  OPEN(if_plot_plageul,file=fname,status='unknown',form='formatted',&
1387  iostat=errorflag)
1388  global%error = errorflag
1389  IF (global%error /= 0) &
1390  CALL errorstop( global,err_file_open,__line__,fname )
1391 
1392  WRITE(if_plot_plageul,1005,err=10) &
1393  trim(global%casename),global%currentTime,npclssum
1394 
1395  varstr = 'x y z nDens nDensSqr diam diam3 diam4 mass xmom ymom zmom temp massSqr xmomSqr ymomSqr zmomSqr tempSqr'
1396 
1397  DO icont=1,ncont
1398  SELECT CASE (icont)
1399  CASE ( 0: 9)
1400  WRITE(compstr,'(A,I1)') 'mass_', icont
1401  CASE (10:99)
1402  WRITE(compstr,'(A,I2)') 'mass_', icont
1403  CASE default
1404  WRITE(compstr,'(A)') 'mass_?'
1405  END SELECT ! iCont
1406  varstr = trim(varstr)//' '//trim(compstr)
1407  ENDDO ! iCont
1408 
1409  DO icont=1,ncont
1410  SELECT CASE (icont)
1411  CASE ( 0: 9)
1412  WRITE(compstr,'(A,I1)') 'massSqr_', icont
1413  CASE (10:99)
1414  WRITE(compstr,'(A,I2)') 'massSqr_', icont
1415  CASE default
1416  WRITE(compstr,'(A)') 'massSqr_?'
1417  END SELECT ! iCont
1418  varstr = trim(varstr)//' '//trim(compstr)
1419  ENDDO ! iCont
1420 
1421  WRITE(if_plot_plageul,1010,err=10) trim(varstr)
1422  ENDIF ! iReg=1
1423 
1424 ! ==============================================================================
1425 ! Write zone header for raw data based on cells
1426 ! ==============================================================================
1427 
1428  WRITE(if_plot_plageul,1015) ireg,ipcend-ipcbeg+1,jpcend-jpcbeg+1,&
1429  kpcend-kpcbeg+1
1430 
1431 ! ==============================================================================
1432 ! Write cell-based data
1433 ! ==============================================================================
1434 
1435  DO k=kpcbeg,kpcend
1436  DO j=jpcbeg,jpcend
1437  DO i=ipcbeg,ipcend
1438  ijkn = indijk(i,j,k,inoff,ijnoff)
1439 
1440  node(1) = indijk(i ,j ,k ,inoff,ijnoff)
1441  node(2) = indijk(i+1,j ,k ,inoff,ijnoff)
1442  node(3) = indijk(i ,j+1,k ,inoff,ijnoff)
1443  node(4) = indijk(i+1,j+1,k ,inoff,ijnoff)
1444  node(5) = indijk(i ,j ,k+1,inoff,ijnoff)
1445  node(6) = indijk(i+1,j ,k+1,inoff,ijnoff)
1446  node(7) = indijk(i ,j+1,k+1,inoff,ijnoff)
1447  node(8) = indijk(i+1,j+1,k+1,inoff,ijnoff)
1448 
1449  xcell = aver(node,1,grid%xyz)
1450  ycell = aver(node,2,grid%xyz)
1451  zcell = aver(node,3,grid%xyz)
1452 
1453  cell(1) = indijk(i ,j ,k ,icoff,ijcoff)
1454  ic = cell(1)
1455 
1456  diaml = 0.0_rfreal
1457  diaml3 = diam(1,ic)
1458  diaml4 = diam(2,ic)
1459  IF( diaml3 > 0.0_rfreal) THEN
1460  diaml = diaml4/diaml3
1461  ENDIF ! diamL3
1462 
1463  densnum = numdens(1,ic)
1464  densnumsqr = numdens(2,ic)
1465  massl = mass(ncont+1,ic)
1466  masssqrl = masssqr(ncont+1,ic)
1467 
1468  xmom = cveuler(1,ic)
1469  ymom = cveuler(2,ic)
1470  zmom = cveuler(3,ic)
1471  temp = cveuler(4,ic)
1472 
1473  xmomsqr = cvsqreuler(1,ic)
1474  ymomsqr = cvsqreuler(2,ic)
1475  zmomsqr = cvsqreuler(3,ic)
1476  tempsqr = cvsqreuler(4,ic)
1477 
1478  WRITE(if_plot_plageul,1020,err=10) xcell,ycell,zcell, &
1479  densnum,densnumsqr, &
1480  diaml,diaml3,diaml4, &
1481  massl,xmom,ymom,zmom,temp, &
1482  masssqrl,xmomsqr,ymomsqr, &
1483  zmomsqr,tempsqr, &
1484  (mass(icont,ic),icont=1,ncont), &
1485  (masssqr(icont,ic),icont=1,ncont)
1486 
1487  ENDDO ! i
1488  ENDDO ! j
1489  ENDDO ! k
1490 
1491 ! ******************************************************************************
1492 ! Deallocate memory
1493 ! ******************************************************************************
1494 
1495  DO ilev=1,regions(ireg)%nGridLevels
1496  grid => regions(ireg)%levels(ilev)%grid
1497  DEALLOCATE( grid%xyz,stat=errorflag )
1498  global%error = errorflag
1499  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1500  ENDDO ! iLev
1501 
1502  ilev = regions(ireg)%currLevel
1503 
1504 ! ==============================================================================
1505 ! Dealocate local arrays
1506 ! ==============================================================================
1507 
1508  DEALLOCATE(comp,stat=errorflag )
1509  global%error = errorflag
1510  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1511 
1512  DEALLOCATE(compsqr,stat=errorflag )
1513  global%error = errorflag
1514  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1515 
1516  DEALLOCATE(cveuler,stat=errorflag )
1517  global%error = errorflag
1518  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1519 
1520  DEALLOCATE(cvsqreuler,stat=errorflag )
1521  global%error = errorflag
1522  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1523 
1524  DEALLOCATE(diam,stat=errorflag )
1525  global%error = errorflag
1526  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1527 
1528  DEALLOCATE(mass,stat=errorflag )
1529  global%error = errorflag
1530  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1531 
1532  DEALLOCATE(masssqr,stat=errorflag )
1533  global%error = errorflag
1534  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1535 
1536  DEALLOCATE(numdens,stat=errorflag )
1537  global%error = errorflag
1538  IF (global%error /= 0) CALL errorstop( global,err_deallocate,__line__ )
1539 
1540 ! ******************************************************************************
1541 ! Finalize
1542 ! ******************************************************************************
1543 
1544  IF (ireg == global%nRegions) THEN
1545  CLOSE(if_plot_plageul,iostat=errorflag)
1546  global%error = errorflag
1547  IF (global%error /= 0) &
1548  CALL errorstop( global,err_file_close,__line__,fname )
1549 
1550  CLOSE(if_plot_plageul_tec,iostat=errorflag)
1551  global%error = errorflag
1552  IF (global%error /= 0) &
1553  CALL errorstop( global,err_file_close,__line__,fnametec )
1554  ENDIF
1555 
1556  goto 999
1557 
1558 10 CONTINUE
1559  CALL errorstop( global,err_file_write,__line__,fname )
1560 
1561 999 CONTINUE
1562  CALL deregisterfunction( global )
1563 
1564 ! ******************************************************************************
1565 ! Formats
1566 ! ******************************************************************************
1567 
1568 1005 FORMAT('TITLE="',a,'. Time: ',es11.5,'. nPclsSum: ',i8,'."')
1569 1010 FORMAT('VARIABLES= ',a)
1570 1015 FORMAT('ZONE T="',i5.5,'", I=',i6,', J=',i6,', K=',i6,', F=POINT')
1571 1020 FORMAT(999(1x,es13.6))
1572 
1573 END SUBROUTINE plag_processeulerfield
1574 
1575 !******************************************************************************
1576 !
1577 ! RCS Revision history:
1578 !
1579 ! $Log: PLAG_ProcessEulerField.F90,v $
1580 ! Revision 1.3 2008/12/06 08:45:07 mtcampbe
1581 ! Updated license.
1582 !
1583 ! Revision 1.2 2008/11/19 22:18:18 mtcampbe
1584 ! Added Illinois Open Source License/Copyright
1585 !
1586 ! Revision 1.1 2004/11/17 22:15:23 fnajjar
1587 ! Initial import
1588 !
1589 !******************************************************************************
1590 
1591 
1592 
1593 
1594 
1595 
1596 
subroutine rflo_copygeometrydummy(region)
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
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jpnbeg
int comp(const Box &o) const
Definition: kdtree_d.h:536
j indices k indices k
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 kpcbeg
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE kpnbeg
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
int status() const
Obtain the status of the attribute.
Definition: Attribute.h:240
**********************************************************************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
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jpcbeg
Definition: adj.h:150
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ipcend
*********************************************************************Illinois Open Source License ****University of Illinois NCSA **Open Source License University of Illinois All rights reserved ****Developed free of to any person **obtaining a copy of this software and associated documentation to deal with the Software without including without limitation the rights to and or **sell copies of the and to permit persons to whom the **Software is furnished to do subject to the following this list of conditions and the following disclaimers ****Redistributions in binary form must reproduce the above **copyright this list of conditions and the following **disclaimers in the documentation and or other materials **provided with the distribution ****Neither the names of the Center for Simulation of Advanced the University of nor the names of its **contributors may be used to endorse or promote products derived **from this Software without specific prior written permission ****THE SOFTWARE IS PROVIDED AS 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 v
Definition: roccomf90.h:20
**********************************************************************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 jpnend
**********************************************************************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
subroutine rflo_readgridregion(iReg, regions)
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 idnbeg
subroutine plag_processeulerfield(regions, iReg, nPclsSum)
**********************************************************************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
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ipcbeg
subroutine rflo_generatecoarsegrids(region)
blockLoc i
Definition: read.cpp:79
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ipnbeg
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
void int int REAL * x
Definition: read.cpp: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 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 form
virtual std::ostream & print(std::ostream &os) const
**********************************************************************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
subroutine rflo_getdimensphysnodes(region, iLev, ipnbeg, ipnend, jpnbeg, jpnend, kpnbeg, kpnend)
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 jpcend
**********************************************************************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 rflo_getdimensdummynodes(region, iLev, idnbeg, idnend, jdnbeg, jdnend, kdnbeg, kdnend)
DOUBLE PRECISION function aver(cell, iEq, var)
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
subroutine grid(bp)
Definition: setup_py.f90:257
subroutine deregisterfunction(global)
Definition: ModError.F90:469
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ipnend
subroutine rflo_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
RT a() const
Definition: Line_2.h:140