@@ -69,9 +69,9 @@ subroutine f_aero_data_set_frac_dim(ptr_c, frac_dim) bind(C)
6969
7070 ptr_f% fractal% frac_dim = frac_dim
7171
72- end subroutine
72+ end subroutine
7373
74- subroutine f_aero_data_get_frac_dim (ptr_c , frac_dim ) bind(C)
74+ subroutine f_aero_data_get_frac_dim (ptr_c , frac_dim ) bind(C)
7575 type (aero_data_t), pointer :: ptr_f = > null ()
7676 type (c_ptr), intent (in ) :: ptr_c
7777 real (c_double), intent (out ) :: frac_dim
@@ -80,9 +80,9 @@ subroutine f_aero_data_get_frac_dim(ptr_c, frac_dim) bind(C)
8080
8181 frac_dim = ptr_f% fractal% frac_dim
8282
83- end subroutine
83+ end subroutine
8484
85- subroutine f_aero_data_set_vol_fill_factor (ptr_c , vol_fill_factor ) bind(C)
85+ subroutine f_aero_data_set_vol_fill_factor (ptr_c , vol_fill_factor ) bind(C)
8686 type (aero_data_t), pointer :: ptr_f = > null ()
8787 type (c_ptr), intent (in ) :: ptr_c
8888 real (c_double), intent (in ) :: vol_fill_factor
@@ -91,9 +91,9 @@ subroutine f_aero_data_set_vol_fill_factor(ptr_c, vol_fill_factor) bind(C)
9191
9292 ptr_f% fractal% vol_fill_factor = vol_fill_factor
9393
94- end subroutine
94+ end subroutine
9595
96- subroutine f_aero_data_get_vol_fill_factor (ptr_c , vol_fill_factor ) bind(C)
96+ subroutine f_aero_data_get_vol_fill_factor (ptr_c , vol_fill_factor ) bind(C)
9797 type (aero_data_t), pointer :: ptr_f = > null ()
9898 type (c_ptr), intent (in ) :: ptr_c
9999 real (c_double), intent (out ) :: vol_fill_factor
@@ -102,9 +102,9 @@ subroutine f_aero_data_get_vol_fill_factor(ptr_c, vol_fill_factor) bind(C)
102102
103103 vol_fill_factor = ptr_f% fractal% vol_fill_factor
104104
105- end subroutine
105+ end subroutine
106106
107- subroutine f_aero_data_set_prime_radius (ptr_c , prime_radius ) bind(C)
107+ subroutine f_aero_data_set_prime_radius (ptr_c , prime_radius ) bind(C)
108108 type (aero_data_t), pointer :: ptr_f = > null ()
109109 type (c_ptr), intent (in ) :: ptr_c
110110 real (c_double), intent (in ) :: prime_radius
@@ -113,9 +113,9 @@ subroutine f_aero_data_set_prime_radius(ptr_c, prime_radius) bind(C)
113113
114114 ptr_f% fractal% prime_radius = prime_radius
115115
116- end subroutine
116+ end subroutine
117117
118- subroutine f_aero_data_get_prime_radius (ptr_c , prime_radius ) bind(C)
118+ subroutine f_aero_data_get_prime_radius (ptr_c , prime_radius ) bind(C)
119119 type (aero_data_t), pointer :: ptr_f = > null ()
120120 type (c_ptr), intent (in ) :: ptr_c
121121 real (c_double), intent (out ) :: prime_radius
@@ -124,9 +124,9 @@ subroutine f_aero_data_get_prime_radius(ptr_c, prime_radius) bind(C)
124124
125125 prime_radius = ptr_f% fractal% prime_radius
126126
127- end subroutine
127+ end subroutine
128128
129- subroutine f_aero_data_rad2vol (ptr_c , radius , vol ) bind(C)
129+ subroutine f_aero_data_rad2vol (ptr_c , radius , vol ) bind(C)
130130 type (aero_data_t), pointer :: ptr_f = > null ()
131131 type (c_ptr), intent (in ) :: ptr_c
132132 real (c_double), intent (in ) :: radius
@@ -136,9 +136,9 @@ subroutine f_aero_data_rad2vol(ptr_c, radius, vol) bind(C)
136136
137137 vol = aero_data_rad2vol(ptr_f, radius)
138138
139- end subroutine
139+ end subroutine
140140
141- subroutine f_aero_data_vol2rad (ptr_c , vol , radius ) bind(C)
141+ subroutine f_aero_data_vol2rad (ptr_c , vol , radius ) bind(C)
142142 type (aero_data_t), pointer :: ptr_f = > null ()
143143 type (c_ptr), intent (in ) :: ptr_c
144144 real (c_double), intent (in ) :: vol
@@ -148,9 +148,9 @@ subroutine f_aero_data_vol2rad(ptr_c, vol, radius) bind(C)
148148
149149 radius = aero_data_vol2rad(ptr_f, vol)
150150
151- end subroutine
151+ end subroutine
152152
153- subroutine f_aero_data_diam2vol (ptr_c , diam , vol ) bind(C)
153+ subroutine f_aero_data_diam2vol (ptr_c , diam , vol ) bind(C)
154154 type (aero_data_t), pointer :: ptr_f = > null ()
155155 type (c_ptr), intent (in ) :: ptr_c
156156 real (c_double), intent (in ) :: diam
@@ -160,9 +160,9 @@ subroutine f_aero_data_diam2vol(ptr_c, diam, vol) bind(C)
160160
161161 vol = aero_data_diam2vol(ptr_f, diam)
162162
163- end subroutine
163+ end subroutine
164164
165- subroutine f_aero_data_vol2diam (ptr_c , vol , diam ) bind(C)
165+ subroutine f_aero_data_vol2diam (ptr_c , vol , diam ) bind(C)
166166 type (aero_data_t), pointer :: ptr_f = > null ()
167167 type (c_ptr), intent (in ) :: ptr_c
168168 real (c_double), intent (in ) :: vol
@@ -172,6 +172,17 @@ subroutine f_aero_data_vol2diam(ptr_c, vol, diam) bind(C)
172172
173173 diam = aero_data_vol2diam(ptr_f, vol)
174174
175- end subroutine
175+ end subroutine
176+
177+ subroutine f_aero_data_get_species_density (ptr_c , idx , val ) bind(C)
178+ type (aero_data_t), pointer :: ptr_f = > null ()
179+ type (c_ptr), intent (in ) :: ptr_c
180+ integer (c_int), intent (in ) :: idx
181+ real (c_double), intent (out ) :: val
182+
183+ call c_f_pointer(ptr_c, ptr_f)
184+ val = ptr_f% density(idx+1 )
185+
186+ end subroutine
176187
177188end module
0 commit comments