Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLU_ModENSIGHT.F90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
23 ! ******************************************************************************
24 !
25 ! Purpose: Collection of routines to write ENSIGHT files.
26 !
27 ! Description: None.
28 !
29 ! Input: None.
30 !
31 ! Output: None.
32 !
33 ! Notes: None.
34 !
35 ! ******************************************************************************
36 !
37 ! $Id: RFLU_ModENSIGHT.F90,v 1.6 2008/12/06 08:45:06 mtcampbe Exp $
38 !
39 ! Copyright: (c) 2005 by the University of Illinois
40 !
41 ! ******************************************************************************
42 
44 
45  USE moddatatypes
46  USE modparameters
47  USE moderror
48  USE modglobal, ONLY: t_global
49  USE modgrid, ONLY: t_grid
50  USE modbndpatch, ONLY: t_patch
51  USE moddatastruct, ONLY: t_region
52 
55 
56  IMPLICIT NONE
57 
58 ! ******************************************************************************
59 ! Definitions and declarations
60 ! ******************************************************************************
61 
62 ! ==============================================================================
63 ! Private data
64 ! ==============================================================================
65 
66  CHARACTER(CHRLEN), PARAMETER, PRIVATE :: &
67  RCSIdentString = '$RCSfile: RFLU_ModENSIGHT.F90,v $ $Revision: 1.6 $'
68 
69  INTEGER, PRIVATE :: nScalars,nScalars1,nVectors,partNumber,partNumberSave
70 
72  PRIVATE
73  CHARACTER(CHRLEN) :: iFileName,varName,varNameShort
74  INTEGER :: iFile
75  END TYPE t_var_info
76 
77  TYPE(t_var_info) :: geoInfo
78  TYPE(t_var_info), DIMENSION(:), ALLOCATABLE :: scalarInfo
79  TYPE(t_var_info), DIMENSION(:), ALLOCATABLE :: vectorInfo
80 
81 ! ==============================================================================
82 ! Public functions
83 ! ==============================================================================
84 
85  PUBLIC :: rflu_ens_builddatainfo, &
93 
94 ! ******************************************************************************
95 ! Subroutines and functions
96 ! ******************************************************************************
97 
98  CONTAINS
99 
100 
101 
102 
103 
104 
105 ! ******************************************************************************
106 !
107 ! Purpose: Build scalar information.
108 !
109 ! Description: None.
110 !
111 ! Input:
112 ! pRegion Pointer to region type
113 ! iServer Server index
114 !
115 ! Output: None.
116 !
117 ! Notes: None.
118 !
119 ! ******************************************************************************
120 
121 SUBROUTINE rflu_ens_builddatainfo(pRegion,iServer)
122 
125 
126 ! ******************************************************************************
127 ! Declarations and definitions
128 ! ******************************************************************************
129 
130 ! ==============================================================================
131 ! Arguments
132 ! ==============================================================================
133 
134  INTEGER, INTENT(IN) :: iserver
135  TYPE(t_region), POINTER :: pregion
136 
137 ! ==============================================================================
138 ! Locals
139 ! ==============================================================================
140 
141  CHARACTER(CHRLEN) :: dummystring
142  INTEGER :: errorflag,ifileoffs,ipv,ipv2,iscalar,iscalaroffs,ivector
143  TYPE(t_global), POINTER :: global
144 
145 ! ******************************************************************************
146 ! Start
147 ! ******************************************************************************
148 
149  global => pregion%global
150 
151  CALL registerfunction(global,'RFLU_ENS_BuildDataInfo', &
152  'RFLU_ModENSIGHT.F90')
153 
154  IF ( global%verbLevel > verbose_low ) THEN
155  WRITE(stdout,'(A,1X,A)') solver_name,'Building ENSIGHT data info...'
156  END IF ! global%verbLevel
157 
158 ! ******************************************************************************
159 ! Count number of scalars
160 ! ******************************************************************************
161 
162 ! ==============================================================================
163 ! Mixture
164 ! ==============================================================================
165 
166  nscalars = 5
167  nvectors = 1
168 
169 ! ==============================================================================
170 ! Plotting variables
171 ! ==============================================================================
172 
173  IF ( pregion%plot%nPv > 0 ) THEN
174  nscalars = nscalars + pregion%plot%nPv
175  END IF ! nPv
176 
177 ! ==============================================================================
178 ! Physical modules
179 ! ==============================================================================
180 
181 #ifdef SPEC
182 ! ------------------------------------------------------------------------------
183 ! Species
184 ! ------------------------------------------------------------------------------
185 
186  IF ( global%specUsed .EQV. .true. ) THEN
187  nscalars = nscalars + global%nSpecies
188  END IF ! global%specUsed
189 #endif
190 
191 ! ******************************************************************************
192 ! Allocate memory
193 ! ******************************************************************************
194 
195  ALLOCATE(scalarinfo(nscalars),stat=errorflag)
196  global%error = errorflag
197  IF ( global%error /= err_none ) THEN
198  CALL errorstop(global,err_allocate,__line__,'scalarInfo')
199  END IF ! global%error
200 
201  ALLOCATE(vectorinfo(nvectors),stat=errorflag)
202  global%error = errorflag
203  IF ( global%error /= err_none ) THEN
204  CALL errorstop(global,err_allocate,__line__,'vectorInfo')
205  END IF ! global%error
206 
207 ! ******************************************************************************
208 ! Set names and file indices
209 ! ******************************************************************************
210 
211 ! ==============================================================================
212 ! Mixture
213 ! ==============================================================================
214 
215  nscalars = 5
216  nvectors = 1
217 
218 ! ==============================================================================
219 ! Plotting variables
220 ! ==============================================================================
221 
222  IF ( pregion%plot%nPv > 0 ) THEN
223  nscalars = nscalars + pregion%plot%nPv
224  END IF ! nPv
225 
226 ! ------------------------------------------------------------------------------
227 ! Scalars
228 ! ------------------------------------------------------------------------------
229 
230  scalarinfo(1)%varName = 'Density'
231  scalarinfo(2)%varName = 'Energy'
232  scalarinfo(3)%varName = 'Pressure'
233  scalarinfo(4)%varName = 'Temperature'
234  scalarinfo(5)%varName = 'Soundspeed'
235 
236  scalarinfo(1)%varNameShort = 'r'
237  scalarinfo(2)%varNameShort = 'rE'
238  scalarinfo(3)%varNameShort = 'p'
239  scalarinfo(4)%varNameShort = 'T'
240  scalarinfo(5)%varNameShort = 'a'
241 
242  nscalars1 = 5
243  iscalar = 0
244 
245  IF ( pregion%plot%nPv > 0 ) THEN
246  DO ipv = 1,pregion%plot%nPv
247  ipv2 = pregion%plot%pvi2pv(ipv)
248 
249  iscalar = iscalar+1
250 
251  scalarinfo(nscalars1+iscalar)%varName = pregion%plot%pvNameLong(ipv2)
252  scalarinfo(nscalars1+iscalar)%varNameShort = pregion%plot%pvNameShort(ipv2)
253  END DO ! iPv
254  END IF ! nPv
255 
256  scalarinfo(1)%iFile = if_ens_scalar
257  scalarinfo(2)%iFile = if_ens_scalar + 1
258  scalarinfo(3)%iFile = if_ens_scalar + 2
259  scalarinfo(4)%iFile = if_ens_scalar + 3
260  scalarinfo(5)%iFile = if_ens_scalar + 4
261 
262  nscalars1 = 5
263 
264  IF ( pregion%plot%nPv > 0 ) THEN
265  DO iscalar=1,pregion%plot%nPv
266  scalarinfo(5+iscalar)%iFile = if_ens_scalar + nscalars1 + iscalar - 1
267  END DO ! iScalar
268  END IF ! nPv
269 
270  iscalaroffs = 5
271 
272  IF ( pregion%plot%nPv > 0 ) THEN
273  iscalaroffs = iscalaroffs + pregion%plot%nPv
274  END IF ! nPv
275 
276 ! ------------------------------------------------------------------------------
277 ! Vectors
278 ! ------------------------------------------------------------------------------
279 
280  vectorinfo(1)%varName = 'Momentum'
281 
282  vectorinfo(1)%varNameShort = 'rv'
283 
284  vectorinfo(1)%iFile = if_ens_vector
285 
286 ! ==============================================================================
287 ! Physical modules
288 ! ==============================================================================
289 
290  ifileoffs = scalarinfo(iscalaroffs)%iFile
291 
292 #ifdef SPEC
293 ! ------------------------------------------------------------------------------
294 ! Species
295 ! ------------------------------------------------------------------------------
296 
297  IF ( global%specUsed .EQV. .true. ) THEN
298  DO iscalar = 1,global%nSpecies
299  WRITE(dummystring,'(A,I2.2)') 'Density',iscalar
300  scalarinfo(iscalar+iscalaroffs)%varName = trim(dummystring)
301 
302  WRITE(dummystring,'(A,I2.2)') 'rY',iscalar
303  scalarinfo(iscalar+iscalaroffs)%varNameShort = trim(dummystring)
304 
305  scalarinfo(iscalar+iscalaroffs)%iFile = iscalar + ifileoffs
306  END DO ! iScalar
307 
308  iscalaroffs = iscalaroffs + global%nSpecies
309  nscalars = nscalars + global%nSpecies
310  END IF ! global%specUsed
311 #endif
312 
313 ! ******************************************************************************
314 ! Write info
315 ! ******************************************************************************
316 
317  IF ( global%verbLevel > verbose_low ) THEN
318  WRITE(stdout,'(A,3X,A,1X,I2)') solver_name,'Server:',iserver
319  WRITE(stdout,'(A,3X,A)') solver_name,'Scalar variables:'
320  WRITE(stdout,'(A,5X,A,2X,A,2X,A,26X,A)') solver_name,'#','Index', &
321  'Long name','Short name'
322 
323  DO iscalar = 1,nscalars
324  WRITE(stdout,'(A,4X,I2,3X,I3,3X,A32,3X,A5)') &
325  solver_name,iscalar,scalarinfo(iscalar)%iFile, &
326  adjustl(scalarinfo(iscalar)%varName), &
327  adjustl(scalarinfo(iscalar)%varNameShort)
328  END DO ! iScalar
329 
330  WRITE(stdout,'(A,3X,A)') solver_name,'Vector variables:'
331  WRITE(stdout,'(A,5X,A,2X,A,2X,A,26X,A)') solver_name,'#','Index', &
332  'Long name','Short name'
333 
334  DO ivector = 1,nvectors
335  WRITE(stdout,'(A,4X,I2,3X,I3,3X,A32,3X,A5)') &
336  solver_name,ivector,vectorinfo(ivector)%iFile, &
337  adjustl(vectorinfo(ivector)%varName), &
338  adjustl(vectorinfo(ivector)%varNameShort)
339  END DO ! iVector
340  END IF ! global%verbLevel
341 
342 ! ******************************************************************************
343 ! Set file names
344 ! ******************************************************************************
345 
346 ! ==============================================================================
347 ! Geometry
348 ! ==============================================================================
349 
350  CALL buildfilenamesteady(global,filedest_indir,'.geo',iserver, &
351  global%currentIter,geoinfo%iFileName)
352 
353 ! ==============================================================================
354 ! Scalars
355 ! ==============================================================================
356 
357  IF ( global%flowType == flow_unsteady ) THEN
358  DO iscalar = 1,nscalars
359  CALL buildfilenameunsteady(global,filedest_indir, &
360  '.'//trim(scalarinfo(iscalar)%varNameShort), &
361  iserver,global%currentTime, &
362  scalarinfo(iscalar)%iFileName)
363  END DO ! iScalar
364  ELSE IF ( global%flowType == flow_steady ) THEN
365  DO iscalar = 1,nscalars
366  CALL buildfilenamesteady(global,filedest_indir, &
367  '.'//trim(scalarinfo(iscalar)%varNameShort), &
368  iserver,global%currentIter, &
369  scalarinfo(iscalar)%iFileName)
370  END DO ! iScalar
371  ELSE ! defensive coding
372  CALL errorstop(global,err_reached_default,__line__)
373  END IF ! global%flowType
374 
375 ! ==============================================================================
376 ! Vectors
377 ! ==============================================================================
378 
379  IF ( global%flowType == flow_unsteady ) THEN
380  DO ivector = 1,nvectors
381  CALL buildfilenameunsteady(global,filedest_indir, &
382  '.'//trim(vectorinfo(ivector)%varNameShort), &
383  iserver,global%currentTime, &
384  vectorinfo(ivector)%iFileName)
385  END DO ! iScalar
386  ELSE IF ( global%flowType == flow_steady ) THEN
387  DO ivector = 1,nvectors
388  CALL buildfilenamesteady(global,filedest_indir, &
389  '.'//trim(vectorinfo(ivector)%varNameShort), &
390  iserver,global%currentIter, &
391  vectorinfo(ivector)%iFileName)
392  END DO ! iVector
393  ELSE ! defensive coding
394  CALL errorstop(global,err_reached_default,__line__)
395  END IF ! global%flowType
396 
397 ! ******************************************************************************
398 ! End
399 ! ******************************************************************************
400 
401  IF ( global%verbLevel > verbose_low ) THEN
402  WRITE(stdout,'(A,1X,A)') solver_name,'Building ENSIGHT data info done.'
403  END IF ! global%verbLevel
404 
405  CALL deregisterfunction(global)
406 
407 END SUBROUTINE rflu_ens_builddatainfo
408 
409 
410 
411 
412 
413 
414 
415 
416 ! ******************************************************************************
417 !
418 ! Purpose: Open ENSIGHT scalar file.
419 !
420 ! Description: None.
421 !
422 ! Input:
423 ! global Pointer to global type
424 !
425 ! Output: None.
426 !
427 ! Notes: None.
428 !
429 ! ******************************************************************************
430 
432 
433 ! ******************************************************************************
434 ! Declarations and definitions
435 ! ******************************************************************************
436 
437 ! ==============================================================================
438 ! Arguments
439 ! ==============================================================================
440 
441  TYPE(t_global), POINTER :: global
442 
443 ! ==============================================================================
444 ! Locals
445 ! ==============================================================================
446 
447  CHARACTER(80) :: dummystring
448  CHARACTER(CHRLEN) :: ifilename
449  INTEGER :: errorflag,iscalar,ivector
450 
451 ! ******************************************************************************
452 ! Start
453 ! ******************************************************************************
454 
455  CALL registerfunction(global,'RFLU_ENS_CloseFileFlowWrapper', &
456  'RFLU_ModENSIGHT.F90')
457 
458  IF ( global%verbLevel > verbose_low ) THEN
459  WRITE(stdout,'(A,1X,A)') solver_name,'Closing ENSIGHT flow files...'
460  END IF ! global%verbLevel
461 
462 ! ******************************************************************************
463 ! Close files
464 ! ******************************************************************************
465 
466  DO iscalar = 1,nscalars
467  CALL rflu_ens_closefilescalarvector(global,scalarinfo(iscalar)%iFile)
468  END DO ! iScalar
469 
470  DO ivector = 1,nvectors
471  CALL rflu_ens_closefilescalarvector(global,vectorinfo(ivector)%iFile)
472  END DO ! iVector
473 
474 ! ******************************************************************************
475 ! End
476 ! ******************************************************************************
477 
478  IF ( global%verbLevel > verbose_low ) THEN
479  WRITE(stdout,'(A,1X,A)') solver_name,'Closing ENSIGHT flow files done.'
480  END IF ! global%verbLevel
481 
482  CALL deregisterfunction(global)
483 
484 END SUBROUTINE rflu_ens_closefileflowwrapper
485 
486 
487 
488 
489 
490 
491 
492 
493 ! ******************************************************************************
494 !
495 ! Purpose: Close ENSIGHT geometry file.
496 !
497 ! Description: None.
498 !
499 ! Input:
500 ! global Pointer to global type
501 !
502 ! Output: None.
503 !
504 ! Notes: None.
505 !
506 ! ******************************************************************************
507 
508 SUBROUTINE rflu_ens_closefilegeometry(global)
509 
510 ! ******************************************************************************
511 ! Declarations and definitions
512 ! ******************************************************************************
513 
514 ! ==============================================================================
515 ! Arguments
516 ! ==============================================================================
517 
518  TYPE(t_global), POINTER :: global
519 
520 ! ==============================================================================
521 ! Locals
522 ! ==============================================================================
523 
524  INTEGER :: errorflag
525 
526 ! ******************************************************************************
527 ! Start
528 ! ******************************************************************************
529 
530  CALL registerfunction(global,'RFLU_ENS_CloseFileGeometry', &
531  'RFLU_ModENSIGHT.F90')
532 
533  IF ( global%verbLevel > verbose_low ) THEN
534  WRITE(stdout,'(A,1X,A)') solver_name,'Closing ENSIGHT geometry file...'
535  END IF ! global%verbLevel
536 
537 ! ******************************************************************************
538 ! Close file
539 ! ******************************************************************************
540 
541  CLOSE(if_ens_geometry,iostat=errorflag)
542  global%error = errorflag
543  IF ( global%error /= err_none ) THEN
544  CALL errorstop(global,err_file_close,__line__)
545  END IF ! global%error
546 
547 ! ******************************************************************************
548 ! End
549 ! ******************************************************************************
550 
551  IF ( global%verbLevel > verbose_low ) THEN
552  WRITE(stdout,'(A,1X,A)') solver_name,'Closing ENSIGHT geometry file done.'
553  END IF ! global%verbLevel
554 
555  CALL deregisterfunction(global)
556 
557 END SUBROUTINE rflu_ens_closefilegeometry
558 
559 
560 
561 
562 
563 
564 ! ******************************************************************************
565 !
566 ! Purpose: Close ENSIGHT scalar/vector file.
567 !
568 ! Description: None.
569 !
570 ! Input:
571 ! global Pointer to global type
572 ! iFile File index
573 !
574 ! Output: None.
575 !
576 ! Notes: None.
577 !
578 ! ******************************************************************************
579 
580 SUBROUTINE rflu_ens_closefilescalarvector(global,iFile)
581 
582 ! ******************************************************************************
583 ! Declarations and definitions
584 ! ******************************************************************************
585 
586 ! ==============================================================================
587 ! Arguments
588 ! ==============================================================================
589 
590  INTEGER, INTENT(IN) :: ifile
591  TYPE(t_global), POINTER :: global
592 
593 ! ==============================================================================
594 ! Locals
595 ! ==============================================================================
596 
597  INTEGER :: errorflag
598 
599 ! ******************************************************************************
600 ! Start
601 ! ******************************************************************************
602 
603  CALL registerfunction(global,'RFLU_ENS_CloseFileScalarVector', &
604  'RFLU_ModENSIGHT.F90')
605 
606 ! ******************************************************************************
607 ! Close file
608 ! ******************************************************************************
609 
610  CLOSE(ifile,iostat=errorflag)
611  global%error = errorflag
612  IF ( global%error /= err_none ) THEN
613  CALL errorstop(global,err_file_close,__line__)
614  END IF ! global%error
615 
616 ! ******************************************************************************
617 ! End
618 ! ******************************************************************************
619 
620  CALL deregisterfunction(global)
621 
622 END SUBROUTINE rflu_ens_closefilescalarvector
623 
624 
625 
626 
627 
628 
629 
630 ! ******************************************************************************
631 !
632 ! Purpose: Destroy data information.
633 !
634 ! Description: None.
635 !
636 ! Input:
637 ! global Pointer to global type
638 !
639 ! Output: None.
640 !
641 ! Notes: None.
642 !
643 ! ******************************************************************************
644 
645 SUBROUTINE rflu_ens_destroydatainfo(global)
646 
647 ! ******************************************************************************
648 ! Declarations and definitions
649 ! ******************************************************************************
650 
651 ! ==============================================================================
652 ! Arguments
653 ! ==============================================================================
654 
655  TYPE(t_global), POINTER :: global
656 
657 ! ==============================================================================
658 ! Locals
659 ! ==============================================================================
660 
661  INTEGER :: errorflag
662 
663 ! ******************************************************************************
664 ! Start
665 ! ******************************************************************************
666 
667  CALL registerfunction(global,'RFLU_ENS_DestroyDataInfo', &
668  'RFLU_ModENSIGHT.F90')
669 
670  IF ( global%verbLevel > verbose_low ) THEN
671  WRITE(stdout,'(A,1X,A)') solver_name,'Destroying ENSIGHT data info...'
672  END IF ! global%verbLevel
673 
674 ! ******************************************************************************
675 ! Deallocate memory
676 ! ******************************************************************************
677 
678  DEALLOCATE(scalarinfo,stat=errorflag)
679  global%error = errorflag
680  IF ( global%error /= err_none ) THEN
681  CALL errorstop(global,err_deallocate,__line__,'scalarInfo')
682  END IF ! global%error
683 
684  DEALLOCATE(vectorinfo,stat=errorflag)
685  global%error = errorflag
686  IF ( global%error /= err_none ) THEN
687  CALL errorstop(global,err_deallocate,__line__,'vectorInfo')
688  END IF ! global%error
689 
690 ! ******************************************************************************
691 ! Reset number of data items
692 ! ******************************************************************************
693 
694  nscalars = 0
695  nvectors = 0
696 
697 ! ******************************************************************************
698 ! End
699 ! ******************************************************************************
700 
701  IF ( global%verbLevel > verbose_low ) THEN
702  WRITE(stdout,'(A,1X,A)') solver_name,'Destroying ENSIGHT data info done.'
703  END IF ! global%verbLevel
704 
705  CALL deregisterfunction(global)
706 
707 END SUBROUTINE rflu_ens_destroydatainfo
708 
709 
710 
711 
712 
713 
714 
715 ! ******************************************************************************
716 !
717 ! Purpose: Initialize part number.
718 !
719 ! Description: None.
720 !
721 ! Input:
722 ! global Pointer to global type
723 !
724 ! Output: None.
725 !
726 ! Notes: None.
727 !
728 ! ******************************************************************************
729 
730 SUBROUTINE rflu_ens_initpartnumber(global)
731 
732 ! ******************************************************************************
733 ! Declarations and definitions
734 ! ******************************************************************************
735 
736 ! ==============================================================================
737 ! Arguments
738 ! ==============================================================================
739 
740  TYPE(t_global), POINTER :: global
741 
742 ! ******************************************************************************
743 ! Start
744 ! ******************************************************************************
745 
746  global%postPartNumber = 0
747 
748 ! ******************************************************************************
749 ! End
750 ! ******************************************************************************
751 
752 END SUBROUTINE rflu_ens_initpartnumber
753 
754 
755 
756 
757 
758 
759 
760 ! ******************************************************************************
761 !
762 ! Purpose: Map regions to servers.
763 !
764 ! Description: None.
765 !
766 ! Input:
767 ! iReg Region index
768 ! nRegions Number of regions
769 ! nServers Number of servers
770 !
771 ! Output: None.
772 !
773 ! Notes:
774 ! 1. Note use of integer division.
775 !
776 ! ******************************************************************************
777 
778 INTEGER FUNCTION rflu_ens_mapregion2server(iReg,nRegions,nServers)
779 
780 ! ******************************************************************************
781 ! Declarations and definitions
782 ! ******************************************************************************
783 
784 ! ==============================================================================
785 ! Arguments
786 ! ==============================================================================
787 
788  INTEGER, INTENT(IN) :: ireg,nregions,nservers
789 
790 ! ******************************************************************************
791 ! Start
792 ! ******************************************************************************
793 
794  rflu_ens_mapregion2server = min((ireg-1)/nservers + 1,nservers)
795 
796 ! ******************************************************************************
797 ! End
798 ! ******************************************************************************
799 
800 END FUNCTION rflu_ens_mapregion2server
801 
802 
803 
804 
805 
806 
807 ! ******************************************************************************
808 !
809 ! Purpose: Open ENSIGHT scalar file.
810 !
811 ! Description: None.
812 !
813 ! Input:
814 ! global Pointer to global type
815 ! iServer Index of server
816 !
817 ! Output: None.
818 !
819 ! Notes: None.
820 !
821 ! ******************************************************************************
822 
823 SUBROUTINE rflu_ens_openfileflowwrapper(global,iServer)
824 
825 ! ******************************************************************************
826 ! Declarations and definitions
827 ! ******************************************************************************
828 
829 ! ==============================================================================
830 ! Arguments
831 ! ==============================================================================
832 
833  INTEGER, INTENT(IN) :: iserver
834  TYPE(t_global), POINTER :: global
835 
836 ! ==============================================================================
837 ! Locals
838 ! ==============================================================================
839 
840  CHARACTER(80) :: dummystring
841  CHARACTER(CHRLEN) :: ifilename
842  INTEGER :: errorflag,iscalar,ivector
843 
844 ! ******************************************************************************
845 ! Start
846 ! ******************************************************************************
847 
848  CALL registerfunction(global,'RFLU_ENS_OpenFileFlowWrapper', &
849  'RFLU_ModENSIGHT.F90')
850 
851  IF ( global%verbLevel > verbose_low ) THEN
852  WRITE(stdout,'(A,1X,A)') solver_name,'Opening ENSIGHT flow files...'
853  END IF ! global%verbLevel
854 
855 ! ******************************************************************************
856 ! Open files
857 ! ******************************************************************************
858 
859  DO iscalar = 1,nscalars
860  CALL rflu_ens_openfilescalarvector(global,scalarinfo(iscalar)%iFile, &
861  scalarinfo(iscalar)%iFileName)
862  END DO ! iScalar
863 
864  DO ivector = 1,nvectors
865  CALL rflu_ens_openfilescalarvector(global,vectorinfo(ivector)%iFile, &
866  vectorinfo(ivector)%iFileName)
867  END DO ! iVector
868 
869 ! ******************************************************************************
870 ! End
871 ! ******************************************************************************
872 
873  IF ( global%verbLevel > verbose_low ) THEN
874  WRITE(stdout,'(A,1X,A)') solver_name,'Opening ENSIGHT flow files done.'
875  END IF ! global%verbLevel
876 
877  CALL deregisterfunction(global)
878 
879 END SUBROUTINE rflu_ens_openfileflowwrapper
880 
881 
882 
883 
884 
885 
886 ! ******************************************************************************
887 !
888 ! Purpose: Open ENSIGHT geometry file.
889 !
890 ! Description: None.
891 !
892 ! Input:
893 ! global Pointer to global type
894 ! iServer Index of server
895 !
896 ! Output: None.
897 !
898 ! Notes: None.
899 !
900 ! ******************************************************************************
901 
902 SUBROUTINE rflu_ens_openfilegeometry(global,iServer)
903 
904 ! ******************************************************************************
905 ! Declarations and definitions
906 ! ******************************************************************************
907 
908 ! ==============================================================================
909 ! Arguments
910 ! ==============================================================================
911 
912  INTEGER, INTENT(IN) :: iserver
913  TYPE(t_global), POINTER :: global
914 
915 ! ==============================================================================
916 ! Locals
917 ! ==============================================================================
918 
919  CHARACTER(80) :: dummystring
920  CHARACTER(CHRLEN) :: ifilename
921  INTEGER :: errorflag
922 
923 ! ******************************************************************************
924 ! Start
925 ! ******************************************************************************
926 
927  CALL registerfunction(global,'RFLU_ENS_OpenFileGeometry', &
928  'RFLU_ModENSIGHT.F90')
929 
930  IF ( global%verbLevel > verbose_low ) THEN
931  WRITE(stdout,'(A,1X,A)') solver_name,'Opening ENSIGHT geometry file...'
932  END IF ! global%verbLevel
933 
934 ! ******************************************************************************
935 ! Open file
936 ! ******************************************************************************
937 
938  OPEN(if_ens_geometry,file=trim(geoinfo%iFileName),form="UNFORMATTED", &
939  status="UNKNOWN",iostat=errorflag)
940  global%error = errorflag
941  IF ( global%error /= err_none ) THEN
942  CALL errorstop(global,err_file_open,__line__,ifilename)
943  END IF ! global%error
944 
945 ! ******************************************************************************
946 ! Write header
947 ! ******************************************************************************
948 
949  dummystring = 'Fortran Binary'
950  WRITE(if_ens_geometry) dummystring
951 
952  dummystring = trim(global%casename)
953  WRITE(if_ens_geometry) dummystring
954 
955  dummystring = trim(global%casename)
956  WRITE(if_ens_geometry) dummystring
957 
958  dummystring = 'node id assign'
959  WRITE(if_ens_geometry) dummystring
960 
961  dummystring = 'element id assign'
962  WRITE(if_ens_geometry) dummystring
963 
964 ! ******************************************************************************
965 ! End
966 ! ******************************************************************************
967 
968  IF ( global%verbLevel > verbose_low ) THEN
969  WRITE(stdout,'(A,1X,A)') solver_name,'Opening ENSIGHT geometry file done.'
970  END IF ! global%verbLevel
971 
972  CALL deregisterfunction(global)
973 
974 END SUBROUTINE rflu_ens_openfilegeometry
975 
976 
977 
978 
979 
980 
981 
982 
983 ! ******************************************************************************
984 !
985 ! Purpose: Open ENSIGHT scalar/vector file.
986 !
987 ! Description: None.
988 !
989 ! Input:
990 ! global Pointer to global data
991 ! iFile File index
992 ! iFileName File name
993 !
994 ! Output: None.
995 !
996 ! Notes: None.
997 !
998 ! ******************************************************************************
999 
1000 SUBROUTINE rflu_ens_openfilescalarvector(global,iFile,iFileName)
1001 
1002 ! ******************************************************************************
1003 ! Declarations and definitions
1004 ! ******************************************************************************
1005 
1006 ! ==============================================================================
1007 ! Arguments
1008 ! ==============================================================================
1009 
1010  CHARACTER(CHRLEN) :: ifilename
1011  INTEGER, INTENT(IN) :: ifile
1012  TYPE(t_global), POINTER :: global
1013 
1014 ! ==============================================================================
1015 ! Locals
1016 ! ==============================================================================
1017 
1018  CHARACTER(80) :: dummystring
1019  INTEGER :: errorflag
1020 
1021 ! ******************************************************************************
1022 ! Start
1023 ! ******************************************************************************
1024 
1025  CALL registerfunction(global,'RFLU_ENS_OpenFileScalarVector', &
1026  'RFLU_ModENSIGHT.F90')
1027 
1028 ! ******************************************************************************
1029 ! Open file
1030 ! ******************************************************************************
1031 
1032  OPEN(ifile,file=trim(ifilename),form="UNFORMATTED",status="UNKNOWN", &
1033  iostat=errorflag)
1034  global%error = errorflag
1035  IF ( global%error /= err_none ) THEN
1036  CALL errorstop(global,err_file_open,__line__,trim(ifilename))
1037  END IF ! global%error
1038 
1039 ! ******************************************************************************
1040 ! Write header
1041 ! ******************************************************************************
1042 
1043  dummystring = trim(global%casename)
1044  WRITE(ifile) dummystring
1045 
1046 ! ******************************************************************************
1047 ! End
1048 ! ******************************************************************************
1049 
1050  CALL deregisterfunction(global)
1051 
1052 END SUBROUTINE rflu_ens_openfilescalarvector
1053 
1054 
1055 
1056 
1057 
1058 
1059 
1060 
1061 
1062 ! ******************************************************************************
1063 !
1064 ! Purpose: Restore part number.
1065 !
1066 ! Description: None.
1067 !
1068 ! Input:
1069 ! global Pointer to global type
1070 !
1071 ! Output: None.
1072 !
1073 ! Notes: None.
1074 !
1075 ! ******************************************************************************
1076 
1077 SUBROUTINE rflu_ens_restorepartnumber(global)
1078 
1079 ! ******************************************************************************
1080 ! Declarations and definitions
1081 ! ******************************************************************************
1082 
1083 ! ==============================================================================
1084 ! Arguments
1085 ! ==============================================================================
1086 
1087  TYPE(t_global), POINTER :: global
1088 
1089 ! ******************************************************************************
1090 ! Start
1091 ! ******************************************************************************
1092 
1093  global%postPartNumber = global%postPartNumberSave
1094 
1095 ! ******************************************************************************
1096 ! End
1097 ! ******************************************************************************
1098 
1099 END SUBROUTINE rflu_ens_restorepartnumber
1100 
1101 
1102 
1103 
1104 
1105 
1106 
1107 ! ******************************************************************************
1108 !
1109 ! Purpose: Store part number.
1110 !
1111 ! Description: None.
1112 !
1113 ! Input:
1114 ! global Pointer to global type
1115 !
1116 ! Output: None.
1117 !
1118 ! Notes: None.
1119 !
1120 ! ******************************************************************************
1121 
1122 SUBROUTINE rflu_ens_storepartnumber(global)
1123 
1124 ! ******************************************************************************
1125 ! Declarations and definitions
1126 ! ******************************************************************************
1127 
1128 ! ==============================================================================
1129 ! Arguments
1130 ! ==============================================================================
1131 
1132  TYPE(t_global), POINTER :: global
1133 
1134 ! ******************************************************************************
1135 ! Start
1136 ! ******************************************************************************
1137 
1138  global%postPartNumberSave = global%postPartNumber
1139 
1140 ! ******************************************************************************
1141 ! End
1142 ! ******************************************************************************
1143 
1144 END SUBROUTINE rflu_ens_storepartnumber
1145 
1146 
1147 
1148 
1149 
1150 
1151 
1152 
1153 
1154 ! ******************************************************************************
1155 !
1156 ! Purpose: Write case file.
1157 !
1158 ! Description: None.
1159 !
1160 ! Input:
1161 ! global Pointer to global data
1162 ! iServer Index of server
1163 !
1164 ! Output: None.
1165 !
1166 ! Notes: None.
1167 !
1168 ! ******************************************************************************
1169 
1170 SUBROUTINE rflu_ens_writefilecase(global,iServer)
1171 
1173 
1174 ! ******************************************************************************
1175 ! Declarations and definitions
1176 ! ******************************************************************************
1177 
1178 ! ==============================================================================
1179 ! Arguments
1180 ! ==============================================================================
1181 
1182  INTEGER, INTENT(IN) :: iserver
1183  TYPE(t_global), POINTER :: global
1184 
1185 ! ==============================================================================
1186 ! Locals
1187 ! ==============================================================================
1188 
1189  CHARACTER(80) :: dummystring
1190  CHARACTER(CHRLEN) :: ifilename
1191  INTEGER :: errorflag,iscalar,ivector
1192 
1193 ! ******************************************************************************
1194 ! Start
1195 ! ******************************************************************************
1196 
1197  CALL registerfunction(global,'RFLU_ENS_WriteFileCase', &
1198  'RFLU_ModENSIGHT.F90')
1199 
1200 ! ******************************************************************************
1201 ! Write
1202 ! ******************************************************************************
1203 
1204  CALL buildfilenamebasic(global,filedest_indir,'.case',iserver,ifilename)
1205 
1206  OPEN(if_ens_case,file=trim(ifilename),form="FORMATTED",status="UNKNOWN", &
1207  iostat=errorflag)
1208  global%error = errorflag
1209  IF ( global%error /= err_none ) THEN
1210  CALL errorstop(global,err_file_open,__line__,trim(ifilename))
1211  END IF ! global%error
1212 
1213  WRITE(if_ens_case,'(A)') 'FORMAT'
1214  WRITE(if_ens_case,'(A)') 'type: ensight gold'
1215  WRITE(if_ens_case,'(A)') 'GEOMETRY'
1216  WRITE(if_ens_case,'(A,1X,A)') 'model:',trim(geoinfo%iFileName)
1217  WRITE(if_ens_case,'(A)') 'VARIABLE'
1218 
1219  DO iscalar = 1,nscalars
1220  WRITE(if_ens_case,'(A,2(1X,A))') 'scalar per element:', &
1221  trim(scalarinfo(iscalar)%varName), &
1222  trim(scalarinfo(iscalar)%iFileName)
1223  END DO ! iScalar
1224 
1225  DO ivector = 1,nvectors
1226  WRITE(if_ens_case,'(A,2(1X,A))') 'vector per element:', &
1227  trim(vectorinfo(ivector)%varName), &
1228  trim(vectorinfo(ivector)%iFileName)
1229  END DO ! iVector
1230 
1231  CLOSE(if_ens_case,iostat=errorflag)
1232  global%error = errorflag
1233  IF ( global%error /= err_none ) THEN
1234  CALL errorstop(global,err_file_close,__line__,trim(ifilename))
1235  END IF ! global%error
1236 
1237 ! ******************************************************************************
1238 ! End
1239 ! ******************************************************************************
1240 
1241  CALL deregisterfunction(global)
1242 
1243 END SUBROUTINE rflu_ens_writefilecase
1244 
1245 
1246 
1247 
1248 
1249 
1250 
1251 ! ******************************************************************************
1252 !
1253 ! Purpose: Write solution to ENSIGHT files.
1254 !
1255 ! Description: None.
1256 !
1257 ! Input:
1258 ! pRegion Pointer to region
1259 ! emptyPartFlagIn Flag indicating whether part should be empty
1260 !
1261 ! Output: None.
1262 !
1263 ! Notes: None.
1264 !
1265 ! ******************************************************************************
1266 
1267 SUBROUTINE rflu_ens_writeflowwrapper(pRegion,emptyPartFlagIn)
1268 
1269 ! ******************************************************************************
1270 ! Declarations and definitions
1271 ! ******************************************************************************
1272 
1273 ! ==============================================================================
1274 ! Arguments
1275 ! ==============================================================================
1276 
1277  LOGICAL, OPTIONAL :: emptypartflagin
1278  TYPE(t_region), POINTER :: pregion
1279 
1280 ! ==============================================================================
1281 ! Locals
1282 ! ==============================================================================
1283 
1284  LOGICAL :: emptypartflag
1285  CHARACTER(80) :: dummystring
1286  INTEGER :: errorflag,icg,icl,ifl,ipart,ipatch,ipv,iscalar,iscalaroffs,offs
1287  REAL(RFREAL), DIMENSION(:), POINTER :: pscalar
1288  REAL(RFREAL), DIMENSION(:,:), POINTER :: pvector
1289  TYPE(t_global), POINTER :: global
1290  TYPE(t_grid), POINTER :: pgrid
1291  TYPE(t_patch), POINTER :: ppatch
1292 
1293 ! ******************************************************************************
1294 ! Start
1295 ! ******************************************************************************
1296 
1297  global => pregion%global
1298 
1299  CALL registerfunction(global,'RFLU_ENS_WriteFlowWrapper', &
1300  'RFLU_ModENSIGHT.F90')
1301 
1302  IF ( global%verbLevel > verbose_none ) THEN
1303  WRITE(stdout,'(A,1X,A)') solver_name,'Writing solution to ENSIGHT files...'
1304  WRITE(stdout,'(A,3X,A,1X,I5.5)') solver_name,'Global region:', &
1305  pregion%iRegionGlobal
1306  END IF ! global%verbLevel
1307 
1308  pgrid => pregion%grid
1309 
1310 ! ******************************************************************************
1311 ! Set emptyPartFlag if missing
1312 ! ******************************************************************************
1313 
1314  IF ( present(emptypartflagin) .EQV. .false. ) THEN
1315  emptypartflag = .false.
1316  ELSE
1317  emptypartflag = emptypartflagin
1318  END IF ! PRESENT(emptyPartFlagIn)
1319 
1320  IF ( global%verbLevel > verbose_none ) THEN
1321  WRITE(stdout,'(A,3X,A,1X,L1)') solver_name,'Writing empty parts:', &
1322  emptypartflag
1323  END IF ! global%verbLevel
1324 
1325 ! ******************************************************************************
1326 ! Write scalars
1327 ! ******************************************************************************
1328 
1329 ! ==============================================================================
1330 ! Mixture
1331 ! ==============================================================================
1332 
1333 ! ------------------------------------------------------------------------------
1334 ! Scalars
1335 ! ------------------------------------------------------------------------------
1336 
1337  IF ( emptypartflag .EQV. .false. ) THEN
1338  pscalar => pregion%mixt%cv(cv_mixt_dens,:)
1339  ELSE
1340  nullify(pscalar)
1341  END IF ! pScalar
1342 
1343  CALL rflu_ens_restorepartnumber(global)
1344  CALL rflu_ens_writescalar(pregion,pscalar,scalarinfo(1)%iFile,emptypartflag)
1345 
1346 
1347  IF ( emptypartflag .EQV. .false. ) THEN
1348  pscalar => pregion%mixt%cv(cv_mixt_ener,:)
1349  ELSE
1350  nullify(pscalar)
1351  END IF ! pScalar
1352 
1353  CALL rflu_ens_restorepartnumber(global)
1354  CALL rflu_ens_writescalar(pregion,pscalar,scalarinfo(2)%iFile,emptypartflag)
1355 
1356 
1357  IF ( emptypartflag .EQV. .false. ) THEN
1358  pscalar => pregion%mixt%dv(dv_mixt_pres,:)
1359  ELSE
1360  nullify(pscalar)
1361  END IF ! pScalar
1362 
1363  CALL rflu_ens_restorepartnumber(global)
1364  CALL rflu_ens_writescalar(pregion,pscalar,scalarinfo(3)%iFile,emptypartflag)
1365 
1366 
1367  IF ( emptypartflag .EQV. .false. ) THEN
1368  pscalar => pregion%mixt%dv(dv_mixt_temp,:)
1369  ELSE
1370  nullify(pscalar)
1371  END IF ! pScalar
1372 
1373  CALL rflu_ens_restorepartnumber(global)
1374  CALL rflu_ens_writescalar(pregion,pscalar,scalarinfo(4)%iFile,emptypartflag)
1375 
1376 
1377  IF ( emptypartflag .EQV. .false. ) THEN
1378  pscalar => pregion%mixt%dv(dv_mixt_soun,:)
1379  ELSE
1380  nullify(pscalar)
1381  END IF ! pScalar
1382 
1383  CALL rflu_ens_restorepartnumber(global)
1384  CALL rflu_ens_writescalar(pregion,pscalar,scalarinfo(5)%iFile,emptypartflag)
1385 
1386  iscalaroffs = 5
1387 
1388 ! ------------------------------------------------------------------------------
1389 ! Plotting variables
1390 ! ------------------------------------------------------------------------------
1391 
1392  IF ( pregion%plot%nPv > 0 ) THEN
1393  iscalar = 0
1394 
1395  DO ipv = 1,pregion%plot%nPv
1396  iscalar = iscalar+1
1397 
1398  IF ( emptypartflag .EQV. .false. ) THEN
1399  pscalar => pregion%plot%pv(ipv,:)
1400  ELSE
1401  nullify(pscalar)
1402  END IF ! pScalar
1403 
1404  CALL rflu_ens_restorepartnumber(global)
1405  CALL rflu_ens_writescalar(pregion,pscalar, &
1406  scalarinfo(iscalaroffs+iscalar)%iFile, &
1407  emptypartflag)
1408  END DO ! iPv
1409 
1410  iscalaroffs = iscalaroffs + pregion%plot%nPv
1411  END IF ! nPv
1412 
1413 ! ------------------------------------------------------------------------------
1414 ! Vectors
1415 ! ------------------------------------------------------------------------------
1416 
1417  IF ( emptypartflag .EQV. .false. ) THEN
1418  pvector => pregion%mixt%cv(cv_mixt_xmom:cv_mixt_zmom,:)
1419  ELSE
1420  nullify(pvector)
1421  END IF ! pScalar
1422 
1423  CALL rflu_ens_restorepartnumber(global)
1424  CALL rflu_ens_writevector(pregion,pvector,vectorinfo(1)%iFile,emptypartflag)
1425 
1426 ! ==============================================================================
1427 ! Physical modules
1428 ! ==============================================================================
1429 
1430 #ifdef SPEC
1431 ! ------------------------------------------------------------------------------
1432 ! Species
1433 ! ------------------------------------------------------------------------------
1434 
1435  IF ( global%specUsed .EQV. .true. ) THEN
1436  DO iscalar = 1,pregion%specInput%nSpecies
1437  IF ( emptypartflag .EQV. .false. ) THEN
1438  pscalar => pregion%spec%cv(iscalar,:)
1439  ELSE
1440  nullify(pscalar)
1441  END IF ! pScalar
1442 
1443  CALL rflu_ens_restorepartnumber(global)
1444  CALL rflu_ens_writescalar(pregion,pscalar, &
1445  scalarinfo(iscalar+iscalaroffs)%iFile, &
1446  emptypartflag)
1447  END DO ! iScalar
1448  END IF ! global%specUsed
1449 #endif
1450 
1451 ! ******************************************************************************
1452 ! End
1453 ! ******************************************************************************
1454 
1455  IF ( global%verbLevel > verbose_none ) THEN
1456  WRITE(stdout,'(A,1X,A)') solver_name, &
1457  'Writing solution to ENSIGHT files done.'
1458  END IF ! global%verbLevel
1459 
1460  CALL deregisterfunction(global)
1461 
1462 END SUBROUTINE rflu_ens_writeflowwrapper
1463 
1464 
1465 
1466 
1467 
1468 
1469 
1470 ! ******************************************************************************
1471 !
1472 ! Purpose: Write grid to ENSIGHT geometry file.
1473 !
1474 ! Description: None.
1475 !
1476 ! Input:
1477 ! pRegion Pointer to region
1478 ! emptyPartFlagIn Flag indicating whether part should be empty
1479 !
1480 ! Output: None.
1481 !
1482 ! Notes: None.
1483 !
1484 ! ******************************************************************************
1485 
1486 SUBROUTINE rflu_ens_writegridwrapper(pRegion,emptyPartFlagIn)
1487 
1488 ! ******************************************************************************
1489 ! Declarations and definitions
1490 ! ******************************************************************************
1491 
1492 ! ==============================================================================
1493 ! Arguments
1494 ! ==============================================================================
1495 
1496  LOGICAL, OPTIONAL :: emptypartflagin
1497  TYPE(t_region), POINTER :: pregion
1498 
1499 ! ==============================================================================
1500 ! Locals
1501 ! ==============================================================================
1502 
1503  LOGICAL :: emptypartflag
1504  INTEGER :: errorflag
1505  TYPE(t_global), POINTER :: global
1506 
1507 ! ******************************************************************************
1508 ! Start
1509 ! ******************************************************************************
1510 
1511  global => pregion%global
1512 
1513  CALL registerfunction(global,'RFLU_ENS_WriteGrid', &
1514  'RFLU_ModENSIGHT.F90')
1515 
1516  IF ( global%verbLevel > verbose_none ) THEN
1517  WRITE(stdout,'(A,1X,A)') solver_name, &
1518  'Writing grid to ENSIGHT geometry file...'
1519  WRITE(stdout,'(A,3X,A,1X,I5.5)') solver_name,'Global region:', &
1520  pregion%iRegionGlobal
1521  END IF ! global%verbLevel
1522 
1523 ! ******************************************************************************
1524 ! Set emptyPartFlag if missing
1525 ! ******************************************************************************
1526 
1527  IF ( present(emptypartflagin) .EQV. .false. ) THEN
1528  emptypartflag = .false.
1529  ELSE
1530  emptypartflag = emptypartflagin
1531  END IF ! PRESENT(emptyPartFlagIn)
1532 
1533  IF ( global%verbLevel > verbose_none ) THEN
1534  WRITE(stdout,'(A,3X,A,1X,L1)') solver_name,'Writing empty parts:', &
1535  emptypartflag
1536  END IF ! global%verbLevel
1537 
1538 ! ******************************************************************************
1539 ! Write geometry
1540 ! ******************************************************************************
1541 
1542  CALL rflu_ens_writegrid(pregion,emptypartflag)
1543 
1544 ! ******************************************************************************
1545 ! End
1546 ! ******************************************************************************
1547 
1548  IF ( global%verbLevel > verbose_none ) THEN
1549  WRITE(stdout,'(A,1X,A)') solver_name, &
1550  'Writing grid to ENSIGHT geometry file done.'
1551  END IF ! global%verbLevel
1552 
1553  CALL deregisterfunction(global)
1554 
1555 END SUBROUTINE rflu_ens_writegridwrapper
1556 
1557 
1558 
1559 
1560 
1561 
1562 
1563 END MODULE rflu_modensight
1564 
1565 ! ******************************************************************************
1566 !
1567 ! RCS Revision history:
1568 !
1569 ! $Log: RFLU_ModENSIGHT.F90,v $
1570 ! Revision 1.6 2008/12/06 08:45:06 mtcampbe
1571 ! Updated license.
1572 !
1573 ! Revision 1.5 2008/11/19 22:18:16 mtcampbe
1574 ! Added Illinois Open Source License/Copyright
1575 !
1576 ! Revision 1.4 2007/03/19 21:42:36 haselbac
1577 ! Adapted to changes related to plotting variables
1578 !
1579 ! Revision 1.3 2006/04/07 15:19:26 haselbac
1580 ! Removed tabs
1581 !
1582 ! Revision 1.2 2006/01/24 21:20:38 mparmar
1583 ! Added plotting variables
1584 !
1585 ! Revision 1.1 2005/10/05 20:23:34 haselbac
1586 ! Initial revision
1587 !
1588 ! ******************************************************************************
1589 
1590 
1591 
1592 
1593 
1594 
1595 
1596 
1597 
1598 
1599 
1600 
1601 
1602 
1603 
1604 
1605 
subroutine rflu_ens_closefileflowwrapper(global)
subroutine buildfilenamebasic(global, dest, ext, id, fileName)
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
int status() const
Obtain the status of the attribute.
Definition: Attribute.h:240
INTEGER function, public rflu_ens_mapregion2server(iReg, nRegions, nServers)
subroutine rflu_ens_restorepartnumber(global)
subroutine, public rflu_ens_openfilegeometry(global, iServer)
subroutine, public rflu_countplottingvars(pRegion)
subroutine rflu_ens_writefilecase(global, iServer)
subroutine rflu_ens_openfileflowwrapper(global, iServer)
subroutine rflu_ens_storepartnumber(global)
**********************************************************************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
subroutine rflu_ens_closefilescalarvector(global, iFile)
subroutine, public rflu_ens_writegridwrapper(pRegion, emptyPartFlagIn)
subroutine, public rflu_ens_writevector(pRegion, var, iFile, emptyPartFlag)
subroutine, public rflu_ens_writeflowwrapper(pRegion, emptyPartFlagIn)
subroutine, public rflu_ens_destroydatainfo(global)
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:346
subroutine, public rflu_ens_writegrid(pRegion, emptyPartFlag)
subroutine, public rflu_ens_closefilegeometry(global)
subroutine rflu_ens_openfilescalarvector(global, iFile, iFileName)
subroutine, public rflu_ens_writescalar(pRegion, var, iFile, emptyPartFlag)
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
subroutine, public rflu_ens_builddatainfo(pRegion, iServer)
subroutine, public rflu_ens_initpartnumber(global)
subroutine deregisterfunction(global)
Definition: ModError.F90:469
subroutine buildfilenamesteady(global, dest, ext, id, it, fileName)
subroutine buildfilenameunsteady(global, dest, ext, id, tm, fileName)