Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ReadTransformSection.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 user input related to geometric transformation of grid and
26 ! solution.
27 !
28 ! Description: None.
29 !
30 ! Input: None.
31 !
32 ! Output: None.
33 !
34 ! Notes: None.
35 !
36 !******************************************************************************
37 !
38 ! $Id: ReadTransformSection.F90,v 1.4 2008/12/06 08:44:10 mtcampbe Exp $
39 !
40 ! Copyright: (c) 2002-2006 by the University of Illinois
41 !
42 !******************************************************************************
43 
44 SUBROUTINE readtransformsection( global )
45 
46  USE moddatatypes
47  USE modglobal, ONLY : t_global
48  USE modinterfaces, ONLY : readsection
49  USE moderror
50  USE modparameters
51  IMPLICIT NONE
52 
53 ! ... parameters
54  TYPE(t_global), POINTER :: global
55 
56 ! ... local variables
57  INTEGER :: nvals
58  INTEGER, PARAMETER :: nvals_max = 12
59 
60  CHARACTER(CHRLEN) :: rcsidentstring
61  CHARACTER(10) :: keys(nvals_max)
62 
63  LOGICAL :: defined(nvals_max)
64 
65  REAL(RFREAL) :: vals(nvals_max)
66 
67 !******************************************************************************
68 
69  rcsidentstring = '$RCSfile: ReadTransformSection.F90,v $ $Revision: 1.4 $'
70 
71  CALL registerfunction( global,'ReadTranformSection',&
72  'ReadTransformSection.F90' )
73 
74 ! specify keywords and search for them
75 
76  nvals = nvals_max
77 
78  keys( 1) = 'FLAG'
79  keys( 2) = 'SCALE_X'
80  keys( 3) = 'SCALE_Y'
81  keys( 4) = 'SCALE_Z'
82  keys( 5) = 'ANGLE_X'
83  keys( 6) = 'ANGLE_Y'
84  keys( 7) = 'ANGLE_Z'
85  keys( 8) = 'DIST_FLAG'
86  keys( 9) = 'DIST_X'
87  keys(10) = 'DIST_Y'
88  keys(11) = 'DIST_Z'
89  keys(12) = 'ENFORCE'
90 
91  CALL readsection( global,if_input,nvals,keys(1:nvals),vals(1:nvals), &
92  defined(1:nvals) )
93 
94 ! transformation flag
95 
96  IF (defined(1)) THEN
97  IF ( nint(vals(1)) == 1 ) THEN
98  global%transformFlag = .true.
99  ELSE
100  global%transformFlag = .false.
101  END IF ! NINT
102  ELSE
103  global%transformFlag = .false.
104  ENDIF ! defined(1)
105 
106 ! scaling factors
107 
108  IF (defined(2)) THEN
109  global%scaleX = vals(2)
110  ELSE
111  global%scaleX = 1.0_rfreal
112  ENDIF ! defined(2)
113 
114  IF (defined(3)) THEN
115  global%scaleY = vals(3)
116  ELSE
117  global%scaleY = 1.0_rfreal
118  ENDIF ! defined(3)
119 
120  IF (defined(4)) THEN
121  global%scaleZ = vals(4)
122  ELSE
123  global%scaleZ = 1.0_rfreal
124  ENDIF ! defined(4)
125 
126 ! rotation angles
127 
128  IF (defined(5)) THEN
129  global%angleX = vals(5)
130  ELSE
131  global%angleX = 0.0_rfreal
132  ENDIF ! defined(5)
133 
134  IF (defined(6)) THEN
135  global%angleY = vals(6)
136  ELSE
137  global%angleY = 0.0_rfreal
138  ENDIF ! defined(6)
139 
140  IF (defined(7)) THEN
141  global%angleZ = vals(7)
142  ELSE
143  global%angleZ = 0.0_rfreal
144  ENDIF ! defined(7)
145 
146 ! distortion
147 
148  IF (defined(8)) THEN
149  IF ( nint(vals(8)) == 1 ) THEN
150  global%distortFlag = .true.
151  ELSE
152  global%distortFlag = .false.
153  END IF ! NINT
154  ELSE
155  global%distortFlag = .false.
156  ENDIF ! defined(8)
157 
158  IF (defined(9)) THEN
159  global%distortX = vals(9)
160  ELSE
161  global%distortX = 0.0_rfreal
162  ENDIF ! defined(9)
163 
164  IF (defined(10)) THEN
165  global%distortY = vals(10)
166  ELSE
167  global%distortY = 0.0_rfreal
168  ENDIF ! defined(10)
169 
170  IF (defined(11)) THEN
171  global%distortZ = vals(11)
172  ELSE
173  global%distortZ = 0.0_rfreal
174  ENDIF ! defined(11)
175 
176 ! boundary patch coordinate enforcement
177 
178  IF (defined(12)) THEN
179  IF ( nint(vals(12)) == 1 ) THEN
180  global%enforceFlag = .true.
181  ELSE
182  global%enforceFlag = .false.
183  END IF ! NINT
184  ELSE
185  global%enforceFlag = .false.
186  END IF ! defined(12)
187 
188 ! finalize
189 
190  CALL deregisterfunction( global )
191 
192 END SUBROUTINE readtransformsection
193 
194 !******************************************************************************
195 !
196 ! RCS Revision history:
197 !
198 ! $Log: ReadTransformSection.F90,v $
199 ! Revision 1.4 2008/12/06 08:44:10 mtcampbe
200 ! Updated license.
201 !
202 ! Revision 1.3 2008/11/19 22:17:23 mtcampbe
203 ! Added Illinois Open Source License/Copyright
204 !
205 ! Revision 1.2 2006/08/04 03:00:28 haselbac
206 ! Added reading of distortion parameters
207 !
208 ! Revision 1.1 2004/12/01 16:50:57 haselbac
209 ! Initial revision after changing case
210 !
211 ! Revision 1.6 2003/05/16 02:27:43 haselbac
212 ! Removed KIND=RFREAL from NINT statements
213 !
214 ! Revision 1.5 2003/03/15 16:32:50 haselbac
215 ! Added KIND qualifyers
216 !
217 ! Revision 1.4 2003/02/01 00:28:56 haselbac
218 ! Added enforceFlag, transformFlag now LOGICAL
219 !
220 ! Revision 1.3 2002/11/08 21:21:40 haselbac
221 ! Bug fix for transformFlag
222 !
223 ! Revision 1.2 2002/09/05 17:40:20 jblazek
224 ! Variable global moved into regions().
225 !
226 ! Revision 1.1 2002/05/07 18:52:26 haselbac
227 ! Initial revision
228 !
229 !******************************************************************************
230 
231 
232 
233 
234 
235 
236 
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine readsection(global, fileID, nvals, keys, vals, defined)
subroutine readtransformsection(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 USE ModDataTypes USE nvals
subroutine deregisterfunction(global)
Definition: ModError.F90:469