
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	ParseAssertResults	- parse input stream 
assertresults.c	lgCheckAsserts	 checks asserts, last thing cloudy calls, returns TRUE if all are ok, FALSE if problems 
atlas.c	GetAtlas	rebin Kurucz stellar models to match energy grid of code 
atlas.c	DoAtlasInterp	get one of the Atlas model atmospheres, coded by K. Volk 
atlas.c	DoAtlas	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 
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 
badstart.c	BadStart	announce that things are so bad the calculation cannot even start 
bevington.c	Translated	by FOR_C, v4.0 (W), on 01/13/1999 at 18:30:42 
bevington.c	FOR_C	Options SET: cd ct=a do=r fx=gmufilmstuxz" io=p op=ai s=djsz1b - prototypes 
bidiag.c	BiDiag	solve the bi-diagonal matrix for ionization balance 
cddefines.c	 
cddrive.c	cdDrive	main routine to call cloudy under all circumstances) 
cddrive.c	cdReasonGeo	wrte why the model stopped and type of geometry on io file 
cddrive.c	cdWarnings	write all warnings entered into comment stack 
cddrive.c	cdEms	obtain the local emissivity for a line, for the last computed zone 
cddrive.c	cdColm	get the column density 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	cdDLine	get the predicted emergent line intensity, also index for line in stack 
cddrive.c	cdCautions	print out all cautions after calculation, on arbitrary io unit 
cddrive.c	cdGetTe	routine to query results and return temperature of last zone 
cddrive.c	cdTimescales	returns thermal, recombination, and H2 foramtion timescales 
cddrive.c	cdSurprises	print out all surprises on arbitrary unit number 
cddrive.c	cdNotes	print stack of notes about current calculation 
cddrive.c	cdGetPres	routine to query results and return pressure of last zone 
cddrive.c	cdTalk	tells the code whether to print results or be silent 
cddrive.c	cdOutp	redirect output to arbitrary Fortran unit number 
cddrive.c	cdRead	routine to read in command lines when cloudy used as subroutine 
cddrive.c	cdErrors	produce summary of all warnings, cautions, etc, on arbitrary io unit 
cddrive.c	cdIonFrac	get ionization fractions for a constituent 
cddrive.c	cdGetCooling	routine to query results and return cooling of last zone 
cddrive.c	cdTemp	get mean electron temperature for any element 
cddrive.c	cdGetHeating	routine to query results and return heating of last zone 
cddrive.c	cdNoExec	call this routine to tell code not to actually execute 
cddrive.c	cdDate	- puts date of code into string 
cddrive.c	cdVersion	produces string that gives version number of the code 
cddrive.c	cdExecTime	any routine can call this, and find the time since cdInit was called ) prints all input commands into file 
cddrive.c	cdDrive	main routine to call cloudy under all circumstances) 
cddrive.c	cdNwcns	get the number of cautions and warnings, to tell if calculation is ok 
cddrive.c	debugLine	provides a debugging hook into the main line array  
cddrive.c	cdPrtWL	print line wavelengths in Angstroms in the standard format - just a wrapper 
cddrive.c	cdEms_ip	obtain the local emissivity for a line with known index 
cddrive.c	
cdgetlinelist.c	 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 
cdgett.c	
cdgett.c	 NB this routine is seldom used anymore since it is so easy to compute models on the fly and pull results directly with cdLine.  This routine may be removed someday. 
cdinit.c	cdInit	routine to initialize variables, called at start of calculation 
cdspec.c	cdSPEC	returns the spectrum needed for Keith Arnaud's XSPEC 
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	ChargTranSumHeat	sum net heating due to charge transfer 
chargtran.c	HCTIon	H charge transfer ionization 
chargtran.c	HCTRecom	H charge transfer recombination 
chargtran.c	 prototype for block data that is at end of this file 
chargtran.c	ChargTranPun	 punch charge transfer coef 
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	qintr	integrates Q for any continuum between two limits, used for normalization 
conorm.c	pintr	integrates L for any continuum between two limits, used for normalization 
conorm.c	pow1	evaluate luminosity of continuum 
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 
conrec.c	one	of the forms of the continuum escape probability 
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	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	fill	define the continuum energy grid over a specified range 
contcreatepointers.c	ChckFill	perform sanity check confirming that the energy array has been properly filled 
contcreatepointers.c	fiddle	adjust energy bounds of certain cells so that match ionization edges exactly 
contcreatepointers.c	eina	convert a gf into an Einstein A 
contsetintensity.c	ContSetIntensity	derive intensity of incident continuum 
contsetintensity.c	sumcon	sums L and Q for net incident continuum 
contsetintensity.c	ptrcer	show continuum pointers in real time following drive pointers command 
convedenioniz.c	ConvEdenIoniz	called by ConvTempIonz, calls ConvIoniz solving for eden 
convedenioniz.c	esum	sum free electron density over all species, sets variable erredn.EdenTruecalled 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	ConvPresTempEdenIoniz	solve for current pressure, calls PressureChange, ConvTempEdenIonize, called by cloudy 
convprestempedenioniz.c	ConvFail	handle conergece failure 
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	CoolDima	compute cooling due to level 2 lines 
cooldima.c	ColStrGBar	generate g-bar collision strengths for level 2 line2 
coolfluo.c	CoolFluo	evaluate total cooling due to fluorine 
cooling.c	CoolSum	total cooling from all entries into cooling stack 
cooling.c	colzro	set cooling and heating stack to zero 
cooling.c	coladd	add coolants to the cooling stack, called in evaluation of cooling function 
cooliron.c	CoolIron	compute iron cooling 
cooliron.c	fe14cs	compute collision strengths for forbidden transitions 
cooliron.c	Fe4Lev12	compute populations and cooling due to 12 level Fe IV ion 
cooliron.c	Fe2Lev16	compute populations and cooling due to 16 level Fe II 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	DoCoStar	read in and interpolate on costar grid of windy O atmospheres 
costar.c	CompileCoStar	rebin costar stellar atmospheres to match cloudy energy grid, called by the compile stars command 
costar.c	RebinCostar	- called by CompileCoStar to do much of the work 
costar.c	lint	-e713 loss of sign in promotion 
costar.c	lint	-e737 loss of sign in promotion 
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 
csphot.c	csphot	returns photoionization cross section from opacity stage using std pointers 
dielsupres.c	DielSupres	derive scale factors for suppression of Burgess dielectronic recombination 
dooptimize.c	DoOptimize	main driver for optimization runs
dopunch.c	DoPunch	produce punch output during calculation 
dopunch.c	 chTime is 'MIDL' during calculation, 'LAST' at the end 
dopunch.c	PunchNewContinuum	produce the 'punch new continuum' output 
dopunchlinedata.c	DoPunchLineData	punches selected line data for all lines transferred in code 
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	 DynaEndIter called at end of iteration when advection is turned on 
dynamics.c	 DynaStartZone 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	 DynaChangeDensity, called from PressureChange to evaluate new density needed for	current conditions and wind solution, returns ratio of new to old density 
dynamics.c	 DynaZero zero some dynamics variables, called from zero.c 
dynamics.c	 DynaCreateArrays allocate some space needed to save the dynamics structure variables, 	called from DynaCreateArrays 
dynamics.c	 ParseDynaWind parse the wind command, called from ParseCommands 
dynamics.c	
dynamics.c	  >>chng 01 mar 16, incorporate advection within dynamical solutions this file contains the routines that incorporeate effects of dynamics and advection upon the thermal and ionization solutions.   This code was originally developed in March 2001 during a visit to UNAM Morelia, in collaboration with Robin Williams, Jane Arthur, and Will Henney. Development was continued by email, and in a meeting in July/Aug 2001 at U Cardiff
dynamics.c	 
dynamics.c	static	double OldHden;
dynamics.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
fe2dat.c	 There are 373 transitions: 
fe2dat.c	 Wavelength (A) 
fe2dat.c	 absorption oscillator strength 
fe2dat.c	 Energy of lower level (Ryd) 
fe2dat.c	 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	 these are the routines that evaluate the photoionization rates, gammas, throughout cloudy.  a considerable amount of time is spent in these routines, so they should be compiled at the highest possible efficientcy.   The routine are: GammaBn   evaluate photoionization rate for single shell with induced recomb GammaBnPL evaluate photoionization rate for single shell with induced recomb  GammaPrt  special version of gamma function to print strong contributors  GammaK    evaluate photoionization rate for single shell  GammaPL   evaluate photoionization rate for power law photo cross section  GammaPrtRate will print photo rates for all shells of a ion and element 
gammas.c	 
gammas.c	
gammas.c	>>chng 99 apr 16, ConInterOut had not been included in the threshold point for any of these routines.  added it.  also moved thresholds above loop for a few 
gammas.c	
gammas.c	GammaBn	evaluate photoionization rate for single shell with induced recomb 
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 
grnvrydpth.c	GrnVryDpth	set grains abundance as a function of depth into cloud
h1cs123.c	H1cs123	hydrogen collision data levels involving 1s,2s,2p,3. 
h21cm.c	 computes rete for H 21 cm from upper to lower excitation by atomic hydrogen  from A.C. Allison & A. Dalgarno, 1969, ApJ 158, 423 
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	 HeRecom - do recomb coef for He, called by HeLike 
helike.c	static	void HeRecom( 
helike.c	 evaluate collisional rates 
helike.c	static	void HeCollid( long ipZ);
helike.c	 HeCSInterp interpolate on He1 collision strengths 
helike.c	static	float HeCSInterp( long ipZ , long ipHi , long ipLo );
helike.c	 evaluate photoionization rates  
helike.c	static	void HePhoto( long ipZ);
helike.c	 evaluate photoionization rates  
helike.c	static	void HeLevel( long ipZ);
helike.c	 create he-like series, called by ContCreatePointers
helike.c	void	HeCreate(void) 
helike.c	 compute energy diffference in wn and Aul for given line return is 0 for success, 1 for failure
helike.c	static	void he_1trans 
helike.c	 routine to punch table needed for AGN3 - collision strengths of HeIioPun ); 
helike.c	
helike.c	 
helike.c	  
helike.c	  Energy order within 2 3P
helike.c	
helike.c	  The order of the levels within the 2 3P level of atomic helium is opposite
helike.c	  from the order within astrophysically abundant ions.  The indices below
helike.c	  consistently point to the correct level, and the energies are correct,
helike.c	  so the J levels within 2 3P are not in increasing energy order for helium itself. 
helike.c	  This is ok since the atomic data is correct, and the difference in energies is so small.
helike.c	
helike.c	 
helike.c	
helike.c	 
helike.c	the	following block of defines occurs in cddefines.c, and echoed in cddefines.h 
helike.c	const	int ipHe1s1S = 0;
helike.c	const	int ipHe2s3S = 1;
helike.c	const	int ipHe2s1S = 2;
helike.c	const	int ipHe2p3P0 = 3;
helike.c	const	int ipHe2p3P1 = 4;
helike.c	const	int ipHe2p3P2 = 5;
helike.c	const	int ipHe2p1P = 6;
helike.c	
helike.c	level	3
helike.c	const	int ipHe3s3S = 7;
helike.c	const	int ipHe3s1S = 8;
helike.c	const	int ipHe3p3P = 9;
helike.c	const	int ipHe3d3D = 10;
helike.c	const	int ipHe3d1D = 11;
helike.c	const	int ipHe3p1P = 12;
helike.c	
helike.c	level	4
helike.c	const	int ipHe4s3S = 13;
helike.c	const	int ipHe4s1S = 14;
helike.c	const	int ipHe4p3P = 15;
helike.c	const	int ipHe4d3D = 16;
helike.c	const	int ipHe4d1D = 17;
helike.c	const	int ipHe4f3F = 18;
helike.c	const	int ipHe4f1F = 19;
helike.c	const	int ipHe4p1P = 20;
helike.c	
helike.c	
helike.c	 there are nHeLevels[ipZ]+2 levels total 
helike.c	
helike.c	 Set this flag to one of the following values	0	don't print	1	print As	2	print only forbidden As	3	print Es	4	print Threshold Photoionizing Cross-Sections	5	print radiative recombination coefficients.	  6   print Photoionizing Cross-Section grids.	
helium.c	helium	solve ionization balance helium ion, helium singlets, helium triplets 
hetran.c	HeTran	derive escape and destruction probabilities for He lines 
hetran.c	eshe1l	o radiative transfer for helium singlets lines 
highen.c	highen	do high energy radiation field - gas interaction, Compton scattering, etc 
hmiopc.c	hmiopc	derive total H- H minus opacity 
hmole.c	hmole	determine populations of hydrogen molecules 
hmole.c	hmirat	compute radiative association rate for H- 
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 
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	HydroCollid	evaluate collision rate for model hydrogen atom 
hydrocollid.c	HydColDwn	collision strength for collisional de-excitation for any levels of hydrogenic Z
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 
hypho.c	hypho	- create hydrogenic photoionization cross sections 
iiibod.c	iiibod	derive three-body recombination coefficients 
iiibod.c	da	interpolate on three body recombination by Steve Cota 
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	ipoint	returns pointer to any energy within energy mesh 
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 
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, puts hydrogen continua into stack, adds lines into out by combination calls to 
lines.c		PntForLine(2.427e-2,"e-e+",&ipnt);
lines.c		lindst(ee511,511,"e-e+",ipnt,'i',TRUE);
lines.c	 
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	NextDR	use adaptive logic to find next zone thickness 
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	ChkRate	called by nextdr to check how rates of destruction of various species changes 
nsset.c	nsset	generate low and high boundaries for ionization distribution of each element  called by contsetintensity after all lines parsed 
oilevl.c	oilevl	get OI level population with Ly-beta pumping 
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 ipOpac is opacity index within opac ipLowLim is lower freq limit ipUpLim is upper limit abundance is abundance 
opacityadd1subshellinduc.c	OpacityAdd1SubshellInduc	add opacity of individual species, including stimulated emission 
opacityaddtotal.c	OpacityAddTotal	derive total opacity for this position, called by by 
opacitycreateall.c	OpacityCreateAll	compute initial set of opacities for all species 
opacitycreateall.c	OpacityCreate1Element	generate ionic subshell opacities by calling phfit 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	lint	-e713 loss of precission unsigned int to long 
opacitycreateall.c	lint	-e737 loss of sign in promotion 
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 
p8446.c	p8446	drive the solution of OI level populations, Ly-beta pumping 
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	ParseDriveCmnd	parse the drive command - drive calls to various subs 
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	dgaunt	drive gaunt factor routines by letting user query values 
parseelement.c	ParseElement	parse options on element command 
parsef_nu.c	ParseF_nu	parse intensity command parameters 
parsefireball.c	ParseFireBall	parse parameters from fireball command 
parsefluc.c	ParseFluc	parse the fluctuations command 
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	ParseOptimize	parse the optimize command line 
parseoptimize.c	GetOptColDen	read observed column densities & errors for optimizer 
parseoptimize.c	GetOptLineInt	parse observed line intensites for optimization routines 
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	 __unix may not be defined here (this is done in cddefines.h), so we have to cover all bets 
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	pop371	(void) -  main feii routine, called by CoolIron to evaluate iron cooling 
pop371.c	FeIICreate	(void) - read in needed data from file 
pop371.c		convert form of feii data, as read in from file within routine FeIICreate
pop371.c		into physical form.  called by CreateData  error ) called by assert feii depart coef command 
pop371.c	FeIIPrint	(void) print feii information 
pop371.c	FeIICollStrength	(void) - make up collision data for feii 
pop371.c	FeIIPrint	- print output from large feii atom, called by prtzone 
pop371.c	FeIISumBand	 sum up large FeII emission over certain bands, called in lineset4 
pop371.c	FeIITauInc	called once per zone in RTOptDepthIncre to increment large FeII atom line optical depths 
pop371.c	FeIITauAver	reset optical depths for large FeII atom, called by update after each iteration 
pop371.c	FeIIPoint	called by ContCreatePointers to create pointers for lines in large FeII atom 
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	FeIIPunchLines	punch feii lines at end of calculation, if punch verner set, called by dopunch
pop371.c	FeIIEmitOut	add large FeII emission to outward beam - called once per zone in RTDiffuse 
pop371.c	FeIITauInit	zero out storage for large FeII atom, called by tauout 
pop371.c	FeIIIntenZero	zero out intensity of FeII atom 
pop371.c	FeIIZero	initialize some variables, called by zero one time before commands parsed 
pop371.c	FeIIReset	reset some variables, called by zero  ioPUN ) punch line data   ioPUN ) punch some departure coef for large atom, 
pop371.c		set with punch feii departure command
pop371.c	 send the departure coef for physical level nPUN to unit ioPUN 
pop371.c	FeIIPun1Depart	( 
pop371.c		the io unit where the print should be directed ioPUN , 
pop371.c		the physical (not c) number of the level 
pop371.c		nPUN );
pop371.c	 create FeII continuum bins to add lines into ncell cells between wavelengths lambda low and high, returns number of cells used 
pop371.c	FeIIContCreate	(double xLamLow , double xLamHigh , long int ncell );
pop371.c	FeIIBandsCreate	( char chFile[] ) returns number of feii bands 
pop371.c	Fe2RTOut	(void) do outward rates for FeII, called by RTDiffuse 
pop371.c	Fe2RTOTS	( void ) do ots rates for FeII, called by RT_OTS 
pop371.c	RTFeIIMake	called by RTMake, does large FeII atom radiative transfer 
pop371.c	Fe2LyaPump	(void) find rate of Lya excitation of the FeII atom 
pop371.c	Fe2OvrLap	handle overlapping FeII lines 
pop371.c	ParseAtomFeII	parse the atom FeII command 
pop371.c	Fe2PunchLineStuff	include FeII lines in punched optical depths, etc, called from PunchLineStuff 
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
pressurechange.c	 
pressuretotal.c	PressureTotal	determine the gas and line radiation pressures for current conditions, return value is total pressure 
pressuretotal.c	RamPressure	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	PrtComment	analyze model, generating comments on its features 
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 
prtelem.c	PrtElem	print chemical composition at start of calculation 
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 
prtfinal.c	gett2o3	analyze computed [OIII] spectrum to get t^2 
prtfinal.c	gett2	analyze computed structure to get structural t^2 
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 
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 
putextra.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	RadInc	do work associated with geometry increments of this zone, called before RTOptDepthIncre 
radinc.c	pnegopc	punch negative opacities on io unit, iff 'set negopc' command was given 
rauch.c	ConcatRauch	K Volk's routine to compact the 66 Rauch atmospheres into a large ascii file.
rauch.c	DoRauch	get one of the Rauch model atmospheres, coded by K. Volk 
rauch.c	GetRauch	rebin Rauch stellar models to match energy grid of code
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	esc_CRDwing_1side	fundamental escape probability radiative transfer routine, for complete 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	esc_PRD	escape probability radiative transfer for incomplete redistribution 
rtescprob.c	esc_CRDwing	escape probability for CRD with wings 
rtescprob.c	esc_CRDcore	escape probability for CRD with no wings 
rtescprob.c	esca0k2	derive Hummer's K2 escape probability for Doppler core only 
rtescprob.c	RT_DestProb	returns line destruction probability due to continuum opacity 
rtescprob.c	RT_LyaWidth	wrapper to call RT_LineWidth for the special case of Lya 
rtescprob.c	RT_LineWidth	determine half width of any line with known optical depths 
rtescprob.c	
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 
rtots.c	RT_OTS	compute diffuse fields due to H, He atoms, ion, triplets, metal recombination, called by ConvIonizeOpacityDo  
rtots.c	RT_OTS_AddLine	add local destruction of lines to ots field 
rtots.c	RT_OTS_AddCont	add local destruction of continuum to ots field 
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 
rtots.c	RT_OTS_ChkSum	sanity check confirms summed continua reflect contents of individuals 
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	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 
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 
service.c	  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 
service.c	 
service.c	FFmtRead	scan input line for free format number 
service.c	e2	second exponential integral 
service.c	caps	convert input command line (through eol) to ALL CAPS 
service.c	ShowMe	produce request to send information to GJF after a crash 
service.c	AnuUnit	produce continuum energy in arbitrary units 
service.c	cap4	convert first 4 char of input line chLab into chCAP all in caps, null termination 
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	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	NoNumb	general error handler for no numbers on input line 
service.c	sexp	safe exponential function 
service.c	testcode	set flag saying that test code is in place 
service.c	fixit	- say that code needs to be fixed 
service.c	broken	set flag saying that the code is broken, 
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	qg32	32 point Gaussian quadrature, original fortran given to Gary F by Jim Lattimer 
service.c	total_insanity	general error handler for something that cannot happen 
service.c	my_malloc	wrapper for malloc().  Returns a good pointer or dies. 
service.c	bad_malloc	announce memory allocation failure - put breakpoint here to find where 
service.c	spsort	netlib routine to sort array returning sorted indices 
service.c	chLineLbl	use information in line transfer arrays to generate a line label 
service.c	 this label is null terminated 
service.c	chIonLbl	use information in line array to generate a null terminated ion label in "Fe 2" 
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	StartIter	set and save values of many variables at start of iteration 
startenditer.c	RestartIter	restart 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	tfidle	update some temperature dependent variables 
tfidle.c	tauff	compute optical depth where cloud is thin to free-free and plasma freq 
tfidle.c	velset	set thermal velocities for all particles in gas 
theavy.c	theavy	time dependent heavy element ionization balancethis routine currently does not do anything 
timer.c	timer	time dependent models 
toomancon.c	TooManCon	say that too many continua have been entered 
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	GetWerner	rebin Werner stellar atmospheres to match cloudy energy grid 
werner.c	DoWernerInterp	get a single Werner PN atmosphere, by K Volk 
werner.c	DoWerner	read in and interpolate on Werner grid of PN atmospheres, by K Volk 
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 