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