
aaaa.c	AAAAA	routine keeping track of version numbers                              
abscf.c	abscf	convert gf into absorption coefficient 
agecheck.c	AgeCheck	check various timescales after calculation complete to confirm time steady OK 
amoeba.c	Amoeba	routine for optimizing model parameters 
assertresults.c	InitAssertResults	 this must be called first, done at startup of ParseCommands
assertresults.c	lgCheckAsserts	 checks asserts, last thing cloudy calls, returns TRUE if all are ok, FALSE if problems 
assertresults.c	ParseAssertResults	- parse input stream 
atlas.c	AtlasCompile	rebin Kurucz stellar models to match energy grid of code 
atlas.c	AtlasGetOne	get one of the Atlas model atmospheres, coded by K. Volk 
atlas.c	AtlasInterpolate	interpolate on atlas model atmospheres, by K Volk 
atomseqberyllium.c	AtomSeqBeryllium	compute level populations and emissivity for Be-sequence ions 
atomseqboron.c	AtomSeqBoron	compute cooling from 5-level boron sequence model atom 
atom_oi.c	atom_oi	drive the solution of OI level populations, Ly-beta pumping 
atom_oi.c	oi_level_pops	get OI level population with Ly-beta pumping 
aver.c	aver	compute average of various quantities over the computed geometry  called by startenditer to initialize, radinc to increment, and prtfinal for final results 
bidiag.c	BiDiag	solve the bi-diagonal matrix for ionization balance 
cddrive.c	cdCautions	print out all cautions after calculation, on arbitrary io unit 
cddrive.c	cdColm	get the column density for a constituent  
cddrive.c	cdDate	- puts date of code into string 
cddrive.c	cdDLine	get the predicted emergent line intensity, also index for line in stack 
cddrive.c	cdDrive	main routine to call cloudy under all circumstances) 
cddrive.c	cdDrive	main routine to call cloudy under all circumstances) 
cddrive.c	cdEms	obtain the local emissivity for a line, for the last computed zone 
cddrive.c	cdEms_ip	obtain the local emissivity for a line with known index 
cddrive.c	cdErrors	produce summary of all warnings, cautions, etc, on arbitrary io unit 
cddrive.c	cdExecTime	any routine can call this, and find the time since cdInit was called  ) prints all input commands into file 
cddrive.c	cdGetCooling	routine to query results and return cooling of last zone 
cddrive.c	cdGetHeating	routine to query results and return heating of last zone 
cddrive.c	cdGetPres	routine to query results and return pressure of last zone 
cddrive.c	cdGetTe	routine to query results and return temperature of last zone 
cddrive.c	cdIonFrac	get ionization fractions for a constituent 
cddrive.c	cdLine	get the predicted line intensity, also index for line in stack 
cddrive.c	cdLine_ip	get the predicted line intensity, using index for line in stack 
cddrive.c	cdNoExec	call this routine to tell code not to actually execute 
cddrive.c	cdNotes	print stack of notes about current calculation 
cddrive.c	cdNwcns	get the number of cautions and warnings, to tell if calculation is ok 
cddrive.c	cdOutp	redirect output to arbitrary Fortran unit number 
cddrive.c	cdPrtWL	print line wavelengths in Angstroms in the standard format - just a wrapper 
cddrive.c	cdRead	routine to read in command lines when cloudy used as subroutine 
cddrive.c	cdReasonGeo	wrte why the model stopped and type of geometry on io file 
cddrive.c	cdSurprises	print out all surprises on arbitrary unit number 
cddrive.c	cdTalk	tells the code whether to print results or be silent 
cddrive.c	cdTemp	get mean electron temperature for any element 
cddrive.c	cdTimescales	returns thermal, recombination, and H2 foramtion timescales 
cddrive.c	cdVersion	produces string that gives version number of the code 
cddrive.c	cdWarnings	write all warnings entered into comment stack 
cddrive.c	debugLine	provides a debugging hook into the main line array  
cdgetlinelist.c	cdGetLineList	routine to read in master list of emission line wavelengths and ids, for  generating loc grids,  someday add cdGetNLRLineList 
cdgett.c	cdGett	get input parameters from Cloudy header and predictions from body out output,   used when analyzing stored output  parameters are not converted from logs, results of this  routine are as they appear on the header 
cdinit.c	cdEXIT	exit handler to terminate calculation, called at end of calculation 
cdinit.c	cdInit	routine to initialize variables, called at start of calculation 
cdspec.c	cdSPEC	returns the spectrum needed for Keith Arnaud's XSPEC 
cdspec.c	Spec_cont	called by cdSPEC to generate actual spectrum 
cfit.c	cfit	D Verner's routine to compute collisional ionization rate coefficients 
chargtran.c	ChargTranEval	fill in the HCharExcIon and Rec arrays with Kingdon's fitted CT with H 
chargtran.c	ChargTranPun	 punch charge transfer coef 
chargtran.c	ChargTranSumHeat	sum net heating due to charge transfer 
chargtran.c	HCTIon	H charge transfer ionization 
chargtran.c	HCTRecom	H charge transfer recombination 
cloudy.c	BadStart	announce that things are so bad the calculation cannot even start 
cloudy.c	cloudy	the main routine, this IS Cloudy, ret 0 normal exit, 1 error exit,  called by maincl when used as standalone program 
cmshft.c	cmshft	compute effects of comptonization 
co.c	codriv	- public routine, calls comole to converge molecules 
co.c	comole	fills in matrix for heavy elements molecular routines 
collidionize.c	CollidIonize	fill in collisional ionization rates, and resulting cooling 
conorm.c	conorm	normalize continuum to proper intensity 
conorm.c	pintr	integrates L for any continuum between two limits, used for normalization 
conorm.c	pow1	evaluate luminosity of continuum 
conorm.c	qintr	integrates Q for any continuum between two limits, used for normalization 
conpmp.c	conpmp	local continuum pumping rate radiative transfer for all lines 
conpmp.c	opfun	 routine used to get continuum pumping of lines   used in conpmp in call to qg32 
conpmp.c	vfun	approximate form of Voit function 
contcreatemesh.c	ChckFill	perform sanity check confirming that the energy array has been properly filled 
contcreatemesh.c	ContCreateMesh	calls fill to set up continuum energy mesh if first call,   otherwise reset to original mesh 
contcreatemesh.c	fill	define the continuum energy grid over a specified range 
contcreatemesh.c	read_continuum_mesh	read the continuum definition from the file continuum_mesh.dat 
contcreatemesh.c	rfield_opac_malloc	malloc space for opacity arrays 
contcreatepointers.c	ChckFill	perform sanity check confirming that the energy array has been properly filled 
contcreatepointers.c	ContCreatePointers	set up pointers for lines and continua called by cloudy after input read in 
contcreatepointers.c	eina	convert a gf into an Einstein A 
contcreatepointers.c	fiddle	adjust energy bounds of certain cells so that match ionization edges exactly 
contcreatepointers.c	fill	define the continuum energy grid over a specified range 
contsetintensity.c	ContSetIntensity	derive intensity of incident continuum 
contsetintensity.c	ptrcer	show continuum pointers in real time following drive pointers command 
contsetintensity.c	sumcon	sums L and Q for net incident continuum 
convedenioniz.c	ConvEdenIoniz	called by ConvTempIonz, calls ConvIoniz solving for eden 
convedenioniz.c	esum	sum free electron density over all species, sets variable erredn.EdenTrue called by ConvEdenIoniz which actually controls the electron density updates 
convinittemp.c	ConvInitTemp	drive search for initial temperature, for illuminated face 
convioniz.c	ConvIoniz	called by ConvEdenIonz, it calls ConvIonizeOpacityDo until converged 
convionizeopacitydo.c	ConvIonizeOpacityDo	main routine to drive ionization solution for all species, find total opacity  called by ConvIoniz 
convprestempedenioniz.c	ConvFail	handle conergece failure 
convprestempedenioniz.c	ConvPresTempEdenIoniz	solve for current pressure, calls PressureChange, ConvTempEdenIonize,  called by cloudy 
convtempedenioniz.c	ConvTempEdenIoniz	determine  temperature, called by ConPresTempEdenIoniz,  calls ConvEdenIoniz to get electron density and ionization 
convtempedenioniz.c	MakeDeriv	derive numerical derivative of heating minus cooling 
convtempedenioniz.c	PutHetCol	save heating, cooling, and temperature in stack for numerical derivatives 
coolalum.c	CoolAlum	compute aluminum cooling 
coolargo.c	CoolArgo	compute argon cooling 
coolcalc.c	CoolCalc	compute calcium cooling 
coolcarb.c	CoolCarb	evaluate total cooling due to carbon 
coolchlo.c	CoolChlo	compute chlorine cooling 
coolchro.c	CoolChro	compute chromium cooling 
coolcoba.c	CoolCoba	compute cobalt cooling 
cooldima.c	ColStrGBar	generate g-bar collision strengths for level 2 line2 
cooldima.c	CoolDima	compute cooling due to level 2 lines 
coolfluo.c	CoolFluo	evaluate total cooling due to fluorine 
cooling.c	coladd	add coolants to the cooling stack, called in evaluation of cooling function 
cooling.c	colzro	set cooling and heating stack to zero 
cooling.c	CoolSum	 total cooling from all entries into cooling stack 
cooliron.c	CoolIron	compute iron cooling 
cooliron.c	fe14cs	compute collision strengths for forbidden transitions 
cooliron.c	Fe2Lev16	compute populations and cooling due to 16 level Fe II ion 
cooliron.c	Fe4Lev12	compute populations and cooling due to 12 level Fe IV ion 
coolmagn.c	CoolMagn	compute magnesium cooling 
coolmang.c	CoolMang	compute manganese cooling 
coolneon.c	CoolNeon	evaluate total cooling due to neon 
coolnick.c	CoolNick	compute nickel cooling 
coolnitr.c	CoolNitr	evaluate total cooling due to nitrogen 
cooloxyg.c	CoolOxyg	evaluate total cooling due to oxygen 
coolphos.c	CoolPhos	compute phosphorus cooling 
coolpota.c	CoolPota	compute potassium cooling 
coolpr.c	coolpr	stores coolants before block printed, when printing cooling agents 
coolr.c	coolr	main routine to call others, to evaluate total cooling 
coolscan.c	CoolScan	compute scandium cooling 
coolsili.c	CoolSili	compute silicon cooling 
coolsodi.c	CoolSodi	compute sodium cooling 
coolsulf.c	CoolSulf	compute sulphur cooling 
coolsulf.c	S2cs	compute [sii] collision strengths  compute collision strengths for [SII] transitions   w/in S II ground term. From  >>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996, At. Data Nucl. Data Tables, 63, 57 
cooltita.c	CoolTita	compute titanium cooling 
coolvana.c	CoolVana	compute vanadium cooling 
costar.c	CoStarCompile	rebin costar stellar atmospheres to match cloudy energy grid,  called by the compile stars command 
costar.c	CoStarInterpolate	read in and interpolate on costar grid of windy O atmospheres 
crashdo.c	CrashDo	any of several tests to check that the code can crash 
createdata.c	CreateData	read in some data files, but only if this is very first call 
dielsupres.c	DielSupres	derive scale factors for suppression of Burgess dielectronic recombination 
dooptimize.c	DoOptimize	main driver for optimization runs
drfe.c	drfe	Dielectronic recombination rates for Fe from Arnaud & Raymond 1992 
dumpline.c	DumpLine	print various information about an emission line vector,   used in debugging, print to std out, ioQQQ 
dynamics.c	DynaChangeDensity	 called from PressureChange to evaluate new density needed for  current conditions and wind solution, returns ratio of new to old density 
dynamics.c	DynaCreateArrays	allocate some space needed to save the dynamics structure variables,   called from DynaCreateArrays 
dynamics.c	DynaEndIter	called at end of iteration when advection is turned on 
dynamics.c	DynaIonize	 called from ionize to evaluate advective terms for current conditions 
dynamics.c	DynaStartZone	called at end of iteration when advection is turned on 
dynamics.c	DynaZero	zero some dynamics variables, called from zero.c 
emlinejunk.c	EmLineJunk	set all elements of EmLine struc to dangerous values 
emlinejunk.c	EmLineZero	zeros out the emission line structure 
expion.c	expion	VERY simple two level cooling, do de-excitation or transfer,  complete removal of this routine is high on the to-do list 
extin.c	extin	do extinction of incident continuum as set by extinguish command 
fabden.c	fabden	called by dlaw command, returns density for any density law 
fe26cs123.c	Fe26cs123	line collision rates for lower levels of hydrogenic iron, n=1,2,3 
fe2dat.c	fe2dat	block data storing energy levels for Fred's FeII ground  There are 373 transitions:  Wavelength (A)  absorption oscillator strength  Energy of lower level (Ryd)  Statistical weight of lower level (g) 
fe2ovr.c	fe2ovr	compute FeII overlap with Lya 
fe2ovr.c	fe2par	evaluate FeII partition function 
ffun.c	ffun	evaluate total flux for sum of all continuum sources 
ffun.c	ffun1	derive flux at a specific energy, for one continuum 
firstdr.c	FirstDR	derive thickness of first zone 
fivel.c	fivel	do five level atom population and cooling 
fndlineht.c	FndLineHt	search through line heat arrays to find the strongest heat source 
forlin.c	forlin	derive radiative acceleration due to line absorption of incident continuum 
freeht.c	freeht	evaluate free-free heating due to incident continuum 
func.c	func	actual function called during evaluation of optimization run 
gammas.c	GammaBn	evaluate photoionization rate for single shell with induced recomb 
gammas.c	GammaBnPL	evaluate photoionization rate for single shell with induced recomb 
gammas.c	GammaK	evaluate photoionization rate for single shell 
gammas.c	GammaPL	evaluate photoionization rate for power law photo cross section 
gammas.c	GammaPrt	special version of gamma function to print strong contributors 
gammas.c	GammaPrtRate	print photo rates for all shells of a ion and element 
getgf.c	GetGF	convert oscillator strength into Einstein A  n_ion for C, N, or O recombination lines from Dima's list,  also zero's line in master stack so not entered second time in later dump of all rec lines 
getmaxhline.c	GetMaxhLine	find the strongest heating line 
gffsub.c	gffsub	compute gaunt factors for any charge, drive Hummer routine, mod by J Ferguson 
grain.c	grain	main routine to converge grains thermal solution 
h1cs123.c	H1cs123	hydrogen collision data levels involving 1s,2s,2p,3. 
h21cm.c	H21cm	computes rate for H 21 cm from upper to lower excitation by atomic hydrogen  
h21cm.c	h21_t_ge_20	computes rate for H 21 cm from upper to lower excitation by atomic hydrogen  
h21cm.c	h21_t_lt_20	computes rate for H 21 cm from upper to lower excitation by atomic hydrogen   
hdexct.c	hdexct	compute collision strength for collisional deexcitation for hydrogen atom,   from Vriens and Smeets 
he1col.c	he1col	evaluate collisional rates for helium singlets 
he1gma.c	he1gma	evaluate photoionization rates for helium singlets 
he1jbr.c	he1jbr	returns continuum occupation number for helium singlet lines 
he1lev.c	he1lev	evaluate ionization balance level populations for helium singlets 
he1rad.c	he1rad	evaluate radiative rates for helium singlets 
he2cs123.c	He2cs123	line collision strengths for lower levels of helium ion, n=1,2,3, by K Korista 
he3col.c	he3col	compute collisional rates for helium triplets 
he3gma.c	he3gma	compute photoionization rates for helium triplets 
he3lev.c	he3lev	compute ionization balance level populations for helium triplets 
he3rad.c	compute	radiative rates for helium triplets 
heatpunch.c	HeatPunch	punch contributors to local heating, with punch heat command 
heatsum.c	HeatSum	evaluate heating and secondary ionization for current conditions 
heatsum.c	HeatZero	is called by ConvIonizeOpacityDo 
helike.c	AGN_He1_CS	routine to punch table needed for AGN3 - collision strengths of HeI 
helike.c	AngerJ	- integral in formula used to calculate RI2.  Called by scqdri, calls qg32.
helike.c	correct2	- small routine to correct inaccuracies of Aul's for lower  level n = 1 and 2. 
helike.c	cross_section	- calculates the photoionization cross_section for a given level and photon energy
helike.c	defect	defect - calculate quantum defect. 
helike.c	forbidden	calculates transition probabilities for forbidden transitions. 
helike.c	HeCollid	evaluate collisional rates 
helike.c	HeCreate	create he-like series, called by ContCreatePointers 
helike.c	HeCSInterp	interpolate on He1 collision strengths 
helike.c	HeLevel	evaluate photoionization rates  
helike.c	HePhoto	evaluate photoionization rates  
helike.c	HeRecom	- do recomb coef for He, called by HeLike 
helike.c	he_1trans	compute energy diffference in wn and Aul for given line  return is 0 for success, 1 for failure
helike.c	He_cross_section	returns cross section (cm^-2),   given EgammaRyd, the photon energy in Ryd,  ipLevel, the index of the level, 0 is ground, 3 within 2 3P,  ipZ is charge, equal to 1 for Helium   this is a wrapper for cross_section 
helike.c	he_energy	- calculates energy of a given level. 
helike.c	Jint	- integrand in formula used to calculate RI2.  
helike.c	orbit	- produces orbit designations for output.
helike.c	printstuff	- a few lines below, printflag determines what will be printed.
helike.c	radrecomb	- calculates radiative recombination coefficients. 
helike.c	RecomInt	- Integral in milne relation.  Called by qg32. 
helike.c	ritoa	- converts the square of the radial integral for a transition   (calculated by scqdri) to the transition probability, Aul. 
helike.c	scqdri	- calculates square of radial integral for a given allowed transition. 
helium.c	helium	solve ionization balance helium ion, helium singlets, helium triplets 
hetran.c	eshe1l	o radiative transfer for helium singlets lines 
hetran.c	HeTran	derive escape and destruction probabilities for He lines 
highen.c	highen	do high energy radiation field - gas interaction, Compton scattering, etc 
hmole.c	hmirat	compute radiative association rate for H- 
hmole.c	hmole	determine populations of hydrogen molecules 
hmrate.c	hmrate	compile molecular rates using Hollenback and Mckee fits,  called by hmole and comole  
hpdata.c	blkdata4	-0 hydrogen cross sections 
hpfit.c	hpfit	state specific photoionization cross sections for model hydrogen atom  for any level up through NHYDRO_MAX_LEVEL defined 401L in cddefines.h 
hrfit.c	hrfit	calculates state-specific recombination rates for hydrogen and hydrogen-like ions
hydcolion.c	HydColIon	calculate hydrogenic ionization rates for all n, and Z
hydcs123.c	Hydcs123	Hydrogenic de-excitation collision strengths bewteen levels n=1,2,3,  for any charge.  routine only called by hydrocollid to fill in hydroline arrays  with collision strengths 
hydrobranch.c	HydroBranch	compute branching ratios for Jason Ferguson's model hydrogen atom 
hydrocollid.c	HydColDwn	collision strength for collisional de-excitation for any levels of hydrogenic Z
hydrocollid.c	HydroCollid	evaluate collision rate for model hydrogen atom 
hydrocool.c	HydroCool	compute net cooling due to hydrogenc atom species, ground state   photoionization of hydrogenic species done in sumheat 
hydrocreate.c	HydroCreate	create data for hydrogen and helium, 1 per coreload, called by ContCreatePointers   in turn called after commands parsed 
hydroeinsta.c	HydroEinstA	calculates Einstein A's from  osillator strengths
hydrogenic.c	Hydrogenic	main routine to call HydroLevel and determine model hydrogen atom level balance 
hydrolevel.c	HydroLevel	solve for ionization balance level populations of model hydrogen atom  calls HydroLevelPop or HydroT2Low 
hydrolevelpop.c	HydroLevelPop	solve for ionization balance level populations of model hydrogen atom 
hydrooscilstr.c	HydroOscilStr	computes hydrogenic oscillator strengths, Johnson L.C., 1972 ApJ 174 227  Used in the function hdexct. 
hydropesc.c	HydroPesc	evaluate escape and destruction probabilities for hydrogen lines,  called by RTMake 
hydrophoto.c	HydroPhoto	photoionization, recombination, radiative rates for model hydrogen atom 
hydroreccool.c	HydroRecCool	hydrogen recombination cooling, called by HydroCool 
hydrorecom.c	HydroRecom	photoionization, recombination, radiative rates for model hydrogen atom 
hydrot2low.c	HydroT2Low	called to do hydrogenic level populations when temp too low for matrix 
hyperfine.c	HyperfineCreat	establish space for hf arrays, reads atomic data from hyperfine.dat 
hyperfine.c	HyperfineCS	- returns collision strengths for hyperfine struc transitions 
hypho.c	hypho	- create hydrogenic photoionization cross sections 
h_bauman.c	hv	calculates photon energy in ergs for n -> n' transitions for H and H-like ions              
h_bauman.c	H_Einstein_A	calculates Einstein A for any nlz                                                
h_bauman.c	H_photo_cs	returns hydrogenic photoionization cross section in cm-2                           
iiibod.c	da	interpolate on three body recombination by Steve Cota 
iiibod.c	iiibod	derive three-body recombination coefficients 
ionalumi.c	IonAlumi	ionization balance for aluminum 
ionargon.c	IonArgon	compute ionization balance of argon 
ionberyl.c	IonBeryl	ionization balance for beryllium 
ionboron.c	IonBoron	ionization balance for boron 
ioncalci.c	IonCalci	perform ionization balance for calcium 
ioncarbo.c	IonCarbo	compute ionization balance for carbon 
ionchlor.c	IonChlor	ionization balance for chlorine 
ionchrom.c	IonChrom	do ionization balance for chromium 
ioncobal.c	IonCobal	do ionization balance for cobalt 
ioncoppe.c	IonCoppe	do ionization balance for copper 
ionfluor.c	IonFluor	compute ionization balance for fluorine 
ioniron.c	IonIron	ionization balance for iron 
ionlithi.c	IonLithi	compute ionization balance for lithium 
ionmagne.c	IonMagne	ionization balance for magnesium 
ionmanga.c	IonManga	derive ionization balance for manganese 
ionneon.c	IonNeon	ionization balance for neon 
ionnicke.c	IonNicke	ionization balance for nickel 
ionnitro.c	IonNitro	ionization balance for nitrogen 
ionoxyge.c	IonOxyge	derive ionization balance for oxygen 
ionphosi.c	IonPhosi	derive ionization balance for phosphorus 
ionpotas.c	IonPotas	compute ionization equilibrium for Potassium 
ionscand.c	IonScand	do ionization balance for scandium 
ionsilic.c	IonSilic	determine ionization balance of Silicon 
ionsodiu.c	IonSodiu	ionization balance for sodium 
ionsulph.c	IonSulph	compute ionization balance for sulphur 
iontitan.c	IonTitan	determine ionization balance for titanium 
ionvanad.c	IonVanad	do ionization balance for vanadium 
ionzer.c	ionzer	zero out heating save arrays 
ionzinc.c	IonZinc	ionization balance for zinc 
ipoint.c	ipContEnergy	generate unique pointer to energy within continuum array  continuum energy in Rydbergs 
ipoint.c	ipLineEnergy	generate unique pointer to line energy within energy mesh  line energy in Rydbergs 
ipoint.c	ipoint	returns pointer to any energy within energy mesh 
ipshells.c	ipShells	assign continuum energy pointers to shells for all atoms,  called by ContCreatePointers 
kurucz79.c	kurucz79	obtain interpolated Kurucz stellar atmosphere 
level2.c	level2	do level population and cooling for two level atom,  side effects:  set elements of EmLine struc  cooling via  coladd( chLab, (long)t->WLAng , t->cool);  cooling derivative  ots rates RT_OTS_AddLine( t->ots , t->ipCont); 
level3.c	level3	compute three level atom, 10, 21, and 20 are line 
leveln.c	LevelN	compute an arbitrary N level atom 
lgendfun.c	lgEndFun	after each zone by Cloudy, determines whether model is complete 
ligbar.c	ligbar	obtain collision strength for any Li-sequence line 
limitsh.c	LimitSh	sets upper energy limit to subshell integrations 
linadd.c	linadd	enter lines into the line storage array, called once per zone
lindst.c	lindst	add local line intensity to line luminosity stack 
lindst.c	PntForLine	generate pointer for forbidden line 
linefit.c	LineFit	effective recombination coefficients for lines of C, N, O, by D. Verner  /
lines.c	lines	main routine to put emission line intensities into line stack,  calls lineset1, 2, 3, 4 
lines_continuum.c	lines_continuum	put energetics, H, and He lines into line intensity stack 
lines_general.c	lines_general	put general information and energetics into line intensity stack 
lines_grains.c	lines_hydro	put H-iso seq into line intensity stack 
lines_helium.c	lines_helium	put energetics, H, and He lines into line intensity stack 
lines_hydro.c	lines_hydro	put H-iso seq into line intensity stack 
lines_lv1_k_zn.c	lines_lv1_k_zn	place lines of elements potatium and heavier into lines storage stack 
lines_lv1_li_ne.c	lines_lv1_li_ne	place lines of elements lithium through neon into lines storage stack 
lines_lv1_na_ar.c	lines_lv1_na_ar	place lines of elements sodium through argon into lines storage stack 
lines_molecules.c	lines_molecules	put energetics, H, and He lines into line intensity stack 
linpack.c	DGETRF	lapack service routine 
maincl.c	main	program that reads input and calls cloudy to compute a single model, or  try to optimize an observed model.  Routine returns 0 if model is ok,   and 1 if problems occurred. 
makecs.c	MakeCS	compute collision strength by g-bar approximations 
makelevlines.c	MakeLevLines	convert level 1 and level 2 line parameters and pointers into internal form   used by code 
makerecomb.c	lint	-e817 pclint generates tons of bogus nelem < 0 warnings
makerecomb.c	MakeRecomb	generate recombination coefficients for any species 
makerecomb.c	MakeRecombAGN	generate recombination coefficients for AGN table 
matin1.c	matin1	matrix inversion routine used throughout the code
mean.c	MeanInc	increment mean ionization fractions and temperatures over computed structure, in RadInc 
mean.c	MeanZero	zero mean of ionization fractions array 
mean.c	RadMean	do radius mean ionization fractions or temperature over radius for any element 
mean.c	VolMean	do volume mean ionization fractions or temperature over volume for any element 
mihals.c	mihals	generate continuum from Mihalas stellar atmosphere 
molcol.c	molcol	generate and print molecular column densities 
negcon.c	negcon	sanity check for negative continuum intensities 
nextdr.c	ChkRate	called by nextdr to check how rates of destruction of various species changes 
nextdr.c	ContRate	called by nextdr to find energy of maximum continuum-gas interaction 
nextdr.c	GrainRateDr	called by nextdr to find grain heating rate dr 
nextdr.c	NextDR	use adaptive logic to find next zone thickness 
nsset.c	nsset	generate low and high boundaries for ionization distribution of each element   called by contsetintensity after all lines parsed 
opacityadd1element.c	OpacityAdd1Element	enter total photo cross section for all subshells into opacity array 
opacityadd1subshell.c	OpacityAdd1Subshell	add opacity due to single shell to main opacity array
opacityadd1subshell.c	OpacityAdd1SubshellInduc	add opacity of individual species, including stimulated emission 
opacityaddtotal.c	OpacityAddTotal	derive total opacity for this position,  called by by 
opacitycreateall.c	hmiopc	derive total H- H minus opacity   NB NB NB  NB NB NB NB NB NB NB  NB NB NB NB  everything set here must be written to the opacity store files   
opacitycreateall.c	OpacityCreate1Element	generate ionic subshell opacities by calling phfit 
opacitycreateall.c	OpacityCreateAll	compute initial set of opacities for all species 
opacitycreateall.c	Opacity_iso_photo_cs	returns photoionization cross section for isoelectronic sequences 
opacitycreateall.c	opacity_more_memory	allocate more memory for opacity stack 
opacityzero.c	OpacityZero	zero out opacity save arrays, save old opacity in OldOpacSave array 
outer.c	outer	determine outer shell, and statistical weights of that and higher ion, for any ion  written by Dima Verner 
parseabsmag.c	ParseAbsMag	parse the absolute magnitude command 
parseabundances.c	ParseAbundances	parse and read in composition as set by abundances command 
parseage.c	ParseAge	parse parameters off the age command 
parseagn.c	ParseAgn	parse parameters for the AGN continuum shape command 
parseatomco.c	ParseAtomCO	parse information from the rotor command line 
parseatomhelike.c	ParseAtomHeLike	parse parameters off the helium command 
parseatomhlike.c	ParseAtomHLike	parse information from the hydrogen command line 
parsebackgrd.c	ParseBackgrd	parse options for the BACKGROUND command 
parseblackbody.c	ParseBlackbody	parse parameters off black body command 
parsecommands.c	ParseCommands	main command line parser, decode command, then call other routines to read 
parsecompile.c	ParseCompile	compile werner or kurucz model atmospheres into cloudy format, originallly by K Volk,  also compile opacity and grains  
parseconstant.c	ParseConstant	parse parameters from the 'constant ...' command 
parsecoronal.c	ParseCoronal	parse parameters off coronal equilibrium command 
parsedlaw.c	ParseDLaw	parse parameters on the dlaw command 
parsedont.c	ParseDont	parse the dont command - do not do something 
parsedrivecmnd.c	dgaunt	drive gaunt factor routines by letting user query values 
parsedrivecmnd.c	DrvCaseBHS	allow user to query hydrogen A's, asks for up, low level, gives A, drive hyas 
parsedrivecmnd.c	DrvHyas	allow user to query hydrogen A's, asks for up, low level, gives A, drive hyas 
parsedrivecmnd.c	ParseDriveCmnd	parse the drive command - drive calls to various subs 
parseelement.c	ParseElement	parse options on element command 
parsefireball.c	ParseFireBall	parse parameters from fireball command 
parsefluc.c	ParseFluc	parse the fluctuations command 
parsef_nu.c	ParseF_nu	parse intensity command parameters 
parseglobule.c	ParseGlobule	parse parameters off the globule command 
parsegrain.c	ParseGrain	parse parameters on grains command 
parsegrainp.c	ParseGrainP	parse parameters on pgrains command   this will become the default grains at some future time
parsehden.c	ParseHDEN	parse the hden command 
parseinit.c	ParseInit	bring an initialization file into input stream before parse  
parseinterp.c	ParseInterp	parse parameters on interpolate command 
parseionpar.c	ParseIonPar	parse the ionization parameter command 
parsemap.c	ParseMap	parse map command to produce map of heating and cooling,  map is produced by calling punt(" map") 
parsemetal.c	ParseMetal	parse parameters on metal command 
parsenorm.c	ParseNorm	parse parameters on the normalize command 
parseoptimize.c	GetOptColDen	read observed column densities & errors for optimizer 
parseoptimize.c	GetOptLineInt	parse observed line intensites for optimization routines 
parseoptimize.c	ParseOptimize	parse the optimize command line 
parseplot.c	ParsePlot	parse the plot command 
parseplot.c	ParsePlotRangeOption	parse range from plot command 
parsepowerlawcontinuum.c	ParsePowerlawContinuum	parse the power law continuum command 
parseprint.c	ParsePrint	parse the print command  
parseprint.c	prt_constants	print physical constants 
parsepunch.c	ParsePunch	parse the punch command 
parseradius.c	ParseRadius	parse the radius command 
parserangeoption.c	ParseRangeOption	parse the range option on the luminosity command 
parseratio.c	ParseRatio	derive continuum luminosity of this continuum relative to previous 
parseset.c	ParseSet	scan parameters off SET command 
parsesphere.c	ParseSphere	parse parameters on sphere command 
parsestop.c	ParseStop	parse the stop command 
parsetable.c	ParseTable	parse the table read command 
parsetrace.c	ParseTrace	read in options off the trace command line 
pcontn.c	pcontn	print information about continuum if requested with PRINT CONTINUUM command 
pfeii.c	pfeii	create punch output describing pumping of FeII by Lya 
pgaunt.c	pgaunt	called by punch gaunts command to output gaunt factors 
phfit.c	phfit	derive photoionization cross sectoins for first 30 elements 
photoionize.c	PhotoIonize	fill array PhotoRate with photoionization rates for heavy elements 
phymir.c	phymir	Peter van Hoof's optimization routine 
plankf.c	plankf	evaluate Planck function for any cell at current electron temperature 
plot.c	plot	master routine to generate some sort of plot 
pmeani.c	pmeani	print mean ionization fractions or temperatures for all elements 
pop3.c	pop3	solve 3-level atom without radiative transfer, returns pops of level 2 and 3 
pop371.c	AssertFeIIDep	called by assert feii depart coef command 
pop371.c	Fe2LyaPump	find rate of Lya excitation of the FeII atom 
pop371.c	Fe2OvrLap	handle overlapping FeII lines 
pop371.c	Fe2PunchLineStuff	include FeII lines in punched optical depths, etc, called from PunchLineStuff 
pop371.c	Fe2RTOTS	do ots rates for FeII, called by RT_OTS 
pop371.c	Fe2RTOut	do outward rates for FeII, called by RTDiffuse 
pop371.c	FeIIAccel	called by forlin to compute radiative acceleration due to FeII lines 
pop371.c	FeIIAddLines	save accumulated FeII intensities called by lineset4 
pop371.c	FeIIBandsCreate	returns number of feii bands 
pop371.c	FeIICollStrength	make up collision data for feii 
pop371.c	FeIIContCreate	create FeII continuum bins to add lines into ncell cells between wavelengths lambda low and high,  returns number of cells used 
pop371.c	FeIICreate	read in needed data from file   convert form of feii data, as read in from file within routine FeIICreate  into physical form.  called by CreateData  
pop371.c	FeIIEmitOut	add large FeII emission to outward beam - called once per zone in RTDiffuse 
pop371.c	FeIIIntenZero	zero out intensity of FeII atom 
pop371.c	FeIIPoint	called by ContCreatePointers to create pointers for lines in large FeII atom 
pop371.c	FeIIPrint	print feii information 
pop371.c	FeIIPrint	print output from large feii atom, called by prtzone 
pop371.c	FeIIPun1Depart	send the departure coef for physical level nPUN to unit ioPUN 
pop371.c	FeIIPunchLines	punch feii lines at end of calculation, if punch verner set, called by dopunch
pop371.c	FeIIPunData	punch line data  
pop371.c	FeIIPunDepart	punch some departure coef for large atom,   set with punch feii departure command
pop371.c	FeIIReset	reset some variables, called by zero 
pop371.c	FeIISumBand	sum up large FeII emission over certain bands, called in lineset4 
pop371.c	FeIITauAver	reset optical depths for large FeII atom, called by update after each iteration 
pop371.c	FeIITauInc	called once per zone in RTOptDepthIncre to increment large FeII atom line optical depths 
pop371.c	FeIITauInit	zero out storage for large FeII atom, called by tauout 
pop371.c	FeIIZero	initialize some variables, called by zero one time before commands parsed 
pop371.c	ParseAtomFeII	parse the atom FeII command 
pop371.c	pop371	 main feii routine, called by CoolIron to evaluate iron cooling 
pop371.c	RTFeIIMake	called by RTMake, does large FeII atom radiative transfer 
popexc.c	popexc	do level population for simple two level atom, no radiative transfer 
powell.c	Powell	- spectrum minimization routine -  logic closely based on routine in Press et al,  but totally recoded to be redistributable 
pressurechange.c	PressureChange	called by ConvPresTempEdenIoniz  evaluate the current pressure, change needed to get it to converge,  aplies this correction factor to all gas constituents,  sets conv.lgConvPres true if good pressure, false if pressure change capped
pressuretotal.c	PressureTotalDo	determine the gas and line radiation pressures for current conditions,  return value is total pressure 
pressuretotal.c	RamPressureDo	determine the ram pressure for current conditions 
prt.c	PrtElem	print chemical composition at start of calculation 
prt.c	prt_LineLabels	punch all labels and wavelengths for emission line array 
prt.c	sprt_wl	write wavelength to string - must be kept parallel with prt_wl 
prtalltau.c	PrtAllTau	master routine controlling printout of optical depths at end of calculation 
prtcomment.c	badprt	print out coolants if energy not conserved 
prtcomment.c	chkCaHeps	check whether CaII K and H epsilon overlap 
prtcomment.c	outsum	sum outward continuum beams 
prtcomment.c	PrtComment	analyze model, generating comments on its features 
prtelem.c	PrtElem	print chemical composition at start of calculation 
prtfinal.c	gett2	analyze computed structure to get structural t^2 
prtfinal.c	gett2o3	analyze computed [OIII] spectrum to get t^2 
prtfinal.c	PrtFinal	create PrtFinal pages of printout, emission line intensities, etc 
prtfinal.c	StuffComment	routine to stuff comments into the stack of comments, def in lines.h 
prtheader.c	PrtHeader	print program's header, including luminosities and ionization parameters 
prtlinepres.c	PrtLinePres	print line radiation pressures for current conditions 
prtlinesum.c	PrtLineSum	parse print line sum command to enter set of lines into sum  
prtmet.c	prtmet	print all line optical depths at end of iteration 
prtzone.c	PrtZone	print out individual zone results 
punchdo.c	pun1Line	called by PunchLineStuff to produce output for one line 
punchdo.c	punch	h emiss, for chapt 4, routine is below 
punchdo.c	PunchDo	produce punch output during calculation,  chTime is 'MIDL' during calculation, 'LAST' at the end 
punchdo.c	PunchLineStuff	punch optical depths or source functions for all transferred lines 
punchdo.c	PunchNewContinuum	produce the 'punch new continuum' output 
punchdo.c	PunchNewContinuum	produce the 'punch new continuum' output 
punchdo.c	PunLineIntensity	produce the 'punch lines intensity' output 
punchlinedata.c	Punch1LineData	punch data for one line 
punchlinedata.c	PunchLineData	punches selected line data for all lines transferred in code 
puncool.c	PunCool	punch coolants 
punlin.c	punlin	parse punch lines command, or actually do the punch output 
punopac.c	PunOpac	punch total opacity in any element, punch opacity command 
punresults.c	punResults	punch results from punch results command 
punresults.c	PunResults1Line	do single line of output for the punch results and punch line intensity commands 
punspec.c	PunSpec	generate output for the punch special command 
punt.c	punt	produce map of heating-cooling space for specified zone, called as result of  map command  
putcs.c	PutCS	enter a collision strength into an individual line vector 
putline.c	PutExtra	enter and 'extra' intensity source for some line 
putline.c	PutLine	enter local line intensity into the intensity stack for eventual printout 
radacl.c	radacl	radiative acceleration due to incident continuum, calls forlin for lines
radinc.c	pnegopc	punch negative opacities on io unit, iff 'set negopc' command was given 
radinc.c	RadInc	do work associated with geometry increments of this zone, called before RTOptDepthIncre 
rauch.c	RauchCompile	rebin Rauch stellar models to match energy grid of code
rauch.c	RauchConcatenate	K Volk's routine to compact the 66 Rauch atmospheres into a large ascii file.
rauch.c	RauchInterpolate	get one of the Rauch model atmospheres, coded by K. Volk 
rayleh.c	rayleh	compute Rayleigh scattering cross section for Lya 
rdinit.c	rdinit	initial readar array for storing line images at start of calculation     line image is up and low case                                 
readck.c	readck	check for sanity after commands all read in 
readelement.c	ReadElement	find which element name occurs on current command line,   return Atom Num-1 so on c scale 
readtable.c	ReadTable	called by TABLE READ to read in continuum from PUNCH TRANSMITTED CONTINUUM 
receff.c	receff	generate escape probability function for continua, 
refindex.c	RefIndex	calculates the index of refraction of air using the line energy in wavenumbers,  used to convert vacuum wavelengths to air wavelengths. 
rrfit.c	rrfit	calculates rates of radiative recombination for all ions 
rtdiffuse.c	RTDiffuse	evaluate local diffuse emission for this zone,  fill in ConEmitLocal and ThrowOut arrays with diffuse emission,  ots rates for this zone were set in RT_OTS,  called by Cloudy, this routine adds energy to the outward beam 
rtescprob.c	esca0k2	derive Hummer's K2 escape probability for Doppler core only 
rtescprob.c	esc_CRDcore	escape probability for CRD with no wings 
rtescprob.c	esc_CRDwing	escape probability for CRD with wings 
rtescprob.c	esc_CRDwing_1side	fundamental escape probability radiative transfer routine, for complete redistribution 
rtescprob.c	esc_PRD	escape probability radiative transfer for incomplete redistribution 
rtescprob.c	esc_PRD_1side	fundamental escape probability radiative transfer routine for incomplete redistribution 
rtescprob.c	RTesc_lya	escape prob for hydrogen atom Lya, using Hummer and Kunasz results,  called by hydropesc 
rtescprob.c	RT_DestProb	returns line destruction probability due to continuum opacity 
rtescprob.c	RT_LineWidth	determine half width of any line with known optical depths 
rtescprob.c	RT_LyaWidth	wrapper to call RT_LineWidth for the special case of Lya 
rtlinetauinc.c	RTLineTauInc	increment optical depths for all heavy element lines, zone by zone,  mainly called by RTOptDepthIncre, but also by FeII 
rtmake.c	RTMake	do escape and destruction probs for all lines in code.    Called with FALSE arg by ionize, to only redo destruction probabilites,  and with TRUE by cloudy to do both escape and destruction 
rtmakestat.c	RTMakeStat	do line radiative transfer for static geometry,  evaluates escape and destruction probability,   called by HydroPEsc, RTMake  
rtmakewind.c	RTMakeWind	do line radiative transfer for wind geometry 
rtoptdepthincre.c	RTOptDepthIncre	increment optical depths once per zone, called after RadInc 
rtoptdepthinit.c	RTOptDepthInit	set initial outward optical depths at start of first iteration,  it is only called by cloudy one time per complete calculation, just after  continuum set up and before start of convergence attempts.     RTOptDepthReset after first iteration, updates the optical depths, mirroring this  routine but with the previous iteration's variables 
rtoptdepthreset.c	RTOptDepthReset	after first iteration, updates the optical depths, mirroring this  routine but with the previous iteration's variables 
rtots.c	RT_OTS	compute diffuse fields due to H, He atoms, ion, triplets, metal recombination,  called by ConvIonizeOpacityDo  
rtots.c	RT_OTS_AddCont	add local destruction of continuum to ots field 
rtots.c	RT_OTS_AddLine	add local destruction of lines to ots field 
rtots.c	RT_OTS_ChkSum	sanity check confirms summed continua reflect contents of individuals 
rtots.c	RT_OTS_Update	sum flux, otscon, otslin, ConInterOut, outlin, to form SummeDif, SummedCon SummedOcc 
rtots.c	RT_OTS_Zero	- zero out some vectors -   this is only called when code initialized by ContSetIntensity 
rttauupdate.c	RTTauUpdate	computes average of old and new optical depths for new scale at end of iter,  called by update, also pop371 
sanitycheck.c	NB	- this routine must not change any global variables - any that are changed as part of  a test must be reset, so that the code retains state   a set of standard routines that are widely used across the code for various  houeskeeping chores.  These do not do any physics, and are unlikely to  change over time.   the prototypes are in cddefines.h and so are automatically picked up by all routines  
sanitycheck.c	SanityCheck	 check that various parts of the code still work, called by Cloudy after continuum  and optical depth arrays are set up, but before initial temperature and ionization 
service.c	AnuUnit	produce continuum energy in arbitrary units 
service.c	bad_malloc	announce memory allocation failure - put breakpoint here to find where 
service.c	broken	set flag saying that the code is broken, 
service.c	cap4	convert first 4 char of input line chLab into chCAP all in caps, null termination 
service.c	caps	convert input command line (through eol) to ALL CAPS 
service.c	cdEXIT	the routine that should be called to exit cloudy 
service.c	chIonLbl	use information in line array to generate a null terminated ion label in "Fe 2" 
service.c	chLineLbl	use information in line transfer arrays to generate a line label 
service.c	csphot	returns photoionization cross section from opacity stage using std pointers 
service.c	dbg_printf	is a debug print routine that was provided by Peter Teuben,  as a component from his NEMO package.  It offers run-time specification  of the level of debugging 
service.c	e2	second exponential integral 
service.c	FFmtRead	scan input line for free format number 
service.c	fixit	- say that code needs to be fixed 
service.c	fudge	enter fudge factors, or some arbitrary number, with fudge command
service.c	GetElem	scans line image, finds element. returns atomic number j, on C scale 
service.c	GetQuote	get any name between double quotes off command line  return string as chLabel, is null terminated 
service.c	insane	set flag saying that insanity has occurred 
service.c	lgMatch	determine whether match to a keyword occurs on command line,  return value is 0 if no match, and position of match within string if hit 
service.c	my_malloc	wrapper for malloc().  Returns a good pointer or dies. 
service.c	NoNumb	general error handler for no numbers on input line 
service.c	qg32	32 point Gaussian quadrature, original fortran given to Gary F by Jim Lattimer 
service.c	sexp	safe exponential function 
service.c	ShowMe	produce request to send information to GJF after a crash 
service.c	spsort	netlib routine to sort array returning sorted indices 
service.c	testcode	set flag saying that test code is in place 
service.c	this	label is null terminated 
service.c	total_insanity	general error handler for something that cannot happen 
setabundances.c	SetAbundances	sets initial abundances after parameters are entered by reading input 
setfpenv.c	SetFPEnv	set FP environment to crash on div by zero 
setinp.c	setinp	sets input lines to feed into cloudy in optimization runs 
smeets.c	smeets	generate hydrogenic collisional ionization rate coefficients   for quantum number n 
startenditer.c	RestartIter	restart iteration 
startenditer.c	StartIter	set and save values of many variables at start of iteration 
startendzone.c	EndZone	last routine called after all zone calculations, before lgEndFun,  upon exit radiation field is for outer edge of current zone 
startendzone.c	StartZone	set variables that change with each zone, like radius, depth,  upon exit flux will be flux at center of zone about to be computed 
strbst.c	strbst	generate abundance set from Fred Hamann's starburst evolution grid 
strk.c	strk	compute stark broadening escape probabilities using Puetter formalism 
tababun.c	tababun	interpolate on table of points to do 'element table' command, 
tabden.c	tabden	interpolate on table of points for density with dlaw table command, by K Volk 
texcline.c	TexcLine	derive excitation temperature of line from contents of line array 
tfidle.c	tauff	compute optical depth where cloud is thin to free-free and plasma freq 
tfidle.c	tfidle	update some temperature dependent variables 
tfidle.c	velset	set thermal velocities for all particles in gas 
theavy.c	theavy	time dependent heavy element ionization balance this routine currently does not do anything 
timer.c	timer	time dependent models 
totlin.c	totlin	sum total intensity of cooling, recombination, or intensity lines 
trimstages.c	TrimStages	raise or lower most extreme stages of ionization considered,  called by ConvIonizeOpacityDo 
twophoton.c	ehe12p	two photon emission from helium singlets 
twophoton.c	eva2nu	two photon emission function for hydrogen 
twophoton.c	twopht	hydrogen two photon emission, including induced emission 
veclib.c	dgeco	one of the veclib routines that lives on the Exemplar 
warnings.c	wcnint	initialize stack or warnings, cautions, notes 
werner.c	WernerCompile	rebin Werner stellar atmospheres to match cloudy energy grid 
werner.c	WernerInterpolate	read in and interpolate on Werner grid of PN atmospheres, by K Volk 
werner.c	WernerInterpolate_one	get a single Werner PN atmosphere, by K Volk 
zero.c	rfield_opac_zero	zero out rfield arrays between certain limits 
zero.c	zero	zero out or initialize variables, called by cdInit, but also by func during optimization,  this is called before any commands are parsed 
zeroabund.c	ZeroAbund	set initial abundances for different mixes 
zerologic.c	Zerologic	set initial values for logical variables 
