pro partl, n1,r1,s1,n2,r2,s2,mbin,wavl,index, $ ; input ext,sca,abc,bac,vol,sfc ; output ;---------------------------------------------------------------- ; ; purpose: ; Partl returns aerosol extinction and scattering coefficients ; at the specified wavelengths, for particles with a log-normal ; size distribution and specified refractive index. ; ; parameters: ; ; input: ; n1,r1,s1,n2,r2,s2...the lognormal size distribution parameters, ; set n2 = 0 for a unimodal distribution. ; n1 = mode 1 concentration, cm-3 ; r1 = mode 1 median radius, microns ; s1 = mode 1 distribution width, unitless ; n2 = mode 2 concentration, cm-3 ; r2 = mode 2 median radius, microns ; s2 = mode 2 distribution width, unitless ; ; mbin.......max # of bins in size distribution (100 is plenty, 50 is good and saves time) ; wavl.......wavelength (microns), can be an array ; index......complex index of refraction, can be an array of the same size as wavl ; ; output: ; sca........scattering coeff., 1/km, an array if wavl and index are arrays ; ext........extinction coeff., 1/km, " ; abc........absorption coeff., 1/km, " ; bac........backscatter, 1/km 1/sr, " ; vol........the total aerosol volume, um^3/cm^3 ; sfc........the total aerosol surface area, um^2/cm^3 ; ; subroutines called: ; ; lognorm -> calculates the differential concentration of aerosol ; for a specified size distribution as f(r) ; ; intmie -> integrates the Mie cross sections ; ; source: Mark Hervig ; ;----------------------------------------------------------------------------- ;---- setup some variables nw = n_elements(wavl) ; # wavelengths ni = n_elements(index) ; # indices if (nw ne ni) then begin print,'array dimensions of wavelenght and index do not match in partl.pro' stop endif ext = fltarr(nw) sca = fltarr(nw) abc = fltarr(nw) bac = fltarr(nw) ;---- call lognorm to compute distribution values lognorm, n1,r1,s1,n2,r2,s2,mbin, $ ; input nbin,width,radi,dconc,vol,sfc ; output conc = dconc * width ;---- integrate the Mie cross sections over the size distribution for i = 0,nw-1 do begin ; loop over wavelengths intmie, wavl(i),index(i),radi,conc, $ ; input sext,ssca,sabs,sbac ; output ext(i) = sext sca(i) = ssca abc(i) = sext - ssca bac(i) = sbac endfor return end