Cloudy 90 Revision History
This page summarizes all major changes and improvements to C90. In some cases
the summary includes a link to the Hot Fixes page. Hot Fixes
changes to the coding to correct problems not yet fixed in the distributed
source. These fixes will be incorporated in the next release of the code
Changes in Hazy that have occurred since its last printing (Oct 1997) are
This plot shows the lifetime in days, of each sub-version of
version 90 of the code. For example, C90.01 was released about 40 days
after the original version, C90.00, which lived for 37 days. C90.01
was replaced after 100 days. For versions 90.00 through 90.03 each new
release was marked by the discovery and correction of fairly significant errors
in the code. C90.04 was over 500 days old when it was replaced by C90.05
and no significant problems were uncovered. C90.05 fixed a few small
things that have been uncovered and incorporate some major changes in atomic
data, and is the last Fortran version of the code.
C90.05 1999 July 9
Better fits to Shull and van Steenberg iron
radiative recombination rate coefficients. Their rate
coefficients do not have the correct low and high temperature behavior.
Dima Verner has refit them with the correct formula, and instructions for this
update are on the hot
fixes page. Thanks for Daniel Savin for pointing out this problem with
the Shull and van Steenberg fits.
New collision data for transitions within the ground term of
CI and OI. Thanks to Rene Liseau for originally making these changes, and
to Peter van Hoof for putting them into C90.05.
punch ages command added. The resulting output will
give the depth into the cloud, and timescales (seconds) for (col2) cooling,
(col3) H2 formation, (col4) CO formation, and (col5)
Charge transfer energy exchange added, as described in
Kingdon & Ferland (1999).
Improved treatment of HeI Lya transport,
with significant in the predicted intensity of the HeI 2.06
mm line. A paper has appeared in the ApJ describing this (the
ADS), and the small change to the code that incorporates this is on the
Hot Fixes page.
halo abundance PN central stars atmospheres are now included.
Both halo and solar grids are available, and the temperature range now extends
to 1,000,000 K. The installation is described in this new version of the
There is now an option to compile only a few of the available stellar
atmospheres continua. This is the "only" keyword followed by the
name of the author of the stellar atmosphere, as described in the stars'
Diffuse continuum bin added near 1585A. This appears
within the emission line printout.
Outwardly transmitted lines were not added properly into the
continuum for some punch and print commands. punch continuum was ok, but
the punch transmitted continuum command was affected by this problem. A
correction is on the Hot Fixes page.
Thanks to Peter van Hoof for discovering this problem.
C90.04 1997 November 21
Problem with *.ini file and interpolate command.
An ini file is a file with frequently-used commands, used with the ini
command. If this file contains the interpolate command to read in an
interpolated continuum, and the set of continue lines was followed by exactly
one more command line, the counter to the next command line would not be reset
properly. The program would loop until it had read in the ini file 10
times, when it would stop saying that the limit to the number of continua had
been exceeded. The correction requires editing several files and will be
in place if/when another revision to C90 is released. For now the solution
is to not follow the interpolate/continue set with exactly one more command.
The program will work properly if no further commands follow, or if two more
more commands follow. 1997 Dec 23. Thanks to Emmanuel Moy for
uncovering this problem.
Crash on Ultra Sparc for very low temperature models.
The code has not been extensively tested on Ultra Sparcs, although it has been
developed on a Sparc 20. Some details of the floating point handling
appear to be different on the two CPUs. In particular the code crashed in
routine level3 for one set of models. A correction is posted on the
Hot Fixes page.
1997 Dec 29. Thanks to Anton Koekemoer for uncovering this problem.
Numerical discontinuity in H_2 populations in PDR
calculations. The rate for the reaction H2+ + H => H2 + H+
was taken from the H2 + H+ rate and the LTE populations of H2 and H2+.
Both involved very large exponentials, that cancel out. This became
numerically unstable when the exponentials were very large. This
caused discontinuities in the temperature when H2 cooling was significant.
The correction in the Hot
Fixes page is to avoid the exponentials by canceling them before they occur.
1998 Jan 2.
Common block needed to use fabden was commented out.
FABDEN is a function that can generate a hydrogen density from an analytical
law. It communicates with the command DLAW through a common block
that was commented out in the source. It needs to be replaced to work.
A correction is posted on the Hot Fixes page.
1998 Feb 27. Thanks to Dick Henry for uncovering the problem.
Changes to C90.03
Changes that do not appear in the Hot Fixes page will appear in C90.04.
|Resolution of the continuum binning in the 1 to 10 micron range
has been improved. This was inspired by recent NICMOS data. As a
result of the change in the energy grid it will be necessary to recompile the
stellar atmospheres, and recompute any transmitted continua used in the table
|The code could crash due to overflow when the hydrogen
column density scale length exceeded 10^38 cm. Protection is described
in the Hot Fixes
|IR lines of FII, PII, and PIII added.|
|Continuum normalization was not exact for interpolate
command continuum shapes. The intensity could be off by 5 percent, if
the continuum had a great deal of structure.|
|The punch lines intensity every command did not punch
results from the first zone when the every option was larger than 100.
|Kevin Volk incorporated the large grid of Rauch stellar
atmospheres into the code. These are for several gravities and many
temperatures, extending from hot O stars through the range of PN nuclei.|
|All emission lines are now in the continuum array. The
plots of the predicted spectrum produce by the punch continuum command are now
more spectacular, especially if the line contrast is increased with the set
|Resolution of the optical continuum has been improved.
This was largely to better resolve the large number of lines now present.|
|Charge transfer rate coefficient for Si3+ + He has been
updated to Fang, Z., & Kwong, V., 1997, ApJ 483, 527.
It is now about 30% faster.|
|Line radiation pressure has been expanded to include all lines.
Radiation pressure due to trapped lines is included as described ApJ
285, L11-L14 and ApJ 305, 35-44. Lya is generally
the dominant contributor. The original implementation included only a dozen or
so of the stronger lines in addition to Lya. When
the permitted lines were moved to the current line transfer arrays the
stronger lines were split into multilevel atoms. The ratio of level
populations was not calculated properly by level3, the routine that handled
such lines as CIV 1549 and MgII 2798 (thanks to Weihsueh Chiu for catching
this problem). The original coding, which handled each line on a case by case
basis, was removed and all 10^4 transferred lines are now included in the line
radiation pressure. The effect of these many lines is to increase the total
radiation pressure, in some cases by orders of magnitude.|
|The program could have trouble converging a 2000 K cloud exposed
to hard x-rays. A correction is in the Hot Fixes page.|
|An argument to routine tabden had the incorrect type. A
correction is in the Hot Fixes page.|
|All collision data for HeI atom, singlets and triplets,
updated to Sawey and Berrington, Atomic Data & Nucl. Data Tables, 55, 81. The
Lya collision rate is somewhat smaller than the
|CO matrix inversion routine could fail when OH abundance
became small in fully molecular limit. A correction is in the
Hot Fixes page.|
|Hydrogen three body recombination rate was multiplied by the wrong
variable. This affected the approach to exact LTE at very high
densities. A correction is in the Hot Fixes page.|
|The punch lines intensity command produced output on the
wrong file when more than one punch command was entered. A correction is in
the Hot Fixes
|Energy exchange due to HeI and HeII 1s-2s collisions not
calculated. Heating and cooling due to collisional exchange between
the 1s and 2s levels of the helium singlets and ion were not included. This
had a significant effect for certain situations where the Lya transition of
helium was a significant heating or cooling agent, but had no effect on the
standard test cases. A correction is in the Hot Fixes page.
|Several instabilities were encountered in grain-free low
density HII regions. These mostly had to do with the gas opacity being very
small in the Balmer continuum, and the resulting interactions with strong
lines such as Lya. |
|Logic error in electron density predictor-corrector inhibited
convergence. A correction is in the Hot Fixes page.|
|Cooling derivatives for HeI and HeII lines not computed.
These were not calculated within the appropriate heating-cooling loop. The
only effect was to inhibit the code's convergence.|
|Lya -- HeI 2^3S oscillations
could occur for dust-free models. A correction is in the
Hot Fixes page.|
|Data statement out of order in hypho.f. This was flagged
as a Fortran error in some compilers but had no other effect. The fix is in
the Hot Fixes
|Lines added with print all command not rescaled with
normalize command, if normalization factor was not unity. The
correction is in the Hot Fixes page.|
|C90.03a Typo in nWerner in block data.
This had no effect in Lexington but did effect the table star werner
command for Brian Espey. The correction is in the Hot Fixes page,
and has been made to the source in the web site. |
|Collision strength for SIII 1194 changed to Tayal 1997,
ApJ 481, 550, about 2x larger than previous number.|
|Acknowledgments: Many thanks to Dana Balser,
Jane Charlton, Weihsueh Chiu, Brian Espey, Jim Kingdon, George Jacoby, Vincent
Le Brun, Valentina Luridiana, Bhaswati Mookerjea, Rafael Reyes, Ravi Sankrit,
Henrik Spoon, Michele Thornley, Karen Vanlandingham,
and Bob Williams for finding problems or making improvements with C90.03.|
90.03, 1997 May 9
This should will be the next to final version of C90. The final version of
C90 will be released at the end of the summer to clean up whatever remaining
problems are uncovered. Hazy will be reprinted at that time, to reflect changes
and additions to the code since the original release of C90.
Fixes and changes to C90.02 - these are also described in the
C90.02 Hot Fixes page.
|Missing factor of electron density in diffuse heavy element
recombination rates. This caused the contribution to the diffuse
fields due to the elements heavier than helium to be underestimated for
electron densities greater than one, and overestimated for electron densities
less than one. In extreme cases energy was not conserved as a result (the
code's sanity checked caught that). |
|All recombination lines of C, N, and O added from
Nussbaumer and Storey (A&AS 56, 293) and Pequignot,
D., Petitjean, P., and Boisson, C., 1991, A&A 251, 680.|
|All collisional ionization rate coefficients
updated to Voronov, G.S., 1997, ADNDT 65, 1.|
|Added [NaV] 1365, 2067, 4017, [ArIII] 3109, 5192,
and several [FeII] lines coming from the highest term in the 16 level atom.|
|Incorrect index on evaluation of heating derivative.
This did not affect results but did hinder convergence. |
|Wrong ion stage appeared multiplying the cooling due to the
helium singlets. The |
|Wrong temperature used in rate coefficient for ionic
recombination onto grain surfaces. The grain temperature was
used, and the electron temperature should have been. The|
|Zoning became too large near illuminated face of the cloud.
This introduced noise at the five percent level in predicted intensities of
high ionization lines. The problem was introduced in C90.02 and did not affect
|Abundances of rare species in ISM and HII Region mixes
were updated with values from Table 5 of Savage and Sembach 1996, Ann Rev 34,
|Charge transfer recombination of highly ionized
species onto atomic hydrogen was added using A. Dalgarno's new rate
coefficient (Ferland, Korista, Verner, and Dalgarno, ApJ Let submitted). |
|The [Ar IV] model atom was increased to the five
lowest levels, and the collision data updated to Ramsbottom, Bell, and Keenan,
1997, MNRAS 284, 754|
|Collision strengths for [FeX], [FeXI], and [FeXIV]
coronal lines changed to unity. Morisset and Pequignot (A&A 313, 611)
outline the many serious problems with collision strengths for lines of these
ions. They simply are not known to factors of 3.|
|Continuum mesh was too coarse near the 4 Ryd He
ionization edge. The star files will have to be recompiled if this change is
|The format of the punch element command was
expanded to give one more significant figure.|
|Collision strengths for [Fe VII] 6087, 5722, were
too small by a ratio of statistical weights. They should have been 2.96 times
|Escape probabilities were not computed on second
and later iterations if the first iteration was fully ionized. This caused the
continuum pumping rate to be overestimated for these models.|
|Energies and wavelengths of the FIR line list has
been updated using ISO wavelengths (Feuchtgruber et al. A&A ISO results issue.
Two [FeVII] FIR lines, 9.51 and 7.81 microns, were
|Six [Ca VII] lines, 4.09, 6.15 microns, and 5620,
4941, 2112, 3688A, were added.|
|Routine level3 was not fully protected against round off errors.
Under some extreme circumstances negative level populations would result. This
was successfully trapped by the code, which then stopped.|
|Arnaud and Rothenflug (A&AS 60, 425) fits to collisional
ionization rates were discontinuous. This is only a problem when
the expansion to E1 proposed by AR is used. Routine
colfit has been
modified to use a more exact representation of E1. The problem affected all
versions of C90, as well as all codes that use the original Arnaud and
Rothenflug expansion. It introduced discontinuities in the ionization,
heating, and cooling of some models, causing temperature failures to occur.
|Several small problems related to the convergence
of the code, including numerical estimates of temperature derivatives of
several quantities, have been fixed.|
|The collision strength for [Ar VI] 4.53 m was
entered incorrectly. |
|The collision strength for [S IV] 10 micron line
updated to Saraph, Storey, and Tully, Meudon Conf. poster paper.|
|The normalize command now has an optional label to
insure that the desired line is actually matched. There was a possible
degeneracy when more than one line had the same integer wavelength.|
|The dlaw command now has an option to read in a
table of radii and densities, and then interpolate the density structure from
this table. The original version of this code was provided by Kevin Volk.|
|The table stars atlas command had
interpolated on the linear stellar flux to obtain continua at temperatures not
in the original Kurucz grid. This produced some curvature in the interpolated
continuum in the Wien tail. The attached figure shows the number of
helium-ionizing photons (greater than 4 Ryd) as a function of stellar
temperature. The dark blue points indicate the interpolated values resulting
from the algorithm used in versions 84 through 90.02. This was changed to
interpolation in the log of the flux by Kevin Volk for version 90.03. The
resulting interpolated results are shown as the lighter colored curve.|
Acknowledgments: Many thanks to Mike Brotherton,
Simon Casassus, John Houck, James Kingdon, Anthony Leonard, Valentina Luridiana,
Tino Oliva, Enrique Perez, Sandra Savaglio, Jon Slavin, Henrik Spoon, and Kevin
Volk for finding problems or making improvements with C90.02.
90.02, 1996 Nov 1
Fixes and changes:
|Certain subshells had zero photoionization cross section
Three ions, CaI, CaII, and KI, have no 3d shell, the electronic
structure goes from 3p to 4s. Cloudy detected the empty 3d shell by the
resulting zero photoionization cross section. Because of these empty shells
with zero cross section, it was not possible to include a general sanity check
that all photoionization cross sections were positive. The 1996 version of
Opacity Project (OP) photoionization data where possible (Verner et al. ApJ,
465, 487). OP results often show very strong electron correlation so it is not
meaningful to separate the cross sections for adjacent shells (this is
generally true for the 2s and 2p shells). As a result certain subshells have
zero photoionization cross section over the energy range where OP data were
used. Cloudy thought these were empty shells and so ignored them, resulting in
an underestimation of the photoionization rate. The bug is apparent from the
output of the punch opacity element command, and affected the
ionization balance of most elements to some extent, especially for energetic
continua. Besides fixing the problem, Cloudy now includes a general sanity
check that the total photoionization cross sections of all ions of
all elements are positive at all energies.|
|Abundances of trace stages of ionization were not reliable in
constant temperature single zone calculations. The convergence
criteria for the constant temperature command have been
improved, so that trace stages of ionization are more reliable. The code
iterates to determine the ionization distribution of the heavy elements, and
to include multiple electron ejection processes. During a normal
photoionization calculation the ionization distribution is reevaluated many
times during the search for the thermal solution, and the ionization
distribution always converged during this process. At the end of the thermal
loop, the stability of the ionization solution was examined by checking the
abundances of significant stages of ionization. These checks were
sufficient for thermal equilibrium calculations but not for the case
of a constant temperature single zone calculation - in this case the
abundances of trace stages of ionization (less than 1e-4 fractional abundance)
could be off by very large amounts since the code saw no reason to converge
these. The solution for trace stages was generally valid by the second or
third zone. Logic has been added to the constant temperature driver to
converge all stages of ionization by the first zone. This affected all
versions of C90, and C84 as well.|
|The final results in ApJS 106, 205- 211 have been incorporated. This
resulted in significant changes in charge transfer rate coefficients for a few
species, notably FeIV.|
|two more significant figures in the energy grid produced in the
punch continuum command, to avoid having degenerate energies near 1
|more problems associated with 'fast' compilations on Dec Alphas fixed or
trapped with sanity checks.|
|small changes in A's for N IV] 1486 (ApJ 455, 758) and O IV] 1401 (NIST
|The line labels and intensities of [P X] 2.708 and 1.868 microns were
incorrect due to a typo in one of the large block datas.|
|[K IV] 5.98, 15.4 micron, and [K VI] 8.8, 5.6 micron lines added.|
|better protection against hydrogen maser problems.|
|if the calculation extends to very low temperatures the analysis of the [OIII]
spectrum will derive incorrect [OIII] temperatures since the collision
strength at the temperature of the last computed zone is used. |
|limit to number of levels possible in hydrogen atom increased to 50|
|3 lowest ground terms of FeII now broken out as large number of IR lines
with 16 level atom. Highest level of atom is temperature dependent so that
FeII cooling can be calculated for very low temperatures.|
|Inward fractions of hydrogen lines not computed correctly. this only
affected the part of the line labeled 'Inwd'. |
|Temperature fits to collision strengths of following IR lines were
improved, especially for lower temperatures: [MG VII], [AL VIII], [Si X], [S
III], [Si VII], [CaV], [CaIV], [KIII], [K XI], [F IV], [P X], [P VIII], [Cl
X], [Ar XI], [Ne II], [Na III], [Mg IV], [Al V], [Si VI], [P VII], [S VIII], [Cl
IX], [Ar X].|
Acknowledgments: Many thanks to Mike
Goad, Uffe Hellsten, Enrique Perez, Greg Schwarz, Eric Shulman, Stephanie
Snedden, Henrik Spoon, and James Wadsley for finding problems with C90.01 and
90.01, 1996 July 24
Fixes and changes:
|sphere static command did not work properly, caused continuum
pumping to be overestimated on second and further iterations. |
|punch transmitted continuum command did not work properly. The
continuum it produced was corrupted. |
|Part IV of Hazy has been revised to give a better description of the
emission line output. This version will be ready in a month or two. For now
there is an addendum to Part IV giving a more complete description of the
lines (see under Hazy on the C90 web page). |
|background command redshift dependence changed to Vedel, H., Hellsten, U.,
and Sommer-Larsen, J., 1994, MNRAS 271, 743. |
|Several problems were fixed using the -fast compile option on Alphas. |
|Atomic data for C II 1335, N IV 765, C III 1175, S V 1178, changed. |
|dielectronic recombination added as excitation process for N II 1085, C
III 1176, O III 835, O IV 789, O V 630, and Si III 1207 |
|all lines of F sequence put into code from Saraph&Tully 1994, A&AS 107,
29, K XI through Fe X VIII |
|Wavelength of [S VIII] 9918 changed to 9913. The 6.98 [Ar II] line
wavelength is changed to 69 from 70. |
|collision strength of [Fe X] 6374 changed to Pelan and Berrington, A&AS
110, 209, does not agree with Mohan et al ApJ 434, 389. Present cs is 10x
larger than before 90.01, Einstein A changed to Bhatia and Doscheck, ADNDT 60,
97 1995. |
|nkrd, the limit to the number of input lines, increased to 500
|the output from the punch emitted continuum command has been consolidated.
Column 1 is the photon energy, 2 is the line and continuum emission from the
illuminated face of the cloud, 3 is the emission from the shielded face, and 4
is the sum. |
|open command status changed to 'unknown' on line 74 of GetWerner and line
111 of GetAtlas |
|two level atoms only computed populations when Boltzmann factor was
significant. Logic changed to do calculation when either Boltzmann factor
significant OR continuum pumping significant. |
|He I 2.06 micron line optical depth was clobbered in beta 3. Now back in,
with correction for stimulated emission. |
|Cl sequence atomic data filled out with Pelan and Berrington A&AS 110,
209, all lines in this reference are now included, major change in cs for [Ar
|table read command only worked if it was the last continuum
source entered |
|Line output changed: Two sets of lines had the same label and wavelength.
These have been changed to unique entries. The following table shows this.
|He I 2
||Ca B 2
||case b intensity of 2.06 micron he I line
||He I 2
||predicted intensity of 2.06 micron He I line
||total intensity of iron K-alpha
|punch lines intensity command now punches first zone, and does
not punch lines with zero intensity. |
Acknowledgments: Many thinks to Brian Espey, John
Kartje, Randolf Klein, Paul O'Brien, Enrique Perez, Dimitra Rigopoulou, Randall
Smith, Henrik Spoon, and Kevin Volk for finding problems with c90.00.
90.00 1996 June 17
Acknowledgments: Many thinks to Brian
Espey, and Uffe Hellsten for finding problems with beta 4 of the code.
beta 4 1996 June 9
This is actually c89.28.
Fixes: Nearly all had to do with
problems on machines which use stack memory. . Sparcs use static memory, and
there were several instances where local variables were not saved but should
have been. This resulted in variables being reinitialized to zero when routines
were reentered, in turn causing other problems. I believe I have now caught all
these instances, and have run the code on a Cray 90 with both stack memory and
Acknowledgments: Many thinks to Mike
Kopko, James Wadsley, Brian Espey, and Peter van Hoof for finding problems with
beta 3 of the code. Mike Kopko's help in obtaining access to a Cray was
invaluable in making the corrections done here.
Note: This version has a few more lines
than beta 3, and many more than are listed in Part III of Hazy. Please let me
know of any lines still missing.
beta 3 1996 May 23
This is actually c89.20.
Fixes: Problem with lowest energy continuum point.
Stability problem for warm neutral gas. False alarm on energy conservation for
very soft radiation fields. Collision strengths for H Lyman alpha, beta, and
Balmer alpha updated. Many more IR lines. Numerical instability deep in
Compton-thick clouds exposed to intense radiation fields. Punch transmitted
continuum had numerical error. Compiles with Microsoft Powerstation Fortran.
Free-free gaunt factors were discontinuous in the infrared.
Acknowledgments: Many thanks to Mike Brotherton, Mark
Elowitz, Jim Kingdon, Mike Kopko, and Kevin Volk for finding problems with beta
2 of the code.
Note: this version has many more infrared coronal
lines than are listed in Part III of Hazy.
beta 2 1996 April 27.
This was actually C89.10.
Last changed 01/27/04.
Return to the Cloudy Home
Copyright 1978-2003 Gary J. Ferland