Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLU_EndFlowSolver.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: Shut down Rocflu-MP.
26 !
27 ! Description: None.
28 !
29 ! Input:
30 ! levels Data associated with levels
31 !
32 ! Output: None.
33 !
34 ! Notes: None.
35 !
36 ! ******************************************************************************
37 !
38 ! $Id: RFLU_EndFlowSolver.F90,v 1.62 2008/12/06 08:44:29 mtcampbe Exp $
39 !
40 ! Copyright: (c) 2001-2006 by the University of Illinois
41 !
42 ! ******************************************************************************
43 
44 SUBROUTINE rflu_endflowsolver(levels)
45 
46  USE modglobal, ONLY: t_global
47  USE modparameters
48  USE moddatatypes
49  USE modbndpatch, ONLY: t_patch
50  USE moddatastruct, ONLY: t_level,t_region
51  USE modgrid, ONLY: t_grid
52  USE modmixture, ONLY: t_mixt_input
53  USE modbndpatch, ONLY: t_patch
54  USE moderror
55  USE modmpi
56 
64  USE rflu_modedgelist
65  USE rflu_modfacelist
67  USE rflu_modgeometry
68  USE rflu_modmpi
69  USE rflu_modoles
71  USE rflu_modprobes
78  USE rflu_modweights
79 
80 #ifdef PETSC
83 #endif
84 
85 #ifdef PLAG
90 #endif
91 
99 
100 #ifdef STATS
101  USE modinterfaces, ONLY: rflu_writestat
102 #endif
103 
104  IMPLICIT NONE
105 
106 ! ******************************************************************************
107 ! Arguments
108 ! ******************************************************************************
109 
110  TYPE(t_level), POINTER :: levels(:)
111 
112 ! ******************************************************************************
113 ! Locals
114 ! ******************************************************************************
115 
116  CHARACTER(CHRLEN) :: rcsidentstring
117  LOGICAL :: movegrid
118  INTEGER :: errorflag,ipatch,iprobe,ireg
119  TYPE(t_global), POINTER :: global
120  TYPE(t_grid), POINTER :: pgrid
121  TYPE(t_mixt_input), POINTER :: pmixtinput
122  TYPE(t_patch), POINTER :: ppatch
123  TYPE(t_region), POINTER :: pregion,pregionserial
124 
125 ! ******************************************************************************
126 ! Start, initialize some variables
127 ! ******************************************************************************
128 
129  rcsidentstring = '$RCSfile: RFLU_EndFlowSolver.F90,v $ $Revision: 1.62 $'
130 
131  movegrid = .false.
132 
133 ! ******************************************************************************
134 ! Set global pointer and initialize global type, register function
135 ! ******************************************************************************
136 
137  global => levels(1)%regions(1)%global
138 
139  CALL registerfunction(global,'RFLU_EndFlowSolver',&
140  'RFLU_EndFlowSolver.F90')
141 
142 ! ******************************************************************************
143 ! Determine whether have moving grid
144 ! ******************************************************************************
145 
146  DO ireg = 1,global%nRegionsLocal
147  pregion => levels(1)%regions(ireg)
148 
149  IF ( pregion%mixtInput%moveGrid .EQV. .true. ) THEN
150  movegrid = .true.
151  EXIT
152  END IF ! regions
153  END DO ! iReg
154 
155 ! ******************************************************************************
156 ! Write grid file (if necessary) and flow file. Write restart info file after
157 ! flow (and grid) file so that incomplete flow (and grid) files due to
158 ! exceeding time limit do not show up as iteration or time stamp in restart
159 ! info file.
160 ! ******************************************************************************
161 
162 #ifdef PLAG
163  IF ( global%plagUsed .EQV. .true. ) THEN
164  CALL plag_calcnpclsglobal(levels(1)%regions)
165 
166  IF ( global%myProcid == masterproc ) THEN
167  pregionserial => levels(1)%regions(0)
168 
169  CALL plag_rflu_writedimensions(pregionserial)
170  END IF ! global%myProcid
171  END IF ! global%plagUsed
172 #endif
173 
174 #ifndef GENX
175  DO ireg = 1,global%nRegionsLocal
176  pregion => levels(1)%regions(ireg) ! single-level grids for now
177 
178  CALL rflu_writedimensionswrapper(pregion,write_dimens_mode_maybe)
179 
180  IF ( movegrid .EQV. .true. ) THEN
181  CALL rflu_writegridwrapper(pregion)
182  CALL rflu_writegridspeedswrapper(pregion)
183  END IF ! moveGrid
184 
185  CALL rflu_writeflowwrapper(pregion)
186  CALL rflu_bxv_writevarswrapper(pregion)
187 
188  IF ( global%patchCoeffFlag .EQV. .true. ) THEN
189  CALL rflu_writepatchcoeffswrapper(pregion)
190  END IF ! global%patchCoeffFlag
191 
192 #ifdef PLAG
193  IF ( global%plagUsed .EQV. .true. ) THEN
194  CALL plag_writesurfstatswrapper(pregion)
195  END IF ! global%plagUsed
196 #endif
197 
198  END DO ! iReg
199 
200  CALL rflu_writerestartinfo(global)
201 
202 #ifdef STATS
203  IF ( global%doStat == active ) THEN
204  DO ireg = 1,global%nRegionsLocal
205  pregion => levels(1)%regions(ireg)
206  CALL rflu_writestat(pregion)
207  END DO ! iReg
208  END IF ! global%doStat
209 #endif
210 #endif
211 
212 ! ******************************************************************************
213 ! Print (if necessary, grid, and) flow information
214 ! ******************************************************************************
215 
216  IF ( global%myProcid == masterproc .AND. &
217  global%verbLevel > verbose_none ) THEN
218  IF ( movegrid .EQV. .true. ) THEN
219  DO ireg = 1,global%nRegionsLocal
220  pregion => levels(1)%regions(ireg) ! single-level grids for now
221  CALL rflu_printgridinfo(pregion)
222  END DO ! iReg
223  END IF ! moveGrid
224 
225  DO ireg = 1,global%nRegionsLocal
226  pregion => levels(1)%regions(ireg) ! single-level grids for now
227  CALL rflu_printflowinfowrapper(pregion)
228 
229 #ifdef PLAG
230  IF ( global%plagUsed .EQV. .true. ) THEN
231  CALL plag_printnpclsglobal(pregion)
232  END IF ! global%plagUsed
233 #endif
234  END DO ! iReg
235  END IF ! global%verbLevel
236 
237 ! ******************************************************************************
238 ! Deallocate memory. NOTE must be done before calling deallocation wrapper.
239 ! NOTE weights must be deallocated before stencils.
240 ! ******************************************************************************
241 
242 ! ==============================================================================
243 ! Weights for cell and face gradients
244 ! ==============================================================================
245 
246  DO ireg = 1,global%nRegionsLocal
247  pregion => levels(1)%regions(ireg)
248  pmixtinput => pregion%mixtInput
249 
250  IF ( pmixtinput%spaceOrder > 1 ) THEN
251  CALL rflu_destroywtsc2cwrapper(pregion)
252  END IF ! pMixtInput%spaceOrder
253 
254  IF ( pmixtinput%flowModel == flow_navst ) THEN
255  CALL rflu_destroywtsf2cwrapper(pregion)
256  END IF ! pMixtInput%flowModel
257 
258  DO ipatch = 1,pregion%grid%nPatches
259  ppatch => pregion%patches(ipatch)
260 
261  IF ( rflu_decideneedbgradface(pregion,ppatch) .EQV. .true. ) THEN
262  CALL rflu_destroywtsbf2cwrapper(pregion,ppatch)
263  END IF ! RFLU_DecideNeedBGradFace
264  END DO ! iPatch
265  END DO ! iReg
266 
267 ! ==============================================================================
268 ! Weights for optimal LES approach
269 ! ==============================================================================
270 
271  DO ireg = 1,global%nRegionsLocal
272  pregion => levels(1)%regions(ireg)
273  pmixtinput => pregion%mixtInput
274 
275  IF ( pmixtinput%spaceDiscr == discr_opt_les ) THEN
276  CALL rflu_destroystencilsweightsoles(pregion)
277  END IF ! pMixtInput
278  END DO ! iReg
279 
280 ! ******************************************************************************
281 ! Deallocate memory for stencils
282 ! ******************************************************************************
283 
284  DO ireg = 1,global%nRegionsLocal
285  pregion => levels(1)%regions(ireg)
286  pmixtinput => pregion%mixtInput
287 
288  IF ( pmixtinput%spaceOrder > 1 ) THEN
289  CALL rflu_destroyc2cstencilwrapper(pregion)
290  CALL rflu_destroylistcc2cstencil(pregion)
291  END IF ! pMixtInput%spaceOrder
292 
293  IF ( pmixtinput%flowModel == flow_navst ) THEN
294  CALL rflu_destroyf2cstencilwrapper(pregion)
295  CALL rflu_destroylistcf2cstencil(pregion)
296  END IF ! pMixtInput%flowModel
297 
298  DO ipatch = 1,pregion%grid%nPatches
299  ppatch => pregion%patches(ipatch)
300 
301  IF ( rflu_decideneedbgradface(pregion,ppatch) .EQV. .true. ) THEN
302  CALL rflu_destroybf2cstencilwrapper(pregion,ppatch)
303  END IF ! RFLU_DecideNeedBGradFace
304  END DO ! iPatch
305 
306  END DO ! iReg
307 
308 ! ******************************************************************************
309 ! Destroy boundary-face gradient access list for viscous flows
310 ! ******************************************************************************
311 
312  DO ireg = 1,global%nRegionsLocal
313  pregion => levels(1)%regions(ireg)
314 
315  IF ( pregion%mixtInput%flowModel == flow_navst ) THEN
316  CALL rflu_destroybfacegradaccesslist(pregion)
317  END IF ! pRegion%mixtInput
318  END DO ! iReg
319 
320 ! ******************************************************************************
321 ! Deallocate memory
322 ! ******************************************************************************
323 
324  DO ireg = 1,global%nRegionsLocal
325  pregion => levels(1)%regions(ireg) ! single-level grids for now
326  pgrid => pregion%grid
327 
328  CALL rflu_destroypatchcoeffs(pregion)
329 
330  IF ( rflu_nscbc_decidehavenscbc(pregion) .EQV. .true. ) THEN
331  CALL rflu_bxv_destroyvarscv(pregion)
332  CALL rflu_bxv_destroyvarsdv(pregion)
333  CALL rflu_bxv_destroyvarststep(pregion)
334  END IF ! RFLU_NSCBC_DecideHaveNSCBC(pRegion)
335 
336  IF ( global%forceFlag .EQV. .true. ) THEN
337  CALL rflu_destroyforcesmoments(pregion)
338  CALL rflu_destroyglobalthrustflags(pregion)
339  END IF ! global%forceFlag
340 
341 #ifdef PLAG
342  IF ( global%plagUsed .EQV. .true. ) THEN
343  CALL plag_destroysurfstats(pregion)
344  END IF ! global%plagUsed
345 #endif
346 
347  IF ( pgrid%nBorders > 0 ) THEN
348  CALL rflu_mpi_destroybufferswrapper(pregion)
349 
350 #ifdef PLAG
351  IF ( pregion%global%plagUsed .EQV. .true. ) THEN
352  CALL rflu_mpi_destroybufferipclsend(pregion)
353  END IF ! pRegion%global%plagUsed
354 #endif
355 
356  CALL rflu_comm_destroycommlists(pregion)
357  CALL rflu_comm_destroyborders(pregion)
358  END IF ! pGrid%nBorders
359 
360  CALL rflu_deallocatememorywrapper(pregion)
361 
362  CALL rflu_destroycellmapping(pregion)
363  CALL rflu_destroyfacelist(pregion)
364 
365 #ifdef PLAG
366  IF ( (pregion%global%plagUsed .EQV. .true.) .AND. &
367  (pregion%grid%nFacesAV > 0) ) THEN
368  CALL rflu_destroyavface2borderlist(pregion)
369  CALL rflu_destroyavface2patchlist(pregion)
370  END IF ! pRegion%global%plagUsed
371 #endif
372 
373  IF ( pregion%mixtInput%movegrid .EQV. .true. ) THEN
374  CALL rflu_destroyedgelist(pregion)
375  END IF ! pRegion
376 
377  CALL rflu_destroygeometry(pregion)
378  CALL rflu_destroygrid(pregion)
379  END DO ! iReg
380 
381 ! ******************************************************************************
382 ! Close convergence, mass, and probe files
383 ! ******************************************************************************
384 
385  IF ( global%myProcid == masterproc ) THEN
386  CLOSE(if_conver,iostat=errorflag)
387  global%error = errorflag
388  IF ( global%error /= 0 ) THEN
389  CALL errorstop(global,err_file_close,__line__)
390  END IF ! global%error
391  END IF ! global%myProcid
392 
393  IF ( (global%myProcid == masterproc) .AND. (movegrid .EQV. .true.) ) THEN
394  CLOSE(if_mass,iostat=errorflag)
395  global%error = errorflag
396  IF ( global%error /= 0 ) THEN
397  CALL errorstop(global,err_file_close,__line__)
398  END IF ! global%error
399  END IF ! global%myProcid
400 
401  IF ( global%nProbes > 0 ) THEN
402  DO ireg = 1,global%nRegionsLocal
403  pregion => levels(1)%regions(ireg) ! single-level grids for now
404 
405  CALL rflu_closeprobefiles(pregion)
406  END DO ! iReg
407  END IF ! global%nProbes
408 
409 ! ******************************************************************************
410 ! Print info about warnings
411 ! ******************************************************************************
412 
413  CALL rflu_printwarninfo(global)
414 
415 ! ******************************************************************************
416 ! Deallocate PETSc memory & finalize PETSc
417 ! ******************************************************************************
418 
419 #ifdef PETSC
420  IF ( global%solverType == solv_implicit_nk ) THEN
421  CALL rflu_petsc_destroyvectors(pregion)
422  CALL rflu_petsc_destroyjacobian(pregion)
423  CALL rflu_petsc_finalize(global)
424  END IF ! global%solverType
425 #endif
426 
427 #ifndef GENX
428 ! ******************************************************************************
429 ! Finalize Rocprof
430 ! ******************************************************************************
431 
432 #ifdef ROCPROF
433  CALL rocprof_finalize(1)
434 #endif
435 
436 ! ******************************************************************************
437 ! Finalize MPI
438 ! ******************************************************************************
439 
440  CALL mpi_finalize(errorflag)
441  global%error = errorflag
442  IF ( global%error /= err_none ) THEN
443  CALL errorstop(global,err_mpi_output,__line__)
444  END IF ! global%error
445 #endif
446 
447 ! ******************************************************************************
448 ! End
449 ! ******************************************************************************
450 
451  IF ( global%myProcid == masterproc .AND. &
452  global%verbLevel /= verbose_none ) THEN
453  WRITE(stdout,'(A)') solver_name
454  WRITE(stdout,'(A,1X,A)') solver_name,'Finalization done.'
455  WRITE(stdout,'(A,1X,A)') solver_name,'Program finished.'
456  WRITE(stdout,'(A)') solver_name
457  END IF ! global%myProcid
458 
459  CALL deregisterfunction(global)
460 
461 END SUBROUTINE rflu_endflowsolver
462 
463 ! ******************************************************************************
464 !
465 ! RCS Revision history:
466 !
467 ! $Log: RFLU_EndFlowSolver.F90,v $
468 ! Revision 1.62 2008/12/06 08:44:29 mtcampbe
469 ! Updated license.
470 !
471 ! Revision 1.61 2008/11/19 22:17:42 mtcampbe
472 ! Added Illinois Open Source License/Copyright
473 !
474 ! Revision 1.60 2007/03/31 23:53:39 haselbac
475 ! Added calls to determine, write, and print nPclsGlobal
476 !
477 ! Revision 1.59 2006/10/20 21:32:08 mparmar
478 ! Added call to RFLU_DestroyGlobalThrustFlags
479 !
480 ! Revision 1.58 2006/08/19 15:46:41 mparmar
481 ! Changed logic for NSCBC and added calls to deallocate patch arrays
482 !
483 ! Revision 1.57 2006/08/18 14:04:02 haselbac
484 ! Added call to destroy AVFace2Patch list
485 !
486 ! Revision 1.56 2006/04/07 16:04:03 haselbac
487 ! Adapted to changes in bf2c wts computation
488 !
489 ! Revision 1.55 2006/04/07 15:19:22 haselbac
490 ! Removed tabs
491 !
492 ! Revision 1.54 2006/04/07 14:53:11 haselbac
493 ! Adapted to changes in bface stencil routines
494 !
495 ! Revision 1.53 2006/03/09 14:09:49 haselbac
496 ! Now call wrapper routines for stencils
497 !
498 ! Revision 1.52 2006/01/06 22:15:07 haselbac
499 ! Adapted to name changes
500 !
501 ! Revision 1.51 2005/11/10 16:51:29 fnajjar
502 ! Added plagUsed IF statement around PLAG routines
503 !
504 ! Revision 1.50 2005/10/27 19:20:06 haselbac
505 ! Adapted to changes in stencil routine names
506 !
507 ! Revision 1.49 2005/10/25 19:39:23 haselbac
508 ! Added IF on forceFlag
509 !
510 ! Revision 1.48 2005/10/05 14:18:41 haselbac
511 ! Adapted to changes in stencil modules, added call to destroy bface wts
512 !
513 ! Revision 1.47 2005/09/14 15:59:33 haselbac
514 ! Minor clean-up
515 !
516 ! Revision 1.46 2005/09/13 20:44:06 mtcampbe
517 ! Added Rocprof finalization
518 !
519 ! Revision 1.45 2005/08/09 00:59:42 haselbac
520 ! Enclosed writing of patch coeffs within IF (patchCoeffFlag)
521 !
522 ! Revision 1.44 2005/08/03 18:28:11 hdewey2
523 ! Enclosed PETSc deallocation calls within IF
524 !
525 ! Revision 1.43 2005/08/02 18:24:32 hdewey2
526 ! Added PETSc support
527 !
528 ! Revision 1.42 2005/05/18 22:12:55 fnajjar
529 ! ACH: Added destruction of iPclSend buffers, now use nFacesAV
530 !
531 ! Revision 1.41 2005/04/29 23:03:22 haselbac
532 ! Added destruction of avf2b list
533 !
534 ! Revision 1.40 2005/04/29 12:48:23 haselbac
535 ! Updated closing of probe files to changes in probe handling
536 !
537 ! Revision 1.39 2005/04/15 16:31:18 haselbac
538 ! Removed calls to XyzEdge2RegionDegrList routines
539 !
540 ! Revision 1.38 2005/04/15 15:07:15 haselbac
541 ! Converted to MPI
542 !
543 ! Revision 1.37 2005/01/18 15:18:19 haselbac
544 ! Commented out COMM calls for now
545 !
546 ! Revision 1.36 2005/01/14 21:33:56 haselbac
547 ! Added calls to destroy comm lists and borders
548 !
549 ! Revision 1.35 2005/01/03 16:14:57 haselbac
550 ! Added call to destroy bface stencils
551 !
552 ! Revision 1.34 2004/12/21 15:05:11 fnajjar
553 ! Included calls for PLAG surface statistics
554 !
555 ! Revision 1.33 2004/10/19 19:29:15 haselbac
556 ! Adapted to GENX changes
557 !
558 ! Revision 1.32 2004/07/06 15:14:50 haselbac
559 ! Adapted to changes in libflu and modflu, cosmetics
560 !
561 ! Revision 1.31 2004/06/16 20:01:08 haselbac
562 ! Added writing of patch coeffs, destruction of memory
563 !
564 ! Revision 1.30 2004/03/17 04:28:26 haselbac
565 ! Adapted call to RFLU_WriteDimensionsWrapper
566 !
567 ! Revision 1.29 2004/03/11 16:33:22 fnajjar
568 ! ACH: Moved call to RFLU_WriteDimWrapper outside if bcos of Rocpart
569 !
570 ! Revision 1.28 2004/03/08 22:01:43 fnajjar
571 ! ACH: Changed call to RFLU_WriteDimensionsWrapper so PLAG data also written
572 !
573 ! Revision 1.27 2004/01/29 22:59:19 haselbac
574 ! Removed hardcoded error computation for supersonic vortex
575 !
576 ! Revision 1.26 2003/12/04 03:30:01 haselbac
577 ! Added destruction calls for gradients, cleaned up
578 !
579 ! Revision 1.25 2003/11/25 21:04:40 haselbac
580 ! Added call to RFLU_PrintFlowInfoWrapper, cosmetic changes
581 !
582 ! Revision 1.24 2003/11/03 03:51:17 haselbac
583 ! Added call to destroy boundary-face gradient access list
584 !
585 ! Revision 1.23 2003/08/07 15:33:30 haselbac
586 ! Added call to RFLU_PrintWarnInfo
587 !
588 ! Revision 1.22 2003/07/22 02:07:00 haselbac
589 ! Added writing out of warnings
590 !
591 ! Revision 1.21 2003/06/20 22:35:26 haselbac
592 ! Added call to RFLU_WriteRestartInfo
593 !
594 ! Revision 1.20 2003/01/28 14:36:53 haselbac
595 ! Added deallocation, merged printing of grid and flow info, cosmetics
596 !
597 ! Revision 1.19 2002/12/20 23:20:06 haselbac
598 ! Fixed output bug: no output for verbosity=0
599 !
600 ! Revision 1.18 2002/11/08 21:31:32 haselbac
601 ! Added closing of total-mass file
602 !
603 ! Revision 1.17 2002/11/02 02:03:20 wasistho
604 ! Added TURB statistics
605 !
606 ! Revision 1.16 2002/10/27 19:12:09 haselbac
607 ! Added writing of grid for moving grid calcs
608 !
609 ! Revision 1.15 2002/10/19 16:12:16 haselbac
610 ! Cosmetic changes to output
611 !
612 ! Revision 1.14 2002/10/16 21:16:06 haselbac
613 ! Added writing of header when running
614 !
615 ! Revision 1.13 2002/10/12 14:57:37 haselbac
616 ! Enclosed RFLU_WriteFlowWrapper between ifndef GENX
617 !
618 ! Revision 1.12 2002/10/08 15:49:29 haselbac
619 ! {IO}STAT=global%error replaced by {IO}STAT=errorFlag - SGI problem
620 !
621 ! Revision 1.11 2002/10/05 19:20:55 haselbac
622 ! GENX integration, close probe file, use flow wrapper routine
623 !
624 ! Revision 1.10 2002/09/09 15:49:26 haselbac
625 ! global and mixtInput now under region
626 !
627 ! Revision 1.9 2002/07/25 14:25:07 haselbac
628 ! No longer called finalize for CHARM=1
629 !
630 ! Revision 1.8 2002/06/27 15:27:11 haselbac
631 ! Change name if CHARM defined, comment out destruction for now (crashes with CHARM)
632 !
633 ! Revision 1.7 2002/06/17 13:34:12 haselbac
634 ! Prefixed SOLVER_NAME to all screen output
635 !
636 ! Revision 1.6 2002/06/14 22:26:08 wasistho
637 ! update statistics
638 !
639 ! Revision 1.5 2002/06/14 21:54:35 wasistho
640 ! Added time avg statistics
641 !
642 ! Revision 1.4 2002/06/14 20:20:43 haselbac
643 ! Deleted ModLocal, changed local%nRegions to global%nRegionsLocal, added destroy flag
644 !
645 ! Revision 1.3 2002/05/04 17:08:13 haselbac
646 ! Close convergence file and print flow information
647 !
648 ! Revision 1.2 2002/04/11 19:03:22 haselbac
649 ! Added calls and cosmetic changes
650 !
651 ! Revision 1.1 2002/03/14 19:11:00 haselbac
652 ! Initial revision
653 !
654 ! ******************************************************************************
655 
656 
657 
658 
659 
660 
661 
subroutine, public rflu_mpi_destroybufferipclsend(pRegion, pBorder)
subroutine, public rflu_bxv_destroyvarststep(pRegion)
subroutine rflu_destroygrid(pRegion)
subroutine rflu_printwarninfo(global)
subroutine, public rflu_destroyfacelist(pRegion)
subroutine, public rflu_writedimensionswrapper(pRegion, writeMode)
subroutine, public rflu_destroyavface2patchlist(pRegion)
subroutine, public rflu_writeflowwrapper(pRegion)
LOGICAL function rflu_decideneedbgradface(pRegion, pPatch)
subroutine, public rflu_writegridspeedswrapper(pRegion)
subroutine, public rflu_destroygeometry(pRegion)
subroutine, public rflu_destroywtsbf2cwrapper(pRegion, pPatch)
subroutine, public rflu_petsc_destroyvectors(pRegion)
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine, public rflu_destroylistcc2cstencil(pRegion)
subroutine, public rflu_bxv_destroyvarsdv(pRegion)
subroutine, public rflu_destroylistcf2cstencil(pRegion)
subroutine, public rflu_destroyedgelist(pRegion)
subroutine, public rflu_destroyforcesmoments(pRegion)
subroutine, public rflu_destroybfacegradaccesslist(pRegion)
subroutine rflu_deallocatememorywrapper(pRegion)
subroutine, public rflu_petsc_destroyjacobian(pRegion)
subroutine rflu_writestat(region)
subroutine, public rflu_destroypatchcoeffs(pRegion)
LOGICAL function, public rflu_nscbc_decidehavenscbc(pRegion)
subroutine, public rflu_destroybf2cstencilwrapper(pRegion, pPatch)
subroutine, public rflu_destroyf2cstencilwrapper(pRegion)
subroutine, public plag_destroysurfstats(pRegion)
subroutine, public rflu_bxv_destroyvarscv(pRegion)
subroutine, public rflu_writepatchcoeffswrapper(pRegion)
subroutine, public rflu_destroyc2cstencilwrapper(pRegion)
subroutine, public rflu_destroycellmapping(pRegion)
subroutine, public rflu_destroywtsf2cwrapper(pRegion)
subroutine, public rflu_mpi_destroybufferswrapper(pRegion)
subroutine, public rflu_petsc_finalize(global)
subroutine, public rflu_writegridwrapper(pRegion)
subroutine, public plag_writesurfstatswrapper(pRegion)
subroutine, public rflu_destroyavface2borderlist(pRegion)
subroutine rflu_printgridinfo(pRegion)
subroutine, public plag_printnpclsglobal(pRegion)
subroutine, public rflu_comm_destroyborders(pRegion)
subroutine, public rflu_destroywtsc2cwrapper(pRegion)
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
subroutine rflu_endflowsolver(levels)
subroutine, public rflu_destroyglobalthrustflags(pRegion)
subroutine, public plag_rflu_writedimensions(pRegion)
subroutine deregisterfunction(global)
Definition: ModError.F90:469
subroutine, public plag_calcnpclsglobal(regions)
subroutine rflu_writerestartinfo(global)
subroutine, public rflu_bxv_writevarswrapper(pRegion)
subroutine, public rflu_closeprobefiles(pRegion)
subroutine, public rflu_destroystencilsweightsoles(pRegion)
subroutine, public rflu_comm_destroycommlists(pRegion)
subroutine rflu_printflowinfowrapper(pRegion)