Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLU_GetUserInput.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 and process user input for the core solver and all physical
26 ! modules.
27 !
28 ! Description: None.
29 !
30 ! Input: None.
31 !
32 ! Output: None.
33 !
34 ! Notes:
35 ! 1. timeStampPrep is written into timeStamp and currentTime only if this
36 ! routine is called from the preprocessor. This is indicated by the
37 ! optional argument isPrep. This construct is required because the
38 ! routine reading the timeStamp from the input file only sets timeStamp
39 ! and currentTime if not compiled within GENX. This is done because
40 ! RFLU_InitFlowSolver gets the actual time passed in as an argument when
41 ! running within GENX, and hence it should not be overwritten. For this
42 ! to work with the preprocessor, the little detour has to be taken...
43 !
44 !******************************************************************************
45 !
46 ! $Id: RFLU_GetUserInput.F90,v 1.14 2008/12/06 08:44:12 mtcampbe Exp $
47 !
48 ! Copyright: (c) 2002,2003 by the University of Illinois
49 !
50 !******************************************************************************
51 
52 SUBROUTINE rflu_getuserinput(regions,inPrep)
53 
54  USE moddatatypes
55  USE modglobal, ONLY: t_global
56  USE moddatastruct, ONLY: t_region
57  USE moderror
58  USE modmpi
59  USE modparameters
60 
65 
66 #ifdef PLAG
68 #endif
69 
70 #ifdef PERI
72 #endif
73 
74 #ifdef SPEC
76 #endif
77 
78 #ifdef TURB
80 #endif
81 
82 #ifdef INRT
84 #endif
85 
86  IMPLICIT NONE
87 
88 ! ******************************************************************************
89 ! Definitions and declarations
90 ! ******************************************************************************
91 
92 ! ==============================================================================
93 ! Arguments
94 ! ==============================================================================
95 
96  LOGICAL, OPTIONAL :: inprep
97  TYPE(t_region), DIMENSION(:), POINTER :: regions
98 
99 ! ==============================================================================
100 ! Locals
101 ! ==============================================================================
102 
103  CHARACTER(CHRLEN) :: rcsidentstring
104  TYPE(t_global), POINTER :: global
105 
106 ! ******************************************************************************
107 ! Start
108 ! ******************************************************************************
109 
110  rcsidentstring = '$RCSfile: RFLU_GetUserInput.F90,v $ $Revision: 1.14 $'
111 
112  global => regions(1)%global
113 
114  CALL registerfunction(global,'RFLU_GetUserInput',&
115  'RFLU_GetUserInput.F90')
116 
117  IF ( global%myProcid == masterproc .AND. &
118  global%verbLevel >= verbose_low ) THEN
119  WRITE(stdout,'(A,1X,A)') solver_name,'Reading user input file...'
120  END IF ! global%verbLevel
121 
122 ! ******************************************************************************
123 ! Input for mixture & base solver
124 ! ******************************************************************************
125 
126  CALL rflu_userinput(regions)
127 
128 #ifdef GENX
129 ! write timeStampPrep into time variables: See note above
130 
131  IF ( present(inprep) ) THEN
132  IF ( inprep .EQV. .true. ) THEN
133  global%timeStamp = global%timeStampPrep
134  global%currentTime = global%timeStampPrep
135  END IF ! inPrep
136  END IF ! PRESENT
137 #endif
138 
139 ! ******************************************************************************
140 ! Input for physical modules
141 ! ******************************************************************************
142 
143 #ifdef PLAG
144  CALL plag_userinput(regions)
145 #endif
146 
147 #ifdef PERI
148  CALL peri_userinput(regions)
149 #endif
150 
151 #ifdef RADI
152  CALL radi_userinput(regions)
153 #endif
154 
155 #ifdef SPEC
156  CALL spec_userinput(regions)
157 #endif
158 
159 #ifdef TURB
160  CALL turb_userinput(regions)
161 #endif
162 
163 #ifdef INRT
164  CALL inrt_userinput(regions) ! must follow all other *_UserInput routines
165 #endif
166 
167 ! ******************************************************************************
168 ! Derived values which require knowledge of input to all MP modules
169 ! ******************************************************************************
170 
171  CALL rflu_setderiveduserinput(regions)
172 
173 ! ******************************************************************************
174 ! Checks which require knowledge of input to all MP modules
175 ! ******************************************************************************
176 
177  CALL rflu_checkderiveduserinput(regions)
178 
179 ! ******************************************************************************
180 ! Write out user input for base solver and physical modules
181 ! ******************************************************************************
182 
183  IF ( (global%myProcid == masterproc) .AND. &
184  (global%verbLevel >= verbose_med) ) THEN
185  CALL rflu_printuserinput(regions)
186  END IF ! global
187 
188 ! ******************************************************************************
189 ! End
190 ! ******************************************************************************
191 
192  IF ( (global%myProcid == masterproc) .AND. &
193  (global%verbLevel >= verbose_high) ) THEN
194  WRITE(stdout,'(A,1X,A)') solver_name,'Reading user input files done.'
195  END IF ! global%verbLevel
196 
197  CALL deregisterfunction(global)
198 
199 END SUBROUTINE rflu_getuserinput
200 
201 !******************************************************************************
202 !
203 ! RCS Revision history:
204 !
205 ! $Log: RFLU_GetUserInput.F90,v $
206 ! Revision 1.14 2008/12/06 08:44:12 mtcampbe
207 ! Updated license.
208 !
209 ! Revision 1.13 2008/11/19 22:17:25 mtcampbe
210 ! Added Illinois Open Source License/Copyright
211 !
212 ! Revision 1.12 2008/05/23 21:31:41 mtcampbe
213 ! Print user input if verbose is low
214 !
215 ! Revision 1.11 2007/07/08 20:18:17 gzheng
216 ! changed PRESENT for PGI compiler
217 !
218 ! Revision 1.10 2004/07/30 22:47:35 jferry
219 ! Implemented Equilibrium Eulerian method for Rocflu
220 !
221 ! Revision 1.9 2004/07/23 22:43:15 jferry
222 ! Integrated rocspecies into rocinteract
223 !
224 ! Revision 1.8 2004/06/17 23:04:30 wasistho
225 ! added PERI_UserInput
226 !
227 ! Revision 1.7 2004/02/02 22:49:22 haselbac
228 ! Added interface for PLAG_UserInput
229 !
230 ! Revision 1.6 2004/01/29 22:56:31 haselbac
231 ! Added call to RFLU_SetDerivedUserInput
232 !
233 ! Revision 1.5 2003/11/25 21:02:46 haselbac
234 ! Added SPEC support and made cosmetic changes
235 !
236 ! Revision 1.4 2003/03/04 22:12:34 jferry
237 ! Initial import of Rocinteract
238 !
239 ! Revision 1.3 2003/02/02 21:15:36 haselbac
240 ! Bug fix: Need to check for presence and value separately...
241 !
242 ! Revision 1.2 2003/01/30 19:07:34 haselbac
243 ! Added optional argument, rfluprep-GENX problem solved
244 !
245 ! Revision 1.1 2003/01/28 15:53:32 haselbac
246 ! Initial revision, moved from rocflu
247 !
248 ! Revision 1.7 2002/09/17 22:51:23 jferry
249 ! Removed Fast Eulerian particle type
250 !
251 ! Revision 1.6 2002/09/09 15:50:47 haselbac
252 ! global and mixtInput now under region
253 !
254 ! Revision 1.5 2002/08/24 03:20:56 wasistho
255 ! put safety within #ifdef TURB
256 !
257 ! Revision 1.4 2002/07/25 14:27:55 haselbac
258 ! Added MASTERPROC distinction for output
259 !
260 ! Revision 1.3 2002/06/17 13:34:12 haselbac
261 ! Prefixed SOLVER_NAME to all screen output
262 !
263 ! Revision 1.2 2002/05/04 17:09:28 haselbac
264 ! Cosmetic changes
265 !
266 ! Revision 1.1 2002/03/26 19:24:07 haselbac
267 ! Initial revision
268 !
269 !******************************************************************************
270 
271 
272 
273 
274 
275 
276 
subroutine rflu_printuserinput(regions)
subroutine rflu_getuserinput(regions, inPrep)
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine peri_userinput(regions)
subroutine rflu_setderiveduserinput(regions)
subroutine inrt_userinput(regions)
subroutine spec_userinput(regions)
subroutine turb_userinput(regions)
subroutine rflu_checkderiveduserinput(regions)
subroutine deregisterfunction(global)
Definition: ModError.F90:469
subroutine rflu_userinput(regions)
subroutine plag_userinput(regions)