Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
data_declarations.f90
Go to the documentation of this file.
1 !*********************************************************************
2 !* Illinois Open Source License *
3 !* *
4 !* University of Illinois/NCSA *
5 !* Open Source License *
6 !* *
7 !* Copyright@2008, University of Illinois. All rights reserved. *
8 !* *
9 !* Developed by: *
10 !* *
11 !* Center for Simulation of Advanced Rockets *
12 !* *
13 !* University of Illinois *
14 !* *
15 !* www.csar.uiuc.edu *
16 !* *
17 !* Permission is hereby granted, free of charge, to any person *
18 !* obtaining a copy of this software and associated documentation *
19 !* files (the "Software"), to deal with the Software without *
20 !* restriction, including without limitation the rights to use, *
21 !* copy, modify, merge, publish, distribute, sublicense, and/or *
22 !* sell copies of the Software, and to permit persons to whom the *
23 !* Software is furnished to do so, subject to the following *
24 !* conditions: *
25 !* *
26 !* *
27 !* @ Redistributions of source code must retain the above copyright *
28 !* notice, this list of conditions and the following disclaimers. *
29 !* *
30 !* @ Redistributions in binary form must reproduce the above *
31 !* copyright notice, this list of conditions and the following *
32 !* disclaimers in the documentation and/or other materials *
33 !* provided with the distribution. *
34 !* *
35 !* @ Neither the names of the Center for Simulation of Advanced *
36 !* Rockets, the University of Illinois, nor the names of its *
37 !* contributors may be used to endorse or promote products derived *
38 !* from this Software without specific prior written permission. *
39 !* *
40 !* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
41 !* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
42 !* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
43 !* NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
44 !* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
45 !* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
46 !* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
47 !* USE OR OTHER DEALINGS WITH THE SOFTWARE. *
48 !*********************************************************************
49 !* Please acknowledge The University of Illinois Center for *
50 !* Simulation of Advanced Rockets in works and publications *
51 !* resulting from this software or its derivatives. *
52 !*********************************************************************
54 
55  IMPLICIT NONE
56 
57  INTEGER :: i,j,k,l,m,n, & ! Loop Counters
58  etype, & ! Element type (4 or 10 node)
59  ftype, & ! Face type (3 or 6 node)
60  numnp, & ! Number of nodes
61  numbndnp, & ! Number of boundary marker nodes
62  numel, & ! Number of elements
63  npfixed, & ! Number of original surface nodes (in .points file)
64  numsub, & ! Number of subregions assigned to elements as flags
65  numfaces, & ! Number of faces describing the surface mesh
66  numbndfaces, & ! Number of faces with markers .NE. '0'
67  numscale_bk, & ! Number of sister nodes on back face
68  numscale_ft, & ! Number of sister nodes on front face
69  numscale_np, & ! Total Number of sister node for both faces
70  mark, & ! Temp marker holder
71  scale, & ! The number of times for duplication
72  count, & ! Temporary counter
73  frontfile, & ! previous file ID number
74  backfile, & ! next file ID number
75  priv1, priv2 ! Temp holders for passing private variables between files
76 
77 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
78 
79  INTEGER :: numprop, & ! ?
80  numbound, & ! Number of Boundary flags
81  numboundmesh, & ! Number of boundary mesh nodes
82  NdBCflag, & ! Nodal Boundary condition flag
83  numco, &
84  iaux, &
85  numclst, &
86  numcstet, &
87  numcohshared, &
88  nproc_neigh, &
89  num_border_coh, &
90  num_border_cst, &
91  numboundmid, &
92  numboundend, &
93  numboundfirst, &
94  numbmeshmid, &
95  numbmeshend, &
96  numbmeshfirst
97 
98  REAL*8 :: delta ! ?
99  REAL*8 :: maxZ, minZ ! Variables used to hold max and min values for node coords
100 
101  REAL*8, ALLOCATABLE, DIMENSION(:,:) :: &
102  coor, & ! Node coordinates array
103  meshcoor, & ! Wish I knew
104  xm ! This one, too
105 
106  INTEGER, ALLOCATABLE, DIMENSION(:) :: &
107  nboundtype, & ! Nodal boundary marker array
108  matcstet, &
109  ts_proportion ! ?
110 
111  INTEGER, ALLOCATABLE, DIMENSION(:,:) :: &
112  lmcstet ! Element connectivity
113 
114 
115  REAL*8, ALLOCATABLE, DIMENSION(:) :: &
116  proportion
117 
118  INTEGER :: NBoundryEl3D
119 
121  INTEGER :: ID
122  INTEGER :: NdBCflag
123  INTEGER :: sister
124  END TYPE id_struct
125 
126  TYPE(id_struct), ALLOCATABLE, DIMENSION(:) :: &
127  id, &
128  idmesh
129 
130 
131 
132 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
133 
134  REAL*8 :: XYZ(3) ! Temp coordinates holder
135  REAL*8 :: Ztrans ! The displacement by which the mesh nodes are moved
136 
137  CHARACTER*40 :: PREFIX ! The generic filename prefix
138  CHARACTER*4 :: scaleID ! The ID number of the filename extension
139 
140 
141 
143  INTEGER :: marker ! Marker (flag) assigned to this node
144  INTEGER :: meshmark ! Mesh motion boundary flag assigned to this node
145  REAL*8 :: coord(3) ! x,y,z coordinates for this node
146  END TYPE node_struct
147 
149  INTEGER :: marker
150  INTEGER, POINTER, DIMENSION(:) :: &
151  conn ! Element connectivity array
152  END TYPE element_struct
153 
155  INTEGER :: ID ! The face ID number
156  INTEGER :: marker ! Marker (flag) assigned to this face
157  INTEGER, POINTER, DIMENSION(:) :: &
158  conn ! Connectivity array for this face
159  TYPE(face_struct), POINTER :: next
160  END TYPE face_struct
161 
163  INTEGER :: comm(2) ! The current files being communicated with 1=back 2=front
164  INTEGER :: num_sister_np ! The number of shared sister nodes between files
165  INTEGER :: numboundnp ! The number of boundary nodes accounted for
166  ! This will change because of internal nodes on original
167  ! exterior surfaces that are now interior surfaces
168  END TYPE file_struct
169 
171  INTEGER :: ID
172  INTEGER :: marker
173  INTEGER :: mesh
174  REAL*8 :: coord(3)
175  TYPE(scale_struct), POINTER :: next
176  TYPE(scale_struct), POINTER :: sister
177  END TYPE scale_struct
178 
180  INTEGER :: ID
181  INTEGER :: conn(4)
182  INTEGER :: flag
183  TYPE(elem_list), POINTER :: next
184  TYPE(elem_list), POINTER :: previous
185  END TYPE elem_list
186 
188  INTEGER :: marker
189  INTEGER :: conn(3)
190  END TYPE surface_struct
191 
193  INTEGER :: ID
194  INTEGER :: marker
195  REAL*8 :: coord(3)
196  TYPE(surfscale_struct), POINTER :: next
197  TYPE(surfscale_struct), POINTER :: sister
198  END TYPE surfscale_struct
199 
200  TYPE(surface_struct), ALLOCATABLE, DIMENSION(:) :: &
201  surface
202  TYPE(surfscale_struct), POINTER :: frontsnode, first_frontsnode, backsnode, first_backsnode
203 
204 
205  ! User defined type declarations
206  TYPE(element_struct), ALLOCATABLE, DIMENSION(:) :: element
207  TYPE(node_struct), ALLOCATABLE, DIMENSION(:) :: node
208  TYPE(node_struct), ALLOCATABLE, DIMENSION(:) :: surfnode
209  TYPE(face_struct), POINTER :: facelist, firstface
210  TYPE(file_struct), ALLOCATABLE, DIMENSION(:) :: FileID
211  TYPE(scale_struct), POINTER :: &
212  frontnode, & ! Front face node list
213  first_front_node, &
214  backnode, & ! Back face node list
215  first_back_node, &
216  BNPlist, & ! All other boundary nodes list
217  firstnode
218 
219  ! These linked lists will be used to keep track of what elements have points that
220  ! lie on the boundary
221  TYPE(elem_list), POINTER :: elemlist, firstelem, &
222  eboundlist, firstebound
223 
224  CONTAINS
225 
226 !-----------------------------------------------------------------------------------------!
227 ! FUNCTION LENGTH: obtains the length of a passed in character string !
228 !-----------------------------------------------------------------------------------------!
229  INTEGER FUNCTION length(STRING)
230 
231  ! Determines the length of string
232  ! Preconditions: STRING is defined
233  ! Postconditions: The function result is the actual string length
234  ! and includes only the characters preceding blanks
235 
236  ! Declarations
237  CHARACTER*(*) string ! Input Dummy character type
238 
239  ! Local
240  CHARACTER *1 blank ! Used for conditional statement
241  parameter(blank = ' ')
242 
243  ! Length holder
244  INTEGER next
245 
246  ! Starts with the first character and finds the first nonblank
247  DO 10 next = len(string), 1, -1
248  IF (string(next:next) .NE. blank) THEN
249  length = next
250  RETURN
251  END IF
252  10 CONTINUE
253 
254  ! If all characters are blanks
255  length = 0
256 
257  ! Exit function
258  RETURN
259  END FUNCTION length
260 
261  END MODULE data_declarations
262 
263 
void next()
Go to the next element within the connectivity tables of a pane.
static const char * string()
Definition: CImg.h:2085