|
|
|
|
|
|
|
*_Format:*_ The hot fix should give the file and line to be edited, or a link to the patch with the correction. If the bug affects any predictions this should be noted. The date that the hot fix was posted should be listed, along with an acknowledgment to the person who identified the problem.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
|
|
|
|
## Hot fixes to version C07.02.02
|
|
|
|
|
|
|
|
[ftp://gradj.pa.uky.edu/gary/cloudy_gold/hotfixes/patch4 patch4 (Unix patch)]
|
|
|
|
|
|
|
|
The code for testing convergence of an iteration was not safe against FP overflow, which could lead to spurious crashes. Place the patch file patch4 in the source directory and apply the patch, as described on the PatchFiles page to resolve this problem. Thanks to Linda Strubbe for reporting this problem. 2008 July 9.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
|
|
|
|
## Hot fixes to version C07.02.01
|
|
|
|
|
|
|
|
These have been included in the C07.02.02 service release.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
The *_punch hydrogen ionization*_ command can cause a floating point exception. The problem can be fixed by altering line 1694 of punch_do.cpp as follows:
|
|
|
|
|
|
|
|
```
|
|
|
|
fref/MAX2(1e-37,fout),
|
|
|
|
stage/MAX2(1e-37,fout),
|
|
|
|
/* simple H+ */
|
|
|
|
iso.gamnc[ipH_LIKE][ipHYDROGEN][ipH1s]*dense.xIonDense[ipHYDROGEN][0]/SDIV(dense.eden*dense.xIonDense[ipHYDROGEN][1]), // <-- altered line
|
|
|
|
secondaries.csupra[ipHYDROGEN][0]);
|
|
|
|
```
|
|
|
|
|
|
|
|
Only the penultimate line is changed: add SDIV right after the division sign. Thanks to Kilian Braun for finding this problem and to Andrew Benson for fixing the bug in the fix. 2008 Apr 18.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
The __'rate coefficient for the reaction H^0^ + He^+^ -> H^+^ + He^0^ was incorrectly
|
|
|
|
entered__' as the reverse process. To fix edit the file atmdat_char_tran.cpp and change line 98 from this
|
|
|
|
|
|
|
|
```
|
|
|
|
atmdat.HCharExcIonOf[ipHELIUM][0] += 7.47e-15*pow(phycon.te/1e4,2.06)*
|
|
|
|
```
|
|
|
|
|
|
|
|
to this
|
|
|
|
|
|
|
|
```
|
|
|
|
atmdat.HCharExcRecTo[ipHELIUM][0] += 7.47e-15*pow(phycon.te/1e4,2.06)*
|
|
|
|
```
|
|
|
|
|
|
|
|
This change will affect the ionization balance of certain low-ionization clouds.
|
|
|
|
Thanks to James Wadsley for finding the problem and to Phillip Stancil and Ryan Porter for identifying
|
|
|
|
the source of the error. 2008 March 22.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
The __'code could fail with internal insanity when the interpolate option is used to set the
|
|
|
|
continuum shape in a series of calculations done in a grid__'.
|
|
|
|
Edit the file parse_interp.cpp and change line 415 from this
|
|
|
|
|
|
|
|
```
|
|
|
|
for( i=npairs; i < rfield.nupper; i++ )
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
to this
|
|
|
|
|
|
|
|
```
|
|
|
|
for( i=npairs+1; i < rfield.nupper; i++ )
|
|
|
|
```
|
|
|
|
|
|
|
|
That is, the "+1" should be added to the lower limit of the loop. This fix only needs to be made if you
|
|
|
|
have grid runs fail with the interpolate command. Thanks to Rob Wiersma for reporting the bug and to Ryan Porter
|
|
|
|
for fixing it. 08 March 22.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
The *_code could fail with internal insanity if the resolution of the continuum mesh, as defined in continuum_mesh.dat is made very fine*_. This is caused by round off error in the floating point numbers. If you need to use a very fine continuum mesh and encounter this problem you should make this fix. Edit routine cont_setintensity.cpp and change the code at line 201 to read as follows:
|
|
|
|
|
|
|
|
```
|
|
|
|
rfield.anu[i] = (float)(amean2/amean);
|
|
|
|
if( i )
|
|
|
|
{
|
|
|
|
/* prevent roundoff from allowing i cell to lie below i-1
|
|
|
|
* cell when continuum mesh is very fine */
|
|
|
|
rfield.anu[i] = MAX2( rfield.anu[i] , rfield.anu[i-1]*(1.f+FLT_EPSILON) );
|
|
|
|
ASSERT( rfield.anu[i] > rfield.anu[i-1] );
|
|
|
|
}
|
|
|
|
rfield.anu2[i] = (float)(amean3/amean);
|
|
|
|
```
|
|
|
|
|
|
|
|
The first and last line are not changed - the if block is the patch code. This fix is only necessary if a very high resolution continuum mesh is to be used. Thanks to Valentina Luridiana for reporting this problem. 2008 Jan 23.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
The *_recombination intensity of O II 4651*_ was not included in the transferred lines
|
|
|
|
and so *_would appear with zero intensity*_ under some conditions.
|
|
|
|
To fix edit routine prt_lines_lv1_li_ne.cpp and change lines around 913-916 to read as follows:
|
|
|
|
|
|
|
|
```
|
|
|
|
/* recombination and specific pump for OII 4638.86-4696.35 (8 lines) */
|
|
|
|
rec = GetLineRec(82, 4651 );
|
|
|
|
PntForLine(4651.,"O 2",&ipnt);
|
|
|
|
lindst(rec,4651,"O 2r",ipnt,'i',true );
|
|
|
|
```
|
|
|
|
|
|
|
|
This fix is only necessary if this line is needed. Thanks to Jorge Garcia-Rojas and Monica Rodriguez for pointing
|
|
|
|
out this problem. 2007 Dec 09
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
If you include either the command *_grains vary*_ or *_grains "some_file.opc" vary*_, or some variation thereof, the run would crash on a TotalInsanity. This is caused by a broken test if a variable was initialized. The hot fix is to edit parse_grain.cpp and simply delete the following test:
|
|
|
|
|
|
|
|
```
|
|
|
|
367 : if( length == 0 )
|
|
|
|
368 : TotalInsanity();
|
|
|
|
```
|
|
|
|
|
|
|
|
Problem reported by Enrique Pérez Montero. 2007 Dec 07
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
A *_bug in the calculation of stark broadening*_ caused escape probabilities for lines from Rydberg levels to be underestimated. To correct, edit iso_create.cpp at line 367. The source should be changed to the following:
|
|
|
|
|
|
|
|
```
|
|
|
|
else
|
|
|
|
{
|
|
|
|
jj = j;
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
That is, change "jj = jj" to "jj = j". This change will cause the following six botches in the test suite:
|
|
|
|
|
|
|
|
```
|
|
|
|
blr_f92.out: ChkAssert botch>>H 1 4861A 2.0677 = 1.7980 -0.150 0.050
|
|
|
|
blr_f92.out: ChkAssert botch>>H 1 1.875m 0.4067 = 0.3560 -0.142 0.050
|
|
|
|
blr_n11_p20.out: ChkAssert botch>>totl 4861A 7.4149 = 7.3590 -0.137 0.050
|
|
|
|
blr_rnfb.out: ChkAssert botch>>TOTL 4861A 3.3538 = 2.8000 -0.198 0.050 <<BIG BOTCH!!
|
|
|
|
blr_rnfb.out: ChkAssert botch>>H 1 6563A 7.6170 = 6.8900 -0.106 0.100
|
|
|
|
|
|
|
|
blr_rnfb.out: ChkAssert botch>>H 1 1.875m 0.5187 = 0.4040 -0.284 0.050 <<BIG BOTCH!!
|
|
|
|
```
|
|
|
|
|
|
|
|
2007 Oct 25
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
The *_set atomic data As oxygen 2 new did not select the Zeippen 1987 results*_. To correct, edit parse_set.cpp and change line 112 so that it reads as follows:
|
|
|
|
|
|
|
|
```
|
|
|
|
dense.lgAsChoose[nelem][ion-1] = true;
|
|
|
|
```
|
|
|
|
|
|
|
|
That is, change [ion] to [ion-1]. Many thanks to R. Surendiranath for uncovering this error. 2007 Oct 15.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
In *_FITS files produced for use in XSPEC*_, logarithmic interpolation was specified. This caused *_problems for negative values*_ since the log of a negative number is undefined. Ideally, there would be a command-line option to specify the interpolation method, but for now we just switch the hard-wired specification to linear interpolation. The effect is, of course, negligible for a sufficiently resolved grid with positive parameter values. Line 75 of grid_xspec.cpp should be changed from this
|
|
|
|
grid.paramMethods[i] = 1;
|
|
|
|
to this
|
|
|
|
grid.paramMethods[i] = 0;
|
|
|
|
|
|
|
|
Thanks to Bryan Armentrout for pointing out this issue. 2007 Sep 4.
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
[ftp://gradj.pa.uky.edu/gary/cloudy_gold/hotfixes/patch3 patch3 (Unix patch)]
|
|
|
|
|
|
|
|
*_Only one punch opacity command can be used in a given input stream*_ since all flavors of the punch opacity commands use the same variables. The fix involves several changes to the source and is included in R1286 of the C07.02 branch. It will be included in the next service release. Or place the patch file patch3 in the source directory and apply the patch, as described on the PatchFiles page. Thanks to Orly Gnat for reporting this problem. 2007 July 20.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
[ftp://gradj.pa.uky.edu/gary/cloudy_gold/hotfixes/patch2 patch2 (Unix patch)]
|
|
|
|
|
|
|
|
Thomas Rauch has recently *_updated his hydrogen-only grid*_. The test in the auto test suite was still based on the previous version of the grid. Using the *_new grid with the existing test case will yield botched asserts*_. This is not a problem in the code, but simply reflects the fact that we were still testing the older grid. In order to fix the botched asserts, change the following asserts in the file stars_rauch_hydr.in:
|
|
|
|
|
|
|
|
```
|
|
|
|
// >>chng 07 jul 16, from -2.3007 to -2.2862, update Rauch atmospheres
|
|
|
|
assert ionization Beryllium element 5 -2.2862
|
|
|
|
|
|
|
|
// >>chng 07 jul 16, from -1.995 to -1.9836, update Rauch atmospheres
|
|
|
|
assert ionization Boron element 5 -1.9836
|
|
|
|
|
|
|
|
// >>chng 07 jul 16, from -0.7413 to -0.7249, update Rauch atmospheres
|
|
|
|
assert ionization Phosphorus element 5 -0.7249
|
|
|
|
// >>chng 07 jul 16, from -0.9565 to -0.9347, update Rauch atmospheres
|
|
|
|
assert ionization Phosphorus element 6 -0.9347
|
|
|
|
// >>chng 07 jul 16, from -2.282 to -2.2680, update Rauch atmospheres
|
|
|
|
assert ionization Phosphorus element 7 -2.2680
|
|
|
|
```
|
|
|
|
|
|
|
|
Alternatively you can apply the patch listed above using the Unix patch command. Download the file patch2 anywhere on your computer, then cd to the Cloudy tsuite/auto directory and issue the command *patch < /path/to/patch2*. You can remove the file patch2 after you finished. 07 Jul 16.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
|
|
|
|
## fixes to version C07.02.00
|
|
|
|
|
|
|
|
These have been included in the C07.02.01 service release.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
The *_incident continua at 1215 and 4860 Angstroms were zero in the emergent line intensities*_. These appear in the emission-line print out with the labels "Inci" and the two wavelengths and can be used to print the line spectrum as equivalent widths rather than intensities (see the *observed quantities* section of Hazy 3). To fix, edit file prt_lines_continuum.cpp and add the following after line 227
|
|
|
|
|
|
|
|
```
|
|
|
|
if( LineSave.ipass > 0 )
|
|
|
|
{
|
|
|
|
LineSv[LineSave.nsum-1].sumlin[1] = LineSv[LineSave.nsum-1].sumlin[0];
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
Add the same code after the call to linadd that occurs four lines below this. After the change the code starting near line 227 will read as
|
|
|
|
|
|
|
|
```
|
|
|
|
/* incident continuum nu*f_nu at H-beta, at illuminated face of cloud */
|
|
|
|
continuum.cn4861 /= (float)radius.dVeff;
|
|
|
|
linadd(continuum.cn4861,4860,"Inci",'i');
|
|
|
|
if( LineSave.ipass > 0 )
|
|
|
|
{
|
|
|
|
LineSv[LineSave.nsum-1].sumlin[1] = LineSv[LineSave.nsum-1].sumlin[0];
|
|
|
|
}
|
|
|
|
|
|
|
|
/* incident continuum nu*f_nu near Ly-alpha, at illuminated face of cloud */
|
|
|
|
continuum.cn1216 /= (float)radius.dVeff;
|
|
|
|
linadd(continuum.cn1216,1215,"Inci",'i');
|
|
|
|
if( LineSave.ipass > 0 )
|
|
|
|
{
|
|
|
|
LineSv[LineSave.nsum-1].sumlin[1] = LineSv[LineSave.nsum-1].sumlin[0];
|
|
|
|
}
|
|
|
|
|
|
|
|
continuum.cn1216 *= (float)radius.dVeff;
|
|
|
|
continuum.cn4861 *= (float)radius.dVeff;
|
|
|
|
```
|
|
|
|
|
|
|
|
This fix is in r1197 on the mainline and is merged into the c07.02 branch in r1198. Bug originally reported by Kirk Korista on 2007 June 14 on the discussion forum. Fix posted 2007 June 16.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
Certain models that include *_the large model of the H,,2,, molecule will have trouble finding an initial solution*_ if a mix of electrons, protons, hydrogen atoms, and molecules are all present. This occurs in cosmic ray heated / ionized conditions. The problem is caused by the near perfect cancellation between very large heating and cooling terms due to collisions within X. The solution is to delay including X collisional heating / cooling until after search phase has found the rough initial temperature. The fix is to add the following to the end of routine H2_Cooling in file mole_h2.cpp. At line 3751 add these two lines:
|
|
|
|
|
|
|
|
```
|
|
|
|
if( conv.lgSearch )
|
|
|
|
hmi.HeatH2Dexc_BigH2 = 0.;
|
|
|
|
```
|
|
|
|
|
|
|
|
The fix is included in r1176 on the mainline and is merged into the C07.02 branch in r1177. This will be included in the C07.02.01 release. 2007 June 08
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
In prt_columns.cpp, there was *_an implicit assumption that there could not be a stage with an insignificant column between two stages with significant columns*_. So the insignificant column was used as a sentinel that the rest of the columns did not need to be printed. The assumption is not valid. The easy fix is to comment out line 73, so that it looks like this:
|
|
|
|
|
|
|
|
/* lgHIT = true; */
|
|
|
|
|
|
|
|
In the next version, we will also print -30.0 instead of 0.0 for small columns.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
In ion_recomb_Badnell.cpp, *_two while loops occasionally caused an array bounds to be exceeded*_. The following lines two lines are added just below "--nn_counter[z_value][n_value];" at lines 492 and 530:
|
|
|
|
if( nn_counter[z_value][n_value] < 0 )
|
|
|
|
break;
|
|
|
|
|
|
|
|
The fix causes no botches in the test suite.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
Photoexcitation of upper levels of split ground terms by the UV radiation field is included using the "level2 lines", a large set of optically allowed transitions that D. Verner brought in from the Opacity Project. This level2 line pumping will not be included if the "no level2 lines" command is entered, since these lines are not computed. The code will *_no longer print column densities of excited levels if the level2 lines are disabled*_.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
The *_set atomic data*_ command now has the option *_sulphur DR*_ to change the treatment of S dielectronic recombination. This change was merged into the C07.02.01 release. The guesses which are used when no DR data are available are now the mean of the logs of the DR rates. This is better due to the large dispersion in rate coefficients. Accurate DR rates do not now exist for low stages of ionization of S at photoionization temperatures. The relative [S III] / [S II] ratio is an important diagnostic indicator of conditions in many nebulae. This ratio depends on the DR rates chosen. This command changes the DR rates assumed for the lowest four ionization stages of S. The default, which can also be set with the keyword *__mix*_, is to use the larger of the Badnell (1991; ApJ, 379, 356 ) or guessed rates. The keyword *_pure*_ says to use only the Badnell rates. The keyword *_scale*_ says to use scaled oxygen DR rates. In this case one to four scale factors, one for each ionization stage, will be parsed off the command line. If fewer than four numbers occur then the last number entered will be used for the missing scale factors. The DR rate for ions of S will be equal to the DR rate for the same ionization stage of O multiplied by its scale factor.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
The *punch continuum* and *punch xspec mtable* commmands did not include line absorption. The 07.02.01 bugfix rollup will contain a fix to this. 07 May 01. Thanks to Jon Miller for finding this problem.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
The low-l *proton impact excitations* in the helium isoelectronic sequence were greatly overestimated. The 07.02.01 bugfix rollup will contain a fix to this. 07 May 01. This was discovered thanks to the careful review by Manuel Bautista of the Porter & Ferland (2007) manuscript (http://arxiv.org/abs/0704.2642).
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
The *print coolants command printed a corrupted string* due to a string overwrite. As a result some of the line labels were written together. The 07.02.01 bugfix rollup will contain a fix to this. 07 April 20. Thanks to Valentina Luridana for finding this problem.
|
|
|
|
|
|
|
|
------
|
|
|
|
|
|
|
|
The *table command does not remove the filename that occurs in the table line, table read, and table star commands*, before parsing the command. This means that the filename can fool the parser. The 07.02.01 bugfix rollup will contain a fix to this. 07 April 20. Thanks for Susmita Chakravorty for finding this problem.
|
|
|
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
[ftp://gradj.pa.uky.edu/gary/cloudy_gold/hotfixes/patch1 patch1 (Unix patch)]
|
|
|
|
|
|
|
|
There is a bug that causes *the values for <Tden>, <dens>, <MolWgt>, Mean Jeans l(cm), and M(sun) to be wrong* in the Cloudy output. To fix the problem, two files need to be altered. First, edit the file zero.cpp on lines 1326 through 1328 as follows:
|
|
|
|
|
|
|
|
```
|
|
|
|
1326 : colden.TotMassColl = 0.;
|
|
|
|
1327 : colden.tmas = 0.;
|
|
|
|
1328 : colden.wmas = 0.;
|
|
|
|
```
|
|
|
|
|
|
|
|
Second, edit the file iter_startend.cpp on lines 366 through 368 as follows:
|
|
|
|
|
|
|
|
```
|
|
|
|
366 : colden.TotMassColl = 0.;
|
|
|
|
367 : colden.tmas = 0.;
|
|
|
|
368 : colden.wmas = 0.;
|
|
|
|
```
|
|
|
|
|
|
|
|
Alternatively you can apply the patch listed above using the Unix patch command. Download the file patch1 anywhere on your computer, then cd to the Cloudy source directory and issue the command *patch < /path/to/patch1*. You can remove the file patch1 after you finished. 07 Mar 26.
|
|
|
|
|
|
|
|
------
|
|
|
|
|
|
|
|
Return to HotFixes main page
|
|
|
|
|
|
|
|
Return to the StepByStep instructions
|
|
|
|
|
|
|
|
Return to main [WikiStart wiki] page
|
|
|
|
|
|
|
|
----- |