64 TYPE(t_region
) :: region
73 INTEGER :: radimodel, media, solmethod, npol, nazi, nang
74 INTEGER :: fluxlim, discrtype, discrorder
75 REAL(RFREAL) :: extcoef, smoocf, k2, ook4
76 REAL(RFREAL),
POINTER :: angles(:,:), optconst(:,:)
80 global => region%global
82 'RADI_PrintUserInput.F90' )
87 radimodel = region%radiInput%radiModel
88 media = region%radiInput%media
89 fluxlim = region%radiInput%fluxLim
90 smoocf = region%radiInput%smoocf
91 discrtype = region%radiInput%spaceDiscr
92 k2 = region%radiInput%vis2
93 ook4 = 1._rfreal/region%radiInput%vis4
94 discrorder= region%radiInput%spaceOrder
95 solmethod = region%radiInput%solMethod
96 npol = region%radiInput%nPol
97 nazi = region%radiInput%nAzi
98 nang = region%radiInput%nAng
99 angles => region%radiInput%angles
100 optconst => region%radiInput%optConst
103 radimodel = radiinput%radiModel
104 media = radiinput%media
105 fluxlim = radiinput%fluxLim
106 smoocf = radiinput%smoocf
107 discrtype = radiinput%spaceDiscr
109 ook4 = 1._rfreal/radiinput%vis4
110 discrorder= radiinput%spaceOrder
111 solmethod = radiinput%solMethod
112 npol = radiinput%nPol
113 nazi = radiinput%nAzi
114 nang = radiinput%nAng
115 angles => radiinput%angles
116 optconst => radiinput%optConst
121 WRITE(stdout,1005) solver_name//
' Radiation:'
123 IF (radimodel == radi_model_ross)
THEN
124 WRITE(stdout,1030) solver_name//
' radiation model = Rosseland Diff. approx.'
125 ELSEIF (radimodel == radi_model_fldsrc)
THEN
126 WRITE(stdout,1030) solver_name//
' radiation model = simple Limited Flux Diff.'
127 ELSEIF (radimodel == radi_model_fldtran)
THEN
128 WRITE(stdout,1030) solver_name//
' radiation model = full Limited Flux Diff.'
129 ELSEIF (radimodel == radi_model_rtegray)
THEN
130 WRITE(stdout,1030) solver_name//
' radiation model = RTE gray gas'
131 ELSEIF (radimodel == radi_model_rteband)
THEN
132 WRITE(stdout,1030) solver_name//
' radiation model = RTE non-gray gas'
135 IF (media == radi_media_artif)
THEN
136 WRITE(stdout,1030) solver_name//
' radiative media = artificial multi-phase'
137 ELSEIF (media == radi_media_real)
THEN
138 WRITE(stdout,1030) solver_name//
' radiative media = real multi-phase'
141 WRITE(stdout,1030) solver_name//
' relevant input-data based on above model:'
145 IF (media == radi_media_artif)
THEN
146 IF (optconst(phase_prop_v,radi_phase_gas) > radi_real_small)
THEN
147 WRITE(stdout,1030) solver_name//
' media phase = gas'
148 WRITE(stdout,1010) solver_name//
' vol.fraction =', &
149 optconst(phase_prop_v,radi_phase_gas)
150 WRITE(stdout,1010) solver_name//
' Q-extinction =', &
151 optconst(phase_prop_q,radi_phase_gas)
152 WRITE(stdout,1010) solver_name//
' molecule diam.=', &
153 optconst(phase_prop_d,radi_phase_gas)
155 IF (optconst(phase_prop_v,radi_phase_conpart) > radi_real_small)
THEN
156 WRITE(stdout,1030) solver_name//
' media phase = continuum particles'
157 WRITE(stdout,1010) solver_name//
' vol.fraction =', &
158 optconst(phase_prop_v,radi_phase_conpart)
159 WRITE(stdout,1010) solver_name//
' Q-extinction =', &
160 optconst(phase_prop_q,radi_phase_conpart)
161 WRITE(stdout,1010) solver_name//
' particle diam.=', &
162 optconst(phase_prop_d,radi_phase_conpart)
164 IF (optconst(phase_prop_v,radi_phase_dispart) > radi_real_small)
THEN
165 WRITE(stdout,1030) solver_name//
' media phase = discrete particles'
166 WRITE(stdout,1010) solver_name//
' vol.fraction =', &
167 optconst(phase_prop_v,radi_phase_dispart)
168 WRITE(stdout,1010) solver_name//
' Q-extinction .=', &
169 optconst(phase_prop_q,radi_phase_dispart)
170 WRITE(stdout,1010) solver_name//
' particle diam.=', &
171 optconst(phase_prop_d,radi_phase_dispart)
176 extcoef = extcoef + optconst(phase_prop_v,
n)* &
177 optconst(phase_prop_q,
n)/optconst(phase_prop_d,
n)
179 extcoef = 1.5_rfreal*extcoef
180 WRITE(stdout,1010) solver_name//
' artif. ext.coef.=', extcoef
181 WRITE(stdout,1010) solver_name//
' trshld ext.coef.=', radi_real_ecmin
182 IF (extcoef < radi_real_ecmin ) &
183 WRITE(stdout,1030) solver_name//
' radiation computation has no effect'
185 ELSEIF (media == radi_media_real)
THEN
186 IF (optconst(phase_prop_v,radi_phase_gas) > radi_real_small)
THEN
187 WRITE(stdout,1030) solver_name//
' media phase = gas'
188 WRITE(stdout,1010) solver_name//
' Q-extinction .=', &
189 optconst(phase_prop_q,radi_phase_gas)
191 IF (optconst(phase_prop_v,radi_phase_conpart) > radi_real_small)
THEN
192 WRITE(stdout,1030) solver_name//
' media phase = continuum particles'
193 WRITE(stdout,1010) solver_name//
' Q-extinction .=', &
194 optconst(phase_prop_q,radi_phase_conpart)
196 IF (optconst(phase_prop_v,radi_phase_dispart) > radi_real_small)
THEN
197 WRITE(stdout,1030) solver_name//
' media phase = discrete particles'
198 WRITE(stdout,1010) solver_name//
' Q-extinction .=', &
199 optconst(phase_prop_q,radi_phase_dispart)
202 WRITE(stdout,1010) solver_name//
' trshld ext.coef.=', radi_real_ecmin
207 IF ((radimodel == radi_model_fldsrc) .OR. &
208 (radimodel == radi_model_fldtran))
THEN
210 IF (fluxlim == fld_lim_none)
THEN
211 WRITE(stdout,1030) solver_name//
' flux limiter = none'
212 ELSEIF (fluxlim == fld_lim_lp)
THEN
213 WRITE(stdout,1030) solver_name//
' flux limiter = Levermore-Pomraning'
216 IF (radimodel == radi_model_fldtran)
THEN
217 WRITE(stdout,1030) solver_name//
' FLDTRAN Numeric :'
218 WRITE(stdout,1020) solver_name//
' FLD smoocf =',smoocf
219 IF (discrtype == fld_discr_cen)
THEN
220 IF (discrorder == fld_discr_ord1) &
221 WRITE(stdout,1030) solver_name//
' FLD spc discr. = 1st order central'
222 IF (discrorder == fld_discr_ord2) &
223 WRITE(stdout,1030) solver_name//
' FLD spc discr. = 2nd order central'
224 WRITE(stdout,1020) solver_name//
' FLD k2 =',k2
225 WRITE(stdout,1020) solver_name//
' FLD 1/k4 =',ook4
226 ELSEIF (discrtype == fld_discr_upw)
THEN
227 IF (discrorder == fld_discr_ord1) &
228 WRITE(stdout,1030) solver_name//
' FLD spc discr. = 1st order upwind'
229 IF (discrorder == fld_discr_ord2) &
230 WRITE(stdout,1030) solver_name//
' FLD spc discr. = 2nd order upwind'
234 ELSEIF ((radimodel == radi_model_rtegray) .OR. &
235 (radimodel == radi_model_rteband))
THEN
237 IF (solmethod == radi_num_dom4)
THEN
238 WRITE(stdout,1030) solver_name//
' solution method = discrete ordinate S4'
239 ELSEIF (solmethod == radi_num_dom8)
THEN
240 WRITE(stdout,1030) solver_name//
' solution method = discrete ordinate S8'
241 ELSEIF (solmethod == radi_num_dom16)
THEN
242 WRITE(stdout,1030) solver_name//
' solution method = discrete ordinate S16'
243 ELSEIF (solmethod == radi_num_fvm)
THEN
244 WRITE(stdout,1030) solver_name//
' solution method = finite volume method'
247 IF (solmethod == radi_num_fvm)
THEN
248 WRITE(stdout,1020) solver_name//
' N polar angles =', npol
249 WRITE(stdout,1020) solver_name//
' N azimuthal =', nazi
255 WRITE(stdout,1020) solver_name//
' N intens.angles =', npol
256 WRITE(stdout, * ) solver_name//
' polar angles =', &
257 angles(:,radi_angle_polar)
258 WRITE(stdout, * ) solver_name//
' polar angles =', &
259 angles(:,radi_angle_azimu)
266 1010
FORMAT(6
x,
a,e12.5)
subroutine registerfunction(global, funName, fileName)
subroutine deregisterfunction(global)