-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathmain.f90
37 lines (31 loc) · 1.21 KB
/
main.f90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program main
use pmc_spec_file
use pmc_aero_data
use pmc_aero_mode
use pmc_aero_dist
use pmc_aero_state
implicit none
type(spec_file_t) :: f_aero_data, f_aero_dist
type(aero_data_t) :: aero_data
type(aero_dist_t) :: aero_dist
type(aero_state_t) :: aero_state
integer, parameter :: n_part = 100
integer :: n_part_add
real(kind=dp), dimension(n_part) :: num_concs, masses
call spec_file_open("aero_data.dat", f_aero_data)
call spec_file_read_aero_data(f_aero_data, aero_data)
call spec_file_close(f_aero_data)
call spec_file_open("aero_dist.dat", f_aero_dist)
call spec_file_read_aero_dist(f_aero_dist, aero_data, .false., aero_dist)
call spec_file_close(f_aero_dist)
call aero_state_zero(aero_state)
call fractal_set_spherical(aero_data%fractal)
call aero_state_set_weight(aero_state, aero_data, &
AERO_STATE_WEIGHT_NUMMASS_SOURCE)
call aero_state_set_n_part_ideal(aero_state, dble(n_part))
call aero_state_add_aero_dist_sample(aero_state, aero_data, &
aero_dist, 1d0, 1d0, 0d0, .true., .true., n_part_add)
num_concs = aero_state_num_concs(aero_state, aero_data)
masses = aero_state_masses(aero_state, aero_data)
print *, dot_product(num_concs, masses), "# kg/m3"
end