http://www.strw.leidenuniv.nl/~moldata/ is where all the molecular data is from. To plot the data used use this fragment: window, 3, xsize=1200, ysize=700 plot, moldata[0,*], moldata[2,*], /xlog, /ylog, thick=2, xtitle='H2 number density', ytitle='emission per molecule', title='solid: C^18O(2-1), dashed: N_2H^+(1-0), and dashed-dotted: NH_3(1,1)', charsize=2 oplot, moldata[0,*], moldata[1,*], linestyle=2, thick=2 oplot, moldata[0,*], moldata[3,*], linestyle=3, thick=2 Email from Mark: I have attached both the data and the code. The data is in the files moltab.txt and kappatab.txt. The file moltab.txt contains 4 columns. The first column is the density, and the next 3 columns are the frequency-integrated emissivity per molecule for the the C^18O(2-1), N_2H^+(1-0), and NH_3(1,1) lines for optically thin gas at a temperature of 10 K -- by per molecule I mean per molecule of the emitting species, so you need to multiply by your favorite abundance. The file kappatab.txt gives the opacities. It is in the same format, but gives the frequency-integrated opacity per molecule for those 3 lines. For the code, I have attached the IDL routines emissivity.pro and absorptivity.pro, which generated these tables. They both call the subsidiary routine getlevpop.pro. I have also included the routine maketables.pro, which was used to generate moltab.txt and kappatab.txt. The routines emissivity and absorptivity return the frequency-integrated absorptivity and emissivity per molecule. They each take 5 arguments: j = emissivity(n, t, upper, lower, molfile), where n = H_2 density in cm^-3, t = temperature in K, upper = level of upper state, lower = level of lower state, and molfile = name of molecular data file. The molecular data file is a text file in the format provided by the Leiden Atomic and Molecular Database. I have not included these files in the e-mail. You can download them from the Leiden site. Levels are ordered by energy, starting with 0 = ground state, 1 = lowest energy excited state, etc. Caveat: these routines do not treat hyperfine structure. For lines that have hyperfine structure the emissivity and absorptivity returned are its value integrated over all hyperfine components. If you want you can handle this by using a more complex line shape function that takes into account the hyperfine structure. Let me know if you have any questions about these files. -- -Mark