12 CHARACTER(LEN=15) :: finp
13 CHARACTER*150 :: fout5
15 CHARACTER(LEN=80) :: run_name, input_name
17 CHARACTER(LEN=80) :: out_file
18 CHARACTER(LEN=80) :: out_file2
19 CHARACTER(LEN=80) :: out_file3
20 CHARACTER(LEN=80) :: out_file4
23 CHARACTER(LEN=3) :: outtime
25 CHARACTER(LEN=3) :: outpres_b =
'Pa '
27 CHARACTER(LEN=3) :: outflux =
'd00'
29 CHARACTER(LEN=3) :: outmass =
'Kg '
31 CHARACTER(LEN=3) :: outvelo =
'ms '
33 CHARACTER(LEN=3) :: outdist =
' m '
36 CHARACTER(LEN=5) :: outdens =
'Kgm-3'
37 CHARACTER(LEN=3) :: outpres_t =
'Pa'
45 INTEGER,
PARAMETER :: ninp = 7
49 INTEGER,
PARAMETER :: nout5=14
106 USE envi_module, ONLY: fric, theta, gi, t_a, p, gas_constair, c_vair
108 USE solver_module, ONLY: vel_equation , dr0 , eps_rel , eps_abs
112 USE particles_module, ONLY: iclass, diam, rhosol, fracsolid, c_d , mean_phi,&
113 sigma_phi , min_phi , max_phi , c_d_input , phi_dist
124 CHARACTER(LEN=80) :: card
128 LOGICAL :: eval_gsd_flag
130 namelist / control_parameters / run_name
132 namelist / flow_parameters / oned_model , vel_equation , dr0 , eps_rel , eps_abs
134 namelist / env_parameters / fric, theta, gi, t_a, p, gas_constair, c_vair, rwvapour, cpwvapour
136 namelist / initial_values / r0, h0, ri, tvent_flag, t0, n, nmag , eval_gsd_flag
138 namelist / density_parameters / diam1 , diam2 , min_rho , max_rho
140 finp =
'flow_model.inp'
142 OPEN(ninp,file=finp,status=
'old')
144 READ(ninp, control_parameters)
146 READ(ninp, flow_parameters)
148 READ(ninp, env_parameters)
150 pi = 4.d0 * atan(1.d0)
153 READ(ninp, initial_values)
155 READ(ninp, density_parameters)
159 granulometry_search:
DO
161 READ( ninp , *,
END = 300 ) card
163 IF( trim(card) ==
'GRANULOMETRY' )
THEN
165 EXIT granulometry_search
169 END DO granulometry_search
173 IF (iclass .LT. 1)
THEN
175 WRITE(*,*)
'INPUT_ASH_FLOW_MODEL: no particle classes'
183 IF ( eval_gsd_flag )
THEN
185 READ(ninp,*) mean_phi, sigma_phi , min_phi , max_phi , c_d_input
193 READ(ninp,*) diam(i), rhosol(i), fracsolid(i), c_d(i)
209 fout5 = trim(run_name)//
'.bak'
211 OPEN(nout5,file=fout5,status=
'unknown')
213 WRITE(nout5, control_parameters)
215 WRITE(nout5, flow_parameters)
217 WRITE(nout5, env_parameters)
219 WRITE(nout5, initial_values)
221 WRITE(nout5, density_parameters)
223 IF (( tend1) .OR. (iclass .EQ. 0))
THEN
225 WRITE(*,*)
'WARNING: input',
'SAMPLING POINTS not found'
229 WRITE(nout5,*)
'''GRANULOMETRY'''
230 WRITE(nout5,*) iclass
232 IF ( eval_gsd_flag )
THEN
234 WRITE(nout5,*) mean_phi, sigma_phi , min_phi , max_phi , c_d_input
240 WRITE(nout5,*) diam(i), rhosol(i), fracsolid(i), c_d(i)
250 out_file = trim(run_name)//
'.flow'
251 out_file2 = trim(run_name)//
'.part'
252 out_file3 = trim(run_name)//
'.dep'
253 out_file4 = trim(run_name)//
'.ep'
256 OPEN(51,file=out_file)
257 OPEN(52,file=out_file2)
258 OPEN(53,file=
'dakota_run.dak')
259 OPEN(54,file=out_file3)
260 OPEN(56, file=out_file4)
262 IF ( eval_gsd_flag )
THEN
264 WRITE(52,177) iclass,phi_dist(1:iclass)
268 177
FORMAT(i5,1x,50(e12.5, 1x))
272 1007 CALL
runend(-1,
'Error: cannot OPEN file: '//fout5)
278 USE current_module, ONLY : r , h , t , solid_mass_flux , u , oned_model, mass_flux, plume_velocity, initial_mf, solidmf_ratio
279 USE particles_module, ONLY : sumsed, fracsolid, v_s, iclass, final, acc_rate, diam, norm_flux, ipf, fpf, rhosol, diam
280 USE particles_module, ONLY : wavelengthfreen, wavelengthshearn, wavelengthfreex, wavelengthshearx, wavelength_height
281 USE particles_module, ONLY : pn, k, ustar, h_bl, ks, eta0, eta, ss0, bv, init_fracsolid, rhosol, diam, phi_dist, no_bins
282 USE mixture_module, ONLY : ri , epsilon , n , beta, pdyn, final_solid_mass_flux
288 REAL*8 :: volume_flux
289 REAL*8 :: mean_grainsize
295 IF ( oned_model )
THEN
303 mass_flux = (beta * u * h * r) * 2 * pi
304 final_solid_mass_flux = (beta * u * h * r) * ( 1.d0 - n )
305 plume_velocity = mass_flux/(3.14d0 * r**2 * beta)
306 solidmf_ratio = final_solid_mass_flux/ initial_smf
308 mean_grainsize = sum( phi_dist(1:no_bins)*fracsolid(1:no_bins))
309 std_dev = sqrt(sum( fracsolid(1:no_bins)*(phi_dist(1:no_bins)- mean_grainsize)**2 ) )
336 pdyn = (0.5 * beta * u **2)* 0.001
340 h_bl = 0.376d0*r*(0.0001d0/(beta*u*r))**(0.2)
347 ustar = (u * k) / log(50 * h_bl /diam(i))
351 acc_rate = (v_s(i) * solid_mass_flux)/( h * u)
355 pn = v_s(i) / (0.4d0 * ustar)
367 ss0(j) = (eta0 / (1 - eta0)) * ((1 - eta(j)) / eta(j)) ** pn
369 bv(j) = (1/(2 * pi)) * (( gi / h ) * ( pn / (eta(j) *(1-eta(j))))) ** 0.5
375 wavelengthfreen = u / maxval(bv)
376 wavelengthshearn = ustar / maxval(bv)
378 wavelengthfreex = u / minval(bv)
379 wavelengthshearx = ustar / minval(bv)
381 wavelength_height = 2 * pi * h * 0.4
394 WRITE(51,100) r , h , u , t , beta , solid_mass_flux , sumsed , ri , &
395 epsilon , volume_flux , n, pdyn
399 WRITE(56,156) r , entrainment_rate
401 WRITE(54,155) r , h , u , v_s , beta, pn, wavelengthfreen, &
402 wavelength_height, acc_rate
404 WRITE(52,177) r , fracsolid
407 100
FORMAT(f12.5,1x,e12.5,1x,e12.5,1x,e12.5,1x,e12.5,1x,e12.5,1x,e12.5, &
408 1x,e12.5,1x,e12.5, 1x,e12.5, 1x,e12.5, 1x,e12.5)
412 155
FORMAT(f12.5,1x,e12.5,1x,e12.5,1x,e12.5,1x,e12.5,1x,e12.5,1x,e12.5, &
415 156
FORMAT(f12.5,1x,e12.5)
417 177
FORMAT(f12.5,1x,50(e12.5, 1x))
424 USE current_module, ONLY : r , h , t , solid_mass_flux , u , oned_model, mass_flux, plume_velocity, initial_mf, solidmf_ratio
425 USE particles_module, ONLY : sumsed, fracsolid, phi_dist, no_bins, iclass, diam, rhosol, v_s, norm_flux
426 USE mixture_module, ONLY : ri , epsilon , n , beta, flow_regime, gas_constmix, c_vmix, initial_velocity
427 USE mixture_module, ONLY : initial_velocity, initial_density, solidvolumefraction, final_solid_mass_flux, initial_smf
433 CHARACTER(len=8) :: x1
435 WRITE(53,*)
'initial mass flux', log10(initial_mf)
436 WRITE(53,*)
'initial_velocity', initial_velocity
437 WRITE(53,*)
'initial_density', initial_density
438 WRITE(53,*)
'solidvolumefraction', solidvolumefraction
439 WRITE(53,*)
'radius', r
440 WRITE(53,*)
'temperature', t
441 WRITE(53,*)
'Gas Mass Fraction', n
442 WRITE(53,*)
'Sedimentation', sumsed
443 WRITE(53,*)
'Flow Velocity', u
444 WRITE(53,*)
'Flow Density', beta
446 WRITE(53,*)
'Flow Height', h
447 WRITE(53,*)
'Flow Regime', flow_regime
448 WRITE(53,*)
'Solid Mass Fraction', 1-n
449 WRITE(53,*)
'Final Mass Flux', mass_flux
450 WRITE(53,*)
'Initial Plume Velocity', plume_velocity
451 WRITE(53,*)
'Gas Mass Constant', gas_constmix
452 WRITE(53,*)
'C_vmix', c_vmix
453 WRITE(53,*)
'deltabeta1', beta - alpha
454 WRITE(53,*)
'deltabeta_g', (beta - alpha) * gi
455 WRITE(53,*)
'settling velocity', v_s
456 WRITE(53,*)
'final_smflux', final_solid_mass_flux
457 WRITE(53,*)
'initial_smflux', initial_smf
458 WRITE(53,*)
'solidMF_ratio', solidmf_ratio
459 WRITE(53,*)
'alpha', alpha
467 WRITE(53,*)
'Diam'//x1,diam(i)
468 WRITE(53,*)
'Frac'//x1,fracsolid(i)
subroutine initialize_particles
Allocating particles variables This subroutine allocates the variables defining the particle sediment...
subroutine initialize
Initialize variables.
Current module This module contains descriptors for the initial conditions of the flow...
Mixture module This module contains all the variables required for describing and calculating the cha...
subroutine allocate_particles
Particle inizialization This subroutine allocates the variables defining the particle physical charac...
Solver Module This module contains the differential equations that are solved at each iteration...
subroutine reainp
Read Input data This subroutine reads input data from the file flow_model.inp.
Particles module This module contains the procedures and the variables related to the solid particles...
environment module This module contains all the variables related to the background environmental con...