procedure tgalactic (Av, waveL, Rv, Arat, extinMags, extinFrat, labCols) real Av {0.109, prompt="Visual extinction in magnitudes"} real waveL {1560, prompt="Wavelength (in A) of output extinction value"} real Rv {3.1, prompt=" Constant: R_v"} bool Arat {yes, prompt="Output value of A/Av at this wavelength?"} bool extinMags {yes, prompt="Output extinction in mags?"} bool extinFrat {yes, prompt="Output extinction as (Ftrue/Fraw)?"} bool labCols {yes, prompt="Label output columns?"} begin # Variable declaAonAvions: real x, ax, bx, Fa, Fb, lam, AonAv, con # constants real Alambda, F_AonAv string labelStr # column label string if (! defpac ("images")) { print("Package IMAGES needs to be loaded.") bye } lam=waveL/1e4 x=1/lam # print ("x ="//x) # print (" ") if (x>=5.9) { # print ("x>=5.9") con=(x-5.9) Fa=(-0.04473*con*con)-(0.009779*con*con*con) Fb=(0.2130*con*con)+(0.1207*con*con*con) } else { # print ("x<5.9") Fa=0.0 Fb=0.0 } ax=1.802-0.316*x-0.104/( ((x-4.67)*(x-4.67))+0.341 ) +Fa bx=-3.090+1.825*x+1.206/( ((x-4.62)*(x-4.62))+0.263 ) +Fb AonAv=ax+bx/Rv Alambda=Av*AonAv F_AonAv=10**(Alambda/2.5) labelStr="#" if (Arat==yes) { printf ("%9.4f", AonAv) labelStr=labelStr//" A/Av" } if (extinMags==yes) { printf ("%9.4f", Alambda) labelStr=labelStr//" A(lam)" } if (extinFrat==yes) { printf ("%9.4f", F_AonAv) labelStr=labelStr//" F(true)/F(raw)" } printf ("\n") if (labCols==yes) { print ("#") print (labelStr) } end