63 TYPE(t_region
),
POINTER :: regions(:)
74 REAL(RFREAL),
POINTER :: optconst(:,:)
78 global => regions(1)%global
80 'RADI_CheckParamInput.F90' )
84 IF ((ycoord - xcoord)/=1 .OR. &
85 (zcoord - ycoord)/=1)
THEN
86 CALL
errorstop( global,err_radi_fixparam,__line__,
'XCOORD,YCOORD,ZCOORD' )
90 IF ((kcoord-jcoord /= 1).OR.(jcoord-icoord /= 1).OR.(icoord /= 1))
THEN
91 CALL
errorstop( global,err_radi_fixparam,__line__,
'I,J,KCOORD' )
95 IF (radi_coeff_extinct /=1 .OR. &
96 radi_coeff_scatter /=2 .OR. &
97 radi_coeff_ncomp /=2)
THEN
98 CALL
errorstop( global,err_radi_fixparam,__line__,
'RADI_COEFF_...' )
101 IF (radi_angle_ncomp /=2)
THEN
102 CALL
errorstop( global,err_radi_fixparam,__line__,
'RADI_ANGLE_...' )
110 DO ireg=1,global%nRegions
111 IF (regions(ireg)%procid==global%myProcid .AND. &
112 regions(ireg)%active==active)
THEN
116 input => regions(ireg)%radiInput
117 optconst =>
input%optConst
121 IF ((
input%radiModel /= radi_model_none) .AND. &
122 (
input%radiModel /= radi_model_ross) .AND. &
123 (
input%radiModel /= radi_model_fldsrc) .AND. &
124 (
input%radiModel /= radi_model_fldtran) .AND. &
125 (
input%radiModel /= radi_model_rtegray) .AND. &
126 (
input%radiModel /= radi_model_rteband))
THEN
127 CALL
errorstop( global,err_radi_input,__line__, &
128 'radiation model selected does not exist' )
131 IF (regions(ireg)%mixtInput%flowModel /= flow_navst)
THEN
132 IF ((
input%radiModel == radi_model_ross) .OR. &
133 (
input%radiModel == radi_model_fldsrc) .OR. &
134 (
input%radiModel == radi_model_fldtran))
THEN
135 CALL
errorstop( global,err_radi_input,__line__, &
136 'diffusion approximation models currently only run with NS' )
142 IF (
input%radiModel /= radi_model_none)
THEN
145 IF ((
input%radiModel == radi_model_fldtran) .OR. &
146 (
input%radiModel == radi_model_rtegray) .OR. &
147 (
input%radiModel == radi_model_rteband))
THEN
148 CALL
errorstop( global,err_radi_input,__line__, &
149 'radiation model selected is not ready yet' )
153 IF (
input%media == radi_media_real)
THEN
154 IF (optconst(phase_prop_v,radi_phase_dispart) >radi_real_small)
THEN
155 IF (.NOT. global%plagUsed)
THEN
156 CALL
errorstop( global,err_radi_input,__line__, &
157 'real media contains discrete particles but rocpart is off' )
160 IF (optconst(phase_prop_v,radi_phase_conpart) >radi_real_small)
THEN
161 IF (.NOT. global%peulUsed)
THEN
162 CALL
errorstop( global,err_radi_input,__line__, &
163 'real media contains continuum particles but rocsmoke is off' )
169 IF (optconst(phase_prop_v,radi_phase_gas) <radi_real_small .OR. &
170 optconst(phase_prop_q,radi_phase_gas) <radi_real_small)
THEN
171 CALL
errorstop( global,err_radi_input,__line__, &
172 'Gas: ext.coef. and vol.frac. should be > 0 or let be default' )
174 IF (optconst(phase_prop_v,radi_phase_conpart) >radi_real_small .AND. &
175 optconst(phase_prop_q,radi_phase_conpart) <radi_real_small)
THEN
176 CALL
errorstop( global,err_radi_input,__line__, &
177 'Con. particles: extinction efficiency should be higher' )
179 IF (optconst(phase_prop_v,radi_phase_dispart) >radi_real_small .AND. &
180 optconst(phase_prop_q,radi_phase_dispart) <radi_real_small)
THEN
181 CALL
errorstop( global,err_radi_input,__line__, &
182 'Disc. particles: extinction efficiency should be higher' )
184 IF (optconst(phase_prop_d,radi_phase_gas ) <radi_real_small .OR. &
185 optconst(phase_prop_d,radi_phase_dispart) <radi_real_small .OR. &
186 optconst(phase_prop_d,radi_phase_conpart) <radi_real_small)
THEN
187 CALL
errorstop( global,err_radi_input,__line__, &
188 'gas molecule and particle diameters should be > (machine) zero' )
192 IF ((lbound(
input%angles,1) /= 1) .OR. &
194 CALL
errorstop( global,err_radi_input,__line__, &
195 'number of intensity angles is inconsistent' )
199 IF (
input%radiModel == radi_model_fldtran)
THEN
201 IF (
input%spaceDiscr /= fld_discr_cen)
THEN
202 CALL
errorstop( global,err_radi_fldinput,__line__, &
203 'selected FLD space discretization is not defined' )
206 IF (
input%spaceOrder /= fld_discr_ord2)
THEN
207 CALL
errorstop( global,err_radi_fldinput,__line__, &
208 'selected FLD space discretization order is not defined' )
213 IF ((
input%radiModel == radi_model_rtegray) .OR. &
214 (
input%radiModel == radi_model_rteband))
THEN
217 IF ((
input%solMethod /= radi_num_dom4) .AND. &
218 (
input%solMethod /= radi_num_dom8) .AND. &
219 (
input%solMethod /= radi_num_dom16) .AND. &
220 (
input%solMethod /= radi_num_fvm))
THEN
221 CALL
errorstop( global,err_radi_input,__line__, &
222 'radiation solution method selected does not exist' )
224 IF ((
input%solMethod == radi_num_dom4) .OR. &
225 (
input%solMethod == radi_num_dom8) .OR. &
226 (
input%solMethod == radi_num_dom16) .OR. &
227 (
input%solMethod == radi_num_fvm))
THEN
228 CALL
errorstop( global,err_radi_input,__line__, &
229 'radiation solution method selected is not ready yet' )
231 IF ((
input%solMethod == radi_num_dom4) .AND. &
232 (
input%nOrdin /= 4))
THEN
233 CALL
errorstop( global,err_radi_input,__line__, &
234 'number of ordinates inconsistence with method selected' )
236 IF ((
input%solMethod == radi_num_dom8) .AND. &
237 (
input%nOrdin /= 8))
THEN
238 CALL
errorstop( global,err_radi_input,__line__, &
239 'number of ordinates inconsistence with method selected' )
241 IF ((
input%solMethod == radi_num_dom16) .AND. &
242 (
input%nOrdin /= 16))
THEN
243 CALL
errorstop( global,err_radi_input,__line__, &
244 'number of ordinates inconsistence with method selected' )
246 IF ((
input%solMethod == radi_num_dom4) .OR. &
247 (
input%solMethod == radi_num_dom8) .OR. &
248 (
input%solMethod == radi_num_dom16))
THEN
250 CALL
errorstop( global,err_radi_input,__line__, &
251 'DOM: nAngle /= nOrdinate' )
256 IF (
input%solMethod == radi_num_fvm)
THEN
258 CALL
errorstop( global,err_radi_input,__line__, &
259 'number of polar angles is out of range [2-50]' )
261 IF (
input%nAzi < 4 .OR.
input%nAzi > 100)
THEN
262 CALL
errorstop( global,err_radi_input,__line__, &
263 'number of azimuthal angles is out of range [4-100]' )
266 CALL
errorstop( global,err_radi_input,__line__, &
267 'FVM: nAngle /= (nPolar+1)*(nAzimuthal+1)' )
275 IF (.NOT. regions(ireg)%mixtInput%radiUsed)
THEN
281 IF (
input%radiModel /= radi_model_none)
THEN
282 CALL
errorstop( global,err_radi_input,__line__, &
283 'RFLU-RADI is not ready yet' )
294 CALL
errorstop( global,err_radi_input,__line__, &
295 'For Genx, radiation should be active in all regions or none at all' )
subroutine registerfunction(global, funName, fileName)
subroutine input(X, NNODE, NDC, NCELL, NFCE, NBPTS, NBFACE, ITYP, NPROP, XBNDY, XFAR, YFAR, ZFAR)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)