Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ZN_input_0d.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 !
26 ! SUBROUTINE : ZN_input_0d
27 !
28 ! This subroutine read inputs for burning rate model Rocburn_1D_ZN
29 !
30 ! Authors : K. Tang
31 !
32 ! Creation Date : Sep. 3, 2002
33 !
34 ! Modifications :
35 !
36 ! No. Date Authors Description
37 !
38 !
39 ! ---------------------------------------------------------------------------
40 !
41 !
42 ! arguments :
43 !
44 ! G_ZN : Global variables for Rocburn_1D_ZN
45 ! Indir : directory for input data file
46 !
47 ! ---------------------------------------------------------------------------
48 !
49  SUBROUTINE zn_input_0d(G_ZN, Indir)
50 
52 
53  IMPLICIT NONE
54  include 'mpif.h'
55 
56 !
57 ! Global data for Rocburn_1D_ZN passed as a pointer
58 !
59 
60  TYPE (g_burn_1d), POINTER :: g_zn
61 !
62 ! arguments
63 !
64  CHARACTER(*), INTENT(IN) :: indir
65 
66 !
67 !
68 ! ----------------------------------------------------------------
69 ! local variables
70  CHARACTER(LEN=80) :: infile
71  CHARACTER(*), PARAMETER :: controlfile = "RocburnZNControl.txt"
72 
73  INTEGER :: ir, ioerr
74 
75 !
76 ! read propellant thermophysical properties
77 !
78 
79  ir = 10
80 
81 
82  if (indir(len_trim(indir):len_trim(indir)) == '/') then
83  infile= trim(indir) // controlfile
84  else
85  infile= trim(indir) // controlfile
86  endif
87 
88  OPEN (unit=ir,file=infile,status='old')
89 
90  READ(ir,*) g_zn%Model_combustion
91  IF (g_zn%rank==0) print *,' ROCBURN_ZN: rank=',g_zn%rank, &
92  ' ; input propellant thermophysical properties', &
93  g_zn%Model_combustion
94 !
95 ! Model_combustion = 1 :: WSB homogeneouse propellant
96 ! combustion model
97 ! Model_combustion = 2 :: ZN phenomenological combustion model
98 ! for composite and homogeneous
99 ! propellant
100 ! Model_combustion = 3 :: rb=a*P**n
101 !
102 
103  READ(ir,*) g_zn%a_p
104  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: a_p =', g_zn%a_p
105 
106  READ(ir,*) g_zn%n_p
107  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: n_p =', g_zn%n_p
108 
109  READ(ir,*) g_zn%Ac
110  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: Ac= ',g_zn%Ac
111 
112  READ(ir,*) g_zn%Bg
113  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: Bg= ',g_zn%Bg
114 
115  READ(ir,*) g_zn%Ec
116  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: Ec= ',g_zn%Ec
117 
118  READ(ir,*) g_zn%Qc
119  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: Qc= ',g_zn%Qc
120 
121  READ(ir,*) g_zn%Qg
122  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: Qg= ',g_zn%Qg
123 
124  READ(ir,*) g_zn%alfac
125  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: alfac= ',g_zn%alfac
126 
127  READ(ir,*) g_zn%C
128  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: C= ',g_zn%C
129 
130  READ(ir,*) g_zn%rhoc
131  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: rhoc= ',g_zn%rhoc
132 
133  READ(ir,*) g_zn%lamg
134  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: lamg= ',g_zn%lamg
135 
136  READ(ir,*) g_zn%MW
137  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: MW= ',g_zn%MW
138 
139  READ(ir,*) g_zn%Ka
140  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: Ka= ',g_zn%Ka
141 
142  READ(ir,*) g_zn%nxmax
143  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: nxmax= ',g_zn%nxmax
144 
145  READ(ir,*) g_zn%nx
146  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: nx= ',g_zn%nx
147 
148  READ(ir,*) g_zn%delt_max
149  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: delt= ',g_zn%delt_max
150 
151  READ(ir,*) g_zn%igrid
152  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: igrid= ',g_zn%igrid
153 
154  READ(ir,*) g_zn%xmax
155  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: xmax= ',g_zn%xmax
156 
157  READ(ir,*) g_zn%beta
158  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: beta= ',g_zn%beta
159 
160  READ(ir,*) g_zn%tol_Ts
161  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: tol_Ts= ',g_zn%tol_Ts
162 
163  READ(ir,*) g_zn%itermax
164  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: itermax= ',g_zn%itermax
165 
166  READ(ir,*) g_zn%Tf_adiabatic
167  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: Tf_adiabatic= ',g_zn%Tf_adiabatic
168 
169  READ(ir,*) g_zn%To
170  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: To= ',g_zn%To
171 
172  READ(ir,*) g_zn%ign_flag
173  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: ign_flag= ',g_zn%ign_flag
174 
175  READ(ir,*) g_zn%To_cold
176  IF (g_zn%rank==0) WRITE(*,*) 'ROCBURN_ZN: To_cold= ',g_zn%To_cold
177 
178  CLOSE(ir)
179 
180  g_zn%lamc=g_zn%alfac*g_zn%rhoc*g_zn%C
181 
182 !
183 ! initialize variables not allowed to be changed
184 !
185 
186  g_zn%R=1.9872
187  g_zn%a_T=1.0
188  g_zn%n_T=1.0
189 
190  IF (g_zn%rank==0) print *,'ROCBURN_ZN: rank=',g_zn%rank, &
191  ' done input', controlfile
192 
193  RETURN
194 
195  END SUBROUTINE zn_input_0d
196 
197 
198 
199 
200 
201 
int status() const
Obtain the status of the attribute.
Definition: Attribute.h:240
const std::string & unit() const
Obtain the unit of the attribute.
Definition: Attribute.h:200
virtual std::ostream & print(std::ostream &os) const
subroutine zn_input_0d(G_ZN, Indir)
Definition: ZN_input_0d.f90:49