cloudy  trunk
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cool_sulf.cpp
Go to the documentation of this file.
1 /* This file is part of Cloudy and is copyright (C)1978-2008 by Gary J. Ferland and
2  * others. For conditions of distribution and use see copyright notice in license.txt */
3 /*CoolSulf compute sulphur cooling */
4 /*S2cs compute [CoolHeavy] collision strengths
5  * compute collision strengths for [SII] transitions
6  * w/in S II ground term. From
7  *>>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996, At. Data Nucl. Data Tables, 63, 57 */
8 #include "cddefines.h"
9 #include "coolheavy.h"
10 #include "taulines.h"
11 #include "dense.h"
12 #include "phycon.h"
13 #include "embesq.h"
14 #include "ligbar.h"
15 #include "thermal.h"
16 #include "lines_service.h"
17 #include "atoms.h"
18 #include "cooling.h"
19 
20 /*S2cs compute [CoolHeavy] collision strengths
21  * compute collision strengths for [SII] transitions
22  * w/in S II ground term. From
23  *>>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996, At. Data Nucl. Data Tables, 63, 57 */
24 STATIC void S2cs(double telog,
25  double *cs12,
26  double *cs13,
27  double *cs14,
28  double *cs15,
29  double *cs23,
30  double *cs24,
31  double *cs25,
32  double *cs34,
33  double *cs35,
34  double *cs45);
35 
36 void CoolSulf(void)
37 {
38  double cs,
39  cs2s2p,
40  cs2s3p,
41  cs01,
42  cs02,
43  cs12,
44  cs13,
45  cs14,
46  cs15,
47  cs23,
48  cs24,
49  cs25,
50  cs34,
51  cs35,
52  cs45,
53  p[5],
54  tused,
55  pump_rate;
56  realnum
57  pop2,
58  rate;
59  static double gS2[5]={4.,4.,6.,2.,4.};
60  static double exS2[4]={14851.9,31.5,9640.8,48.6};
61 
62  static bool lgFirst=true;
63  long int i;
64  static long int *ipS4Pump=NULL,
65  nS4Pump=0;
66 
67  DEBUG_ENTRY( "CoolSulf()" );
68 
69  /*>>refer S1 cs Hollenbach, D. & McKee, C.F. 1989, ApJ, 342, 306 */
70  /* >>chng 03 nov 15, add these lines */
71  /* rates are said to be ok over range 30 - 3000K */
72  tused = MAX2( 30. , phycon.te );
73  tused = MIN2( 3000. , phycon.te );
74  tused /= 100.;
75 
76  /* the 25.2 micron line */
77  rate = (realnum)(3.3e-8 * dense.eden +
78  /* >>chng 05 jul 05, eden to cdsqte */
79  /*7.5e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/
80  7.5e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] );
81  LineConvRate2CS( &TauLines[ipS1_25m] , rate );
82 
83  /* the 56.6 micron line */
84  rate = (realnum)(1.2e-8 * dense.eden +
85  /* >>chng 05 jul 05, eden to cdsqte */
86  /*4.2e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/
87  4.2e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] );
88  LineConvRate2CS( &TauLines[ipS1_56m] , rate );
89 
90  rate = (realnum)(3.3e-8 * dense.eden +
91  /* >>chng 05 jul 05, eden to cdsqte */
92  /*7.1e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0]) / dense.eden);*/
93  7.1e-10*pow(tused, 0.17 )*dense.xIonDense[ipHYDROGEN][0] );
95  LineConvRate2CS( &TauDummy , rate );
96  /* this says that line is a dummy, not real one */
97  TauDummy.Hi->g = 0.;
98 
99  atom_level3(&TauLines[ipS1_25m],&TauLines[ipS1_56m],&TauDummy);
100 
101  /* Sulphur II [S II] 6731 + 6716, A
102  * >>refer s2 as trans Mendoza, C., & Zeippen, C.J., 1982, MNRAS, 198, 127
103  * collision strength from
104  *>>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996,
105  *>>refercon At. Data Nucl. Data Tables, 63, 57
106  * this agrees very well with
107  * >>refer s2 cs Tayal, S., 1997, ApJS, 111, 459
108  * */
109  S2cs(phycon.alogte,&cs12,&cs13,&cs14,&cs15,&cs23,&cs24,&cs25,&cs34,
110  &cs35,&cs45);
111  /* cs13 = MIN(4.95 , 3.2640828 + 1.9369099*sexp(te/30337.498) )
112  * cs12 = cs13 / 1.5
113  * cs15 = MIN( 1.59 , 0.10*te10*te10*te10/te01/te003/te001/te001)
114  * cs14 = cs15 * 0.5
115  * FIVEL( G(1-5) , ex(wn,1-5), cs12,cs13,14,15,23,24,25,34,35,45,
116  * A21,31,41,51,32,42,52,43,53,54, pop(1-5), abund) */
117  atom_pop5(gS2,exS2,cs12,cs13,cs14,cs15,cs23,cs24,cs25,cs34,cs35,cs45,
118  8.82e-4,2.60e-4,9.06e-2,0.225,3.35e-7,0.163,0.133,0.078,0.179,
119  1.03e-6,p,dense.xIonDense[ipSULPHUR][1]);
120  CoolHeavy.S6733 = (realnum)(p[1]*8.82e-4*2.96e-12);
121  CoolHeavy.S6718 = (realnum)(p[2]*2.60e-4*2.962e-12);
122  CoolHeavy.S4070 = (realnum)(p[4]*0.225*4.89e-12);
123  CoolHeavy.S4078 = (realnum)(p[3]*0.0906*4.88e-12);
124  CoolHeavy.S10323 = (realnum)(p[4]*0.179*1.93e-12);
125  CoolHeavy.S10289 = (realnum)(p[4]*0.133*1.93e-12);
126  CoolHeavy.S10373 = (realnum)(p[3]*0.078*1.92e-12);
127  CoolHeavy.S10339 = (realnum)(p[3]*0.163*1.92e-12);
132  CoolAdd("S 2",6731,CoolHeavy.c6731);
133  CoolAdd("S 2",10330,CoolHeavy.c10330);
134  CoolAdd("S 2",4070,CoolHeavy.c10330*1.58);
135 
136  /* SII 1256 */
137  cs = MIN2(8.46,-4.9416304+47.01064/phycon.alogte);
138  cs = MAX2(4.466,cs);
139  PutCS(cs,&TauLines[ipT1256]);
140  atom_level2(&TauLines[ipT1256]);
141 
142  /* S III 18.7M, 33.6M, A
143  * >>refer s3 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
144  * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143
145  *
146  * >>refer s3 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347
147  * >>chng 99 dec 22, cs changed from above to
148  * >>refer s3 cs Tayal, S.S., and Gupta, G.P. 1999 ApJ 526, 544 */
149  /* the 1-2 transition */
150  if( phycon.te < 5000. )
151  {
152  cs12 = 4.44;
153  cs13 = 1.41;
154  cs14 = 0.802;
155  cs15 = 0.129;
156  cs23 = 8.72;
157  cs24 = 2.41;
158  cs25 = 0.388;
159  cs34 = 4.01;
160  cs35 = 0.646;
161  cs45 = 1.31;
162  }
163  else if( phycon.te > 1e5 )
164  {
165  cs12 = 1.9;
166  cs13 = 1.24;
167  cs14 = 0.664;
168  cs15 = 0.136;
169  cs23 = 5.13;
170  cs24 = 1.99;
171  cs25 = 0.407;
172  cs34 = 3.32;
173  cs35 = 0.679;
174  cs45 = 1.84;
175  }
176  else
177  {
178  cs12 = 52.47/(phycon.te30/phycon.te02);
179  cs13 = 1.894/(phycon.te02*phycon.te02);
180  cs14 = 1.34/(phycon.te05*phycon.te01);
181  cs15 = 0.109*phycon.te02;
182  cs23 = 41.3/(phycon.te20/phycon.te02);
183  cs24 = 4.03/(phycon.te05*phycon.te01);
184  cs25 = 0.327*phycon.te02;
185  cs34 = 6.708/(phycon.te05*phycon.te01);
186  cs35 = 0.545*phycon.te02;
187  cs45 = 0.501*phycon.te10*phycon.te01;
188  }
189  /*cs = MIN2(2.331,7.935*phycon.te/(phycon.te10*phycon.te03*phycon.te003));*/
190  PutCS(cs12,&TauLines[ipTS34]);
191 
192  /* the 2-3 transition
193  if( phycon.te <= 39811. )
194  {
195  cs = MIN2(5.78,3.114*phycon.te03*phycon.te03);
196  }
197  else
198  {
199  cs = 24.93/(phycon.te10*phycon.te03*phycon.te01/phycon.te001/
200  phycon.te001);
201  }*/
202  PutCS(cs23,&TauLines[ipTS19]);
203  /* the 1-3 transition
204  cs = MIN2(1.413,0.221*phycon.te*phycon.te20/phycon.te03*phycon.te005);*/
205  PutCS(cs13,&TauDummy);
206  atom_level3(&TauLines[ipTS34],&TauLines[ipTS19],&TauDummy);
207 
208  /* S III O III-like lines, A from
209  * >>refer s3 as Mendoza, C., & Zeippen, C.J. 1982, MNRAS, 199, 1025
210  * CS from
211  * >>refer s3 cs Galavis, M.E., Mendoza, C., & Zeippen, C.J. 1995, A&AS, 111, 347
212  * >>chng 00 Sep 11, cs changed from above to
213  * >>refer s3 cs Tayal, S.S., and Gupta, G.P. 1999 ApJ 526, 544 */
214  /*cs = MIN2(2.05,0.0821*phycon.te30);*/
215  /* POP3(G1,G2,G3,O12,O13,O23,A21,A31,A32,E12,E23,P2,ABUND,GAM2) */
216  /*CoolHeavy.c6312 = atom_pop3(9.,5.,1.,7.98,1.14,cs,7.97e-2,0.807,2.22,*/
217  CoolHeavy.c6312 = atom_pop3(9.,5.,1.,cs14+cs24+cs34,cs15+cs25+cs35,cs45,7.97e-2,0.807,2.22,
218  1.55e4,2.28e4,&pop2,dense.xIonDense[ipSULPHUR][2],0.,0.,0.)*2.22*3.15e-12;
219  /* folowing is 9532 + 9069 together (OIII-like) */
220  CoolHeavy.c9532 = pop2*7.93e-2*2.11e-12;
221  CoolAdd("S 3",6312,CoolHeavy.c6312);
222  CoolAdd("S 3",9532,CoolHeavy.c9532);
223  CoolAdd("S 3",3722,CoolHeavy.c6312*0.59);
224 
225  /* S III 1194, data from
226  * >>refer s3 cs Ho, Y.K., & Henry,R.J.W. 1984, ApJ, 282, 816
227  * >>chng 97 may 17, to, about 2x larger than above
228  * >>refer s3 cs Tayal, S.S. 1997, ApJ 481, 550 */
229  if( phycon.te <= 3e4 )
230  {
231  cs = 12.04/(phycon.te02*phycon.te02);
232  }
233  else if( phycon.te > 3e4 && phycon.te <= 4e4 )
234  {
235  cs = 7.97;
236  }
237  else
238  {
239  cs = 55.42/(phycon.te20/phycon.te02*phycon.te003);
240  }
241  PutCS(cs,&TauLines[ipT1194]);
242  atom_level2(&TauLines[ipT1194]);
243 
244  /* S III] 1713.12, 1728.94, cs from
245  * >>refer s3 cs Hayes, M.A., 1986, J Phys B 19, 1853.
246  * cs = MIN( 4.0 , 7.794 / (te10/te02/te001/te001) )
247  * >>chng 97 may 17, about 20% smaller than before
248  * >>refer s3 cs Tayal, S.S. 1997, ApJ 481, 550 */
249  if( phycon.te <= 3e4 )
250  {
251  cs = 1.786*phycon.te05*phycon.te01*phycon.te001;
252  }
253  else
254  {
255  cs = 9.392/phycon.te10;
256  }
257  PutCS(cs,&TauLines[ipTS1720]);
258  atom_level2(&TauLines[ipTS1720]);
259 
260  /* S IV 1062 */
261  /*>>refer S4 As Hibbert, A., Brage, T., Fleming, J. 2002, MNRAS 333, 885,
262  * typo noted in Chianti data file */
263  /*>>refer S4 cs Tayal S.S., 2000, ApJ, 530, 1091 */
264 
265  /* S IV 10.5MI,
266  * >>refer s4 as Johnson, C.T., Kingston, A.E., Dufton, P.L. 1986, 220, 155
267  * >>referold s4 cs Johnson, C.T., Kingston, A.E., Dufton, P.L. 1986, MNRAS, 220, 155
268  * >>chng 97 feb 14, error in cs below t = 10,000K
269  * >>chng 96 dec 19, to CS from
270  * >>referold s4 cs Saraph, H.E., Storey, P.J., & Tully, J.A. 1995, 5th International
271  * >>referoldcon Colloquium on Atomic Spectra and Oscillator Strengths, ed. by
272  * >>referoldcon W.-U L. Tchang-Brillet, J.-F. Wyart, C.J. Zeippen,
273  * >>referoldcon (Meudon: Publications de l'Observaroire de Paris), p.110
274  * above said to be A&A in press */
275  /* >>refer s4 cs Tayal, S.S., 2000, ApJ, 530, 1091
276  */
277  if( phycon.te < 1e4 )
278  {
279  cs = 3.71*phycon.te10/phycon.te01;
280  }
281  else
282  {
283  cs = MIN2(8.5,19.472/(phycon.te10/phycon.te01));
284  }
285  PutCS(cs,&TauLines[ipTS11]);
286  /*atom_level2(&TauLines[ipTS11]);*/
287 
288  /* one time initialization if first call, and level 2 lines are on */
289  if( lgFirst && nWindLine )
290  {
291  lgFirst = false;
292  nS4Pump = 0;
293  for( i=0; i<nWindLine; ++i )
294  {
295  /* don't test on nelem==ipIRON since lines on physics, not C, scale */
296  if( TauLine2[i].Hi->nelem ==16 && TauLine2[i].Hi->IonStg==4 )
297  {
298  ++nS4Pump;
299  }
300  }
301  if( nS4Pump<0 )
302  TotalInsanity();
303  else if( nS4Pump > 0 )
304  /* create the space - can't malloc 0 bytes */
305  ipS4Pump = (long *)MALLOC((unsigned)(nS4Pump)*sizeof(long) );
306  nS4Pump = 0;
307  for( i=0; i<nWindLine; ++i )
308  {
309  /* don't test on nelem==ipIRON since lines on physics, not C, scale */
310  if( TauLine2[i].Hi->nelem ==16 && TauLine2[i].Hi->IonStg==4 )
311  {
312 # if 0
313  DumpLine( &TauLine2[i] );
314 # endif
315  ipS4Pump[nS4Pump] = i;
316  ++nS4Pump;
317  }
318  }
319  }
320  else
321  /* level 2 lines are not enabled */
322  nS4Pump = 0;
323 
324  /* now sum pump rates */
325  pump_rate = 0.;
326  for( i=0; i<nS4Pump; ++i )
327  {
328  pump_rate += TauLine2[ipS4Pump[i]].Emis->pump;
329 # if 0
330  fprintf(ioQQQ,"DEBUG C %li %.3e %.3e\n",
331  i,
332  TauLine2[ipS4Pump[i]].WLAng , TauLine2[ipS4Pump[i]].pump );
333 # endif
334  }
335 
336  /* S IV 1404.8, 1398.05, 1423.8, 1416.9, 1406.0 */
337  /*AtomSeqBoron compute cooling from 5-level boron sequence model atom */
338  /* >>refer s4 cs Tayal, S.S., 2000, ApJ 530, 1091*/
339  AtomSeqBoron(&TauLines[ipTS11],
340  &TauLines[ipS4_1405],
341  &TauLines[ipS4_1398],
342  &TauLines[ipS4_1424],
343  &TauLines[ipS4_1417],
344  &TauLines[ipS4_1407],
345  1.168 , 3.366 , 2.924 , 7.233 ,
346  pump_rate , "S 4");
347 
348  /* S V Be-seq line, A=
349  * >>refer s5 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
350  * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143
351  * all cs
352  * >>refer s5 as Dufton, P.L., Hibbert, A., Keenan, F.P, Kingston, A.E., &
353  * >>refercon Doschek, G.A. 1986, ApJ, 300, 448
354  * and
355  * >>refer s5 cs Dufton, P.L., & Kingston, A.E. 1984, J.Phys. B, 17, 3321 */
356  /* >>chng 01 sep 09, AtomSeqBeryllium will reset this to 1/3 so critical density correct */
357  cs = MIN2(1.58,35.372/(phycon.te10*phycon.te10*phycon.te10));
358  PutCS(cs,&TauLines[ipT1198]);
359  /* cs01 = MIN(1.98, 29.625/(T**0.25)) */
360  cs01 = MIN2(1.98,29.625/(phycon.te20*phycon.te05));
361  /* cs02 = MIN(2.26, 13.477/(T**0.165)) */
362  cs02 = MIN2(2.26,13.477/(phycon.te10*phycon.te03*phycon.te03*
363  phycon.te005));
364  /* cs12 = MIN(7.59, 63.994/(T**0.197)) */
365  cs12 = MIN2(7.59,63.994/(phycon.te20/phycon.te003));
366  /* AtomSeqBeryllium(cs23,cs24,cs34,tarray,a41)
367  * call AtomSeqBeryllium( 1.98 , 2.26 , 7.59, t1198 ,.066) */
368  AtomSeqBeryllium(cs01,cs02,cs12,&TauLines[ipT1198],.066);
369  embesq.em1198 = (realnum)(atoms.PopLevels[3]*0.066*1.66e-11);
370 
371  /* S V 786
372  * cs from
373  * >>refer s5 cs Dufton, P.L., & Kingston, A.E. 1984, J.Phys. B, 17, 3321 */
377  PutCS(8.3,&TauLines[ipT786]);
378  atom_level2(&TauLines[ipT786]);
379 
380  /* S VI, Li sequence, A from
381  * >>refer s6 as Mendoza, C. 1982, in Planetary Nebulae, IAU Symp No. 103,
382  * >>refercon ed by D.R. Flower, (D. Reidel: Holland), 143
383  * CS from
384  * >>refer s6 cs Dufton, P.L., & Kingston, A.E. 1987, J.Phys. B, 20, 3899 */
385  cs = 11.9;
386  PutCS(cs*0.667,&TauLines[ipT933]);
387  PutCS(cs*0.333,&TauLines[ipT944]);
388  PutCS(1.0,&TauDummy);
389 
390  atom_level3(&TauLines[ipT944],&TauDummy,&TauLines[ipT933]);
391 
392  /* S VIII 9913
393  * >>referold s8 cs Saraph, H.E. & Tully, J.A. 1994, A&AS, 107, 29 */
394  /*cs = MIN2(0.291,0.0289*phycon.te20/phycon.te01* phycon.te001);
395  cs = MAX2(0.192,cs);*/
396  /* >>refer s8 cs Berrington,K.A.,Saraph, H.E. & Tully, J.A. 1998, A&AS, 129,161 */
397  /*>>chng 06 jul 18 Changes made-Humeshkar Nemala*/
398  if(phycon.te < 6.4E5)
399  {
400  cs = (realnum)(0.0943*(phycon.te10/(phycon.te01*phycon.te001))*phycon.te0004);
401  }
402  else
403  {
404  cs = (realnum) (8.1555/(phycon.te20*phycon.te04*phycon.te004*phycon.te0002));
405  }
406 
407  PutCS(cs,&TauLines[ipfsS810]);
408 
409  atom_level2(&TauLines[ipfsS810]);
410 
411  /* S IX 1715, 1987,
412  * >>refer s9 all Kafatos, M., & Lynch, J.P. 1980, ApJS, 42, 611 */
413  CoolHeavy.c1715 = atom_pop2(0.4,9.,5.,80.,8.39e4,dense.xIonDense[ipSULPHUR][8])*
414  1.16e-11;
415  CoolAdd("S 9",1715,CoolHeavy.c1715);
416 
417  /* S IX 1.25, 3.78 microns
418  * cs
419  * >>refer s9 cs Butler, K., & Zeippen, C.J. 1994, A&AS, 108, 1 */
420  cs = MIN2(3.10,277.2/(phycon.sqrte/phycon.te003));
421  PutCS(cs,&TauLines[ipfsS912]);
422 
423  cs = MIN2(.50,7.940/(phycon.te10*phycon.te10*phycon.te10));
424  PutCS(cs,&TauLines[ipfsS938]);
425 
426  cs = MIN2(1.1,195.72/(phycon.sqrte*phycon.te03*phycon.te03*
428  PutCS(cs,&TauDummy);
429 
430  atom_level3(&TauLines[ipfsS912],&TauLines[ipfsS938],&TauDummy);
431 
432  /* S X 1213, 1197,
433  * >>refer si10 cs Bell, K.L., & Ramsbottom, C.A., 2000, ADNDT, 76, 176-190 */
434  CoolHeavy.c1213 = atom_pop2(0.131,4.,6.,6.,1.19e5,dense.xIonDense[ipSULPHUR][10-1])*
435  1.64e-11;
436  CoolAdd("S 10",1213,CoolHeavy.c1213);
437 
438  /* S XI 1.91, 1.40 microns, cs
439  * >>refer si11 cs Lennon, D.J. Burke, V.M. 1994, A&AS, 103, 273 */
440  cs = MIN2(0.22,0.0151*phycon.te20*phycon.te03*phycon.te001*
441  phycon.te001);
442  PutCS(cs,&TauLines[ipfsS1119]);
443  cs = MIN2(0.6,0.0168*phycon.te10*phycon.te10*phycon.te10*
444  phycon.te01);
445  PutCS(cs,&TauLines[ipfsS1114]);
446  cs = MIN2(0.15,1.5e-3*phycon.te30*phycon.te10*phycon.te005);
447  PutCS(cs,&TauDummy);
448  atom_level3(&TauLines[ipfsS1119],&TauLines[ipfsS1114],&TauDummy);
449 
450  /* S XI 1615, 1826,
451  * >>refer si11 cs Kafatos, M., & Lynch, J.P. 1980, ApJS, 42, 611 */
452  CoolHeavy.c1826 = atom_pop2(0.3,9.,5.,100.,8.92e4,dense.xIonDense[ipSULPHUR][11-1])*
453  1.23e-11;
454  CoolAdd("S 11",1615,CoolHeavy.c1826);
455 
456  /* S XII 7611.2, cs from
457  * >>refer s12 cs Oliva, E., Pasquali, A., & Reconditi, M. 1996, A&A, 305, 210
458  * >>refer s12 as Froese Fischer, C. 1983, J.Phys. B, 16, 157
459  * >>refer s12 as Saha, H.P., & Trefftz, E. 1983, SoPh, 87, 233 */
460  PutCS(0.135,&TauLines[ipfsS1207]);
461  atom_level2(&TauLines[ipfsS1207]);
462 
463  /* S XII 520, actually group of four intercombination lines
464  * all atomic data from
465  * >>refer s12 all Saha, H.P., & Trefftz, E. 1983, SoPh, 87, 233
466  CoolHeavy.c520 = 0.03*1.65e-16*expion(2.8e5,dense.xIonDense[ipSULPHUR][12-1]);
467  CoolAdd("S 12",520,CoolHeavy.c520); */
468  /* >>chng 03 sep 27, move to simple two level atom */
469  PutCS(0.03,&TauLines[ipS12_520]);
470  atom_level2(&TauLines[ipS12_520]);
471 
472  /* S XIII 488.4, 1909-like */
473  CoolHeavy.c488 = atom_pop2(0.11,1.,9.,3.3e5,2.948e5,dense.xIonDense[ipSULPHUR][13-1])*
474  4.07e-11;
475  CoolAdd("S 13",488,CoolHeavy.c488);
476 
477  /* li seq 2s2p and 2s3p, S XIV 418, 446
478  * >>refer s14 cs Cochrane, D.M., & McWhirter, R.W.P. 1983, PhyS, 28, 25 */
479  ligbar(16,&TauLines[ipTSu418],&TauLines[ipTSu30],&cs2s2p,&cs2s3p);
480  PutCS(cs2s2p,&TauLines[ipTSu418]);
481  PutCS(cs2s2p*0.5,&TauLines[ipTSu446]);
482  PutCS(1.0,&TauDummy);
483  atom_level3(&TauLines[ipTSu446],&TauDummy,&TauLines[ipTSu418]);
484 
485  PutCS(cs2s3p,&TauLines[ipTSu30]);
486  atom_level2(&TauLines[ipTSu30]);
487  return;
488 }
489 
490 /*S2cs compute [CoolHeavy] collision strengths
491  * compute collision strengths for [SII] transitions
492  * w/in S II ground term. From
493  *>>refer s2 cs Ramsbottom, C.A., Bell, K.L., Stafford, R.P. 1996, ADNDT, 63, 57 */
494 STATIC void S2cs(double telog,
495  double *cs12,
496  double *cs13,
497  double *cs14,
498  double *cs15,
499  double *cs23,
500  double *cs24,
501  double *cs25,
502  double *cs34,
503  double *cs35,
504  double *cs45)
505 {
506  /* written by Kirk Korista */
507  double a,
508  b,
509  c,
510  telogn1;
511 
512  DEBUG_ENTRY( "S2cs()" );
513 
514  /* limit to stop exceeding bounds */
515  telogn1 = MAX2(3.5,telog);
516  telogn1 = MIN2(telogn1,5.0);
517 
518  /* 2D5/2 - 2P3/2 S II 10320.4 A=0.179 (3-->5) */
519  a = 18.335524;
520  b = -5.1180248;
521  c = 0.44482438;
522  *cs35 = MIN2(5.82,a+b*telogn1+c*telogn1*telogn1);
523  *cs35 = MAX2(3.87,*cs35);
524 
525  /* 2D3/2 - 2P3/2 10286.7 A=0.1335 (2-->5) */
526  a = 6.690242;
527  b = -1.061514;
528  c = 0.034535506;
529  *cs25 = MIN2(3.38,a+b*telogn1+c*telogn1*telogn1);
530  *cs25 = MAX2(2.24,*cs25);
531 
532  /* 2D5/2 - 2P1/2 10373.3 A=0.0779 (3-->4) */
533  a = 4.2250081;
534  b = -0.46549935;
535  c = -0.010172139;
536  *cs34 = MIN2(2.46,a+b*telogn1+c*telogn1*telogn1);
537  *cs34 = MAX2(1.64,*cs34);
538 
539  /* 2D3/2 - 2P1/2 10336.3 A=0.1626 (2-->4) */
540  a = 8.274085;
541  b = -2.6223732;
542  c = 0.2502924;
543  *cs24 = MIN2(2.14,a+b*telogn1+c*telogn1*telogn1);
544  *cs24 = MAX2(1.42,*cs24);
545 
546  /* 2P1/2 - 2P3/2 */
547  a = -5.1994665;
548  b = 49.334586;
549  c = -70.93344;
550  *cs45 = MIN2(3.07,a+b/telogn1+c/(telogn1*telogn1));
551  *cs45 = MAX2(1.85,*cs45);
552 
553  /* 2D3/2 - 2D5/2 */
554  a = -27.497273;
555  b = 247.27405;
556  c = -429.9142;
557  *cs23 = MIN2(8.01,a+b/telogn1+c/(telogn1*telogn1));
558  *cs23 = MAX2(4.79,*cs23);
559 
560  /* 4S3/2 - 2P3/2 4068.6 A=0.220 */
561  a = 2.6106784;
562  b = -3.2766908e-05;
563  c = 6.5105436;
564  *cs15 = a+b*pow(telogn1,c);
565  *cs15 = MIN2(2.46,*cs15);
566  *cs15 = MAX2(1.45,*cs15);
567 
568  /* 4S3/2 - 2P1/2 4076.4 A=0.091 */
569  *cs14 = 0.5**cs15;
570 
571  /* 4S3/2 - 2D5/2 6716.5 A=2.601e-04 */
572  a = 8.1458628;
573  b = -0.5389108;
574  c = 1.4486586;
575  *cs13 = a+b*pow(telogn1,c);
576  *cs13 = MIN2(4.77,*cs13);
577  *cs13 = MAX2(2.54,*cs13);
578 
579  /* 4S3/2 - 2D3/2 6730.8 A=8.82e-04 */
580  *cs12 = *cs13/1.5;
581 
582  /* option to print values, usually commented out
583  * write(6,*) 10.**telog
584  * write(6,*) cs12
585  * write(6,*) cs13
586  * write(6,*) cs14
587  * write(6,*) cs15
588  * write(6,*) cs23
589  * write(6,*) cs24
590  * write(6,*) cs25
591  * write(6,*) cs34
592  * write(6,*) cs35
593  * write(6,*) cs45
594  * stop
595  * */
596  return;
597 }

Generated for cloudy by doxygen 1.8.3.1