Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLU_WriteStat.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: store time averaged solution
26 !
27 ! Description: solution in interior cells is stored;
28 ! only binary format is supported
29 !
30 ! Input: region = region data (dimensions)
31 !
32 ! Output: global%currentTime = physical time
33 ! global%integrTime = integrated time
34 ! region%grid%nCells = region number of cells
35 ! global%mixtNStat = number of mixture statistics variables
36 ! global%mixtStatId = mixturestatistics variable Id
37 ! region%mixt%tav = time averaged mixture variables
38 ! global%turbNStat = number of TURB statistics variables
39 ! global%turbStatId = TURB statistics variable Id
40 ! region%turb%tav = time averaged TURB variables
41 ! output to file
42 !
43 ! Notes: each region has statistics solution file
44 !
45 !******************************************************************************
46 !
47 ! $Id: RFLU_WriteStat.F90,v 1.9 2008/12/06 08:44:13 mtcampbe Exp $
48 !
49 ! Copyright: (c) 2001 by the University of Illinois
50 !
51 !******************************************************************************
52 
53 SUBROUTINE rflu_writestat( region )
54 
55  USE moddatatypes
56  USE moddatastruct, ONLY : t_region
57  USE modglobal, ONLY : t_global
58  USE moderror
59  USE modmpi
60  USE modparameters
61  IMPLICIT NONE
62 
63 ! ... parameters
64  TYPE(t_region) :: region
65 
66 ! ... loop variables
67  INTEGER :: ijk, l
68 
69 ! ... local variables
70  CHARACTER(CHRLEN+23) :: fname
71  CHARACTER(CHRLEN) :: rcsidentstring
72 
73  INTEGER :: errorflag,ireg, ijkbeg, ijkend
74  INTEGER :: mixtstatid(region%global%mixtnstat)
75  INTEGER :: turbstatid(region%global%turbnstat)
76 
77  REAL(RFREAL), POINTER :: mixttav(:,:), turbtav(:,:)
78 
79  TYPE(t_global), POINTER :: global
80 
81 !******************************************************************************
82 
83  rcsidentstring = '$RCSfile: RFLU_WriteStat.F90,v $'
84 
85  global => region%global
86 
87  CALL registerfunction(global,'RFLU_WriteStat',&
88  'RFLU_WriteStat.F90')
89 
90 ! open file ----------------------------------------------------------------
91 
92  ireg = region%iRegionGlobal
93  WRITE(fname,'(A,I5.5,A,1PE11.5)') trim(global%outDir)// &
94  trim(global%casename)//'.statb_',ireg, &
95  '_',global%currentTime
96 
97  OPEN(if_stat,file=fname,form='unformatted',status='unknown', &
98  iostat=errorflag)
99  global%error = errorflag
100  IF (global%error /= 0) &
101  CALL errorstop(global,err_file_open,__line__,'File: '//trim(fname))
102 
103 ! write physical time and integrated time ----------------------------------
104 
105  WRITE(if_stat,err=10) global%currentTime
106  WRITE(if_stat,err=10) global%integrTime
107 
108 ! write dimensions ---------------------------------------------------------
109 
110  WRITE(if_stat,err=10) region%grid%nCells
111 
112 ! mixture NSTAT and ID
113 
114  IF (global%mixtNStat > 0) THEN
115  mixtstatid(:)=global%mixtStatId(1,:)*10+global%mixtStatId(2,:)
116  WRITE(if_stat,err=10) global%mixtNStat,mixtstatid
117  ENDIF
118 
119 ! turbulence NSTAT and ID
120 
121 #ifdef TURB
122  IF (global%turbNStat > 0) THEN
123  turbstatid(:)=global%turbStatId(1,:)*10+global%turbStatId(2,:)
124  WRITE(if_stat,err=10) global%turbNStat,turbstatid
125  ENDIF
126 #endif
127 
128 ! write time averaged variables --------------------------------------------
129 
130  IF (global%myProcid==masterproc .AND. global%verbLevel>=verbose_high) &
131  WRITE(stdout,'(A)') solver_name,' - write statistics'
132 
133  ijkbeg = 1
134  ijkend = region%grid%nCells
135 
136  IF (global%mixtNStat > 0) THEN
137  mixttav => region%mixt%tav
138  WRITE(if_stat,err=10) ((mixttav(l,ijk), ijk=ijkbeg,ijkend), &
139  l=1,global%mixtNStat)
140  ENDIF
141 #ifdef TURB
142  IF (global%turbNStat > 0) THEN
143  turbtav => region%turb%tav
144  WRITE(if_stat,err=10) ((turbtav(l,ijk), ijk=ijkbeg,ijkend), &
145  l=1,global%turbNStat)
146  ENDIF
147 #endif
148 
149 ! close file ---------------------------------------------------------------
150 
151  CLOSE(if_stat,iostat=errorflag)
152  global%error = errorflag
153  IF (global%error /= 0) &
154  CALL errorstop(global,err_file_close,__line__,'File: '//trim(fname))
155 
156 ! finalization & error handling --------------------------------------------
157 
158  CALL deregisterfunction(global)
159  goto 999
160 
161 10 CONTINUE
162  CALL errorstop(global,err_file_read,__line__,'File: '//trim(fname))
163 
164 999 CONTINUE
165 
166 END SUBROUTINE rflu_writestat
167 
168 !******************************************************************************
169 !
170 ! RCS Revision history:
171 !
172 ! $Log: RFLU_WriteStat.F90,v $
173 ! Revision 1.9 2008/12/06 08:44:13 mtcampbe
174 ! Updated license.
175 !
176 ! Revision 1.8 2008/11/19 22:17:26 mtcampbe
177 ! Added Illinois Open Source License/Copyright
178 !
179 ! Revision 1.7 2002/11/02 01:51:49 wasistho
180 ! Added TURB statistics
181 !
182 ! Revision 1.6 2002/10/08 15:48:57 haselbac
183 ! {IO}STAT=global%error replaced by {IO}STAT=errorFlag - SGI problem
184 !
185 ! Revision 1.5 2002/10/05 18:52:50 haselbac
186 ! Cosmetic changes only
187 !
188 ! Revision 1.4 2002/09/09 14:15:02 haselbac
189 ! global now under regions
190 !
191 ! Revision 1.3 2002/07/22 15:46:09 wasistho
192 ! Cleaned-up conforming Coding Rule
193 !
194 ! Revision 1.2 2002/06/18 00:37:16 wasistho
195 ! Added prefix SOLVER NAME to satistics STDOutput
196 !
197 ! Revision 1.1 2002/06/14 21:23:56 wasistho
198 ! Added time avg statistics
199 !
200 !
201 !******************************************************************************
202 
203 
204 
205 
206 
207 
208 
209 
210 
211 
212 
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
int status() const
Obtain the status of the attribute.
Definition: Attribute.h:240
subroutine rflu_writestat(region)
**********************************************************************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 errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
subroutine deregisterfunction(global)
Definition: ModError.F90:469