PLUTO
ion_init.c
Go to the documentation of this file.
1 #include "pluto.h"
2 #include "cooling_defs.h"
3 
4 /* ---------------------------------------------------
5  Initialize energy and transition
6  probabilities between levels i,j
7 
8  Note: matrix are assumed to be symmetric
9  ONLY for definition purposes.
10 
11  you can initialize indifferently
12 
13  A(i,j) or A(j,i) to the same number.
14 
15  Do not initialize both.
16  Elements not defined must be
17  initialized to a negative number.
18 
19  The correct symmetrization is taken care
20  of in the Symmetrize_Coeff routine.
21  --------------------------------------------------- */
22 
23 
24 /* ********************************************************************* */
25 void INIT_ATOM(Ion *at, int nat)
26 /*
27  *
28  *********************************************************************** */
29 {
30  int n=0;
31  void (*X_INIT[])(Ion *at) = {HI_INIT, HeI_INIT, HeII_INIT
38  at->isMAP = 0;
39  at->isCV = 0;
40  at->isH = 0;
41  at->isCHEB = 0;
42 
43  (X_INIT[nat])(at);
44 
45 /*
46  switch (nat) {
47  case HI: HI_INIT(at); break;
48  case HeI: HeI_INIT(at); break;
49  case HeII: HeII_INIT(at); break;
50  case CI: CI_INIT(at); break;
51  case CII: CII_INIT(at); break;
52  case CIII: CIII_INIT(at); break;
53  case CIV: CIV_INIT(at); break;
54  case CV: CV_INIT(at); break;
55  case NI: NI_INIT(at); break;
56  case NII: NII_INIT(at); break;
57  case NIII: NIII_INIT(at); break;
58  case NIV: NIV_INIT(at); break;
59  case NV: NV_INIT(at); break;
60  case OI: OI_INIT(at); break;
61  case OII: OII_INIT(at); break;
62  case OIII: OIII_INIT(at); break;
63  case OIV: OIV_INIT(at); break;
64  case OV: OV_INIT(at); break;
65  case NeI: NeI_INIT(at); break;
66  case NeII: NeII_INIT(at); break;
67  case NeIII: NeIII_INIT(at); break;
68  case NeIV: NeIV_INIT(at); break;
69  case NeV: NeV_INIT(at); break;
70  case 23: SI_INIT(at); break;
71  case 24: SII_INIT(at); break;
72  case 25: SIII_INIT(at); break;
73  case 26: SIV_INIT(at); break;
74  case 27: SV_INIT(at); break;
75  case 28: FeI_INIT(at); break;
76  case 29: FeII_INIT(at); break;
77  case 30: FeIII_INIT(at); break;
78  }
79 */
80 }
81 
82 /* ********************************************************************* */
83 void HI_INIT (Ion *HIv)
84 /*
85  *
86  *********************************************************************** */
87 {
88  int i, j, n;
89  int S1, S2, P2, S3, P3; /* new data from Giovanardi et al, 1987 A&AS */
90 /* int S1, S2, P; */ /* Commented is the old data (3 levels Pradhan) */
91 
92  HIv->N = 1.0 ; /* abundance with respect to H (Raymond) */
93  HIv->nlev = 5;
94 
95  HIv->isH = 1;
96 
97 /* HIv->nlev = 3;
98 
99  S1 = 0;
100  P = 1;
101  S2 = 2;
102 
103  HIv->nTom = 4;
104  HIv->Tom[0] = 0.5e4;
105  HIv->Tom[1] = 1.0e4;
106  HIv->Tom[2] = 1.5e4;
107  HIv->Tom[3] = 2.0e4; */
108 
109 
110  S1 = 0;
111  S2 = 1;
112  P2 = 2;
113  P3 = 3;
114  S3 = 4;
115 
116  HIv->nTom = 8;
117  HIv->Tom[0] = 0.5e4;
118  HIv->Tom[1] = 1.0e4;
119  HIv->Tom[2] = 1.5e4;
120  HIv->Tom[3] = 2.0e4;
121  HIv->Tom[4] = 2.5e4;
122  HIv->Tom[5] = 3.0e4;
123  HIv->Tom[6] = 3.5e4;
124  HIv->Tom[7] = 4.0e4;
125 
126 
127  if (HIv->dE == NULL){
128  HIv->dE = ARRAY_2D(HIv->nlev, HIv->nlev, double);
129  HIv->A = ARRAY_2D(HIv->nlev, HIv->nlev, double);
130  HIv->omega = ARRAY_3D(HIv->nlev, HIv->nlev, HIv->nTom, double);
131  }
132 
133 
134 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
135  O GET PROPER ORDER LATER */
136 
137  for (i = 0 ; i < HIv->nlev ; i++) {
138  for (j = 0 ; j < HIv->nlev ; j++) {
139  HIv->dE[i][j] = -1.0;
140  HIv->A[i][j] = -1.0;
141  for (n = 0; n < HIv->nTom; n++){
142  HIv->omega[i][j][n] = -1.0;
143  }
144  }}
145 
146 
147  HIv->wght[S1] = 2.; /* 2 J + 1 */
148  HIv->wght[S2] = 2.; /* */
149  HIv->wght[P2] = 4.; /* */
150  HIv->wght[P3] = 2.; /* */
151  HIv->wght[S3] = 2.; /* */
152 
153 
154 /* HIv->omega[S1][S2][0] = 2.55e-1;
155  HIv->omega[S1][S2][1] = 2.74e-1;
156  HIv->omega[S1][S2][2] = 2.81e-1;
157  HIv->omega[S1][S2][3] = 2.84e-1;
158 
159  HIv->omega[S1][P][0] = 4.16e-1;
160  HIv->omega[S1][P][1] = 4.72e-1;
161  HIv->omega[S1][P][2] = 5.28e-1;
162  HIv->omega[S1][P][3] = 5.85e-1;
163 
164  HIv->omega[S2][P][0] = 4.16e-30;
165  HIv->omega[S2][P][1] = 4.16e-30;
166  HIv->omega[S2][P][2] = 4.16e-30;
167  HIv->omega[S2][P][3] = 4.16e-30; */
168 
169  HIv->omega[S2][S1][0] = 2.297e-1;
170  HIv->omega[S2][S1][1] = 5.318e-6;
171  HIv->omega[S2][S1][2] = -1.180e-10;
172  HIv->omega[S2][S1][3] = 8.636e-16;
173  HIv->omega[S2][S1][4] = 2.694e-1;
174  HIv->omega[S2][S1][5] = 7.883e-7;
175  HIv->omega[S2][S1][6] = -1.394e-12;
176  HIv->omega[S2][S1][7] = 1.451e-18;
177 
178  HIv->omega[P2][S1][0] = 3.435e-1;
179  HIv->omega[P2][S1][1] = 1.297e-5;
180  HIv->omega[P2][S1][2] = 2.178e-12;
181  HIv->omega[P2][S1][3] = 7.928e-17;
182  HIv->omega[P2][S1][4] = 3.162e-1;
183  HIv->omega[P2][S1][5] = 1.472e-5;
184  HIv->omega[P2][S1][6] = -8.275e-12;
185  HIv->omega[P2][S1][7] = -8.794e-19;
186 /*
187  HIv->omega[P2][S2][0] = 0.000000;
188  HIv->omega[P2][S2][1] = 0.000000;
189  HIv->omega[P2][S2][2] = 0.000000;
190  HIv->omega[P2][S2][3] = 0.000000;
191  HIv->omega[P2][S2][4] = 0.000000;
192  HIv->omega[P2][S2][5] = 0.000000;
193  HIv->omega[P2][S2][6] = 0.000000;
194  HIv->omega[P2][S2][7] = 0.000000;
195 */
196 /* HIv->omega[S3][S1][0] = 6.250e-2;
197  HIv->omega[S3][S1][1] = -1.299e-6;
198  HIv->omega[S3][S1][2] = 2.666e-11;
199  HIv->omega[S3][S1][3] = -1.596e-16;
200  HIv->omega[S3][S1][4] = 3.337e-2;
201  HIv->omega[S3][S1][5] = 2.223e-7;
202  HIv->omega[S3][S1][6] = -2.794e-13;
203  HIv->omega[S3][S1][7] = 1.516e-19; */
204 
205  HIv->omega[P3][S1][0] = 9.941e-2;
206  HIv->omega[P3][S1][1] = -3.714e-7;
207  HIv->omega[P3][S1][2] = 6.134e-11;
208  HIv->omega[P3][S1][3] = -3.973e-16;
209  HIv->omega[P3][S1][4] = 6.985e-2;
210  HIv->omega[P3][S1][5] = 2.538e-6;
211  HIv->omega[P3][S1][6] = -8.729e-13;
212  HIv->omega[P3][S1][7] = -1.291e-18;
213 /*
214  HIv->omega[S3][S2][0] = 0.00000;
215  HIv->omega[S3][S2][1] = 0.00000;
216  HIv->omega[S3][S2][2] = 0.00000;
217  HIv->omega[S3][S2][3] = 0.00000;
218  HIv->omega[S3][S2][4] = 0.00000;
219  HIv->omega[S3][S2][5] = 0.00000;
220  HIv->omega[S3][S2][6] = 0.00000;
221  HIv->omega[S3][S2][7] = 0.00000;
222 */
223 /* HIv->omega[S3][S2][0] = 1.326;
224  HIv->omega[S3][S2][1] = -1.727e-5;
225  HIv->omega[S3][S2][2] = 8.914e-10;
226  HIv->omega[S3][S2][3] = -6.101e-15;
227  HIv->omega[S3][S2][4] = 6.311e-1;
228  HIv->omega[S3][S2][5] = 2.881e-5;
229  HIv->omega[S3][S2][6] = -5.372e-11;
230  HIv->omega[S3][S2][7] = 4.095e-17; */
231 
232  HIv->omega[P3][S2][0] = 2.040;
233  HIv->omega[P3][S2][1] = -1.580e-5;
234  HIv->omega[P3][S2][2] = 1.908e-9;
235  HIv->omega[P3][S2][3] = -1.027e-14;
236  HIv->omega[P3][S2][4] = -1.334;
237  HIv->omega[P3][S2][5] = 1.229e-4;
238  HIv->omega[P3][S2][6] = -9.676e-11;
239  HIv->omega[P3][S2][7] = 2.842e-17;
240 
241  HIv->omega[S3][P2][0] = 1.690;
242  HIv->omega[S3][P2][1] = 4.563e-5;
243  HIv->omega[S3][P2][2] = -6.605e-10;
244  HIv->omega[S3][P2][3] = 4.445e-15;
245  HIv->omega[S3][P2][4] = 2.325;
246  HIv->omega[S3][P2][5] = 1.361e-5;
247  HIv->omega[S3][P2][6] = -2.702e-11;
248  HIv->omega[S3][P2][7] = 2.397e-17;
249 
250 /* HIv->omega[P3][P2][0] = 4.923;
251  HIv->omega[P3][P2][1] = 1.525e-4;
252  HIv->omega[P3][P3][2] = 4.370e-11;
253  HIv->omega[P3][P2][3] = -3.914e-15;
254  HIv->omega[P3][P2][4] = 6.984;
255  HIv->omega[P3][P2][5] = 1.260e-4;
256  HIv->omega[P3][P2][6] = -3.014e-10;
257  HIv->omega[P3][P2][7] = 2.655e-16; */
258 
259  HIv->omega[P3][P2][0] = 0.000000;
260  HIv->omega[P3][P2][1] = 0.000000;
261  HIv->omega[P3][P3][2] = 0.000000;
262  HIv->omega[P3][P2][3] = 0.000000;
263  HIv->omega[P3][P2][4] = 0.000000;
264  HIv->omega[P3][P2][5] = 0.000000;
265  HIv->omega[P3][P2][6] = 0.000000;
266  HIv->omega[P3][P2][7] = 0.000000;
267 
268 
269  HIv->dE[S2][S1] = 1215.6740; HIv->A[S2][S1] = 6.265e+8; /* dE [ HIGHER ][LOWER ] */
270  HIv->dE[P2][S1] = 1215.6680; HIv->A[P2][S1] = 6.265e+8;
271 /* HI->dE[P2][S2] = 2.5e+16; HI->A[P2][S2] = 0.000000;
272  HI->dE[S3][S1] = 2.5e+16; HI->A[S3][S1] = 0.000000;
273 */
274  HIv->dE[P3][S1] = 1025.72; HIv->A[P3][S1] = 1.672e+8;
275 /* HI->dE[S3][S2] = 2.5e+16; HI->A[S3][S2] = 0.000000;
276 */
277  HIv->dE[P3][S2] = 6562.77; HIv->A[P3][S2] = 2.245e+7;
278  HIv->dE[S3][P2] = 6562.91; HIv->A[S3][P2] = 4.209e+6;
279 /* HIv->dE[P3][P2] = 2.5e+16; HIv->A[P3][P2] = 0.000000;
280  HIv->dE[S3][P3] = 2.5e+16; HIv->A[S3][P3] = 0.000000;
281 */
282  Symmetrize_Coeff (HIv);
283 }
284 
285 /* ********************************************************************* */
286 void HeI_INIT (Ion *HeIv)
287 /*
288  *
289  *********************************************************************** */
290 {
291  int i, j, n;
292  int S11, S23, S21, P23, P21;
293 
294  HeIv->N = 0.1; /* abundance of He with respect to H (Raymond) */
295  HeIv->nlev = 5;
296 
297  S11 = 0;
298  S23 = 1;
299  S21 = 2;
300  P23 = 3;
301  P21 = 4;
302 
303  HeIv->nTom = 4;
304  HeIv->Tom[0] = 0.5e4;
305  HeIv->Tom[1] = 1.0e4;
306  HeIv->Tom[2] = 1.5e4;
307  HeIv->Tom[3] = 2.0e4;
308 
309  if (HeIv->dE == NULL){
310  HeIv->dE = ARRAY_2D(HeIv->nlev, HeIv->nlev, double);
311  HeIv->A = ARRAY_2D(HeIv->nlev, HeIv->nlev, double);
312  HeIv->omega = ARRAY_3D(HeIv->nlev, HeIv->nlev, HeIv->nTom, double);
313  }
314 
315 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
316  O GET PROPER ORDER LATER */
317 
318  for (i = 0 ; i < HeIv->nlev ; i++) {
319  for (j = 0 ; j < HeIv->nlev ; j++) {
320  HeIv->dE[i][j] = -1.0;
321  HeIv->A[i][j] = -1.0;
322  for (n = 0; n < HeIv->nTom; n++){
323  HeIv->omega[i][j][n] = -1.0;
324  }
325  }}
326 
327 
328  HeIv->wght[S11] = 1.; /* 2 J + 1 */
329  HeIv->wght[S23] = 3.; /* */
330  HeIv->wght[S21] = 1.; /* */
331  HeIv->wght[P21] = 3.; /* */
332  HeIv->wght[P23] = 1.; /* */
333 
334 
335  HeIv->omega[S11][S23][0] = 6.50e-2;
336  HeIv->omega[S11][S23][1] = 6.87e-2;
337  HeIv->omega[S11][S23][2] = 6.81e-2;
338  HeIv->omega[S11][S23][3] = 6.72e-2;
339 
340  HeIv->omega[S11][S21][0] = 3.11e-2;
341  HeIv->omega[S11][S21][1] = 3.61e-2;
342  HeIv->omega[S11][S21][2] = 3.84e-2;
343  HeIv->omega[S11][S21][3] = 4.01e-2;
344 
345  HeIv->omega[S11][P23][0] = 1.60e-2;
346  HeIv->omega[S11][P23][1] = 2.27e-2;
347  HeIv->omega[S11][P23][2] = 2.71e-2;
348  HeIv->omega[S11][P23][3] = 3.07e-2;
349 
350  HeIv->omega[S11][P21][0] = 9.92e-3;
351  HeIv->omega[S11][P21][1] = 1.54e-2;
352  HeIv->omega[S11][P21][2] = 1.98e-2;
353  HeIv->omega[S11][P21][3] = 2.40e-2;
354 
355  HeIv->omega[S23][S21][0] = 2.24;
356  HeIv->omega[S23][S21][1] = 2.40;
357  HeIv->omega[S23][S21][2] = 2.32;
358  HeIv->omega[S23][S21][3] = 2.20;
359 
360  HeIv->omega[S23][P23][0] = 1.50e+1;
361  HeIv->omega[S23][P23][1] = 2.69e+1;
362  HeIv->omega[S23][P23][2] = 3.74e+1;
363  HeIv->omega[S23][P23][3] = 4.66e+1;
364 
365  HeIv->omega[S23][P21][0] = 7.70e-1;
366  HeIv->omega[S23][P21][1] = 9.75e-1;
367  HeIv->omega[S23][P21][2] = 1.05e+0;
368  HeIv->omega[S23][P21][3] = 1.08e+0;
369 
370  HeIv->omega[S21][P23][0] = 1.50;
371  HeIv->omega[S21][P23][1] = 1.70;
372  HeIv->omega[S21][P23][2] = 1.74;
373  HeIv->omega[S21][P23][3] = 1.72;
374 
375  HeIv->omega[S21][P21][0] = 9.73e+0;
376  HeIv->omega[S21][P21][1] = 1.86e+1;
377  HeIv->omega[S21][P21][2] = 2.58e+1;
378  HeIv->omega[S21][P21][3] = 3.32e+1;
379 /*
380  HeIv->omega[P23][P21][0] = 1.45e-30;
381  HeIv->omega[P23][P21][1] = 1.45e-30;
382  HeIv->omega[P23][P21][2] = 1.45e-30;
383  HeIv->omega[P23][P21][3] = 1.45e-30;
384 */
385  HeIv->dE[S11][S23] = 625.48; HeIv->A[S11][S23] = 1.13e-4; /* dE [ HIGHER ][LOWER ] */
386  HeIv->dE[S11][S21] = 601.30; HeIv->A[S11][S21] = 5.13e+1;
387  HeIv->dE[S11][P23] = 591.29; HeIv->A[S11][P23] = 1.76e+2;
388  HeIv->dE[S11][P21] = 584.21; HeIv->A[S11][P21] = 1.80e+9;
389  HeIv->dE[S23][S21] = 15553.7; HeIv->A[S23][S21] = 1.51e-7;
390  HeIv->dE[S23][P23] = 10817.0; HeIv->A[S23][P23] = 1.02e+7;
391  HeIv->dE[S23][P21] = 8854.5; HeIv->A[S23][P21] = 1.29;
392  HeIv->dE[S21][P23] = 35519.5; HeIv->A[S21][P23] = 2.70e-2;
393  HeIv->dE[S21][P21] = 20557.7; HeIv->A[S21][P21] = 1.98e+6;
394 /* HeIv->dE[P23][P21] = 1e+11; HeIv->A[P23][P21] = 0.0000;
395  */
396  Symmetrize_Coeff (HeIv);
397 }
398 
399 /* ********************************************************************* */
400 void HeII_INIT (Ion *HeIIv)
401 /*
402  *
403  *********************************************************************** */
404 {
405  int i, j, n;
406  int S1, S2, P;
407 
408  HeIIv->N = 0.1; /* abundance with respect to H (Raymond) */
409  HeIIv->nlev = 3;
410 
411  S1 = 0;
412  S2 = 2;
413  P = 1;
414 
415  HeIIv->nTom = 4;
416  HeIIv->Tom[0] = 0.5e4;
417  HeIIv->Tom[1] = 1.0e4;
418  HeIIv->Tom[2] = 1.5e4;
419  HeIIv->Tom[3] = 2.0e4;
420 
421  if (HeIIv->dE == NULL){
422  HeIIv->dE = ARRAY_2D(HeIIv->nlev, HeIIv->nlev, double);
423  HeIIv->A = ARRAY_2D(HeIIv->nlev, HeIIv->nlev, double);
424  HeIIv->omega = ARRAY_3D(HeIIv->nlev, HeIIv->nlev, HeIIv->nTom, double);
425  }
426 
427 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
428  O GET PROPER ORDER LATER */
429 
430  for (i = 0 ; i < HeIIv->nlev ; i++) {
431  for (j = 0 ; j < HeIIv->nlev ; j++) {
432  HeIIv->dE[i][j] = -1.0;
433  HeIIv->A[i][j] = -1.0;
434  for (n = 0; n < HeIIv->nTom; n++){
435  HeIIv->omega[i][j][n] = -1.0;
436  }
437  }}
438 
439 
440  HeIIv->wght[S1] = 2.; /* 2 J + 1 */
441  HeIIv->wght[S2] = 2.; /* */
442  HeIIv->wght[P] = 2.; /* */
443 
444 
445  HeIIv->omega[S1][S2][0] = 1.60e-1;
446  HeIIv->omega[S1][S2][1] = 1.59e-1;
447  HeIIv->omega[S1][S2][2] = 1.57e-1;
448  HeIIv->omega[S1][S2][3] = 1.56e-1;
449 
450  HeIIv->omega[S1][P][0] = 3.40e-1;
451  HeIIv->omega[S1][P][1] = 3.53e-1;
452  HeIIv->omega[S1][P][2] = 3.63e-1;
453  HeIIv->omega[S1][P][3] = 3.73e-1;
454 /*
455  HeIIv->omega[S2][P][0] = 3.40e-30;
456  HeIIv->omega[S2][P][1] = 3.40e-30;
457  HeIIv->omega[S2][P][2] = 3.40e-30;
458  HeIIv->omega[S2][P][3] = 3.40e-30;
459 */
460  HeIIv->dE[S1][S2] = 303.92; HeIIv->A[S1][S2] = 5.66e+2; /* dE [ HIGHER ][LOWER ] */
461  HeIIv->dE[S1][P] = 303.92; HeIIv->A[S1][P] = 1.0e+10;
462 /* HeIIv->dE[S2][P] = 2.0e+30; HeIIv->A[S2][P] = 0.00000; Fake data */
463 
464  Symmetrize_Coeff (HeIIv);
465 }
466 
467 /* ********************************************************************* */
468 void CI_INIT (Ion *CIv)
469 /*
470  *
471  *********************************************************************** */
472 {
473  int i, j, n;
474  int _3P0, _3P1, _3P2, _1D2, _1S0, _5S2;
475 
476  /* Old data, commented, is from Pradhan. New T-dep CS from MAPPINGS */
477 
478  CIv->N = 5.e-4; /* abundance of C with respect to H (Raymond) */
479  CIv->nlev = 5;
480 
481  CIv->isMAP = 0;
482 
483  _3P0 = 0;
484  _3P1 = 1;
485  _3P2 = 2;
486  _1D2 = 3;
487  _1S0 = 4;
488 /* _5S2 = 5; */
489 
490  CIv->nTom = 4;
491  CIv->Tom[0] = 0.5e4;
492  CIv->Tom[1] = 1.0e4;
493  CIv->Tom[2] = 1.5e4;
494  CIv->Tom[3] = 2.0e4;
495 
496  if (CIv->dE == NULL){
497  CIv->dE = ARRAY_2D(CIv->nlev, CIv->nlev, double);
498  CIv->A = ARRAY_2D(CIv->nlev, CIv->nlev, double);
499  CIv->omega = ARRAY_3D(CIv->nlev, CIv->nlev, CIv->nTom, double);
500  }
501 
502 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
503  O GET PROPER ORDER LATER */
504 
505  for (i = 0 ; i < CIv->nlev ; i++) {
506  for (j = 0 ; j < CIv->nlev ; j++) {
507  CIv->dE[i][j] = -1.0;
508  CIv->A[i][j] = -1.0;
509  for (n = 0; n < CIv->nTom; n++){
510  CIv->omega[i][j][n] = -1.0;
511  }
512  }}
513 
514 
515  CIv->wght[_3P0] = 1.; /* 2 J + 1 */
516  CIv->wght[_3P1] = 3.; /* */
517  CIv->wght[_3P2] = 5.; /* */
518  CIv->wght[_1D2] = 5.; /* */
519  CIv->wght[_1S0] = 1.; /* */
520 /* CIv->wght[_5S2] = 5.; */
521 
522 
523  CIv->omega[_1D2][_3P0][0] = 6.03e-1 * (1.0)/(3.0*3.0);
524  CIv->omega[_1D2][_3P0][1] = 1.14 * (1.0)/(3.0*3.0);
525  CIv->omega[_1D2][_3P0][2] = 1.60 * (1.0)/(3.0*3.0);
526  CIv->omega[_1D2][_3P0][3] = 1.96 * (1.0)/(3.0*3.0);
527 
528  CIv->omega[_1D2][_3P1][0] = CIv->omega[_1D2][_3P0][0] * (3.0)/(3.0*3.0);
529  CIv->omega[_1D2][_3P1][1] = CIv->omega[_1D2][_3P0][1] * (3.0)/(3.0*3.0);
530  CIv->omega[_1D2][_3P1][2] = CIv->omega[_1D2][_3P0][2] * (3.0)/(3.0*3.0);
531  CIv->omega[_1D2][_3P1][3] = CIv->omega[_1D2][_3P0][3] * (3.0)/(3.0*3.0);
532 
533  CIv->omega[_1D2][_3P2][0] = CIv->omega[_1D2][_3P0][0] * (5.0)/(3.0*3.0);
534  CIv->omega[_1D2][_3P2][1] = CIv->omega[_1D2][_3P0][0] * (5.0)/(3.0*3.0);
535  CIv->omega[_1D2][_3P2][2] = CIv->omega[_1D2][_3P0][0] * (5.0)/(3.0*3.0);
536  CIv->omega[_1D2][_3P2][3] = CIv->omega[_1D2][_3P0][0] * (5.0)/(3.0*3.0);
537 
538  CIv->omega[_1S0][_3P1][0] = 1.49e-1 * (3.0)/(3.0*3.0);
539  CIv->omega[_1S0][_3P1][1] = 2.52e-1 * (3.0)/(3.0*3.0);
540  CIv->omega[_1S0][_3P1][2] = 3.20e-1 * (3.0)/(3.0*3.0);
541  CIv->omega[_1S0][_3P1][3] = 3.65e-1 * (3.0)/(3.0*3.0);
542 
543  CIv->omega[_1S0][_3P2][0] = CIv->omega[_1S0][_3P1][0] * (5.0)/(3.0*3.0);
544  CIv->omega[_1S0][_3P2][1] = CIv->omega[_1S0][_3P1][1] * (5.0)/(3.0*3.0);
545  CIv->omega[_1S0][_3P2][2] = CIv->omega[_1S0][_3P1][2] * (5.0)/(3.0*3.0);
546  CIv->omega[_1S0][_3P2][3] = CIv->omega[_1S0][_3P1][3] * (5.0)/(3.0*3.0);
547 
548  CIv->omega[_1S0][_1D2][0] = 1.96e-1;
549  CIv->omega[_1S0][_1D2][1] = 2.77e-1;
550  CIv->omega[_1S0][_1D2][2] = 3.40e-1;
551  CIv->omega[_1S0][_1D2][3] = 3.92e-1;
552 
553  CIv->omega[_3P1][_3P0][0] = 2.43e-1;
554  CIv->omega[_3P1][_3P0][1] = 3.71e-1;
555  CIv->omega[_3P1][_3P0][2] = 3.71e-1;
556  CIv->omega[_3P1][_3P0][3] = 3.71e-1;
557 
558  CIv->omega[_3P2][_3P0][0] = 1.82e-1;
559  CIv->omega[_3P2][_3P0][1] = 2.46e-1;
560  CIv->omega[_3P2][_3P0][2] = 2.46e-1;
561  CIv->omega[_3P2][_3P0][3] = 2.46e-1;
562 
563  CIv->omega[_3P2][_3P1][0] = 7.14e-1;
564  CIv->omega[_3P2][_3P1][1] = 1.02;
565  CIv->omega[_3P2][_3P1][2] = 1.02;
566  CIv->omega[_3P2][_3P1][3] = 1.02;
567 /*
568  CIv->omega[_5S2][_3P1][0] = 4.75e-1;
569  CIv->omega[_5S2][_3P1][1] = 6.71e-1;
570  CIv->omega[_5S2][_3P1][2] = 8.22e-1;
571  CIv->omega[_5S2][_3P1][3] = 9.50e-1;
572 
573  CIv->omega[_5S2][_3P2][0] = CIv->omega[_5S2][_3P1][0] * (5.0)/(3.0*3.0);
574  CIv->omega[_5S2][_3P2][1] = CIv->omega[_5S2][_3P1][1] * (5.0)/(3.0*3.0);
575  CIv->omega[_5S2][_3P2][2] = CIv->omega[_5S2][_3P1][2] * (5.0)/(3.0*3.0);
576  CIv->omega[_5S2][_3P2][3] = CIv->omega[_5S2][_3P1][3] * (5.0)/(3.0*3.0);
577 */
578 /*
579  And now some fake data to make things work
580  We will add A=0 for these transitions, this is only to initialize the matrix and avoid NaNs
581 */
582 /*
583  CIv->omega[_1S0][_3P0][0] = 1.00e-30;
584  CIv->omega[_1S0][_3P0][1] = 1.00e-30;
585  CIv->omega[_1S0][_3P0][2] = 1.00e-30;
586  CIv->omega[_1S0][_3P0][3] = 1.00e-30;
587 
588  CIv->omega[_5S2][_1S0][0] = 1.00e-30;
589  CIv->omega[_5S2][_1S0][1] = 1.00e-30;
590  CIv->omega[_5S2][_1S0][2] = 1.00e-30;
591  CIv->omega[_5S2][_1S0][3] = 1.00e-30;
592 
593  CIv->omega[_5S2][_3P0][0] = 1.00e-30;
594  CIv->omega[_5S2][_3P0][1] = 1.00e-30;
595  CIv->omega[_5S2][_3P0][2] = 1.00e-30;
596  CIv->omega[_5S2][_3P0][3] = 1.00e-30;
597 
598  CIv->omega[_5S2][_1D2][0] = 1.00e-30;
599  CIv->omega[_5S2][_1D2][1] = 1.00e-30;
600  CIv->omega[_5S2][_1D2][2] = 1.00e-30;
601  CIv->omega[_5S2][_1D2][3] = 1.00e-30;
602 */
603 
604 /* End fake data */
605 
606 /*
607  CIv->omega[_1D2][_3P0][0] = 1.267e-1;
608  CIv->omega[_1D2][_3P0][1] = 0.9190;
609 
610  CIv->omega[_1D2][_3P1][0] = 3.80e-1;
611  CIv->omega[_1D2][_3P1][1] = 0.9190;
612 
613  CIv->omega[_1D2][_3P2][0] = 6.333e-1;
614  CIv->omega[_1D2][_3P2][1] = 0.9190;
615 
616  CIv->omega[_1S0][_3P1][0] = 8.40e-2;
617  CIv->omega[_1S0][_3P1][1] = 0.7580;
618 
619  CIv->omega[_1S0][_3P2][0] = 1.40e-1;
620  CIv->omega[_1S0][_3P2][1] = 0.7580;
621 
622  CIv->omega[_1S0][_1D2][0] = 2.77e-1;
623  CIv->omega[_1S0][_1D2][1] = 0.4990;
624 
625  CIv->omega[_3P1][_3P0][0] = 3.71e-1;
626  CIv->omega[_3P1][_3P0][1] = 0.0000;
627 
628  CIv->omega[_3P2][_3P0][0] = 2.46e-1;
629  CIv->omega[_3P2][_3P0][1] = 0.0000;
630 
631  CIv->omega[_3P2][_3P1][0] = 1.00;
632  CIv->omega[_3P2][_3P1][1] = 0.0000;
633 */
634 
635  CIv->dE[_1D2][_3P0] = 9808.13; CIv->A[_1D2][_3P0] = 8.62e-8;
636  CIv->dE[_1D2][_3P1] = 9824.12; CIv->A[_1D2][_3P1] = 6.05e-5;
637  CIv->dE[_1D2][_3P2] = 9850.26; CIv->A[_1D2][_3P2] = 1.80e-4;
638  CIv->dE[_1S0][_3P1] = 4621.57; CIv->A[_1S0][_3P1] = 2.1e-3;
639  CIv->dE[_1S0][_3P2] = 4627.35; CIv->A[_1S0][_3P2] = 1.79e-5;
640  CIv->dE[_1S0][_1D2] = 8727.18; CIv->A[_1S0][_1D2] = 6.34e-1;
641  CIv->dE[_3P1][_3P0] = 6.094e+6; CIv->A[_3P1][_3P0] = 7.88e-8;
642  CIv->dE[_3P2][_3P0] = 2304147.; CIv->A[_3P2][_3P0] = 1.81e-14;
643  CIv->dE[_3P2][_3P1] = 3704140.; CIv->A[_3P2][_3P1] = 2.65e-7;
644 /* CIv->dE[_5S2][_3P1] = 2965.70; CIv->A[_5S2][_3P1] = 6.94e+0;
645  CIv->dE[_5S2][_3P2] = 2968.08; CIv->A[_5S2][_3P2] = 1.56e+1;
646  CIv->dE[_5S2][_1S0] = 1.e+30; CIv->A[_5S2][_1S0] = 0.00000;
647  CIv->dE[_5S2][_3P0] = 1.e+30; CIv->A[_5S2][_3P0] = 0.00000;
648  CIv->dE[_5S2][_1D2] = 1.e+30; CIv->A[_5S2][_1D2] = 0.00000;
649  CIv->dE[_1S0][_3P0] = 1.e+30; CIv->A[_1S0][_3P0] = 0.00000; */
650 
651 
652  Symmetrize_Coeff (CIv);
653 }
654 
655 /* ********************************************************************* */
656 void CII_INIT (Ion *CIIv)
657 /*
658  *
659  *********************************************************************** */
660 {
661  int i, j, n;
662  int _2P12, _2P32, _4P12, _4P32, _4P52;
663 
664  /* Old data from Pradhan commented. Enlarged T-dep from Blum & Pradhan 1992, ApJSS */
665 
666  CIIv->N = 5.e-4; /* abundance of C with respect to H (Raymond) */
667  CIIv->nlev = 5;
668 
669  _2P12 = 0;
670  _2P32 = 1;
671  _4P12 = 2;
672  _4P32 = 3;
673  _4P52 = 4;
674 
675  CIIv->nTom = 4;
676  CIIv->Tom[0] = 0.3e4;
677  CIIv->Tom[1] = 1.0e4;
678  CIIv->Tom[2] = 2.2e4;
679  CIIv->Tom[3] = 4.0e4;
680 
681  if (CIIv->dE == NULL){
682  CIIv->dE = ARRAY_2D(CIIv->nlev, CIIv->nlev, double);
683  CIIv->A = ARRAY_2D(CIIv->nlev, CIIv->nlev, double);
684  CIIv->omega = ARRAY_3D(CIIv->nlev, CIIv->nlev, CIIv->nTom, double);
685  }
686 
687 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
688  O GET PROPER ORDER LATER */
689 
690  for (i = 0 ; i < CIIv->nlev ; i++) {
691  for (j = 0 ; j < CIIv->nlev ; j++) {
692  CIIv->dE[i][j] = -1.0;
693  CIIv->A[i][j] = -1.0;
694  for (n = 0; n < CIIv->nTom; n++){
695  CIIv->omega[i][j][n] = -1.0;
696  }
697  }}
698 
699 
700  CIIv->wght[_2P12] = 2.; /* 2 J + 1 */
701  CIIv->wght[_2P32] = 4.; /* */
702  CIIv->wght[_4P12] = 2.; /* */
703  CIIv->wght[_4P32] = 4.; /* */
704  CIIv->wght[_4P52] = 6.; /* */
705 
706 /* CIIv->omega[_2P32][_2P12][0] = 1.89;
707  CIIv->omega[_2P32][_2P12][1] = 2.15;
708  CIIv->omega[_2P32][_2P12][2] = 2.26;
709  CIIv->omega[_2P32][_2P12][3] = 2.28;
710 
711  CIIv->omega[_4P12][_2P12][0] = 2.43e-1;
712  CIIv->omega[_4P12][_2P12][1] = 2.42e-1;
713  CIIv->omega[_4P12][_2P12][2] = 2.46e-1;
714  CIIv->omega[_4P12][_2P12][3] = 2.48e-1;
715 
716  CIIv->omega[_4P12][_2P32][0] = 1.74e-1;
717  CIIv->omega[_4P12][_2P32][1] = 1.77e-1;
718  CIIv->omega[_4P12][_2P32][2] = 1.82e-1;
719  CIIv->omega[_4P12][_2P32][3] = 1.84e-1;
720 
721  CIIv->omega[_4P32][_2P12][0] = 3.61e-1;
722  CIIv->omega[_4P32][_2P12][1] = 3.62e-1;
723  CIIv->omega[_4P32][_2P12][2] = 3.68e-1;
724  CIIv->omega[_4P32][_2P12][3] = 3.70e-1;
725 
726  CIIv->omega[_4P32][_2P32][0] = 4.72e-1;
727  CIIv->omega[_4P32][_2P32][1] = 4.77e-1;
728  CIIv->omega[_4P32][_2P32][2] = 4.88e-1;
729  CIIv->omega[_4P32][_2P32][3] = 4.93e-1;
730 
731  CIIv->omega[_4P32][_4P12][0] = 6.60e-1;
732  CIIv->omega[_4P32][_4P12][1] = 8.24e-1;
733  CIIv->omega[_4P32][_4P12][2] = 9.64e-1;
734  CIIv->omega[_4P32][_4P12][3] = 1.06;
735 
736  CIIv->omega[_4P52][_2P12][0] = 2.29e-1;
737  CIIv->omega[_4P52][_2P12][1] = 2.34e-1;
738  CIIv->omega[_4P52][_2P12][2] = 2.42e-1;
739  CIIv->omega[_4P52][_2P12][3] = 2.45e-1;
740 
741  CIIv->omega[_4P52][_2P32][0] = 1.02;
742  CIIv->omega[_4P52][_2P32][1] = 1.02;
743  CIIv->omega[_4P52][_2P32][2] = 1.04;
744  CIIv->omega[_4P52][_2P32][3] = 1.05;
745 
746  CIIv->omega[_4P52][_4P12][0] = 7.30e-1;
747  CIIv->omega[_4P52][_4P12][1] = 8.53e-1;
748  CIIv->omega[_4P52][_4P12][2] = 9.32e-1;
749  CIIv->omega[_4P52][_4P12][3] = 9.71e-1;
750 
751  CIIv->omega[_4P52][_4P32][0] = 1.65;
752  CIIv->omega[_4P52][_4P32][1] = 1.98;
753  CIIv->omega[_4P52][_4P32][2] = 2.23;
754  CIIv->omega[_4P52][_4P32][3] = 2.39;
755 */
756 
757  CIIv->omega[_2P32][_2P12][0] = 1.7157;
758  CIIv->omega[_2P32][_2P12][1] = 2.1519;
759  CIIv->omega[_2P32][_2P12][2] = 2.2816;
760  CIIv->omega[_2P32][_2P12][3] = 2.2460;
761 
762  CIIv->omega[_4P12][_2P12][0] = 2.507e-1;
763  CIIv->omega[_4P12][_2P12][1] = 2.425e-1;
764  CIIv->omega[_4P12][_2P12][2] = 2.476e-1;
765  CIIv->omega[_4P12][_2P12][3] = 2.412e-1;
766 
767  CIIv->omega[_4P12][_2P32][0] = 1.776e-1;
768  CIIv->omega[_4P12][_2P32][1] = 1.771e-1;
769  CIIv->omega[_4P12][_2P32][2] = 1.845e-1;
770  CIIv->omega[_4P12][_2P32][3] = 1.799e-1;
771 
772  CIIv->omega[_4P32][_2P12][0] = 3.719e-1;
773  CIIv->omega[_4P32][_2P12][1] = 3.618e-1;
774  CIIv->omega[_4P32][_2P12][2] = 3.701e-1;
775  CIIv->omega[_4P32][_2P12][3] = 3.614e-1;
776 
777  CIIv->omega[_4P32][_2P32][0] = 4.847e-1;
778  CIIv->omega[_4P32][_2P32][1] = 4.774e-1;
779  CIIv->omega[_4P32][_2P32][2] = 4.934e-1;
780  CIIv->omega[_4P32][_2P32][3] = 4.807e-1;
781 
782  CIIv->omega[_4P32][_4P12][0] = 6.20e-1;
783  CIIv->omega[_4P32][_4P12][1] = 8.237e-1;
784  CIIv->omega[_4P32][_4P12][2] = 1.0898;
785  CIIv->omega[_4P32][_4P12][3] = 1.2207;
786 
787  CIIv->omega[_4P52][_2P12][0] = 2.340e-1;
788  CIIv->omega[_4P52][_2P12][1] = 2.349e-1;
789  CIIv->omega[_4P52][_2P12][2] = 2.457e-1;
790  CIIv->omega[_4P52][_2P12][3] = 2.395e-1;
791 
792  CIIv->omega[_4P52][_2P32][0] = 1.0508;
793  CIIv->omega[_4P52][_2P32][1] = 1.0238;
794  CIIv->omega[_4P52][_2P32][2] = 1.0508;
795  CIIv->omega[_4P52][_2P32][3] = 1.0237;
796 
797  CIIv->omega[_4P52][_4P12][0] = 6.895e-1;
798  CIIv->omega[_4P52][_4P12][1] = 8.533e-1;
799  CIIv->omega[_4P52][_4P12][2] = 9.789e-1;
800  CIIv->omega[_4P52][_4P12][3] = 9.924e-1;
801 
802  CIIv->omega[_4P52][_4P32][0] = 1.5521;
803  CIIv->omega[_4P52][_4P32][1] = 1.9818;
804  CIIv->omega[_4P52][_4P32][2] = 2.4300;
805  CIIv->omega[_4P52][_4P32][3] = 2.5885;
806 
807  CIIv->dE[_2P32][_2P12] = 1.5774e+5;CIIv->A[_2P32][_2P12] = 2.29e-6;
808  CIIv->dE[_4P12][_2P12] = 2325.; CIIv->A[_4P12][_2P12] = 7.0e+1;
809  CIIv->dE[_4P12][_2P32] = 2329.; CIIv->A[_4P12][_2P32] = 6.3e+1;
810  CIIv->dE[_4P32][_2P12] = 2324.; CIIv->A[_4P32][_2P12] = 1.4e+0;
811  CIIv->dE[_4P32][_2P32] = 2328.; CIIv->A[_4P32][_2P32] = 9.4e+0;
812  CIIv->dE[_4P32][_4P12] = 4.55e+6; CIIv->A[_4P32][_4P12] = 2.39e-7;
813 /* CIIv->dE[_4P52][_2P12] = 2323.; CIIv->A[_4P52][_2P12] = 0.00000;
814 */
815  CIIv->dE[_4P52][_2P32] = 2326.; CIIv->A[_4P52][_2P32] = 5.1e+1;
816  CIIv->dE[_4P52][_4P12] = 1.99e+6; CIIv->A[_4P52][_4P12] = 3.49e-14;
817  CIIv->dE[_4P52][_4P32] = 3.53e+6; CIIv->A[_4P52][_4P32] = 3.67e-7;
818 
819  Symmetrize_Coeff (CIIv);
820 }
821 
822 
823 /* ********************************************************************* */
824 void CIII_INIT (Ion *CIIIv)
825 /*
826  *
827  *********************************************************************** */
828 {
829  int i, j, n;
830  int _3P2, _3P1, _3P0, _1P1, _1S0;
831 
832  CIIIv->N = 5.e-4; /* abundance of C with respect to H (Raymond) */
833  CIIIv->nlev = 5;
834 
835  _1S0 = 0;
836  _3P0 = 1;
837  _3P1 = 2;
838  _3P2 = 3;
839  _1P1 = 4;
840 
841  CIIIv->nTom = 4;
842  CIIIv->Tom[0] = 0.5e4;
843  CIIIv->Tom[1] = 1.0e4;
844  CIIIv->Tom[2] = 1.5e4;
845  CIIIv->Tom[3] = 2.0e4;
846 
847  if (CIIIv->dE == NULL){
848  CIIIv->dE = ARRAY_2D(CIIIv->nlev, CIIIv->nlev, double);
849  CIIIv->A = ARRAY_2D(CIIIv->nlev, CIIIv->nlev, double);
850  CIIIv->omega = ARRAY_3D(CIIIv->nlev, CIIIv->nlev, CIIIv->nTom, double);
851  }
852 
853 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
854  O GET PROPER ORDER LATER */
855 
856  for (i = 0 ; i < CIIIv->nlev ; i++) {
857  for (j = 0 ; j < CIIIv->nlev ; j++) {
858  CIIIv->dE[i][j] = -1.0;
859  CIIIv->A[i][j] = -1.0;
860  for (n = 0; n < CIIIv->nTom; n++){
861  CIIIv->omega[i][j][n] = -1.0;
862  }
863  }}
864 
865 
866  CIIIv->wght[_1S0] = 1.; /* 2 J + 1 */
867  CIIIv->wght[_3P0] = 1.; /* */
868  CIIIv->wght[_3P1] = 3.; /* */
869  CIIIv->wght[_3P2] = 5.; /* */
870  CIIIv->wght[_1P1] = 3.; /* */
871 
872  CIIIv->omega[_3P2][_1S0][0] = 1.12 * (5.0)/(3.0 * 3.0);
873  CIIIv->omega[_3P2][_1S0][1] = 1.01 * (5.0)/(3.0 * 3.0);
874  CIIIv->omega[_3P2][_1S0][2] = 9.90e-1 * (5.0)/(3.0 * 3.0);
875  CIIIv->omega[_3P2][_1S0][3] = 9.96e-1 * (5.0)/(3.0 * 3.0);
876 
877  CIIIv->omega[_3P1][_1S0][0] = 1.12 * (3.0)/(3.0 * 3.0);
878  CIIIv->omega[_3P1][_1S0][1] = 1.01 * (3.0)/(3.0 * 3.0);
879  CIIIv->omega[_3P1][_1S0][2] = 9.90e-1 * (3.0)/(3.0 * 3.0);
880  CIIIv->omega[_3P1][_1S0][3] = 9.96e-1 * (3.0)/(3.0 * 3.0);
881 
882  CIIIv->omega[_1P1][_1S0][0] = 3.85;
883  CIIIv->omega[_1P1][_1S0][1] = 4.34;
884  CIIIv->omega[_1P1][_1S0][2] = 4.56;
885  CIIIv->omega[_1P1][_1S0][3] = 4.69;
886 
887  CIIIv->omega[_3P1][_3P0][0] = 8.48e-1;
888  CIIIv->omega[_3P1][_3P0][1] = 9.11e-1;
889  CIIIv->omega[_3P1][_3P0][2] = 9.75e-1;
890  CIIIv->omega[_3P1][_3P0][3] = 1.03;
891 
892  CIIIv->omega[_3P2][_3P1][0] = 2.36;
893  CIIIv->omega[_3P2][_3P1][1] = 2.66;
894  CIIIv->omega[_3P2][_3P1][2] = 2.97;
895  CIIIv->omega[_3P2][_3P1][3] = 3.23;
896 
897  CIIIv->omega[_3P2][_3P0][0] = 0.579;
898  CIIIv->omega[_3P2][_3P0][1] = 0.677;
899  CIIIv->omega[_3P2][_3P0][2] = 0.776;
900  CIIIv->omega[_3P2][_3P0][3] = 0.867;
901 
902  /* fake data */
903 /*
904  CIIIv->omega[_3P2][_3P0][0] = 8.48e-31;
905  CIIIv->omega[_3P2][_3P0][1] = 9.11e-31;
906  CIIIv->omega[_3P2][_3P0][2] = 9.75e-31;
907  CIIIv->omega[_3P2][_3P0][3] = 1.03e-30;
908 
909  CIIIv->omega[_1P1][_3P0][0] = 8.48e-31;
910  CIIIv->omega[_1P1][_3P0][1] = 9.11e-31;
911  CIIIv->omega[_1P1][_3P0][2] = 9.75e-31;
912  CIIIv->omega[_1P1][_3P0][3] = 1.03e-30;
913 
914  CIIIv->omega[_1P1][_3P1][0] = 8.48e-31;
915  CIIIv->omega[_1P1][_3P1][1] = 9.11e-31;
916  CIIIv->omega[_1P1][_3P1][2] = 9.75e-31;
917  CIIIv->omega[_1P1][_3P1][3] = 1.03e-30;
918 
919  CIIIv->omega[_1P1][_3P2][0] = 8.48e-31;
920  CIIIv->omega[_1P1][_3P2][1] = 9.11e-31;
921  CIIIv->omega[_1P1][_3P2][2] = 9.75e-31;
922  CIIIv->omega[_1P1][_3P2][3] = 1.03e-30;
923 
924  CIIIv->omega[_3P0][_1S0][0] = 8.48e-31;
925  CIIIv->omega[_3P0][_1S0][1] = 9.11e-31;
926  CIIIv->omega[_3P0][_1S0][2] = 9.75e-31;
927  CIIIv->omega[_3P0][_1S0][3] = 1.03e-30;
928 */
929 
930  CIIIv->dE[_3P2][_1S0] = 1907. ; CIIIv->A[_3P2][_1S0] = 5.19e-3;
931  CIIIv->dE[_3P1][_1S0] = 1909. ; CIIIv->A[_3P1][_1S0] = 1.14e+2;
932  CIIIv->dE[_1P1][_1S0] = 977.02; CIIIv->A[_1P1][_1S0] = 1.767e+9;
933  CIIIv->dE[_3P1][_3P0] = 4.22e+6; CIIIv->A[_3P1][_3P0] = 1.4e+0;
934  CIIIv->dE[_3P2][_3P1] = 1.774e+6; CIIIv->A[_3P2][_3P1] = 9.4e+0;
935  CIIIv->dE[_3P2][_3P0] = 1.25e+6 ; CIIIv->A[_3P2][_3P0] = 1.5e-13;
936 /* CIIIv->dE[_1P1][_3P0] = 2323.e+13;CIIIv->A[_1P1][_3P0] = 1.e-31;
937  CIIIv->dE[_1P1][_3P1] = 2326.e+13;CIIIv->A[_1P1][_3P1] = 1.e-31;
938  CIIIv->dE[_1P1][_3P2] = 1.99e+16; CIIIv->A[_1P1][_3P2] = 1.e-31;
939  CIIIv->dE[_3P0][_1S0] = 3.53e+16; CIIIv->A[_3P0][_1S0] = 1.e-31;
940 */
941  Symmetrize_Coeff (CIIIv);
942 }
943 
944 /* ********************************************************************* */
945 void CIV_INIT (Ion *CIVv)
946 /*
947  *
948  *********************************************************************** */
949 {
950  int i, j, n;
951  int S12, P12, P32;
952 
953  CIVv->N = 5.e-4; /* abundance of C with respect to H (Raymond) */
954  CIVv->nlev = 3;
955 
956  S12 = 0;
957  P12 = 1;
958  P32 = 2;
959 
960  CIVv->nTom = 2;
961  CIVv->Tom[0] = 1.0e4;
962  CIVv->Tom[1] = 2.0e4;
963 
964  if (CIVv->dE == NULL){
965  CIVv->dE = ARRAY_2D(CIVv->nlev, CIVv->nlev, double);
966  CIVv->A = ARRAY_2D(CIVv->nlev, CIVv->nlev, double);
967  CIVv->omega = ARRAY_3D(CIVv->nlev, CIVv->nlev, CIVv->nTom, double);
968  }
969 
970 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
971  O GET PROPER ORDER LATER */
972 
973  for (i = 0 ; i < CIVv->nlev ; i++) {
974  for (j = 0 ; j < CIVv->nlev ; j++) {
975  CIVv->dE[i][j] = -1.0;
976  CIVv->A[i][j] = -1.0;
977  for (n = 0; n < CIVv->nTom; n++){
978  CIVv->omega[i][j][n] = -1.0;
979  }
980  }}
981 
982 
983  CIVv->wght[S12] = 2.; /* 2 J + 1 */
984  CIVv->wght[P12] = 2.; /* */
985  CIVv->wght[P32] = 4.; /* */
986 
987  CIVv->omega[P32][S12][0] = 8.88*(4.0)/(2.0 * 3.0);
988  CIVv->omega[P32][S12][1] = 8.95*(4.0)/(2.0 * 3.0);
989 
990  CIVv->omega[P12][S12][0] = CIVv->omega[P32][S12][0]*(2.0)/(2.0 * 3.0);
991  CIVv->omega[P12][S12][1] = CIVv->omega[P32][S12][1]*(2.0)/(2.0 * 3.0);
992 /*
993  CIVv->omega[P32][P12][0] = 8.88e-31;
994  CIVv->omega[P32][P12][1] = 8.88e-31;
995 */
996 
997  CIVv->dE[P32][S12] = 1548.2 ; CIVv->A[P32][S12] = 2.65e+8;
998  CIVv->dE[P12][S12] = 1550.8 ; CIVv->A[P12][S12] = 2.63e+8;
999 /* CIVv->dE[P32][P12] = 1.e+16 ; CIVv->A[P32][P12] = 1.e-31;
1000 */
1001 
1002  Symmetrize_Coeff (CIVv);
1003 }
1004 
1005 
1006 /* ********************************************************************* */
1007 void CV_INIT (Ion *CVv)
1008 /*
1009  *
1010  *********************************************************************** */
1011 {
1012  int i, j, n;
1013  int S0, P2, P2_1, P3_1;
1014 
1015  CVv->isCV = 1;
1016 
1017  CVv->N = 5.e-4; /* abundance of C with respect to H (Raymond) */
1018  CVv->nlev = 4;
1019 
1020  S0 = 0;
1021  P2 = 1;
1022  P2_1 = 2;
1023  P3_1 = 3;
1024 
1025  CVv->nTom = 3;
1026  CVv->Tom[0] = 1.0e4;
1027  CVv->Tom[1] = 2.0e4;
1028  CVv->Tom[2] = 3.0e4;
1029 
1030  if (CVv->dE == NULL){
1031  CVv->dE = ARRAY_2D(CVv->nlev, CVv->nlev, double);
1032  CVv->A = ARRAY_2D(CVv->nlev, CVv->nlev, double);
1033  CVv->omega = ARRAY_3D(CVv->nlev, CVv->nlev, CVv->nTom, double);
1034  }
1035 
1036 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
1037  O GET PROPER ORDER LATER */
1038 
1039  for (i = 0 ; i < CVv->nlev ; i++) {
1040  for (j = 0 ; j < CVv->nlev ; j++) {
1041  CVv->dE[i][j] = -1.0;
1042  CVv->A[i][j] = -1.0;
1043  for (n = 0; n < CVv->nTom; n++){
1044  CVv->omega[i][j][n] = -1.0;
1045  }
1046  }}
1047 
1048 
1049  CVv->wght[S0] = 1.; /* 2 J + 1 */
1050  CVv->wght[P2] = 5.; /* */
1051  CVv->wght[P2_1] = 3.; /* */
1052  CVv->wght[P3_1] = 3.; /* */
1053 
1054  CVv->omega[P2][S0][0] = 2.06e-2; /* alpha */
1055  CVv->omega[P2][S0][1] = 0.064; /* beta */
1056  CVv->omega[P2][S0][2] = 5.50; /* log T_m */
1057 
1058  CVv->omega[P2_1][S0][0] = 2.96e-2;
1059  CVv->omega[P2_1][S0][1] = 0.282;
1060  CVv->omega[P2_1][S0][2] = 5.50;
1061 
1062  CVv->omega[P3_1][S0][0] = 1.09e-2;
1063  CVv->omega[P3_1][S0][1] = 0.094;
1064  CVv->omega[P3_1][S0][2] = 5.50;
1065 
1066  CVv->omega[P3_1][P2][0] = 0.00000;
1067  CVv->omega[P3_1][P2][1] = 0.094;
1068  CVv->omega[P3_1][P2][2] = 5.50;
1069 
1070  CVv->omega[P3_1][P2_1][0] = 0.00000;
1071  CVv->omega[P3_1][P2_1][1] = 0.094;
1072  CVv->omega[P3_1][P2_1][2] = 5.50;
1073 
1074  CVv->omega[P2_1][P2][0] = 0.00000;
1075  CVv->omega[P2_1][P2][1] = 0.094;
1076  CVv->omega[P2_1][P2][2] = 5.50;
1077 
1078 
1079  CVv->dE[P2][S0] = 34.97; CVv->A[P2][S0] = 2.554e+11;
1080  CVv->dE[P2_1][S0] = 40.27; CVv->A[P2_1][S0] = 8.873e+11;
1081  CVv->dE[P3_1][S0] = 40.73; CVv->A[P3_1][S0] = 2.62e+4;
1082 /*
1083  CVv->dE[P3_1][P2] = 1.0e+30; CVv->A[P3_1][P2] = 0.00000;
1084  CVv->dE[P3_1][P2_1] = 1.0e+30; CVv->A[P3_1][P2_1] = 0.00000;
1085  CVv->dE[P2_1][P2] = 1.0e+30; CVv->A[P2_1][P2] = 0.00000;
1086 */
1087 
1088  Symmetrize_Coeff (CVv);
1089 }
1090 
1091 /* ********************************************************************* */
1092 void NI_INIT (Ion *NIv)
1093 /*
1094  *
1095  *********************************************************************** */
1096 {
1097  int i, j, n;
1098  int S32, D52, D32, P32, P12;
1099 
1100 
1101  /* Data from T-dependent CS from MAPPINGS commented */
1102 
1103  NIv->isMAP = 0;
1104 
1105  NIv->N = 0.9e-4 ; /* abundance of N with respect to H (Raymond) */
1106  NIv->nlev = 5;
1107 
1108  S32 = 0;
1109  D52 = 1;
1110  D32 = 2;
1111  P12 = 3;
1112  P32 = 4;
1113 
1114  NIv->nTom = 3;
1115  NIv->Tom[0] = 0.5e4;
1116  NIv->Tom[1] = 1.0e4;
1117  NIv->Tom[2] = 2.0e4;
1118 
1119  if (NIv->dE == NULL){
1120  NIv->dE = ARRAY_2D(NIv->nlev, NIv->nlev, double);
1121  NIv->A = ARRAY_2D(NIv->nlev, NIv->nlev, double);
1122  NIv->omega = ARRAY_3D(NIv->nlev, NIv->nlev, NIv->nTom, double);
1123  }
1124 
1125 
1126 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
1127  O GET PROPER ORDER LATER */
1128 
1129  for (i = 0 ; i < NIv->nlev ; i++) {
1130  for (j = 0 ; j < NIv->nlev ; j++) {
1131  NIv->dE[i][j] = -1.0;
1132  NIv->A[i][j] = -1.0;
1133  for (n = 0; n < NIv->nTom; n++){
1134  NIv->omega[i][j][n] = -1.0;
1135  }
1136  }}
1137 
1138 
1139  NIv->wght[S32] = 4.; /* 2 J + 1 */
1140  NIv->wght[D52] = 6.; /* */
1141  NIv->wght[D32] = 4.; /* */
1142  NIv->wght[P32] = 4.; /* */
1143  NIv->wght[P12] = 2.; /* */
1144 
1145 
1146  NIv->omega[D52][S32][0] = 1.55e-1;
1147  NIv->omega[D52][S32][1] = 2.90e-1;
1148  NIv->omega[D52][S32][2] = 4.76e-1;
1149 
1150  NIv->omega[D32][S32][0] = 1.03-1;
1151  NIv->omega[D32][S32][1] = 1.94-1;
1152  NIv->omega[D32][S32][2] = 3.18-1;
1153 
1154  NIv->omega[P32][S32][0] = 5.97e-2;
1155  NIv->omega[P32][S32][1] = 1.13e-1;
1156  NIv->omega[P32][S32][2] = 1.89e-1;
1157 
1158  NIv->omega[P12][S32][0] = 2.98e-2;
1159  NIv->omega[P12][S32][1] = 5.67e-2;
1160  NIv->omega[P12][S32][2] = 9.47e-2;
1161 
1162  NIv->omega[D52][D32][0] = 1.28e-1;
1163  NIv->omega[D52][D32][1] = 2.69e-1;
1164  NIv->omega[D52][D32][2] = 4.65e-1;
1165 
1166  NIv->omega[P32][P12][0] = 3.29e-2;
1167  NIv->omega[P32][P12][1] = 7.10e-2;
1168  NIv->omega[P32][P12][2] = 1.53e-1;
1169 
1170  NIv->omega[P32][D52][0] = 1.62e-1;
1171  NIv->omega[P32][D52][1] = 2.66e-1;
1172  NIv->omega[P32][D52][2] = 4.38e-1;
1173 
1174  NIv->omega[P32][D32][0] = 8.56e-2;
1175  NIv->omega[P32][D32][1] = 1.47e-1;
1176  NIv->omega[P32][D32][2] = 2.52e-1;
1177 
1178  NIv->omega[P12][D52][0] = 6.26e-2;
1179  NIv->omega[P12][D52][1] = 1.09e-1;
1180  NIv->omega[P12][D52][2] = 1.90e-1;
1181 
1182  NIv->omega[P12][D32][0] = 6.01e-2;
1183  NIv->omega[P12][D32][1] = 9.70e-2;
1184  NIv->omega[P12][D32][2] = 1.57e-1;
1185 
1186 /*
1187  NIv->omega[D52][S32][0] = 2.90e-1;
1188  NIv->omega[D52][S32][1] = 9.10e-1;
1189 
1190  NIv->omega[D32][S32][0] = 1.94-1;
1191  NIv->omega[D32][S32][1] = 9.10-1;
1192 
1193  NIv->omega[P32][S32][0] = 1.13e-1;
1194  NIv->omega[P32][S32][1] = 9.30e-1;
1195 
1196  NIv->omega[P12][S32][0] = 5.67e-2;
1197  NIv->omega[P12][S32][1] = 9.30e-1;
1198 
1199  NIv->omega[D52][D32][0] = 2.69e-1;
1200  NIv->omega[D52][D32][1] = 1.08;
1201 
1202  NIv->omega[P32][P12][0] = 7.10e-2;
1203  NIv->omega[P32][P12][1] = 1.11;
1204 
1205  NIv->omega[P32][D52][0] = 2.66e-1;
1206  NIv->omega[P32][D52][1] = 0.72;
1207 
1208  NIv->omega[P32][D32][0] = 1.47e-1;
1209  NIv->omega[P32][D32][1] = 7.8e-1;
1210 
1211  NIv->omega[P12][D52][0] = 1.09e-1;
1212  NIv->omega[P12][D52][1] = 8.0e-1;
1213 
1214  NIv->omega[P12][D32][0] = 9.70e-2;
1215  NIv->omega[P12][D32][1] = 0.69;
1216 */
1217 
1218  NIv->dE[D52][S32] = 5200.4; NIv->A[D52][S32] = 6.13e-6 ;
1219  NIv->dE[D32][S32] = 5197.9; NIv->A[D32][S32] = 2.28e-5;
1220  NIv->dE[P32][S32] = 3466.5; NIv->A[P32][S32] = 6.60e-3;
1221  NIv->dE[P12][S32] = 3466.5; NIv->A[P12][S32] = 2.72e-3;
1222  NIv->dE[D52][D32] = 1.148e+7; NIv->A[D52][D32] = 1.24e-8;
1223  NIv->dE[P32][P12] = 2.59e+8; NIv->A[P32][P12] = 5.17e-13;
1224  NIv->dE[P32][D52] = 10397.7; NIv->A[P32][D52] = 5.59e-2;
1225  NIv->dE[P32][D32] = 10407.2; NIv->A[P32][D32] = 2.52e-2;
1226  NIv->dE[P12][D52] = 10398.2; NIv->A[P12][D52] = 3.14e-2;
1227  NIv->dE[P12][D32] = 10407.6; NIv->A[P12][D32] = 4.80e-2;
1228 
1229 
1230  Symmetrize_Coeff (NIv);
1231 }
1232 
1233 /* ********************************************************************* */
1234 void NII_INIT (Ion *NIIv)
1235 /*
1236  *
1237  *********************************************************************** */
1238 {
1239  int i, j, n;
1240  int S0, P0, P1, P2, D2;
1241 
1242  /* Old data from Pradhan, commented. New T-dep data (Chebyshev pol fit) from Stafford et al. 1994 */
1243 
1244  NIIv->isCHEB = 0; /* Chebyshev fit indicator */
1245 
1246  NIIv->N = 0.9e-4 ; /* abundance of N with respect to H (Raymond) */
1247  NIIv->nlev = 5;
1248 
1249  P0 = 0;
1250  P1 = 1;
1251  P2 = 2;
1252  D2 = 3;
1253  S0 = 4;
1254 
1255  NIIv->nTom = 4;
1256  NIIv->Tom[0] = 0.5e4;
1257  NIIv->Tom[1] = 1.0e4;
1258  NIIv->Tom[2] = 1.5e4;
1259  NIIv->Tom[3] = 2.0e4;
1260 
1261  if (NIIv->dE == NULL){
1262  NIIv->dE = ARRAY_2D(NIIv->nlev, NIIv->nlev, double);
1263  NIIv->A = ARRAY_2D(NIIv->nlev, NIIv->nlev, double);
1264  NIIv->omega = ARRAY_3D(NIIv->nlev, NIIv->nlev, NIIv->nTom, double);
1265  }
1266 
1267 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
1268  O GET PROPER ORDER LATER */
1269 
1270  for (i = 0 ; i < NIIv->nlev ; i++) {
1271  for (j = 0 ; j < NIIv->nlev ; j++) {
1272  NIIv->dE[i][j] = -1.0;
1273  NIIv->A[i][j] = -1.0;
1274  for (n = 0; n < NIIv->nTom; n++){
1275  if (NIIv->isCHEB) NIIv->omega[i][j][n] = 0.0;
1276  else NIIv->omega[i][j][n] = -1.0;
1277  }
1278  }}
1279 
1280 
1281  NIIv->wght[S0] = 1.; /* 2 J + 1 */
1282  NIIv->wght[P0] = 1.; /* */
1283  NIIv->wght[P1] = 3.; /* */
1284  NIIv->wght[P2] = 5.; /* */
1285  NIIv->wght[D2] = 5.; /* */
1286 
1287 if (!NIIv->isCHEB) {
1288  NIIv->omega[D2][P0][0] = 2.57 * (1.0 / ( 3.0 * 3.0) );
1289  NIIv->omega[D2][P0][1] = 2.64 * (1.0 / ( 3.0 * 3.0) );
1290  NIIv->omega[D2][P0][2] = 2.70 * (1.0 / ( 3.0 * 3.0) );
1291  NIIv->omega[D2][P0][3] = 2.73 * (1.0 / ( 3.0 * 3.0) );
1292 
1293  NIIv->omega[D2][P1][0] = 2.57 * (3.0)/(3.0 * 3.0);
1294  NIIv->omega[D2][P1][1] = 2.64 * (3.0)/(3.0 * 3.0);
1295  NIIv->omega[D2][P1][2] = 2.70 * (3.0)/(3.0 * 3.0);
1296  NIIv->omega[D2][P1][3] = 2.73 * (3.0)/(3.0 * 3.0);
1297 
1298  NIIv->omega[D2][P2][0] = 2.57 * (5.0)/(3.0 * 3.0);
1299  NIIv->omega[D2][P2][1] = 2.64 * (5.0)/(3.0 * 3.0);
1300  NIIv->omega[D2][P2][2] = 2.70 * (5.0)/(3.0 * 3.0);
1301  NIIv->omega[D2][P2][3] = 2.73 * (5.0)/(3.0 * 3.0);
1302 
1303  NIIv->omega[S0][P1][0] = .287 * (3.0)/(3.0*3.0);
1304  NIIv->omega[S0][P1][1] = .293 * (3.0)/(3.0*3.0);
1305  NIIv->omega[S0][P1][2] = .300 * (3.0)/(3.0*3.0);
1306  NIIv->omega[S0][P1][3] = .305 * (3.0)/(3.0*3.0);
1307 
1308  NIIv->omega[S0][P2][0] = .287 * (5.0)/(3.0*3.0);
1309  NIIv->omega[S0][P2][1] = .293 * (5.0)/(3.0*3.0);
1310  NIIv->omega[S0][P2][2] = .300 * (5.0)/(3.0*3.0);
1311  NIIv->omega[S0][P2][3] = .305 * (5.0)/(3.0*3.0);
1312 
1313  NIIv->omega[S0][D2][0] = .959;
1314  NIIv->omega[S0][D2][1] = .834;
1315  NIIv->omega[S0][D2][2] = .761;
1316  NIIv->omega[S0][D2][3] = .734;
1317 
1318  NIIv->omega[P1][P0][0] = .371;
1319  NIIv->omega[P1][P0][1] = .408;
1320  NIIv->omega[P1][P0][2] = .429;
1321  NIIv->omega[P1][P0][3] = .443;
1322 
1323  NIIv->omega[P2][P0][0] = .243;
1324  NIIv->omega[P2][P0][1] = .272;
1325  NIIv->omega[P2][P0][2] = .301;
1326  NIIv->omega[P2][P0][3] = .316;
1327 
1328  NIIv->omega[P2][P1][0] = 1.01;
1329  NIIv->omega[P2][P1][1] = 1.12;
1330  NIIv->omega[P2][P1][2] = 1.21;
1331  NIIv->omega[P2][P1][3] = 1.26;
1332 /*
1333  NIIv->omega[S0][P0][0] = 1.e-31;
1334  NIIv->omega[S0][P0][1] = 1.e-31;
1335  NIIv->omega[S0][P0][2] = 1.e-31;
1336  NIIv->omega[S0][P0][3] = 1.e-31;
1337 */
1338 }
1339 
1340 if (NIIv->isCHEB) {
1341  NIIv->omega[D2][P0][0] = -2.1882;
1342  NIIv->omega[D2][P0][1] = -0.0023;
1343  NIIv->omega[D2][P0][2] = 0.0082;
1344  NIIv->omega[D2][P0][3] = -0.0005;
1345 
1346  NIIv->omega[D2][P1][0] = 0.0090;
1347  NIIv->omega[D2][P1][1] = -0.0023;
1348  NIIv->omega[D2][P1][2] = 0.0082;
1349  NIIv->omega[D2][P1][3] = -0.0006;
1350 
1351  NIIv->omega[D2][P2][0] = 1.0307;
1352  NIIv->omega[D2][P2][1] = -0.0023;
1353  NIIv->omega[D2][P2][2] = 0.0082;
1354  NIIv->omega[D2][P2][3] = -0.0006;
1355 
1356  NIIv->omega[S0][P1][0] = -4.1820;
1357  NIIv->omega[S0][P1][1] = -0.0076;
1358  NIIv->omega[S0][P1][2] = 0.0190;
1359  NIIv->omega[S0][P1][3] = -0.0013;
1360 
1361  NIIv->omega[S0][P2][0] = -3.1604;
1362  NIIv->omega[S0][P2][1] = -0.0076;
1363  NIIv->omega[S0][P2][2] = 0.0190;
1364  NIIv->omega[S0][P2][3] = -0.0013;
1365 
1366  NIIv->omega[S0][D2][0] = -1.2463;
1367  NIIv->omega[S0][D2][1] = 0.0961;
1368  NIIv->omega[S0][D2][2] = 0.0291;
1369  NIIv->omega[S0][D2][3] = -0.0024;
1370 
1371  NIIv->omega[P1][P0][0] = -1.5340;
1372  NIIv->omega[P1][P0][1] = 0.1436;
1373  NIIv->omega[P1][P0][2] = 0.0107;
1374  NIIv->omega[P1][P0][3] = -0.0076;
1375 
1376  NIIv->omega[P2][P0][0] = -2.4004;
1377  NIIv->omega[P2][P0][1] = 0.1962;
1378  NIIv->omega[P2][P0][2] = -0.0440;
1379  NIIv->omega[P2][P0][3] = -0.0296;
1380 
1381  NIIv->omega[P2][P1][0] = 0.4597;
1382  NIIv->omega[P2][P1][1] = 0.1717;
1383  NIIv->omega[P2][P1][2] = -0.0189;
1384  NIIv->omega[P2][P1][3] = -0.0198;
1385 
1386  NIIv->omega[S0][P0][0] = -6.3792;
1387  NIIv->omega[S0][P0][1] = -0.0076;
1388  NIIv->omega[S0][P0][2] = 0.0190;
1389  NIIv->omega[S0][P0][3] = -0.0013;
1390 
1391 }
1392 
1393  NIIv->dE[D2][P2] = 6583.4; NIIv->A[D2][P2] = 2.72e-3 ;
1394  NIIv->dE[D2][P1] = 6548.1; NIIv->A[D2][P1] = 9.19e-4;
1395  NIIv->dE[D2][P0] = 6527.1; NIIv->A[D2][P0] = 5.4e-7;
1396  NIIv->dE[P1][P0] = 204.e4; NIIv->A[P1][P0] = 2.1e-6;
1397  NIIv->dE[P2][P0] = 76.e4 ; NIIv->A[P2][P0] = 1.2e-12;
1398  NIIv->dE[P2][P1] = 122.e4; NIIv->A[P2][P1] = 7.5e-6;
1399  NIIv->dE[S0][P1] = 3062.9; NIIv->A[S0][P1] = 3.38e-2;
1400  NIIv->dE[S0][P2] = 3071.4; NIIv->A[S0][P2] = 1.51e-4;
1401  NIIv->dE[S0][D2] = 5754.6; NIIv->A[S0][D2] = 1.12;
1402 /* NIIv->dE[S0][P0] = 2.e+21; NIIv->A[S0][P0] = 0.0000; come S2-P2 (Pradhan) */
1403 
1404 
1405  Symmetrize_Coeff (NIIv);
1406 }
1407 
1408 /* ********************************************************************* */
1409 void NIII_INIT (Ion *NIIIv)
1410 /*
1411  *
1412  *********************************************************************** */
1413 {
1414  int i, j, n;
1415  int _2P12, _2P32, _4P12, _4P32, _4P52;
1416 
1417  /* Old data from Pradhan, commented. New T-dep data (Chebyshev pol fit) from Stafford et al. 1994 */
1418 
1419  NIIIv->N = 0.9e-4; /* abundance of N with respect to H (Raymond) */
1420  NIIIv->nlev = 5;
1421 
1422  _2P12 = 0;
1423  _2P32 = 1;
1424  _4P12 = 2;
1425  _4P32 = 3;
1426  _4P52 = 4;
1427 
1428  NIIIv->isCHEB = 1; /* Use Chebyshev interpolation ( log(T)<5.1 ) */
1429  NIIIv->isMAP = 0; /* Use Mappings T-dep CS data T < 10^7 K */
1430 
1431 
1432  if (NIIIv->isCHEB) {
1433  NIIIv->nTom = 4;
1434  NIIIv->Tom[0] = 0.5e4;
1435  NIIIv->Tom[1] = 1.0e4;
1436  NIIIv->Tom[2] = 1.5e4;
1437  NIIIv->Tom[3] = 2.0e4;
1438  }
1439  if (NIIIv->isMAP) {
1440  NIIIv->nTom = 2;
1441  NIIIv->Tom[0] = 0.5e4;
1442  NIIIv->Tom[1] = 1.0e4;
1443  }
1444 
1445  if (NIIIv->dE == NULL){
1446  NIIIv->dE = ARRAY_2D(NIIIv->nlev, NIIIv->nlev, double);
1447  NIIIv->A = ARRAY_2D(NIIIv->nlev, NIIIv->nlev, double);
1448  NIIIv->omega = ARRAY_3D(NIIIv->nlev, NIIIv->nlev, NIIIv->nTom, double);
1449  }
1450 
1451  for (i = 0 ; i < NIIIv->nlev ; i++) {
1452  for (j = 0 ; j < NIIIv->nlev ; j++) {
1453  NIIIv->dE[i][j] = -1.0;
1454  NIIIv->A[i][j] = -1.0;
1455  for (n = 0; n < NIIIv->nTom; n++){
1456  NIIIv->omega[i][j][n] = 0.0;
1457  }
1458  }}
1459 
1460 
1461  NIIIv->wght[_2P12] = 2.; /* 2 J + 1 */
1462  NIIIv->wght[_2P32] = 4.; /* */
1463  NIIIv->wght[_4P12] = 2.; /* */
1464  NIIIv->wght[_4P32] = 4.; /* */
1465  NIIIv->wght[_4P52] = 6.; /* */
1466 
1467 /*
1468  NIIIv->omega[_2P32][_2P12][0] = 1.32;
1469  NIIIv->omega[_2P32][_2P12][1] = 1.45;
1470  NIIIv->omega[_2P32][_2P12][2] = 1.55;
1471  NIIIv->omega[_2P32][_2P12][3] = 1.64;
1472 
1473  NIIIv->omega[_4P12][_2P12][0] = 1.89e-1;
1474  NIIIv->omega[_4P12][_2P12][1] = 1.98e-1;
1475  NIIIv->omega[_4P12][_2P12][2] = 2.04e-1;
1476  NIIIv->omega[_4P12][_2P12][3] = 2.07e-1;
1477 
1478  NIIIv->omega[_4P12][_2P32][0] = 1.35e-1;
1479  NIIIv->omega[_4P12][_2P32][1] = 1.51e-1;
1480  NIIIv->omega[_4P12][_2P32][2] = 1.62e-1;
1481  NIIIv->omega[_4P12][_2P32][3] = 1.68e-1;
1482 
1483  NIIIv->omega[_4P32][_2P12][0] = 2.81e-1;
1484  NIIIv->omega[_4P32][_2P12][1] = 2.98e-1;
1485  NIIIv->omega[_4P32][_2P12][2] = 3.09e-1;
1486  NIIIv->omega[_4P32][_2P12][3] = 3.16e-1;
1487 
1488  NIIIv->omega[_4P32][_2P32][0] = 3.67e-1;
1489  NIIIv->omega[_4P32][_2P32][1] = 3.99e-1;
1490  NIIIv->omega[_4P32][_2P32][2] = 4.23e-1;
1491  NIIIv->omega[_4P32][_2P32][3] = 4.35e-1;
1492 
1493  NIIIv->omega[_4P32][_4P12][0] = 1.01;
1494  NIIIv->omega[_4P32][_4P12][1] = 1.10;
1495  NIIIv->omega[_4P32][_4P12][2] = 1.14;
1496  NIIIv->omega[_4P32][_4P12][3] = 1.16;
1497 
1498  NIIIv->omega[_4P52][_2P12][0] = 1.78e-1;
1499  NIIIv->omega[_4P52][_2P12][1] = 2.01e-1;
1500  NIIIv->omega[_4P52][_2P12][2] = 2.19e-1;
1501  NIIIv->omega[_4P52][_2P12][3] = 2.29e-1;
1502 
1503  NIIIv->omega[_4P52][_2P32][0] = 7.93e-1;
1504  NIIIv->omega[_4P52][_2P32][1] = 8.44e-1;
1505  NIIIv->omega[_4P52][_2P32][2] = 8.80e-1;
1506  NIIIv->omega[_4P52][_2P32][3] = 8.98e-1;
1507 
1508  NIIIv->omega[_4P52][_4P12][0] = 6.12e-1;
1509  NIIIv->omega[_4P52][_4P12][1] = 6.67e-1;
1510  NIIIv->omega[_4P52][_4P12][2] = 6.95e-1;
1511  NIIIv->omega[_4P52][_4P12][3] = 7.11e-1;
1512 
1513  NIIIv->omega[_4P52][_4P32][0] = 1.88;
1514  NIIIv->omega[_4P52][_4P32][0] = 2.04;
1515  NIIIv->omega[_4P52][_4P32][0] = 2.12;
1516  NIIIv->omega[_4P52][_4P32][0] = 2.16;
1517 */
1518 
1519 if (NIIIv->isCHEB) {
1520  NIIIv->omega[_2P32][_2P12][0] = 0.7240;
1521  NIIIv->omega[_2P32][_2P12][1] = 0.2349;
1522  NIIIv->omega[_2P32][_2P12][2] = -0.0682;
1523  NIIIv->omega[_2P32][_2P12][3] = -0.0517;
1524 
1525  NIIIv->omega[_4P12][_2P12][0] = -3.6087;
1526  NIIIv->omega[_4P12][_2P12][1] = -0.0656;
1527  NIIIv->omega[_4P12][_2P12][2] = -0.0831;
1528  NIIIv->omega[_4P12][_2P12][3] = -0.0165;
1529 
1530  NIIIv->omega[_4P12][_2P32][0] = -4.1572;
1531  NIIIv->omega[_4P12][_2P32][1] = 0.0119;
1532  NIIIv->omega[_4P12][_2P32][2] = -0.1247;
1533  NIIIv->omega[_4P12][_2P32][3] = -0.0311;
1534 
1535  NIIIv->omega[_4P32][_2P12][0] = -2.7917;
1536  NIIIv->omega[_4P32][_2P12][1] = -0.0501;
1537  NIIIv->omega[_4P32][_2P12][2] = -0.0914;
1538  NIIIv->omega[_4P32][_2P12][3] = -0.0197;
1539 
1540  NIIIv->omega[_4P32][_2P32][0] = -2.2053;
1541  NIIIv->omega[_4P32][_2P32][1] = -0.0191;
1542  NIIIv->omega[_4P32][_2P32][2] = -0.1080;
1543  NIIIv->omega[_4P32][_2P32][3] = -0.0257;
1544 
1545  NIIIv->omega[_4P32][_4P12][0] = -0.0975;
1546  NIIIv->omega[_4P32][_4P12][1] = 0.0837;
1547  NIIIv->omega[_4P32][_4P12][2] = -0.0437;
1548  NIIIv->omega[_4P32][_4P12][3] = -0.0195;
1549 
1550  NIIIv->omega[_4P52][_2P12][0] = -3.5774;
1551  NIIIv->omega[_4P52][_2P12][1] = 0.0274;
1552  NIIIv->omega[_4P52][_2P12][2] = -0.1330;
1553  NIIIv->omega[_4P52][_2P12][3] = -0.0337;
1554 
1555  NIIIv->omega[_4P52][_2P32][0] = -0.7075;
1556  NIIIv->omega[_4P52][_2P32][1] = -0.0465;
1557  NIIIv->omega[_4P52][_2P32][2] = -0.0934;
1558  NIIIv->omega[_4P52][_2P32][3] = -0.0204;
1559 
1560  NIIIv->omega[_4P52][_4P12][0] = -0.7808;
1561  NIIIv->omega[_4P52][_4P12][1] = 0.1475;
1562  NIIIv->omega[_4P52][_4P12][2] = -0.0418;
1563  NIIIv->omega[_4P52][_4P12][3] = -0.0211;
1564 
1565  NIIIv->omega[_4P52][_4P32][0] = 1.2787;
1566  NIIIv->omega[_4P52][_4P32][0] = 0.1128;
1567  NIIIv->omega[_4P52][_4P32][0] = -0.0426;
1568  NIIIv->omega[_4P52][_4P32][0] = -0.0203;
1569 }
1570 
1571 if (NIIIv->isMAP) {
1572  NIIIv->omega[_2P32][_2P12][0] = 1.4450;
1573  NIIIv->omega[_2P32][_2P12][1] = 0.1840;
1574 
1575  NIIIv->omega[_4P12][_2P12][0] = 0.1980;
1576  NIIIv->omega[_4P12][_2P12][1] = 0.0630;
1577 
1578  NIIIv->omega[_4P12][_2P32][0] = 0.1510;
1579  NIIIv->omega[_4P12][_2P32][1] = 0.1640;
1580 
1581  NIIIv->omega[_4P32][_2P12][0] = 0.2980;
1582  NIIIv->omega[_4P32][_2P12][1] = 0.0840;
1583 
1584  NIIIv->omega[_4P32][_2P32][0] = 0.3990;
1585  NIIIv->omega[_4P32][_2P32][1] = 0.1250;
1586 
1587  NIIIv->omega[_4P52][_2P32][0] = 0.8440;
1588  NIIIv->omega[_4P52][_2P32][1] = 0.0890;
1589 
1590  NIIIv->omega[_4P32][_4P12][0] = 1.102;
1591  NIIIv->omega[_4P32][_4P12][1] = 0.0720;
1592 
1593  NIIIv->omega[_4P52][_2P12][0] = 0.2010;
1594  NIIIv->omega[_4P52][_2P12][1] = 0.1830;
1595 
1596  NIIIv->omega[_4P52][_4P12][0] = 0.6680;
1597  NIIIv->omega[_4P52][_4P12][1] = 0.0910;
1598 
1599  NIIIv->omega[_4P52][_4P32][0] = 2.0440;
1600  NIIIv->omega[_4P52][_4P32][0] = 0.0800;
1601 
1602 }
1603  NIIIv->dE[_2P32][_2P12] = 5.73e+5; NIIIv->A[_2P32][_2P12] = 4.77e-5;
1604  NIIIv->dE[_4P12][_2P12] = 1748.; NIIIv->A[_4P12][_2P12] = 3.08e+2;
1605  NIIIv->dE[_4P12][_2P32] = 1754.; NIIIv->A[_4P12][_2P32] = 5.22e+2;
1606  NIIIv->dE[_4P32][_2P12] = 1747.; NIIIv->A[_4P32][_2P12] = 9.49;
1607  NIIIv->dE[_4P32][_2P32] = 1752.; NIIIv->A[_4P32][_2P32] = 6.50e+1;
1608  NIIIv->dE[_4P52][_2P32] = 1747.; NIIIv->A[_4P52][_2P32] = 3.08e+2;
1609  NIIIv->dE[_4P32][_4P12] = 1.68e+6; NIIIv->A[_4P32][_4P12] = 0.00000;
1610  NIIIv->dE[_4P52][_2P12] = 1744.4; NIIIv->A[_4P52][_2P12] = 0.00000;
1611  NIIIv->dE[_4P52][_4P12] = 7.10e+5; NIIIv->A[_4P52][_4P12] = 0.00000;
1612  NIIIv->dE[_4P52][_4P32] = 1.23e+6; NIIIv->A[_4P52][_4P32] = 0.00000;
1613 
1614 
1615  Symmetrize_Coeff (NIIIv);
1616 }
1617 
1618 /* ********************************************************************* */
1619 void NIV_INIT (Ion *NIVv)
1620 /*
1621  *
1622  *********************************************************************** */
1623 {
1624  int i, j, n;
1625  int S0, P1, P2, P1_1;
1626 
1627  NIVv->N = 0.9e-4 ; /* abundance of N with respect to H (Raymond) */
1628  NIVv->nlev = 4;
1629 
1630  S0 = 0;
1631  P1 = 1;
1632  P2 = 2;
1633  P1_1 = 3;
1634 
1635  NIVv->nTom = 4;
1636  NIVv->Tom[0] = 0.5e4;
1637  NIVv->Tom[1] = 1.0e4;
1638  NIVv->Tom[2] = 1.5e4;
1639  NIVv->Tom[3] = 2.0e4;
1640 
1641  if (NIVv->dE == NULL){
1642  NIVv->dE = ARRAY_2D(NIVv->nlev, NIVv->nlev, double);
1643  NIVv->A = ARRAY_2D(NIVv->nlev, NIVv->nlev, double);
1644  NIVv->omega = ARRAY_3D(NIVv->nlev, NIVv->nlev, NIVv->nTom, double);
1645  }
1646 
1647 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
1648  O GET PROPER ORDER LATER */
1649 
1650  for (i = 0 ; i < NIVv->nlev ; i++) {
1651  for (j = 0 ; j < NIVv->nlev ; j++) {
1652  NIVv->dE[i][j] = -1.0;
1653  NIVv->A[i][j] = -1.0;
1654  for (n = 0; n < NIVv->nTom; n++){
1655  NIVv->omega[i][j][n] = -1.0;
1656  }
1657  }}
1658 
1659 
1660  NIVv->wght[S0] = 1.; /* 2 J + 1 */
1661  NIVv->wght[P1] = 3.; /* */
1662  NIVv->wght[P2] = 5.; /* */
1663  NIVv->wght[P1_1] = 3.; /* */
1664 
1665 
1666  NIVv->omega[P2][S0][0] = 9.37e-1 * (5.0)/(3.0*3.0);
1667  NIVv->omega[P2][S0][1] = 9.05e-1 * (5.0)/(3.0*3.0);
1668  NIVv->omega[P2][S0][2] = 8.79e-1 * (5.0)/(3.0*3.0);
1669  NIVv->omega[P2][S0][3] = 8.58e-1 * (5.0)/(3.0*3.0);
1670 
1671  NIVv->omega[P1][S0][0] = 9.37e-1 *(3.0)/(3.0 * 3.0);
1672  NIVv->omega[P1][S0][1] = 9.05e-1 *(3.0)/(3.0 * 3.0);
1673  NIVv->omega[P1][S0][2] = 9.05e-1 *(3.0)/(3.0 * 3.0);
1674  NIVv->omega[P1][S0][3] = 8.58e-1 *(3.0)/(3.0 * 3.0);
1675 
1676  NIVv->omega[P1_1][S0][0] = 3.84;
1677  NIVv->omega[P1_1][S0][1] = 3.53;
1678  NIVv->omega[P1_1][S0][2] = 3.41;
1679  NIVv->omega[P1_1][S0][3] = 3.36;
1680 
1681  /* fake data */
1682 /*
1683  NIVv->omega[P2][P1][0] = 9.37e-31;
1684  NIVv->omega[P2][P1][1] = 9.05e-31;
1685  NIVv->omega[P2][P1][2] = 8.79e-31;
1686  NIVv->omega[P2][P1][3] = 8.58e-31;
1687 
1688  NIVv->omega[P1_1][P1][0] = 9.37e-31;
1689  NIVv->omega[P1_1][P1][1] = 9.05e-31;
1690  NIVv->omega[P1_1][P1][2] = 8.79e-31;
1691  NIVv->omega[P1_1][P1][3] = 8.58e-31;
1692 
1693  NIVv->omega[P1_1][P2][0] = 9.37e-31;
1694  NIVv->omega[P1_1][P2][1] = 9.05e-31;
1695  NIVv->omega[P1_1][P2][2] = 8.79e-31;
1696  NIVv->omega[P1_1][P2][3] = 8.58e-31;
1697 */
1698 
1699  NIVv->dE[P2][S0] = 1483.3; NIVv->A[P2][S0] = 3.e-3 ;
1700  NIVv->dE[P1][S0] = 1486.4; NIVv->A[P1][S0] = 1.e-3;
1701  NIVv->dE[P1_1][S0] = 765.15; NIVv->A[P1_1][S0] = 5.4e-7;
1702 /* NIVv->dE[P2][P1] = 6.94e+5; NIVv->A[P2][P1] = 2.1e-31;
1703  NIVv->dE[P1_1][P1] = 6.94e+5; NIVv->A[P1_1][P1] = 1.2e-31;
1704  NIVv->dE[P1_1][P2] = 6.94e+5; NIVv->A[P1_1][P2] = 7.5e-31;
1705 */
1706 
1707  Symmetrize_Coeff (NIVv);
1708 }
1709 
1710 /* ********************************************************************* */
1711 void NV_INIT (Ion *NVv)
1712 /*
1713  *
1714  *********************************************************************** */
1715 {
1716  int i, j, n;
1717  int S, P;
1718 
1719  NVv->N = 0.9e-4 ; /* abundance of N with respect to H (Raymond) */
1720  NVv->nlev = 2;
1721 
1722  S = 0;
1723  P = 1;
1724 
1725  NVv->nTom = 4;
1726  NVv->Tom[0] = 0.5e4;
1727  NVv->Tom[1] = 1.0e4;
1728  NVv->Tom[2] = 1.5e4;
1729  NVv->Tom[3] = 2.0e4;
1730 
1731  if (NVv->dE == NULL){
1732  NVv->dE = ARRAY_2D(NVv->nlev, NVv->nlev, double);
1733  NVv->A = ARRAY_2D(NVv->nlev, NVv->nlev, double);
1734  NVv->omega = ARRAY_3D(NVv->nlev, NVv->nlev, NVv->nTom, double);
1735  }
1736 
1737 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
1738  O GET PROPER ORDER LATER */
1739 
1740  for (i = 0 ; i < NVv->nlev ; i++) {
1741  for (j = 0 ; j < NVv->nlev ; j++) {
1742  NVv->dE[i][j] = -1.0;
1743  NVv->A[i][j] = -1.0;
1744  for (n = 0; n < NVv->nTom; n++){
1745  NVv->omega[i][j][n] = -1.0;
1746  }
1747  }}
1748 
1749 
1750  NVv->wght[S] = 2.; /* 2 J + 1 */
1751  NVv->wght[P] = 4.; /* */
1752 /* NVv->wght[P2] = 5.;
1753  NVv->wght[P1_1] = 3.; */
1754 
1755 
1756  NVv->omega[P][S][0] = 6.61;
1757  NVv->omega[P][S][1] = 6.65;
1758  NVv->omega[P][S][2] = 6.69;
1759  NVv->omega[P][S][3] = 6.72;
1760 
1761  NVv->dE[P][S] = 1238.8; NVv->A[P][S] = 3.41e+8 ;
1762 
1763  Symmetrize_Coeff (NVv);
1764 }
1765 
1766 /* ********************************************************************* */
1767 void OI_INIT (Ion *OIv)
1768 /*
1769  *
1770  *********************************************************************** */
1771 {
1772  int i, j, n;
1773  int S0, P0, P1, P2, D2;
1774 
1775  OIv->N = 6.e-4 ; /* abundance of O with respect to H (Raymond) */
1776  OIv->nlev = 5;
1777 
1778  OIv->isMAP = 1;
1779 
1780  P0 = 2;
1781  P1 = 1;
1782  P2 = 0;
1783  D2 = 3;
1784  S0 = 4;
1785 
1786  OIv->nTom = 2;
1787  OIv->Tom[0] = 0.5e4;
1788  OIv->Tom[1] = 1.0e4;
1789 
1790  if (OIv->dE == NULL){
1791  OIv->dE = ARRAY_2D(OIv->nlev, OIv->nlev, double);
1792  OIv->A = ARRAY_2D(OIv->nlev, OIv->nlev, double);
1793  OIv->omega = ARRAY_3D(OIv->nlev, OIv->nlev, OIv->nTom, double);
1794  }
1795 
1796 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
1797  O GET PROPER ORDER LATER */
1798 
1799  for (i = 0 ; i < OIv->nlev ; i++) {
1800  for (j = 0 ; j < OIv->nlev ; j++) {
1801  OIv->dE[i][j] = -1.0;
1802  OIv->A[i][j] = -1.0;
1803  for (n = 0; n < OIv->nTom; n++){
1804  OIv->omega[i][j][n] = 0.0;
1805  }
1806  }}
1807 
1808 
1809  OIv->wght[S0] = 1.; /* 2 J + 1 */
1810  OIv->wght[P0] = 1.; /* */
1811  OIv->wght[P1] = 3.; /* */
1812  OIv->wght[P2] = 5.; /* */
1813  OIv->wght[D2] = 5.; /* */
1814 
1815 
1816 /* OLD data from Pradhan commented - T-dep data from MAPPINGS added */
1817 
1818 /*
1819  OIv->omega[D2][P0][0] = 1.24e-1;
1820  OIv->omega[D2][P0][1] = 2.66e-1;
1821  OIv->omega[D2][P0][2] = 5.01e-1;
1822 
1823  OIv->omega[D2][P1][0] = OIv->omega[D2][P0][0]*(3.0)/(3.0 * 3.0);
1824  OIv->omega[D2][P1][1] = OIv->omega[D2][P0][1]*(3.0)/(3.0 * 3.0);
1825  OIv->omega[D2][P1][2] = OIv->omega[D2][P0][2]*(3.0)/(3.0 * 3.0);
1826 
1827  OIv->omega[D2][P2][0] = OIv->omega[D2][P0][0]*(5.0)/(3.0 * 3.0);
1828  OIv->omega[D2][P2][1] = OIv->omega[D2][P0][1]*(5.0)/(3.0 * 3.0);
1829  OIv->omega[D2][P2][2] = OIv->omega[D2][P0][2]*(5.0)/(3.0 * 3.0);
1830 
1831  OIv->omega[S0][P1][0] = 1.53e-2;
1832  OIv->omega[S0][P1][1] = 3.24e-2;
1833  OIv->omega[S0][P1][2] = 6.07e-2;
1834 
1835  OIv->omega[S0][P2][0] = OIv->omega[S0][P1][0]*(5.0)/(3.0*3.0);
1836  OIv->omega[S0][P2][1] = OIv->omega[S0][P1][1]*(5.0)/(3.0*3.0);
1837  OIv->omega[S0][P2][2] = OIv->omega[S0][P1][2]*(5.0)/(3.0*3.0);
1838 
1839  OIv->omega[S0][D2][0] = 7.32e-2;
1840  OIv->omega[S0][D2][1] = 1.05e-1;
1841  OIv->omega[S0][D2][2] = 1.48e-1;
1842 
1843  OIv->omega[P0][P1][0] = 1.12e-2;
1844  OIv->omega[P0][P1][1] = 2.65e-2;
1845  OIv->omega[P0][P1][2] = 6.93e-2;
1846 
1847  OIv->omega[P0][P2][0] = 1.48e-2;
1848  OIv->omega[P0][P2][1] = 2.92e-2;
1849  OIv->omega[P0][P2][2] = 5.36e-2;
1850 
1851  OIv->omega[P1][P2][0] = 4.74e-2;
1852  OIv->omega[P1][P2][1] = 9.87e-2;
1853  OIv->omega[P1][P2][2] = 2.07e-1;
1854 
1855  OIv->omega[S0][P0][0] = 1.0e-30;
1856  OIv->omega[S0][P0][1] = 1.0e-30;
1857  OIv->omega[S0][P0][2] = 1.0e-30;
1858 */
1859 
1860  OIv->omega[D2][P0][0] = 2.955e-2;
1861  OIv->omega[D2][P0][1] = 1.1;
1862 
1863  OIv->omega[D2][P1][0] = 8.866e-2;
1864  OIv->omega[D2][P1][1] = 1.1;
1865 
1866  OIv->omega[D2][P2][0] = 1.4778e-1;
1867  OIv->omega[D2][P2][1] = 1.1;
1868 
1869  OIv->omega[S0][P1][0] = 1.08e-2;
1870  OIv->omega[S0][P1][1] = 1.08;
1871 
1872  OIv->omega[S0][P2][0] = 1.80e-2;
1873  OIv->omega[S0][P2][1] = 1.08;
1874 
1875  OIv->omega[S0][D2][0] = 0.10500;
1876  OIv->omega[S0][D2][1] = 0.52;
1877 
1878  OIv->omega[P0][P1][0] = 3.49e-2;
1879  OIv->omega[P0][P1][1] = 1.2;
1880 
1881  OIv->omega[P0][P2][0] = 0.02710;
1882  OIv->omega[P0][P2][1] = 0.94;
1883 
1884  OIv->omega[P1][P2][0] = 0.10500;
1885  OIv->omega[P1][P2][1] = 1.02;
1886 
1887 /*
1888  OIv->omega[S0][P0][0] = 0.00360;
1889  OIv->omega[S0][P0][1] = 1.08;
1890 */
1891 
1892  OIv->dE[D2][P2] = 6300.3; OIv->A[D2][P2] = 6.34e-3; /* dE [ HIGHER ][LOWER ] */
1893  OIv->dE[D2][P1] = 6363.8; OIv->A[D2][P1] = 2.11e-3;
1894  OIv->dE[D2][P0] = 6393.5; OIv->A[D2][P0] = 7.23e-7;
1895  OIv->dE[P1][P0] = 1.455e+6;OIv->A[P1][P0] = 1.74e-5;
1896  OIv->dE[P2][P0] = 4.406e+5;OIv->A[P2][P0] = 1.0e-10;
1897  OIv->dE[P2][P1] = 6.318e+5;OIv->A[P2][P1] = 8.92e-5;
1898  OIv->dE[S0][P1] = 2972.3; OIv->A[S0][P1] = 7.32e-2;
1899  OIv->dE[S0][P2] = 2959.2; OIv->A[S0][P2] = 2.88e-4;
1900  OIv->dE[S0][D2] = 5577.3; OIv->A[S0][D2] = 1.22e+0;
1901 /* OIv->dE[S0][P0] = 2.e+30; OIv->A[S0][P0] = 0.00000; fittizio */
1902 
1903  Symmetrize_Coeff (OIv);
1904 }
1905 
1906 /* ********************************************************************* */
1907 void OII_INIT (Ion *OIIv)
1908 /*
1909  *
1910  *********************************************************************** */
1911 {
1912  int i, j, n;
1913  int S32, D52, D32, P32, P12;
1914 
1915  OIIv->N = 6.e-4 ; /* abundance of O with respect to H (Raymond) */
1916  OIIv->nlev = 5;
1917 
1918  S32 = 0;
1919  D52 = 1;
1920  D32 = 2;
1921  P32 = 3;
1922  P12 = 4;
1923 
1924  OIIv->nTom = 4;
1925  OIIv->Tom[0] = 0.5e4;
1926  OIIv->Tom[1] = 1.0e4;
1927  OIIv->Tom[2] = 1.5e4;
1928  OIIv->Tom[3] = 2.0e4;
1929 
1930  if (OIIv->dE == NULL){
1931  OIIv->dE = ARRAY_2D(OIIv->nlev, OIIv->nlev, double);
1932  OIIv->A = ARRAY_2D(OIIv->nlev, OIIv->nlev, double);
1933  OIIv->omega = ARRAY_3D(OIIv->nlev, OIIv->nlev, OIIv->nTom, double);
1934  }
1935 
1936 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
1937  O GET PROPER ORDER LATER */
1938 
1939  for (i = 0 ; i < OIIv->nlev ; i++) {
1940  for (j = 0 ; j < OIIv->nlev ; j++) {
1941  OIIv->dE[i][j] = -1.0;
1942  OIIv->A[i][j] = -1.0;
1943  for (n = 0; n < OIIv->nTom; n++){
1944  OIIv->omega[i][j][n] = -1.0;
1945  }
1946  }}
1947 
1948 
1949  OIIv->wght[S32] = 4.; /* 2 J + 1 */
1950  OIIv->wght[D52] = 6.; /* */
1951  OIIv->wght[D32] = 4.; /* */
1952  OIIv->wght[P32] = 4.; /* */
1953  OIIv->wght[P12] = 2.; /* */
1954 
1955 
1956  OIIv->omega[D52][S32][0] = 7.95e-1;
1957  OIIv->omega[D52][S32][1] = 8.01e-1;
1958  OIIv->omega[D52][S32][2] = 8.10e-1;
1959  OIIv->omega[D52][S32][3] = 8.18e-1;
1960 
1961  OIIv->omega[D32][S32][0] = 5.30e-1;
1962  OIIv->omega[D32][S32][1] = 5.34e-1;
1963  OIIv->omega[D32][S32][2] = 5.41e-1;
1964  OIIv->omega[D32][S32][3] = 5.45e-1;
1965 
1966  OIIv->omega[P32][S32][0] = 2.65e-1;
1967  OIIv->omega[P32][S32][1] = 2.70e-1;
1968  OIIv->omega[P32][S32][2] = 2.75e-1;
1969  OIIv->omega[P32][S32][3] = 2.80e-1;
1970 
1971  OIIv->omega[P12][S32][0] = 1.33e-1;
1972  OIIv->omega[P12][S32][1] = 1.35e-1;
1973  OIIv->omega[P12][S32][2] = 1.37e-1;
1974  OIIv->omega[P12][S32][3] = 1.40e-1;
1975 
1976  OIIv->omega[D52][D32][0] = 1.22;
1977  OIIv->omega[D52][D32][1] = 1.17;
1978  OIIv->omega[D52][D32][2] = 1.14;
1979  OIIv->omega[D52][D32][3] = 1.11;
1980 
1981  OIIv->omega[P32][P12][0] = 2.80e-1;
1982  OIIv->omega[P32][P12][1] = 2.87e-1;
1983  OIIv->omega[P32][P12][2] = 2.93e-1;
1984  OIIv->omega[P32][P12][3] = 3.00e-1;
1985 
1986  OIIv->omega[P32][D52][0] = 7.18e-1;
1987  OIIv->omega[P32][D52][1] = 7.30e-1;
1988  OIIv->omega[P32][D52][2] = 7.41e-1;
1989  OIIv->omega[P32][D52][3] = 7.55e-1;
1990 
1991  OIIv->omega[P32][D32][0] = 4.01e-1;
1992  OIIv->omega[P32][D32][1] = 4.08e-1;
1993  OIIv->omega[P32][D32][2] = 4.14e-1;
1994  OIIv->omega[P32][D32][3] = 4.22e-1;
1995 
1996  OIIv->omega[P12][D52][0] = 2.90e-1;
1997  OIIv->omega[P12][D52][1] = 2.95e-1;
1998  OIIv->omega[P12][D52][2] = 3.00e-1;
1999  OIIv->omega[P12][D52][3] = 3.05e-1;
2000 
2001  OIIv->omega[P12][D32][0] = 2.70e-1;
2002  OIIv->omega[P12][D32][1] = 2.75e-1;
2003  OIIv->omega[P12][D32][2] = 2.81e-1;
2004  OIIv->omega[P12][D32][3] = 2.84e-1;
2005 
2006  OIIv->dE[D52][S32] = 3728.8; OIIv->A[D52][S32] = 3.50e-5; /* dE [ HIGHER ][LOWER ] */
2007  OIIv->dE[D32][S32] = 3726.0; OIIv->A[D32][S32] = 1.79e-4;
2008  OIIv->dE[P32][S32] = 2470.3; OIIv->A[P32][S32] = 5.70e-2;
2009  OIIv->dE[P12][S32] = 2470.2; OIIv->A[P12][S32] = 2.34e-2;
2010  OIIv->dE[D52][D32] = 4.97e+6; OIIv->A[D52][D32] = 1.30e-7;
2011  OIIv->dE[P32][P12] = 5.00e+6; OIIv->A[P32][P12] = 2.08e-11;
2012  OIIv->dE[P32][D52] = 7319.9; OIIv->A[P32][D52] = 1.07e-1;
2013  OIIv->dE[P32][D32] = 7330.7; OIIv->A[P32][D32] = 5.78e-2;
2014  OIIv->dE[P12][D52] = 7321.8; OIIv->A[P12][D52] = 6.15e-2;
2015  OIIv->dE[P12][D32] = 7329.6; OIIv->A[P12][D32] = 1.02e-1;
2016 
2017  Symmetrize_Coeff (OIIv);
2018 }
2019 
2020 /* ********************************************************************* */
2021 void OIII_INIT (Ion *OIIIv)
2022 /*
2023  *
2024  *********************************************************************** */
2025 {
2026  int i, j, n;
2027  int P0, P1, P2, D2, S0;
2028 
2029  /* MAPPINGS data used for this one */
2030 
2031  OIIIv->N = 6.e-4; /* abundance of O with respect to H (Raymond) */
2032  OIIIv->nlev = 5;
2033 
2034  P0 = 0;
2035  P1 = 1;
2036  P2 = 2;
2037  D2 = 3;
2038  S0 = 4;
2039 
2040  OIIIv->isMAP = 1;
2041 
2042  OIIIv->nTom = 2;
2043  OIIIv->Tom[0] = 0.5e4;
2044  OIIIv->Tom[1] = 1.5e4;
2045 
2046 
2047  if (OIIIv->dE == NULL){
2048  OIIIv->dE = ARRAY_2D(OIIIv->nlev, OIIIv->nlev, double);
2049  OIIIv->A = ARRAY_2D(OIIIv->nlev, OIIIv->nlev, double);
2050  OIIIv->omega = ARRAY_3D(OIIIv->nlev, OIIIv->nlev, OIIIv->nTom, double);
2051  }
2052 
2053 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2054  O GET PROPER ORDER LATER */
2055 
2056  for (i = 0 ; i < OIIIv->nlev ; i++) {
2057  for (j = 0 ; j < OIIIv->nlev ; j++) {
2058  OIIIv->dE[i][j] = -1.0;
2059  OIIIv->A[i][j] = -1.0;
2060  for (n = 0; n < OIIIv->nTom; n++){
2061  OIIIv->omega[i][j][n] = 0.0;
2062  }
2063  }}
2064 
2065  OIIIv->wght[P0] = 1.; /* 2 J + 1 */
2066  OIIIv->wght[P1] = 3.; /* */
2067  OIIIv->wght[P2] = 5.; /* */
2068  OIIIv->wght[D2] = 5.; /* */
2069  OIIIv->wght[S0] = 1.; /* */
2070 
2071 
2072  OIIIv->omega[D2][P0][0] = 0.2411;
2073  OIIIv->omega[D2][P0][1] = 0.1400;
2074 
2075  OIIIv->omega[D2][P1][0] = 0.7233;
2076  OIIIv->omega[D2][P1][1] = 0.1400;
2077 
2078  OIIIv->omega[D2][P2][0] = 1.2056;
2079  OIIIv->omega[D2][P2][1] = 0.1400;
2080 
2081  OIIIv->omega[S0][P1][0] = 0.0902;
2082  OIIIv->omega[S0][P1][1] = 0.1860;
2083 
2084  OIIIv->omega[S0][P2][0] = 0.1530;
2085  OIIIv->omega[S0][P2][1] = 0.1860;
2086 
2087  OIIIv->omega[S0][D2][0] = 0.6200;
2088  OIIIv->omega[S0][D2][1] = 0.0000;
2089 
2090  OIIIv->omega[P1][P0][0] = 0.5420;
2091  OIIIv->omega[P1][P0][1] = 0.0000;
2092 
2093  OIIIv->omega[P2][P0][0] = 0.2710;
2094  OIIIv->omega[P2][P0][1] = 0.0000;
2095 
2096  OIIIv->omega[P2][P1][0] = 1.2900;
2097  OIIIv->omega[P2][P1][1] = 0.0000;
2098 
2099  OIIIv->omega[S0][P0][0] = 0.0307;
2100  OIIIv->omega[S0][P0][1] = 0.1860;
2101 
2102 
2103  /* Aggarwal '93 CS data (up to 40000 K)
2104  OIIIv->omega[D][P][0] = 2.039;
2105  OIIIv->omega[D][P][1] = 2.191;
2106  OIIIv->omega[D][P][2] = 2.519;
2107  OIIIv->omega[D][P][3] = 2.582;
2108 
2109  OIIIv->omega[S][P][0] = 2.732e-1;
2110  OIIIv->omega[S][P][1] = 2.885e-1;
2111  OIIIv->omega[S][P][2] = 3.404e-1;
2112  OIIIv->omega[S][P][3] = 3.550e-1;
2113 
2114  OIIIv->omega[S][D][0] = 4.312e-1;
2115  OIIIv->omega[S][D][1] = 5.227e-1;
2116  OIIIv->omega[S][D][2] = 5.812e-1;
2117  OIIIv->omega[S][D][3] = 5.745e-1;
2118 */
2119 
2120  OIIIv->dE[D2][P0] = 4932.6; OIIIv->A[D2][P0] = 2.74e-6; /* dE [ HIGHER ][LOWER ] */
2121  OIIIv->dE[D2][P1] = 4958.9; OIIIv->A[D2][P1] = 6.74e-3;
2122  OIIIv->dE[D2][P2] = 5006.7; OIIIv->A[D2][P2] = 1.96e-2;
2123  OIIIv->dE[S0][P1] = 2321.0; OIIIv->A[S0][P1] = 2.17e-1;
2124  OIIIv->dE[S0][P2] = 2332.1; OIIIv->A[S0][P2] = 7.85e-4;
2125  OIIIv->dE[S0][D2] = 4363.2; OIIIv->A[S0][D2] = 1.78;
2126  OIIIv->dE[P1][P0] = 883562.; OIIIv->A[P1][P0] = 2.62e-5;
2127  OIIIv->dE[P2][P0] = 326611.; OIIIv->A[P2][P0] = 3.02e-11;
2128  OIIIv->dE[P2][P1] = 518145.; OIIIv->A[P2][P1] = 9.76e-5;
2129 /* OIIIv->dE[S0][P0] = 1.e+20; OIIIv->A[S0][P0] = 0.0000;
2130 */
2131 
2132  Symmetrize_Coeff (OIIIv);
2133 }
2134 
2135 /* ********************************************************************* */
2136 void OIV_INIT (Ion *OIVv)
2137 /*
2138  *
2139  *********************************************************************** */
2140 {
2141  int i, j, n;
2142  int _2P12, _2P32, _4P12, _4P32, _4P52;
2143 
2144  /* MAPPINGS CS data here */
2145 
2146  OIVv->isMAP = 1;
2147 
2148  OIVv->N = 6.e-4 ; /* abundance of O with respect to H (Raymond) */
2149  OIVv->nlev = 5;
2150 
2151  _2P12 = 0;
2152  _2P32 = 1;
2153  _4P12 = 2;
2154  _4P32 = 3;
2155  _4P52 = 4;
2156 
2157  OIVv->nTom = 2;
2158  OIVv->Tom[0] = 0.5e4;
2159  OIVv->Tom[1] = 1.0e4;
2160 
2161  if (OIVv->dE == NULL){
2162  OIVv->dE = ARRAY_2D(OIVv->nlev, OIVv->nlev, double);
2163  OIVv->A = ARRAY_2D(OIVv->nlev, OIVv->nlev, double);
2164  OIVv->omega = ARRAY_3D(OIVv->nlev, OIVv->nlev, OIVv->nTom, double);
2165  }
2166 
2167 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2168  O GET PROPER ORDER LATER */
2169 
2170  for (i = 0 ; i < OIVv->nlev ; i++) {
2171  for (j = 0 ; j < OIVv->nlev ; j++) {
2172  OIVv->dE[i][j] = -1.0;
2173  OIVv->A[i][j] = -1.0;
2174  for (n = 0; n < OIVv->nTom; n++){
2175  OIVv->omega[i][j][n] = 0.0;
2176  }
2177  }}
2178 
2179 
2180  OIVv->wght[_2P12] = 2.; /* 2 J + 1 */
2181  OIVv->wght[_2P32] = 4.; /* */
2182  OIVv->wght[_4P12] = 2.; /* */
2183  OIVv->wght[_4P32] = 4.; /* */
2184  OIVv->wght[_4P52] = 6.; /* */
2185 
2186 
2187  OIVv->omega[_2P32][_2P12][0] = 2.4200;
2188  OIVv->omega[_2P32][_2P12][1] = 0.0920;
2189 
2190  OIVv->omega[_4P12][_2P12][0] = 0.1330;
2191  OIVv->omega[_4P12][_2P12][1] = 0.1610;
2192 
2193  OIVv->omega[_4P12][_2P32][0] = 0.1020;
2194  OIVv->omega[_4P12][_2P32][1] = 0.2940;
2195 
2196  OIVv->omega[_4P32][_2P12][0] = 0.2010;
2197  OIVv->omega[_4P32][_2P12][1] = 0.1890;
2198 
2199  OIVv->omega[_4P32][_2P32][0] = 0.2700;
2200  OIVv->omega[_4P32][_2P32][1] = 0.2430;
2201 
2202  OIVv->omega[_4P32][_4P12][0] = 1.0880;
2203  OIVv->omega[_4P32][_4P12][1] = 0.1060;
2204 
2205  OIVv->omega[_4P52][_2P12][0] = 0.1370;
2206  OIVv->omega[_4P52][_2P12][1] = 0.3200;
2207 
2208  OIVv->omega[_4P52][_2P32][0] = 0.5690;
2209  OIVv->omega[_4P52][_2P32][1] = 0.1950;
2210 
2211  OIVv->omega[_4P52][_4P12][0] = 0.6870;
2212  OIVv->omega[_4P52][_4P12][1] = 0.1070;
2213 
2214  OIVv->omega[_4P52][_4P32][0] = 2.0540;
2215  OIVv->omega[_4P52][_4P32][1] = 0.1070;
2216 
2217 
2218  OIVv->dE[_2P32][_2P12] = 2.587e+5; OIVv->A[_2P32][_2P12] = 5.18e-4;
2219  OIVv->dE[_4P12][_2P12] = 1426.46; OIVv->A[_4P12][_2P12] = 1.54e+3;
2220  OIVv->dE[_4P12][_2P32] = 1434.07; OIVv->A[_4P12][_2P32] = 1.56e+3;
2221  OIVv->dE[_4P32][_2P12] = 1423.84; OIVv->A[_4P32][_2P12] = 4.50e+1;
2222  OIVv->dE[_4P32][_2P32] = 1431.42; OIVv->A[_4P32][_2P32] = 2.56e+2;
2223  OIVv->dE[_4P32][_4P12] = 1.68e+6; OIVv->A[_4P32][_4P12] = 5.070e-5;
2224  OIVv->dE[_4P52][_2P12] = 1420.19; OIVv->A[_4P52][_2P12] = 0.00000;
2225  OIVv->dE[_4P52][_2P32] = 1427.78; OIVv->A[_4P52][_2P32] = 1.24e+3;
2226  OIVv->dE[_4P52][_4P12] = 3.26e+5; OIVv->A[_4P52][_4P12] = 0.00000;
2227  OIVv->dE[_4P52][_4P32] = 5.62e+5; OIVv->A[_4P52][_4P32] = 1.02e-4;
2228 
2229  Symmetrize_Coeff (OIVv);
2230 }
2231 
2232 /* ********************************************************************* */
2233 void OV_INIT (Ion *OVv)
2234 /*
2235  *
2236  *********************************************************************** */
2237 {
2238  int i, j, n;
2239  int S0, P0, P1, P2, P11;
2240 
2241  /* Pradhan data here */
2242 
2243  OVv->N = 6.e-4 ; /* abundance of O with respect to H (Raymond) */
2244  OVv->nlev = 5;
2245 
2246  S0 = 0;
2247  P0 = 1;
2248  P1 = 2;
2249  P2 = 3;
2250  P11 = 4;
2251 
2252  OVv->nTom = 4;
2253  OVv->Tom[0] = 0.5e4;
2254  OVv->Tom[1] = 1.0e4;
2255  OVv->Tom[2] = 1.5e4;
2256  OVv->Tom[3] = 2.0e4;
2257 
2258  if (OVv->dE == NULL){
2259  OVv->dE = ARRAY_2D(OVv->nlev, OVv->nlev, double);
2260  OVv->A = ARRAY_2D(OVv->nlev, OVv->nlev, double);
2261  OVv->omega = ARRAY_3D(OVv->nlev, OVv->nlev, OVv->nTom, double);
2262  }
2263 
2264 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2265  O GET PROPER ORDER LATER */
2266 
2267  for (i = 0 ; i < OVv->nlev ; i++) {
2268  for (j = 0 ; j < OVv->nlev ; j++) {
2269  OVv->dE[i][j] = -1.0;
2270  OVv->A[i][j] = -1.0;
2271  for (n = 0; n < OVv->nTom; n++){
2272  OVv->omega[i][j][n] = -1.0;
2273  }
2274  }}
2275 
2276 
2277  OVv->wght[S0] = 1.; /* 2 J + 1 */
2278  OVv->wght[P0] = 1.; /* */
2279  OVv->wght[P1] = 3.; /* */
2280  OVv->wght[P2] = 5.; /* */
2281  OVv->wght[P11] = 3.; /* */
2282 
2283 
2284  OVv->omega[P2][S0][0] = 7.33e-1 * (5.0)/(3.0*3.0);
2285  OVv->omega[P2][S0][1] = 7.21e-1 * (5.0)/(3.0*3.0);
2286  OVv->omega[P2][S0][2] = 6.74e-1 * (5.0)/(3.0*3.0);
2287  OVv->omega[P2][S0][3] = 6.39e-1 * (5.0)/(3.0*3.0);
2288 
2289  OVv->omega[P1][S0][0] = 7.33e-1 * (3.0)/(3.0*3.0);
2290  OVv->omega[P1][S0][1] = 7.21e-1 * (3.0)/(3.0*3.0);
2291  OVv->omega[P1][S0][2] = 6.74e-1 * (3.0)/(3.0*3.0);
2292  OVv->omega[P1][S0][3] = 6.39e-1 * (3.0)/(3.0*3.0);
2293 
2294  OVv->omega[P0][S0][0] = 7.33e-1 * (1.0)/(3.0*3.0);
2295  OVv->omega[P0][S0][1] = 7.21e-1 * (1.0)/(3.0*3.0);
2296  OVv->omega[P0][S0][2] = 6.74e-1 * (1.0)/(3.0*3.0);
2297  OVv->omega[P0][S0][3] = 6.39e-1 * (1.0)/(3.0*3.0);
2298 
2299  OVv->omega[P11][S0][0] = 2.66;
2300  OVv->omega[P11][S0][1] = 2.76;
2301  OVv->omega[P11][S0][2] = 2.82;
2302  OVv->omega[P11][S0][3] = 2.85;
2303 
2304  OVv->omega[P1][P0][0] = 7.26e-1;
2305  OVv->omega[P1][P0][1] = 8.39e-1;
2306  OVv->omega[P1][P0][2] = 8.65e-1;
2307  OVv->omega[P1][P0][3] = 8.66e-1;
2308 
2309  OVv->omega[P2][P0][0] = 2.74e-1;
2310  OVv->omega[P2][P0][1] = 6.02e-1;
2311  OVv->omega[P2][P0][2] = 7.51e-1;
2312  OVv->omega[P2][P0][3] = 8.16e-1;
2313 
2314  OVv->omega[P2][P1][0] = 3.19;
2315  OVv->omega[P2][P1][1] = 2.86;
2316  OVv->omega[P2][P1][2] = 2.80;
2317  OVv->omega[P2][P1][3] = 2.77;
2318 /*
2319  OVv->omega[P11][P0][0] = 1.e-31;
2320  OVv->omega[P11][P0][1] = 1.e-31;
2321  OVv->omega[P11][P0][2] = 1.e-31;
2322  OVv->omega[P11][P0][3] = 1.e-31;
2323 
2324  OVv->omega[P11][P1][0] = 1.e-31;
2325  OVv->omega[P11][P1][1] = 1.e-31;
2326  OVv->omega[P11][P1][2] = 1.e-31;
2327  OVv->omega[P11][P1][3] = 1.e-31;
2328 
2329  OVv->omega[P11][P2][0] = 1.e-31;
2330  OVv->omega[P11][P2][1] = 1.e-31;
2331  OVv->omega[P11][P2][2] = 1.e-31;
2332  OVv->omega[P11][P2][3] = 1.e-31;
2333 */
2334 
2335  OVv->dE[P2][S0] = 1213.8; OVv->A[P2][S0] = 2.16e-2;
2336  OVv->dE[P1][S0] = 1218.3; OVv->A[P1][S0] = 2.25e+3;
2337  OVv->dE[P0][S0] = 1220.4; OVv->A[P0][S0] = 0.00000;
2338  OVv->dE[P11][S0] = 629.7; OVv->A[P11][S0] = 2.80e+9;
2339  OVv->dE[P1][P0] = 7.35e+5; OVv->A[P1][P0] = 5.81e-5;
2340  OVv->dE[P2][P0] = 2.26e+5; OVv->A[P2][P0] = 0.00000;
2341  OVv->dE[P2][P1] = 3.26e+5; OVv->A[P2][P1] = 3.55e-4;
2342 /* OVv->dE[P11][P0] = 1.e+20; OVv->A[P11][P0] = 0.00000;
2343  OVv->dE[P11][P1] = 1.e+20; OVv->A[P11][P1] = 0.00000;
2344  OVv->dE[P11][P2] = 1.e+20; OVv->A[P11][P2] = 0.00000;
2345 */
2346  Symmetrize_Coeff (OVv);
2347 }
2348 
2349 /* ********************************************************************* */
2350 void NeI_INIT (Ion *NeIv)
2351 /*
2352  *
2353  *********************************************************************** */
2354 {
2355  int i, j, n;
2356  int lev1, lev2;
2357 
2358  NeIv->N = 8.e-5; /* abundance of Ne with respect to H (Raymond) */
2359  NeIv->nlev = 2;
2360 
2361  lev1 = 0;
2362  lev2 = 1;
2363 
2364  NeIv->nTom = 4;
2365  NeIv->Tom[0] = 0.5e4;
2366  NeIv->Tom[1] = 1.0e4;
2367  NeIv->Tom[2] = 1.5e4;
2368  NeIv->Tom[3] = 2.0e4;
2369 
2370  if (NeIv->dE == NULL){
2371  NeIv->dE = ARRAY_2D(NeIv->nlev, NeIv->nlev, double);
2372  NeIv->A = ARRAY_2D(NeIv->nlev, NeIv->nlev, double);
2373  NeIv->omega = ARRAY_3D(NeIv->nlev, NeIv->nlev, NeIv->nTom, double);
2374  }
2375 
2376 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2377  O GET PROPER ORDER LATER */
2378 
2379  for (i = 0 ; i < NeIv->nlev ; i++) {
2380  for (j = 0 ; j < NeIv->nlev ; j++) {
2381  NeIv->dE[i][j] = -1.0;
2382  NeIv->A[i][j] = -1.0;
2383  for (n = 0; n < NeIv->nTom; n++){
2384  NeIv->omega[i][j][n] = -1.0;
2385  }
2386  }}
2387 
2388 
2389  NeIv->wght[lev1] = 1.; /* 2 J + 1 */
2390  NeIv->wght[lev2] = 3.; /* */
2391 
2392  NeIv->omega[lev1][lev2][0] = 0.0;
2393  NeIv->omega[lev1][lev2][1] = 0.0;
2394  NeIv->omega[lev1][lev2][2] = 0.0;
2395  NeIv->omega[lev1][lev2][3] = 0.0;
2396 
2397 
2398  NeIv->dE[lev1][lev2] = 743.7; NeIv->A[lev1][lev2] = 4.76e+7;
2399 
2400  Symmetrize_Coeff (NeIv);
2401 }
2402 
2403 /* ********************************************************************* */
2404 void NeII_INIT (Ion *NeIIv)
2405 /*
2406  *
2407  *********************************************************************** */
2408 {
2409  int i, j, n;
2410  int _2P12, _2P32;
2411 
2412  NeIIv->N = 8.e-5; /* abundance of Ne with respect to H (Raymond) */
2413  NeIIv->nlev = 2;
2414 
2415  _2P32 = 0;
2416  _2P12 = 1;
2417 
2418  NeIIv->nTom = 4;
2419  NeIIv->Tom[0] = 0.5e4;
2420  NeIIv->Tom[1] = 1.0e4;
2421  NeIIv->Tom[2] = 1.5e4;
2422  NeIIv->Tom[3] = 2.0e4;
2423 
2424  if (NeIIv->dE == NULL){
2425  NeIIv->dE = ARRAY_2D(NeIIv->nlev, NeIIv->nlev, double);
2426  NeIIv->A = ARRAY_2D(NeIIv->nlev, NeIIv->nlev, double);
2427  NeIIv->omega = ARRAY_3D(NeIIv->nlev, NeIIv->nlev, NeIIv->nTom, double);
2428  }
2429 
2430 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2431  O GET PROPER ORDER LATER */
2432 
2433  for (i = 0 ; i < NeIIv->nlev ; i++) {
2434  for (j = 0 ; j < NeIIv->nlev ; j++) {
2435  NeIIv->dE[i][j] = -1.0;
2436  NeIIv->A[i][j] = -1.0;
2437  for (n = 0; n < NeIIv->nTom; n++){
2438  NeIIv->omega[i][j][n] = -1.0;
2439  }
2440  }}
2441 
2442 
2443  NeIIv->wght[_2P12] = 2.; /* 2 J + 1 */
2444  NeIIv->wght[_2P32] = 4.; /* */
2445 
2446  NeIIv->omega[_2P12][_2P32][0] = 2.96e-1;
2447  NeIIv->omega[_2P12][_2P32][1] = 3.03e-1;
2448  NeIIv->omega[_2P12][_2P32][2] = 3.10e-1;
2449  NeIIv->omega[_2P12][_2P32][3] = 3.17e-1;
2450 
2451 
2452  NeIIv->dE[_2P12][_2P32] = 1.28e+5; NeIIv->A[_2P12][_2P32] = 8.55e-3;
2453 
2454  Symmetrize_Coeff (NeIIv);
2455 }
2456 
2457 /* ********************************************************************* */
2458 void NeIII_INIT (Ion *NeIIIv)
2459 /*
2460  *
2461  *********************************************************************** */
2462 {
2463  int i, j, n;
2464  int _3P2, _3P1, _3P0, _1D2, _1S0;
2465 
2466  NeIIIv->N = 8.e-5; /* abundance of Ne with respect to H (Raymond) */
2467  NeIIIv->nlev = 5;
2468 
2469  _3P2 = 0;
2470  _3P1 = 1;
2471  _3P0 = 2;
2472  _1D2 = 3;
2473  _1S0 = 4;
2474 
2475  NeIIIv->nTom = 4;
2476  NeIIIv->Tom[0] = 0.5e4;
2477  NeIIIv->Tom[1] = 1.0e4;
2478  NeIIIv->Tom[2] = 1.5e4;
2479  NeIIIv->Tom[3] = 2.0e4;
2480 
2481  if (NeIIIv->dE == NULL){
2482  NeIIIv->dE = ARRAY_2D(NeIIIv->nlev, NeIIIv->nlev, double);
2483  NeIIIv->A = ARRAY_2D(NeIIIv->nlev, NeIIIv->nlev, double);
2484  NeIIIv->omega = ARRAY_3D(NeIIIv->nlev, NeIIIv->nlev, NeIIIv->nTom, double);
2485  }
2486 
2487 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2488  O GET PROPER ORDER LATER */
2489 
2490  for (i = 0 ; i < NeIIIv->nlev ; i++) {
2491  for (j = 0 ; j < NeIIIv->nlev ; j++) {
2492  NeIIIv->dE[i][j] = -1.0;
2493  NeIIIv->A[i][j] = -1.0;
2494  for (n = 0; n < NeIIIv->nTom; n++){
2495  NeIIIv->omega[i][j][n] = -1.0;
2496  }
2497  }}
2498 
2499 
2500  NeIIIv->wght[_3P2] = 5.; /* 2 J + 1 */
2501  NeIIIv->wght[_3P1] = 3.; /* */
2502  NeIIIv->wght[_3P0] = 1.; /* */
2503  NeIIIv->wght[_1D2] = 5.; /* */
2504  NeIIIv->wght[_1S0] = 1.; /* */
2505 
2506  NeIIIv->omega[_1D2][_3P0][0] = 1.63 * (1.0) / (3.0*3.0);
2507  NeIIIv->omega[_1D2][_3P0][1] = 1.65 * (1.0) / (3.0*3.0);
2508  NeIIIv->omega[_1D2][_3P0][2] = 1.65 * (1.0) / (3.0*3.0);
2509  NeIIIv->omega[_1D2][_3P0][3] = 1.64 * (1.0) / (3.0*3.0);
2510 
2511  NeIIIv->omega[_1D2][_3P1][0] = 1.63 * (3.0) / (3.0*3.0);
2512  NeIIIv->omega[_1D2][_3P1][1] = 1.65 * (3.0) / (3.0*3.0);
2513  NeIIIv->omega[_1D2][_3P1][2] = 1.65 * (3.0) / (3.0*3.0);
2514  NeIIIv->omega[_1D2][_3P1][3] = 1.64 * (3.0) / (3.0*3.0);
2515 
2516  NeIIIv->omega[_1D2][_3P2][0] = 1.63 * (5.0) / (3.0*3.0);
2517  NeIIIv->omega[_1D2][_3P2][1] = 1.65 * (5.0) / (3.0*3.0);
2518  NeIIIv->omega[_1D2][_3P2][2] = 1.65 * (5.0) / (3.0*3.0);
2519  NeIIIv->omega[_1D2][_3P2][3] = 1.64 * (5.0) / (3.0*3.0);
2520 
2521  NeIIIv->omega[_1S0][_3P1][0] = 1.51e-1 * (3.0) / (3.0*3.0);
2522  NeIIIv->omega[_1S0][_3P1][1] = 1.69e-1 * (3.0) / (3.0*3.0);
2523  NeIIIv->omega[_1S0][_3P1][2] = 1.75e-1 * (3.0) / (3.0*3.0);
2524  NeIIIv->omega[_1S0][_3P1][3] = 1.79e-1 * (3.0) / (3.0*3.0);
2525 
2526  NeIIIv->omega[_1S0][_3P2][0] = 1.51e-1 * (5.0) / (3.0*3.0);
2527  NeIIIv->omega[_1S0][_3P2][1] = 1.69e-1 * (5.0) / (3.0*3.0);
2528  NeIIIv->omega[_1S0][_3P2][2] = 1.75e-1 * (5.0) / (3.0*3.0);
2529  NeIIIv->omega[_1S0][_3P2][3] = 1.79e-1 * (5.0) / (3.0*3.0);
2530 
2531  NeIIIv->omega[_1S0][_1D2][0] = 2.00e-1;
2532  NeIIIv->omega[_1S0][_1D2][1] = 2.26e-1;
2533  NeIIIv->omega[_1S0][_1D2][2] = 2.43e-1;
2534  NeIIIv->omega[_1S0][_1D2][3] = 2.60e-1;
2535 
2536  NeIIIv->omega[_3P0][_3P1][0] = 3.31e-1;
2537  NeIIIv->omega[_3P0][_3P1][1] = 3.50e-1;
2538  NeIIIv->omega[_3P0][_3P1][2] = 3.51e-1;
2539  NeIIIv->omega[_3P0][_3P1][3] = 3.50e-1;
2540 
2541  NeIIIv->omega[_3P0][_3P2][0] = 3.00e-1;
2542  NeIIIv->omega[_3P0][_3P2][1] = 3.07e-1;
2543  NeIIIv->omega[_3P0][_3P2][2] = 3.03e-1;
2544  NeIIIv->omega[_3P0][_3P2][3] = 2.98e-1;
2545 
2546  NeIIIv->omega[_3P1][_3P2][0] = 1.09;
2547  NeIIIv->omega[_3P1][_3P2][1] = 1.65;
2548  NeIIIv->omega[_3P1][_3P2][2] = 1.65;
2549  NeIIIv->omega[_3P1][_3P2][3] = 1.64;
2550 
2551  NeIIIv->dE[_1D2][_3P0] = 4012.8; NeIIIv->A[_1D2][_3P0] = 8.51e-6;
2552  NeIIIv->dE[_1D2][_3P1] = 3967.5; NeIIIv->A[_1D2][_3P1] = 5.42e-2;
2553  NeIIIv->dE[_1D2][_3P2] = 3868.8; NeIIIv->A[_1D2][_3P2] = 1.71e-1;
2554  NeIIIv->dE[_1S0][_3P1] = 1814.6; NeIIIv->A[_1S0][_3P1] = 2.00;
2555  NeIIIv->dE[_1S0][_3P2] = 1793.7; NeIIIv->A[_1S0][_3P2] = 3.94e-3;
2556  NeIIIv->dE[_1S0][_1D2] = 3342.5; NeIIIv->A[_1S0][_1D2] = 2.71;
2557  NeIIIv->dE[_3P0][_3P1] = 3.60e+5; NeIIIv->A[_3P0][_3P1] = 1.15e-3;
2558  NeIIIv->dE[_3P0][_3P2] = 1.07e+5; NeIIIv->A[_3P0][_3P2] = 2.18e-8;
2559  NeIIIv->dE[_3P1][_3P2] = 1.56e+5; NeIIIv->A[_3P1][_3P2] = 5.97e-3;
2560 /* NeIIIv->dE[_1S0][_3P0] = 1827.6; NeIIIv->A[_1S0][_3P0] = 0.00000; fake */
2561 
2562 
2563  Symmetrize_Coeff (NeIIIv);
2564 }
2565 
2566 /* ********************************************************************* */
2567 void NeIV_INIT (Ion *NeIVv)
2568 /*
2569  *
2570  *********************************************************************** */
2571 {
2572  int i, j, n;
2573  int S32, D52, D32, P12, P32;
2574 
2575  NeIVv->N = 8.e-5; /* abundance of Ne with respect to H (Raymond) */
2576  NeIVv->nlev = 5;
2577 
2578  S32 = 0;
2579  D52 = 1;
2580  D32 = 2;
2581  P12 = 3;
2582  P32 = 4;
2583 
2584  NeIVv->nTom = 4;
2585  NeIVv->Tom[0] = 0.5e4;
2586  NeIVv->Tom[1] = 1.0e4;
2587  NeIVv->Tom[2] = 1.5e4;
2588  NeIVv->Tom[3] = 2.0e4;
2589 
2590  if (NeIVv->dE == NULL){
2591  NeIVv->dE = ARRAY_2D(NeIVv->nlev, NeIVv->nlev, double);
2592  NeIVv->A = ARRAY_2D(NeIVv->nlev, NeIVv->nlev, double);
2593  NeIVv->omega = ARRAY_3D(NeIVv->nlev, NeIVv->nlev, NeIVv->nTom, double);
2594  }
2595 
2596 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2597  O GET PROPER ORDER LATER */
2598 
2599  for (i = 0 ; i < NeIVv->nlev ; i++) {
2600  for (j = 0 ; j < NeIVv->nlev ; j++) {
2601  NeIVv->dE[i][j] = -1.0;
2602  NeIVv->A[i][j] = -1.0;
2603  for (n = 0; n < NeIVv->nTom; n++){
2604  NeIVv->omega[i][j][n] = -1.0;
2605  }
2606  }}
2607 
2608 
2609  NeIVv->wght[S32] = 4.; /* 2 J + 1 */
2610  NeIVv->wght[D52] = 6.; /* */
2611  NeIVv->wght[D32] = 4.; /* */
2612  NeIVv->wght[P12] = 2.; /* */
2613  NeIVv->wght[P32] = 4.; /* */
2614 
2615  NeIVv->omega[D52][S32][0] = 8.45e-1;
2616  NeIVv->omega[D52][S32][1] = 8.43e-1;
2617  NeIVv->omega[D52][S32][2] = 8.32e-1;
2618  NeIVv->omega[D52][S32][3] = 8.24e-1;
2619 
2620  NeIVv->omega[D32][S32][0] = 5.63e-1;
2621  NeIVv->omega[D32][S32][1] = 5.59e-1;
2622  NeIVv->omega[D32][S32][2] = 5.55e-1;
2623  NeIVv->omega[D32][S32][3] = 5.50e-1;
2624 
2625  NeIVv->omega[P32][S32][0] = 3.07e-1;
2626  NeIVv->omega[P32][S32][1] = 3.13e-1;
2627  NeIVv->omega[P32][S32][2] = 3.12e-1;
2628  NeIVv->omega[P32][S32][3] = 3.09e-1;
2629 
2630  NeIVv->omega[P12][S32][0] = 1.53e-1;
2631  NeIVv->omega[P12][S32][1] = 1.56e-1;
2632  NeIVv->omega[P12][S32][2] = 1.56e-1;
2633  NeIVv->omega[P12][S32][3] = 1.55e-1;
2634 
2635  NeIVv->omega[D52][D32][0] = 1.37;
2636  NeIVv->omega[D52][D32][1] = 1.36;
2637  NeIVv->omega[D52][D32][2] = 1.35;
2638  NeIVv->omega[D52][D32][3] = 1.33;
2639 
2640  NeIVv->omega[P32][P12][0] = 3.17e-1;
2641  NeIVv->omega[P32][P12][1] = 3.43e-1;
2642  NeIVv->omega[P32][P12][2] = 3.58e-1;
2643  NeIVv->omega[P32][P12][3] = 3.70e-1;
2644 
2645  NeIVv->omega[P32][D52][0] = 8.56e-1;
2646  NeIVv->omega[P32][D52][1] = 9.00e-1;
2647  NeIVv->omega[P32][D52][2] = 9.08e-1;
2648  NeIVv->omega[P32][D52][3] = 9.09e-1;
2649 
2650  NeIVv->omega[P32][D32][0] = 4.73e-1;
2651  NeIVv->omega[P32][D32][1] = 5.09e-1;
2652  NeIVv->omega[P32][D32][2] = 5.15e-1;
2653  NeIVv->omega[P32][D32][3] = 5.16e-1;
2654 
2655  NeIVv->omega[P12][D52][0] = 3.40e-1;
2656  NeIVv->omega[P12][D52][1] = 3.68e-1;
2657  NeIVv->omega[P12][D52][2] = 3.73e-1;
2658  NeIVv->omega[P12][D52][3] = 3.74e-1;
2659 
2660  NeIVv->omega[P12][D32][0] = 3.24e-1;
2661  NeIVv->omega[P12][D32][1] = 3.36e-1;
2662  NeIVv->omega[P12][D32][2] = 3.39e-1;
2663  NeIVv->omega[P12][D32][3] = 3.39e-1;
2664 
2665 
2666  NeIVv->dE[D52][S32] = 2420.9; NeIVv->A[D52][S32] = 4.58e-4;
2667  NeIVv->dE[D32][S32] = 2418.2; NeIVv->A[D32][S32] = 5.77e-3;
2668  NeIVv->dE[P32][S32] = 1601.5; NeIVv->A[P32][S32] = 1.27;
2669  NeIVv->dE[P12][S32] = 1601.7; NeIVv->A[P12][S32] = 5.21e-1;
2670  NeIVv->dE[D52][D32] = 2.237e+6; NeIVv->A[D52][D32] = 1.48e-6;
2671  NeIVv->dE[P32][P12] = 1.56e+7; NeIVv->A[P32][P12] = 2.82e-9;
2672  NeIVv->dE[P32][D52] = 4714.3; NeIVv->A[P32][D52] = 3.88e-1;
2673  NeIVv->dE[P32][D32] = 4724.2; NeIVv->A[P32][D32] = 4.37e-1;
2674  NeIVv->dE[P12][D52] = 4717.0; NeIVv->A[P12][D52] = 1.15e-2;
2675  NeIVv->dE[P12][D32] = 4725.6; NeIVv->A[P12][D32] = 3.93e-1;
2676 
2677 
2678  Symmetrize_Coeff (NeIVv);
2679 }
2680 
2681 /* ********************************************************************* */
2682 void NeV_INIT (Ion *NeVv)
2683 /*
2684  *
2685  *********************************************************************** */
2686 {
2687  int i, j, n;
2688  int _3P2, _3P1, _3P0, _1D2, _1S0;
2689 
2690  NeVv->N = 8.e-5; /* abundance of Ne with respect to H (Raymond) */
2691  NeVv->nlev = 5;
2692 
2693  _3P0 = 0;
2694  _3P1 = 1;
2695  _3P2 = 2;
2696  _1D2 = 3;
2697  _1S0 = 4;
2698 
2699  NeVv->nTom = 4;
2700  NeVv->Tom[0] = 0.5e4;
2701  NeVv->Tom[1] = 1.0e4;
2702  NeVv->Tom[2] = 1.5e4;
2703  NeVv->Tom[3] = 2.0e4;
2704 
2705  if (NeVv->dE == NULL){
2706  NeVv->dE = ARRAY_2D(NeVv->nlev, NeVv->nlev, double);
2707  NeVv->A = ARRAY_2D(NeVv->nlev, NeVv->nlev, double);
2708  NeVv->omega = ARRAY_3D(NeVv->nlev, NeVv->nlev, NeVv->nTom, double);
2709  }
2710 
2711 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2712  O GET PROPER ORDER LATER */
2713 
2714  for (i = 0 ; i < NeVv->nlev ; i++) {
2715  for (j = 0 ; j < NeVv->nlev ; j++) {
2716  NeVv->dE[i][j] = -1.0;
2717  NeVv->A[i][j] = -1.0;
2718  for (n = 0; n < NeVv->nTom; n++){
2719  NeVv->omega[i][j][n] = -1.0;
2720  }
2721  }}
2722 
2723 
2724  NeVv->wght[_3P0] = 1.; /* 2 J + 1 */
2725  NeVv->wght[_3P1] = 3.; /* */
2726  NeVv->wght[_3P2] = 5.; /* */
2727  NeVv->wght[_1D2] = 5.; /* */
2728  NeVv->wght[_1S0] = 1.; /* */
2729 
2730  NeVv->omega[_1D2][_3P0][0] = 2.13 * (1.0) / (3.0*3.0);
2731  NeVv->omega[_1D2][_3P0][1] = 2.09 * (1.0) / (3.0*3.0);
2732  NeVv->omega[_1D2][_3P0][2] = 2.11 * (1.0) / (3.0*3.0);
2733  NeVv->omega[_1D2][_3P0][3] = 2.14 * (1.0) / (3.0*3.0);
2734 
2735  NeVv->omega[_1D2][_3P1][0] = 2.13 * (3.0) / (3.0*3.0);
2736  NeVv->omega[_1D2][_3P1][1] = 2.09 * (3.0) / (3.0*3.0);
2737  NeVv->omega[_1D2][_3P1][2] = 2.11 * (3.0) / (3.0*3.0);
2738  NeVv->omega[_1D2][_3P1][3] = 2.14 * (3.0) / (3.0*3.0);
2739 
2740  NeVv->omega[_1D2][_3P2][0] = 2.13 * (5.0) / (3.0*3.0);
2741  NeVv->omega[_1D2][_3P2][1] = 2.09 * (5.0) / (3.0*3.0);
2742  NeVv->omega[_1D2][_3P2][2] = 2.11 * (5.0) / (3.0*3.0);
2743  NeVv->omega[_1D2][_3P2][3] = 2.14 * (5.0) / (3.0*3.0);
2744 
2745  NeVv->omega[_1S0][_3P1][0] = 2.54e-1 * (3.0) / (3.0*3.0);
2746  NeVv->omega[_1S0][_3P1][1] = 2.46e-1 * (3.0) / (3.0*3.0);
2747  NeVv->omega[_1S0][_3P1][2] = 2.49e-1 * (3.0) / (3.0*3.0);
2748  NeVv->omega[_1S0][_3P1][3] = 2.51e-1 * (3.0) / (3.0*3.0);
2749 
2750  NeVv->omega[_1S0][_3P2][0] = 2.54e-1 * (5.0) / (3.0*3.0);
2751  NeVv->omega[_1S0][_3P2][1] = 2.46e-1 * (5.0) / (3.0*3.0);
2752  NeVv->omega[_1S0][_3P2][2] = 2.49e-1 * (5.0) / (3.0*3.0);
2753  NeVv->omega[_1S0][_3P2][3] = 2.51e-1 * (5.0) / (3.0*3.0);
2754 
2755  NeVv->omega[_1S0][_1D2][0] = 6.63e-1;
2756  NeVv->omega[_1S0][_1D2][1] = 5.77e-1;
2757  NeVv->omega[_1S0][_1D2][2] = 6.10e-1;
2758  NeVv->omega[_1S0][_1D2][3] = 6.49e-1;
2759 
2760  NeVv->omega[_3P1][_3P0][0] = 1.68;
2761  NeVv->omega[_3P1][_3P0][1] = 1.41;
2762  NeVv->omega[_3P1][_3P0][2] = 1.19;
2763  NeVv->omega[_3P1][_3P0][3] = 1.10;
2764 
2765  NeVv->omega[_3P2][_3P0][0] = 2.44;
2766  NeVv->omega[_3P2][_3P0][1] = 1.81;
2767  NeVv->omega[_3P2][_3P0][2] = 1.42;
2768  NeVv->omega[_3P2][_3P0][3] = 1.26;
2769 
2770  NeVv->omega[_3P2][_3P1][0] = 7.59;
2771  NeVv->omega[_3P2][_3P1][1] = 5.82;
2772  NeVv->omega[_3P2][_3P1][2] = 4.68;
2773  NeVv->omega[_3P2][_3P1][3] = 4.20;
2774 
2775 
2776  NeVv->dE[_1D2][_3P0] = 3301.3; NeVv->A[_1D2][_3P0] = 2.37e-5;
2777  NeVv->dE[_1D2][_3P1] = 3345.8; NeVv->A[_1D2][_3P1] = 1.31e-1;
2778  NeVv->dE[_1D2][_3P2] = 3425.9; NeVv->A[_1D2][_3P2] = 3.65e-1;
2779  NeVv->dE[_1S0][_3P1] = 1574.8; NeVv->A[_1S0][_3P1] = 4.21;
2780  NeVv->dE[_1S0][_3P2] = 1592.3; NeVv->A[_1S0][_3P2] = 6.69e-3;
2781  NeVv->dE[_1S0][_1D2] = 2972.8; NeVv->A[_1S0][_1D2] = 2.85;
2782  NeVv->dE[_3P1][_3P0] = 2.428e+5;NeVv->A[_3P1][_3P0] = 1.28e-3;
2783  NeVv->dE[_3P2][_3P0] = 90082.; NeVv->A[_3P2][_3P0] = 5.08e-9;
2784  NeVv->dE[_3P2][_3P1] = 1.432e+5;NeVv->A[_3P2][_3P1] = 4.59e-3;
2785 /* NeVv->dE[_1S0][_3P0] = 1.6e+16; NeVv->A[_1S0][_3P0] = 0.00000; fake */
2786 
2787 
2788  Symmetrize_Coeff (NeVv);
2789 }
2790 
2791 /* ********************************************************************* */
2792 void SI_INIT (Ion *SIv)
2793 /*
2794  * Data from Tayal 2004, ApJSS
2795  *********************************************************************** */
2796 
2797 {
2798  int i, j, n;
2799  int P2, P1, P0, D2, S0;
2800 
2801  SIv->N = 4.e-5; /* abundance of S with respect to H (Raymond) */
2802  SIv->nlev = 5;
2803 
2804  P2 = 0;
2805  P1 = 1;
2806  P0 = 2;
2807  D2 = 3;
2808  S0 = 4;
2809 
2810 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2811  O GET PROPER ORDER LATER */
2812 
2813  SIv->nTom = 4;
2814  SIv->Tom[0] = 1.995e3;
2815  SIv->Tom[1] = 1.0e4;
2816  SIv->Tom[2] = 1.0e5;
2817  SIv->Tom[3] = 3.981e5;
2818 
2819  if (SIv->dE == NULL){
2820  SIv->dE = ARRAY_2D(SIv->nlev, SIv->nlev, double);
2821  SIv->A = ARRAY_2D(SIv->nlev, SIv->nlev, double);
2822  SIv->omega = ARRAY_3D(SIv->nlev, SIv->nlev, SIv->nTom, double);
2823  }
2824 
2825  for (i = 0 ; i < SIv->nlev ; i++) {
2826  for (j = 0 ; j < SIv->nlev ; j++) {
2827  SIv->dE[i][j] = -1.0;
2828  SIv->A[i][j] = -1.0;
2829  for (n = 0; n < SIv->nTom; n++){
2830  SIv->omega[i][j][n] = -1.0;
2831  }
2832  }}
2833 
2834  SIv->wght[P2] = 5.; /* 3P_2 */
2835  SIv->wght[P1] = 3.; /* 3P_1 */
2836  SIv->wght[P0] = 1.; /* 3P_0 */
2837  SIv->wght[D2] = 5.; /* 1D_2 */
2838  SIv->wght[S0] = 1.; /* 1S_0 */
2839 
2840 /* ---------------------------------------------------
2841  define collision strengths as function of
2842  temperature.
2843  --------------------------------------------------- */
2844 
2845 
2846  SIv->omega[P0][P1][0] = 0.056;
2847  SIv->omega[P0][P1][1] = 0.283;
2848  SIv->omega[P0][P1][2] = 1.862;
2849  SIv->omega[P0][P1][3] = 1.897;
2850 
2851  SIv->omega[P0][P2][0] = 0.011;
2852  SIv->omega[P0][P2][1] = 0.054;
2853  SIv->omega[P0][P2][2] = 0.415;
2854  SIv->omega[P0][P2][3] = 0.507;
2855 
2856  SIv->omega[D2][P0][0] = 0.058;
2857  SIv->omega[D2][P0][1] = 0.273;
2858  SIv->omega[D2][P0][2] = 1.609;
2859  SIv->omega[D2][P0][3] = 1.454;
2860 
2861  SIv->omega[S0][P0][0] = 0.007;
2862  SIv->omega[S0][P0][1] = 0.031;
2863  SIv->omega[S0][P0][2] = 0.195;
2864  SIv->omega[S0][P0][3] = 0.167;
2865 /*
2866  SIv->omega[S0][D2][0] = 1.0e-31;
2867  SIv->omega[S0][D2][1] = 1.0e-31;
2868  SIv->omega[S0][D2][2] = 1.0e-31;
2869  SIv->omega[S0][D2][3] = 1.0e-31;
2870 
2871  SIv->omega[S0][P1][0] = 1.0e-31;
2872  SIv->omega[S0][P1][1] = 1.0e-31;
2873  SIv->omega[S0][P1][2] = 1.0e-31;
2874  SIv->omega[S0][P1][3] = 1.0e-31;
2875 
2876  SIv->omega[S0][P2][0] = 1.0e-31;
2877  SIv->omega[S0][P2][1] = 1.0e-31;
2878  SIv->omega[S0][P2][2] = 1.0e-31;
2879  SIv->omega[S0][P2][3] = 1.0e-31;
2880 
2881  SIv->omega[D2][P1][0] = 1.0e-31;
2882  SIv->omega[D2][P1][1] = 1.0e-31;
2883  SIv->omega[D2][P1][2] = 1.0e-31;
2884  SIv->omega[D2][P1][3] = 1.0e-31;
2885 
2886  SIv->omega[D2][P2][0] = 1.0e-31;
2887  SIv->omega[D2][P2][1] = 1.0e-31;
2888  SIv->omega[D2][P2][2] = 1.0e-31;
2889  SIv->omega[D2][P2][3] = 1.0e-31;
2890 
2891  SIv->omega[P1][P2][0] = 1.0e-31;
2892  SIv->omega[P1][P2][1] = 1.0e-31;
2893  SIv->omega[P1][P2][2] = 1.0e-31;
2894  SIv->omega[P1][P2][3] = 1.0e-31;
2895 */
2896 
2897  SIv->dE[P0][P1] = 563111. ; SIv->A[P0][P1] = 3.02e-4; /* dE [ HIGHER ][LOWER ] */
2898  SIv->dE[P0][P2] = 174325.; SIv->A[P0][P2] = 7.1e-8;
2899  SIv->dE[D2][P0] = 11540.72; SIv->A[D2][P0] = 5.0e-6;
2900  SIv->dE[S0][P0] = 4628.28; SIv->A[S0][P0] = 3.5e-1;
2901 /* SIv->dE[S0][D2] = 1.0e+16; SIv->A[S0][D2] = 0.00000;
2902  SIv->dE[S0][P1] = 1.0e+16; SIv->A[S0][P1] = 0.00000;
2903  SIv->dE[S0][P2] = 1.0e+16; SIv->A[S0][P2] = 0.00000;
2904  SIv->dE[D2][P1] = 1.0e+16; SIv->A[D2][P1] = 0.00000;
2905  SIv->dE[D2][P2] = 1.0e+16; SIv->A[D2][P2] = 0.00000;
2906  SIv->dE[P1][P2] = 1.0e+16; SIv->A[P1][P2] = 0.00000;
2907 */
2908  Symmetrize_Coeff (SIv);
2909 }
2910 
2911 
2912 
2913 /* ********************************************************************* */
2914 void SII_INIT (Ion *SIIv)
2915 /*
2916  *
2917  *
2918  * P32
2919  *
2920  * P12
2921  *
2922  * D52
2923  *
2924  * D32
2925  *
2926  * S
2927  *
2928  *********************************************************************** */
2929 {
2930  int i, j, n;
2931  int S, D52, D32, P32, P12;
2932 
2933  /* T-dep CS data from MAPPINGS. Old Pradhan data commented. */
2934 
2935  SIIv->isMAP = 1;
2936 
2937  SIIv->N = 4.e-5; /* abundance of S with respect to H (Raymond) */
2938  SIIv->nlev = 5;
2939 
2940  S = 0;
2941  D32 = 1;
2942  D52 = 2;
2943  P12 = 3;
2944  P32 = 4;
2945 
2946 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
2947  O GET PROPER ORDER LATER */
2948 
2949  SIIv->nTom = 2;
2950  SIIv->Tom[0] = 0.5e4;
2951  SIIv->Tom[1] = 1.0e4;
2952 
2953  if (SIIv->dE == NULL){
2954  SIIv->dE = ARRAY_2D(SIIv->nlev, SIIv->nlev, double);
2955  SIIv->A = ARRAY_2D(SIIv->nlev, SIIv->nlev, double);
2956  SIIv->omega = ARRAY_3D(SIIv->nlev, SIIv->nlev, SIIv->nTom, double);
2957  }
2958 
2959  for (i = 0 ; i < SIIv->nlev ; i++) {
2960  for (j = 0 ; j < SIIv->nlev ; j++) {
2961  SIIv->dE[i][j] = -1.0;
2962  SIIv->A[i][j] = -1.0;
2963  for (n = 0; n < SIIv->nTom; n++){
2964  SIIv->omega[i][j][n] = 0.0;
2965  }
2966  }}
2967 
2968  SIIv->wght[S] = 4.; /* 4S_3/2 */
2969  SIIv->wght[D52] = 6.; /* 2D_5/2 */
2970  SIIv->wght[D32] = 4.; /* 2D_3/2 */
2971  SIIv->wght[P32] = 4.; /* 4P_3/2 */
2972  SIIv->wght[P12] = 2.; /* 4P_1/2 */
2973 
2974 /* ---------------------------------------------------
2975  define collision strengths as function of
2976  temperature.
2977  --------------------------------------------------- */
2978 
2979 /*
2980  SIIv->omega[S][D52][0] = 4.90;
2981  SIIv->omega[S][D52][1] = 4.66;
2982  SIIv->omega[S][D52][2] = 4.44;
2983  SIIv->omega[S][D52][3] = 4.26;
2984 
2985  SIIv->omega[S][D32][0] = 3.27;
2986  SIIv->omega[S][D32][1] = 3.11;
2987  SIIv->omega[S][D32][2] = 2.97;
2988  SIIv->omega[S][D32][3] = 2.84;
2989 
2990  SIIv->omega[P32][S][0] = 1.67;
2991  SIIv->omega[P32][S][1] = 2.07;
2992  SIIv->omega[P32][S][2] = 1.98;
2993  SIIv->omega[P32][S][3] = 2.07;
2994 
2995  SIIv->omega[P12][S][0] = 0.831;
2996  SIIv->omega[P12][S][1] = 0.897;
2997  SIIv->omega[P12][S][2] = 0.987;
2998  SIIv->omega[P12][S][3] = 1.03;
2999 
3000  SIIv->omega[D52][D32][0] = 7.9;
3001  SIIv->omega[D52][D32][1] = 7.46;
3002  SIIv->omega[D52][D32][2] = 7.11;
3003  SIIv->omega[D52][D32][3] = 8.65;
3004 
3005  SIIv->omega[P32][P12][0] = 2.02;
3006  SIIv->omega[P32][P12][1] = 2.54;
3007  SIIv->omega[P32][P12][2] = 2.13;
3008  SIIv->omega[P32][P12][3] = 2.22;
3009 
3010  SIIv->omega[P32][D52][0] = 5.93;
3011  SIIv->omega[P32][D52][1] = 4.77;
3012  SIIv->omega[P32][D52][2] = 4.75;
3013  SIIv->omega[P32][D52][3] = 4.68;
3014 
3015  SIIv->omega[P32][D32][0] = 3.41;
3016  SIIv->omega[P32][D32][1] = 2.74;
3017  SIIv->omega[P32][D32][2] = 2.74;
3018  SIIv->omega[P32][D32][3] = 2.71;
3019 
3020  SIIv->omega[P12][D52][0] = 2.57;
3021  SIIv->omega[P12][D52][1] = 1.99;
3022  SIIv->omega[P12][D52][2] = 1.99;
3023  SIIv->omega[P12][D52][3] = 1.97;
3024 
3025  SIIv->omega[P12][D32][0] = 2.20;
3026  SIIv->omega[P12][D32][1] = 1.76;
3027  SIIv->omega[P12][D32][2] = 1.76;
3028  SIIv->omega[P12][D32][3] = 1.73;
3029 */
3030 
3031  SIIv->omega[S][D52][0] = 4.1900;
3032  SIIv->omega[S][D52][1] = -.0800;
3033 
3034  SIIv->omega[S][D32][0] = 2.7900;
3035  SIIv->omega[S][D32][1] = -.0800;
3036 
3037  SIIv->omega[P32][S][0] = 1.5200;
3038  SIIv->omega[P32][S][1] = 0.0000;
3039 
3040  SIIv->omega[P12][S][0] = 0.7590;
3041  SIIv->omega[P12][S][1] = 0.0000;
3042 
3043  SIIv->omega[D52][D32][0] = 7.5900;
3044  SIIv->omega[D52][D32][1] = -.1400;
3045 
3046  SIIv->omega[P32][P12][0] = 2.3800;
3047  SIIv->omega[P32][P12][1] = 0.0000;
3048 
3049  SIIv->omega[P32][D52][0] = 4.7900;
3050  SIIv->omega[P32][D52][1] = 0.0000;
3051 
3052  SIIv->omega[P32][D32][0] = 3.3800;
3053  SIIv->omega[P32][D32][1] = 0.0000;
3054 
3055  SIIv->omega[P12][D52][0] = 2.5600;
3056  SIIv->omega[P12][D52][1] = 0.0000;
3057 
3058  SIIv->omega[P12][D32][0] = 1.5200;
3059  SIIv->omega[P12][D32][1] = 0.0000;
3060 
3061 
3062  SIIv->dE[P32][P12] = 2.14e6 ; SIIv->A[P32][P12] = 1.03e-6; /* dE [ HIGHER ][LOWER ] */
3063  SIIv->dE[P32][D52] = 10320.5; SIIv->A[D52][P32] = 0.18;
3064  SIIv->dE[P32][D32] = 10286.7; SIIv->A[D32][P32] = 0.13;
3065  SIIv->dE[P12][D52] = 10370.5; SIIv->A[D52][P12] = 7.8e-2;
3066  SIIv->dE[P12][D32] = 10336.4; SIIv->A[P12][D32] = 0.16;
3067  SIIv->dE[P32][S] = 4068.6; SIIv->A[P32][S] = 0.22;
3068  SIIv->dE[P12][S] = 4076.4; SIIv->A[P12][S] = 9.1e-2;
3069  SIIv->dE[D52][D32] = 3.145e6; SIIv->A[D52][D32] = 3.3e-7;
3070  SIIv->dE[S][D52] = 6716.4; SIIv->A[S][D52] = 2.6e-4;
3071  SIIv->dE[S][D32] = 6730.8; SIIv->A[S][D32] = 8.8e-4;
3072 
3073  Symmetrize_Coeff (SIIv);
3074 }
3075 
3076 /* ********************************************************************* */
3077 void SIII_INIT (Ion *SIIIv)
3078 /*
3079  *
3080  *********************************************************************** */
3081 {
3082  int i, j, n;
3083  int _3P2, _3P1, _3P0, _1D2, _1S0;
3084 
3085  SIIIv->N = 8.e-5; /* abundance of Ne with respect to H (Raymond) */
3086  SIIIv->nlev = 5;
3087 
3088  _3P0 = 0;
3089  _3P1 = 1;
3090  _3P2 = 2;
3091  _1D2 = 3;
3092  _1S0 = 4;
3093 
3094  SIIIv->nTom = 4;
3095  SIIIv->Tom[0] = 0.5e4;
3096  SIIIv->Tom[1] = 1.0e4;
3097  SIIIv->Tom[2] = 1.5e4;
3098  SIIIv->Tom[3] = 2.0e4;
3099 
3100  if (SIIIv->dE == NULL){
3101  SIIIv->dE = ARRAY_2D(SIIIv->nlev, SIIIv->nlev, double);
3102  SIIIv->A = ARRAY_2D(SIIIv->nlev, SIIIv->nlev, double);
3103  SIIIv->omega = ARRAY_3D(SIIIv->nlev, SIIIv->nlev, SIIIv->nTom, double);
3104  }
3105 
3106 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
3107  O GET PROPER ORDER LATER */
3108 
3109  for (i = 0 ; i < SIIIv->nlev ; i++) {
3110  for (j = 0 ; j < SIIIv->nlev ; j++) {
3111  SIIIv->dE[i][j] = -1.0;
3112  SIIIv->A[i][j] = -1.0;
3113  for (n = 0; n < SIIIv->nTom; n++){
3114  SIIIv->omega[i][j][n] = -1.0;
3115  }
3116  }}
3117 
3118 
3119  SIIIv->wght[_3P0] = 1.; /* 2 J + 1 */
3120  SIIIv->wght[_3P1] = 3.; /* */
3121  SIIIv->wght[_3P2] = 5.; /* */
3122  SIIIv->wght[_1D2] = 5.; /* */
3123  SIIIv->wght[_1S0] = 1.; /* */
3124 
3125  SIIIv->omega[_1D2][_3P0][0] = 9.07 * (1.0) / (3.0*3.0);
3126  SIIIv->omega[_1D2][_3P0][1] = 8.39 * (1.0) / (3.0*3.0);
3127  SIIIv->omega[_1D2][_3P0][2] = 8.29 * (1.0) / (3.0*3.0);
3128  SIIIv->omega[_1D2][_3P0][3] = 8.20 * (1.0) / (3.0*3.0);
3129 
3130  SIIIv->omega[_1D2][_3P1][0] = 9.07 * (3.0) / (3.0*3.0);
3131  SIIIv->omega[_1D2][_3P1][1] = 8.39 * (3.0) / (3.0*3.0);
3132  SIIIv->omega[_1D2][_3P1][2] = 8.29 * (3.0) / (3.0*3.0);
3133  SIIIv->omega[_1D2][_3P1][3] = 8.20 * (3.0) / (3.0*3.0);
3134 
3135  SIIIv->omega[_1D2][_3P2][0] = 9.07 * (5.0) / (3.0*3.0);
3136  SIIIv->omega[_1D2][_3P2][1] = 8.39 * (5.0) / (3.0*3.0);
3137  SIIIv->omega[_1D2][_3P2][2] = 8.29 * (5.0) / (3.0*3.0);
3138  SIIIv->omega[_1D2][_3P2][3] = 8.20 * (5.0) / (3.0*3.0);
3139 
3140  SIIIv->omega[_1S0][_3P1][0] = 1.16 * (3.0) / (3.0*3.0);
3141  SIIIv->omega[_1S0][_3P1][1] = 1.19 * (3.0) / (3.0*3.0);
3142  SIIIv->omega[_1S0][_3P1][2] = 1.21 * (3.0) / (3.0*3.0);
3143  SIIIv->omega[_1S0][_3P1][3] = 1.24 * (3.0) / (3.0*3.0);
3144 
3145  SIIIv->omega[_1S0][_3P2][0] = 1.16 * (5.0) / (3.0*3.0);
3146  SIIIv->omega[_1S0][_3P2][1] = 1.19 * (5.0) / (3.0*3.0);
3147  SIIIv->omega[_1S0][_3P2][2] = 1.21 * (5.0) / (3.0*3.0);
3148  SIIIv->omega[_1S0][_3P2][3] = 1.24 * (5.0) / (3.0*3.0);
3149 
3150  SIIIv->omega[_1S0][_1D2][0] = 1.42;
3151  SIIIv->omega[_1S0][_1D2][1] = 1.88;
3152  SIIIv->omega[_1S0][_1D2][2] = 2.02;
3153  SIIIv->omega[_1S0][_1D2][3] = 2.08;
3154 
3155  SIIIv->omega[_3P1][_3P0][0] = 2.64;
3156  SIIIv->omega[_3P1][_3P0][1] = 2.59;
3157  SIIIv->omega[_3P1][_3P0][2] = 2.38;
3158  SIIIv->omega[_3P1][_3P0][3] = 2.20;
3159 
3160  SIIIv->omega[_3P2][_3P0][0] = 1.11;
3161  SIIIv->omega[_3P2][_3P0][1] = 1.15;
3162  SIIIv->omega[_3P2][_3P0][2] = 1.15;
3163  SIIIv->omega[_3P2][_3P0][3] = 1.14;
3164 
3165  SIIIv->omega[_3P2][_3P1][0] = 5.79;
3166  SIIIv->omega[_3P2][_3P1][1] = 5.81;
3167  SIIIv->omega[_3P2][_3P1][2] = 5.56;
3168  SIIIv->omega[_3P2][_3P1][3] = 5.32;
3169 
3170 
3171  SIIIv->dE[_1D2][_3P0] = 8833.9; SIIIv->A[_1D2][_3P0] = 5.82e-6;
3172  SIIIv->dE[_1D2][_3P1] = 9068.9; SIIIv->A[_1D2][_3P1] = 2.21e-2;
3173  SIIIv->dE[_1D2][_3P2] = 9531.0; SIIIv->A[_1D2][_3P2] = 5.76e-2;
3174  SIIIv->dE[_1S0][_3P1] = 3721.7; SIIIv->A[_1S0][_3P1] = 7.96e-1;
3175  SIIIv->dE[_1S0][_3P2] = 3797.8; SIIIv->A[_1S0][_3P2] = 1.05e-2;
3176  SIIIv->dE[_1S0][_1D2] = 6312.1; SIIIv->A[_1S0][_1D2] = 2.22;
3177  SIIIv->dE[_3P1][_3P0] = 3.347e+5;SIIIv->A[_3P1][_3P0] = 4.72e-4;
3178  SIIIv->dE[_3P2][_3P0] = 1.20e+5; SIIIv->A[_3P2][_3P0] = 4.61e-8;
3179  SIIIv->dE[_3P2][_3P1] = 187129.; SIIIv->A[_3P2][_3P1] = 2.07e-3;
3180 /* SIIIv->dE[_1S0][_3P0] = 1.6e+16; SIIIv->A[_1S0][_3P0] = 0.00000; fake */
3181 
3182 
3183  Symmetrize_Coeff (SIIIv);
3184 }
3185 
3186 /* ********************************************************************* */
3187 void SIV_INIT (Ion *SIVv)
3188 /*
3189  *
3190  *********************************************************************** */
3191 {
3192  int i, j, n;
3193  int _2P12, _2P32, _4P12, _4P32, _4P52;
3194 
3195 
3196  /* T-dep CS data from MAPPINGS. Old Pradhan data commented. */
3197 
3198  SIVv->isMAP = 1;
3199 
3200  SIVv->N = 4.e-5; /* abundance of S with respect to H (Raymond) */
3201  SIVv->nlev = 5;
3202 
3203  _2P12 = 0;
3204  _2P32 = 1;
3205  _4P12 = 2;
3206  _4P32 = 3;
3207  _4P52 = 4;
3208 
3209 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
3210  O GET PROPER ORDER LATER */
3211 
3212  SIVv->nTom = 2;
3213  SIVv->Tom[0] = 1.0e4;
3214  SIVv->Tom[1] = 1.5e4;
3215 
3216  if (SIVv->dE == NULL){
3217  SIVv->dE = ARRAY_2D(SIVv->nlev, SIVv->nlev, double);
3218  SIVv->A = ARRAY_2D(SIVv->nlev, SIVv->nlev, double);
3219  SIVv->omega = ARRAY_3D(SIVv->nlev, SIVv->nlev, SIVv->nTom, double);
3220  }
3221 
3222  for (i = 0 ; i < SIVv->nlev ; i++) {
3223  for (j = 0 ; j < SIVv->nlev ; j++) {
3224  SIVv->dE[i][j] = -1.0;
3225  SIVv->A[i][j] = -1.0;
3226  for (n = 0; n < SIVv->nTom; n++){
3227  SIVv->omega[i][j][n] = 0.0;
3228  }
3229  }}
3230 
3231  SIVv->wght[_2P12] = 2.; /* 2P_1/2 */
3232  SIVv->wght[_2P32] = 4.; /* 2P_3/2 */
3233  SIVv->wght[_4P12] = 2.; /* 4P_1/2 */
3234  SIVv->wght[_4P32] = 4.; /* 4P_3/2 */
3235  SIVv->wght[_4P52] = 6.; /* 4P_5/2 */
3236 
3237 /* ---------------------------------------------------
3238  define collision strengths as function of
3239  temperature.
3240  --------------------------------------------------- */
3241 
3242 /*
3243  SIVv->omega[_2P32][_2P12][0] = 6.42;
3244  SIVv->omega[_2P32][_2P12][1] = 6.41;
3245 
3246  SIVv->omega[_4P12][_2P12][0] = 5.50e-1;
3247  SIVv->omega[_4P12][_2P12][1] = 4.80e-1;
3248 
3249  SIVv->omega[_4P12][_2P32][0] = 6.60e-1;
3250  SIVv->omega[_4P12][_2P32][1] = 6.30e-1;
3251 
3252  SIVv->omega[_4P32][_2P12][0] = 8.70e-1;
3253  SIVv->omega[_4P32][_2P12][1] = 8.30e-1;
3254 
3255  SIVv->omega[_4P32][_2P32][0] = 1.47;
3256  SIVv->omega[_4P32][_2P32][1] = 1.40;
3257 
3258  SIVv->omega[_4P32][_4P12][0] = 3.04;
3259  SIVv->omega[_4P32][_4P12][1] = 2.85;
3260 
3261  SIVv->omega[_4P52][_2P12][0] = 9.5e-1;
3262  SIVv->omega[_4P52][_2P12][1] = 9.1e-1;
3263 
3264  SIVv->omega[_4P52][_2P32][0] = 2.53;
3265  SIVv->omega[_4P52][_2P32][1] = 2.41;
3266 
3267  SIVv->omega[_4P52][_4P12][0] = 2.92;
3268  SIVv->omega[_4P52][_4P12][1] = 2.71;
3269 
3270  SIVv->omega[_4P52][_4P32][0] = 7.01;
3271  SIVv->omega[_4P52][_4P32][1] = 6.57;
3272 */
3273 
3274  SIVv->omega[_2P32][_2P12][0] = 6.4200;
3275  SIVv->omega[_2P32][_2P12][1] = -.0070;
3276 
3277  SIVv->omega[_4P12][_2P12][0] = 0.5100;
3278  SIVv->omega[_4P12][_2P12][1] = -.1600;
3279 
3280  SIVv->omega[_4P12][_2P32][0] = 6.60e-1;
3281  SIVv->omega[_4P12][_2P32][1] = -.1220;
3282 
3283  SIVv->omega[_4P32][_2P12][0] = 8.70e-1;
3284  SIVv->omega[_4P32][_2P12][1] = -.1330;
3285 
3286  SIVv->omega[_4P32][_2P32][0] = 1.4700;
3287  SIVv->omega[_4P32][_2P32][1] = -.1330;
3288 
3289  SIVv->omega[_4P32][_4P12][0] = 3.0400;
3290  SIVv->omega[_4P32][_4P12][1] = -.1740;
3291 
3292  SIVv->omega[_4P52][_2P12][0] = 9.5e-1;
3293  SIVv->omega[_4P52][_2P12][1] = -.1210;
3294 
3295  SIVv->omega[_4P52][_2P32][0] = 2.53;
3296  SIVv->omega[_4P52][_2P32][1] = -.1230;
3297 
3298  SIVv->omega[_4P52][_4P12][0] = 2.9200;
3299  SIVv->omega[_4P52][_4P12][1] = -.2130;
3300 
3301  SIVv->omega[_4P52][_4P32][0] = 7.0100;
3302  SIVv->omega[_4P52][_4P32][1] = -.1960;
3303 
3304  SIVv->dE[_2P32][_2P12] = 1.05e+5; SIVv->A[_2P32][_2P12] = 7.73e-3; /* dE [ HIGHER ][LOWER ] */
3305  SIVv->dE[_4P12][_2P12] = 1404.9; SIVv->A[_4P12][_2P12] = 5.50e+4;
3306  SIVv->dE[_4P12][_2P32] = 1423.9; SIVv->A[_4P12][_2P32] = 3.39e+4;
3307  SIVv->dE[_4P32][_2P12] = 1398.1; SIVv->A[_4P32][_2P12] = 1.40e+2;
3308  SIVv->dE[_4P32][_2P32] = 1017.0; SIVv->A[_4P32][_2P32] = 1.95e+4;
3309  SIVv->dE[_4P32][_4P12] = 2.91e+5; SIVv->A[_4P32][_4P12] = 0.00000;
3310  SIVv->dE[_4P52][_2P12] = 1387.5; SIVv->A[_4P52][_2P12] = 0.00000;
3311  SIVv->dE[_4P52][_2P32] = 1406.1; SIVv->A[_4P52][_2P32] = 3.95e+4;
3312  SIVv->dE[_4P52][_4P12] = 1.12e+5; SIVv->A[_4P52][_4P12] = 0.00000;
3313  SIVv->dE[_4P52][_4P32] = 1.85e+5; SIVv->A[_4P52][_4P32] = 0.00000;
3314 
3315  Symmetrize_Coeff (SIVv);
3316 }
3317 
3318 /* ********************************************************************* */
3319 void SV_INIT (Ion *SVv)
3320 /*
3321  *
3322  *********************************************************************** */
3323 {
3324  int i, j, n;
3325  int _1S0, _3P0, _3P1, _3P2, _1P1;
3326 
3327  SVv->N = 8.e-5; /* abundance of Ne with respect to H (Raymond) */
3328  SVv->nlev = 5;
3329 
3330  _1S0 = 0;
3331  _3P0 = 1;
3332  _3P1 = 2;
3333  _3P2 = 3;
3334  _1P1 = 4;
3335 
3336  SVv->nTom = 4;
3337  SVv->Tom[0] = 0.5e4;
3338  SVv->Tom[1] = 1.0e4;
3339  SVv->Tom[2] = 1.5e4;
3340  SVv->Tom[3] = 2.0e4;
3341 
3342  if (SVv->dE == NULL){
3343  SVv->dE = ARRAY_2D(SVv->nlev, SVv->nlev, double);
3344  SVv->A = ARRAY_2D(SVv->nlev, SVv->nlev, double);
3345  SVv->omega = ARRAY_3D(SVv->nlev, SVv->nlev, SVv->nTom, double);
3346  }
3347 
3348 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
3349  O GET PROPER ORDER LATER */
3350 
3351  for (i = 0 ; i < SVv->nlev ; i++) {
3352  for (j = 0 ; j < SVv->nlev ; j++) {
3353  SVv->dE[i][j] = -1.0;
3354  SVv->A[i][j] = -1.0;
3355  for (n = 0; n < SVv->nTom; n++){
3356  SVv->omega[i][j][n] = -1.0;
3357  }
3358  }}
3359 
3360 
3361  SVv->wght[_1S0] = 1.; /* 2 J + 1 */
3362  SVv->wght[_3P0] = 1.; /* */
3363  SVv->wght[_3P1] = 3.; /* */
3364  SVv->wght[_3P2] = 5.; /* */
3365  SVv->wght[_1P1] = 3.; /* */
3366 
3367  SVv->omega[_3P2][_1S0][0] = 9.11e-1 * (5.0) / (3.0*3.0);
3368  SVv->omega[_3P2][_1S0][1] = 9.10e-1 * (5.0) / (3.0*3.0);
3369  SVv->omega[_3P2][_1S0][2] = 9.14e-1 * (5.0) / (3.0*3.0);
3370  SVv->omega[_3P2][_1S0][3] = 9.05e-1 * (5.0) / (3.0*3.0);
3371 
3372  SVv->omega[_3P1][_1S0][0] = 9.11e-1 * (3.0) / (3.0*3.0);
3373  SVv->omega[_3P1][_1S0][1] = 9.10e-1 * (3.0) / (3.0*3.0);
3374  SVv->omega[_3P1][_1S0][2] = 9.14e-1 * (3.0) / (3.0*3.0);
3375  SVv->omega[_3P1][_1S0][3] = 9.05e-1 * (3.0) / (3.0*3.0);
3376 
3377  SVv->omega[_3P0][_1S0][0] = 9.11e-1 * (1.0) / (3.0*3.0);
3378  SVv->omega[_3P0][_1S0][1] = 9.10e-1 * (1.0) / (3.0*3.0);
3379  SVv->omega[_3P0][_1S0][2] = 9.14e-1 * (1.0) / (3.0*3.0);
3380  SVv->omega[_3P0][_1S0][3] = 9.05e-1 * (1.0) / (3.0*3.0);
3381 
3382  SVv->omega[_1P1][_1S0][0] = 7.30;
3383  SVv->omega[_1P1][_1S0][1] = 7.30;
3384  SVv->omega[_1P1][_1S0][2] = 7.29;
3385  SVv->omega[_1P1][_1S0][3] = 7.27;
3386 
3387  SVv->omega[_1P1][_3P0][0] = 2.72e-1;
3388  SVv->omega[_1P1][_3P0][1] = 2.72e-1;
3389  SVv->omega[_1P1][_3P0][2] = 2.72e-1;
3390  SVv->omega[_1P1][_3P0][3] = 2.72e-1;
3391 
3392  SVv->omega[_3P2][_3P0][0] = 4.00e-1;
3393  SVv->omega[_3P2][_3P0][1] = 4.00e-1;
3394  SVv->omega[_3P2][_3P0][2] = 4.00e-1;
3395  SVv->omega[_3P2][_3P0][3] = 4.00e-1;
3396 
3397  SVv->omega[_3P2][_3P1][0] = 1.24;
3398  SVv->omega[_3P2][_3P1][1] = 1.24;
3399  SVv->omega[_3P2][_3P1][2] = 1.24;
3400  SVv->omega[_3P2][_3P1][3] = 1.24;
3401 /*
3402  SVv->omega[_1P1][_3P1][0] = 2.72e-31;
3403  SVv->omega[_1P1][_3P1][1] = 2.72e-31;
3404  SVv->omega[_1P1][_3P1][2] = 2.72e-31;
3405  SVv->omega[_1P1][_3P1][3] = 2.72e-31;
3406 
3407  SVv->omega[_1P1][_3P2][0] = 2.72e-31;
3408  SVv->omega[_1P1][_3P2][1] = 2.72e-31;
3409  SVv->omega[_1P1][_3P2][2] = 2.72e-31;
3410  SVv->omega[_1P1][_3P2][3] = 2.72e-31;
3411 
3412  SVv->omega[_3P1][_3P0][0] = 2.72e-31;
3413  SVv->omega[_3P1][_3P0][1] = 2.72e-31;
3414  SVv->omega[_3P1][_3P0][2] = 2.72e-31;
3415  SVv->omega[_3P1][_3P0][3] = 2.72e-31;
3416 */
3417 
3418  SVv->dE[_3P2][_1S0] = 1188.3; SVv->A[_3P2][_1S0] = 6.59e-2;
3419  SVv->dE[_3P1][_1S0] = 1199.1; SVv->A[_3P1][_1S0] = 1.26e+5;
3420  SVv->dE[_3P0][_1S0] = 1204.5; SVv->A[_3P0][_1S0] = 0.00000;
3421  SVv->dE[_1P1][_1S0] = 786.48; SVv->A[_1P1][_1S0] = 5.25e+9;
3422  SVv->dE[_1P1][_3P0] = 2.71e+5; SVv->A[_1P1][_3P0] = 9.16e-4;
3423  SVv->dE[_3P2][_3P0] = 88401.7; SVv->A[_3P2][_3P0] = 0.00000;
3424  SVv->dE[_3P2][_3P1] = 1.312e+5; SVv->A[_3P2][_3P1] = 5.49e-3;
3425 /* SVv->dE[_1P1][_3P1] = 1.6e+16; SVv->A[_1P1][_3P1] = 0.00000;
3426  SVv->dE[_1P1][_3P2] = 1.6e+16; SVv->A[_1P1][_3P2] = 0.00000;
3427  SVv->dE[_3P1][_3P0] = 1.6e+16; SVv->A[_3P1][_3P0] = 0.00000;
3428 */
3429 
3430  Symmetrize_Coeff (SVv);
3431 }
3432 
3433 /* ********************************************************************* */
3434 void FeI_INIT (Ion *FeIv)
3435 /*
3436  *
3437  *********************************************************************** */
3438 {
3439  int i, j, n;
3440  int L1, L2;
3441 
3442  FeIv->N = 3.e-5; /* abundance of Fe with respect to H (Raymond) */
3443  FeIv->nlev = 2;
3444 
3445  L1 = 0;
3446  L2 = 1;
3447 
3448  FeIv->nTom = 4;
3449  FeIv->Tom[0] = 0.5e4;
3450  FeIv->Tom[1] = 1.0e4;
3451  FeIv->Tom[2] = 1.5e4;
3452  FeIv->Tom[3] = 2.0e4;
3453 
3454  if (FeIv->dE == NULL){
3455  FeIv->dE = ARRAY_2D(FeIv->nlev, FeIv->nlev, double);
3456  FeIv->A = ARRAY_2D(FeIv->nlev, FeIv->nlev, double);
3457  FeIv->omega = ARRAY_3D(FeIv->nlev, FeIv->nlev, FeIv->nTom, double);
3458  }
3459 
3460 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
3461  O GET PROPER ORDER LATER */
3462 
3463  for (i = 0 ; i < FeIv->nlev ; i++) {
3464  for (j = 0 ; j < FeIv->nlev ; j++) {
3465  FeIv->dE[i][j] = -1.0;
3466  FeIv->A[i][j] = -1.0;
3467  for (n = 0; n < FeIv->nTom; n++){
3468  FeIv->omega[i][j][n] = -1.0;
3469  }
3470  }}
3471 
3472 
3473  FeIv->wght[L1] = 3.; /* 2 J + 1 */
3474  FeIv->wght[L2] = 3.; /* */
3475 
3476 /*
3477  FeIv->omega[L2][L1][0] = 0.00;
3478  FeIv->omega[L2][L1][1] = 0.00;
3479  FeIv->omega[L2][L1][2] = 0.00;
3480  FeIv->omega[L2][L1][3] = 0.00;
3481 */
3482  FeIv->dE[L2][L1] = 2.598e+5; FeIv->A[L2][L1] = 2.13e-3;
3483 
3484  Symmetrize_Coeff (FeIv);
3485 }
3486 
3487 /* ********************************************************************* */
3488 void FeII_INIT (Ion *FeIIv)
3489 /*
3490  *
3491  *********************************************************************** */
3492 {
3493  int i, j, n;
3494  int _6D12, _6D32, _6D52, _6D72, _6D92, _4F92, _4D72, _4D52, _4D12, _4P52, _4F72, _4D32;
3495 
3496 
3497  FeIIv->N = 3.e-5; /* abundance of Fe with respect to H (Raymond) */
3498  FeIIv->nlev = 6;
3499 
3500 
3501  _6D92 = 0;
3502  _6D72 = 1;
3503  _4F92 = 2;
3504  _4F72 = 3;
3505  _4D32 = 4;
3506  _4P52 = 5;
3507 
3508  FeIIv->nTom = 3;
3509  FeIIv->Tom[0] = 2.37e4;
3510  FeIIv->Tom[1] = 3.15e4;
3511  FeIIv->Tom[2] = 3.94e4;
3512 
3513 
3514  if (FeIIv->dE == NULL){
3515  FeIIv->dE = ARRAY_2D(FeIIv->nlev, FeIIv->nlev, double);
3516  FeIIv->A = ARRAY_2D(FeIIv->nlev, FeIIv->nlev, double);
3517  FeIIv->omega = ARRAY_3D(FeIIv->nlev, FeIIv->nlev, FeIIv->nTom, double);
3518  }
3519 
3520 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
3521  O GET PROPER ORDER LATER */
3522 
3523  for (i = 0 ; i < FeIIv->nlev ; i++) {
3524  for (j = 0 ; j < FeIIv->nlev ; j++) {
3525  FeIIv->dE[i][j] = -1.0;
3526  FeIIv->A[i][j] = -1.0;
3527  for (n = 0; n < FeIIv->nTom; n++)
3528  FeIIv->omega[i][j][n] = -1.0;
3529  }}
3530 
3531 
3532  FeIIv->wght[_6D92] = 10.; /* 2 J + 1 */
3533  FeIIv->wght[_6D72] = 8.; /* */
3534  FeIIv->wght[_4F92] = 10.; /* */
3535  FeIIv->wght[_4F72] = 8.; /* */
3536  FeIIv->wght[_4D32] = 4.; /* */
3537  FeIIv->wght[_4P52] = 6.; /* */
3538 
3539 
3540  FeIIv->omega[_6D72][_6D92][0] = 3.043;
3541  FeIIv->omega[_6D72][_6D92][1] = 3.046;
3542  FeIIv->omega[_6D72][_6D92][2] = 3.049;
3543 
3544  FeIIv->omega[_4F92][_6D92][0] = 1.811;
3545  FeIIv->omega[_4F92][_6D92][1] = 1.742;
3546  FeIIv->omega[_4F92][_6D92][2] = 1.671;
3547 
3548  FeIIv->omega[_4P52][_4F92][0] = 1.967;
3549  FeIIv->omega[_4P52][_4F92][1] = 2.296;
3550  FeIIv->omega[_4P52][_4F92][2] = 3.612;
3551 
3552  FeIIv->omega[_4D32][_4F72][0] = 0.457;
3553  FeIIv->omega[_4D32][_4F72][1] = 0.447;
3554  FeIIv->omega[_4D32][_4F72][2] = 0.429;
3555 
3556  FeIIv->omega[_4F72][_4F92][0] = 3.521;
3557  FeIIv->omega[_4F72][_4F92][1] = 3.405;
3558  FeIIv->omega[_4F72][_4F92][2] = 3.330;
3559 
3560  FeIIv->omega[_4F72][_6D72][0] = 0.645;
3561  FeIIv->omega[_4F72][_6D72][1] = 0.620;
3562  FeIIv->omega[_4F72][_6D72][2] = 0.595;
3563 
3564  FeIIv->omega[_4F92][_6D72][0] = 0.742;
3565  FeIIv->omega[_4F92][_6D72][1] = 0.714;
3566  FeIIv->omega[_4F92][_6D72][2] = 0.685;
3567 
3568  FeIIv->omega[_4F72][_6D92][0] = 0.663;
3569  FeIIv->omega[_4F72][_6D92][1] = 0.638;
3570  FeIIv->omega[_4F72][_6D92][2] = 0.612;
3571 
3572  FeIIv->omega[_4D32][_6D92][0] = 0.132;
3573  FeIIv->omega[_4D32][_6D92][1] = 0.132;
3574  FeIIv->omega[_4D32][_6D92][2] = 0.131;
3575 
3576  FeIIv->omega[_4P52][_6D72][0] = 0.622;
3577  FeIIv->omega[_4P52][_6D72][1] = 0.594;
3578  FeIIv->omega[_4P52][_6D72][2] = 0.567;
3579 
3580  FeIIv->omega[_4P52][_4F72][0] = 1.224;
3581  FeIIv->omega[_4P52][_4F72][1] = 1.554;
3582  FeIIv->omega[_4P52][_4F72][2] = 2.211;
3583 
3584  FeIIv->omega[_4P52][_4D32][0] = 0.241;
3585  FeIIv->omega[_4P52][_4D32][1] = 0.220;
3586  FeIIv->omega[_4P52][_4D32][2] = 0.216;
3587 
3588 /* add now some fake data for not defined transitions - always keep A=0 */
3589 /* for (i=1; i<FeIIv->nlev; i++)
3590  for (j=0; j<i; j++)
3591  if ( (FeIIv->omega[i][j][0] < 0.0) && (FeIIv->omega[j][i][0] < 0.0) ) {
3592  for (n=0; n<FeIIv->nTom; n++)
3593  FeIIv->omega[i][j][n]=1.0e-30;
3594  FeIIv->A[i][j] = 0.0;
3595  FeIIv->dE[i][j] = 1.0e+30;
3596  }
3597 */
3598 
3599  FeIIv->dE[_6D72][_6D92] = 2218.26; FeIIv->A[_6D72][_6D92] = 1.9e+8;
3600  FeIIv->dE[_4F92][_6D92] = 2260.9; FeIIv->A[_4F92][_6D92] = 4.9e+6;
3601  FeIIv->dE[_4P52][_4F92] = 8617.0; FeIIv->A[_4P52][_4F92] = 1.9e-2;
3602  FeIIv->dE[_4D32][_4F72] = 1.5994e+4; FeIIv->A[_4D32][_4F72] = 1.40e-3;
3603  FeIIv->dE[_4F72][_6D92] = 4382.7; FeIIv->A[_4F72][_6D92] = 5.5e-2;
3604  FeIIv->dE[_4D32][_6D92] = dEtoA(1.076239); FeIIv->A[_4D32][_6D92] = 0.0;
3605  FeIIv->dE[_4P52][_6D92] = dEtoA(1.6706139); FeIIv->A[_4P52][_6D92] = 0.0;
3606  FeIIv->dE[_4F92][_6D72] = 2279.9; FeIIv->A[_4F92][_6D72] = 3.9e+6;
3607  FeIIv->dE[_4F72][_6D72] = 2253.1; FeIIv->A[_4F72][_6D72] = 5.1e+6;
3608  FeIIv->dE[_4D32][_6D72] = dEtoA(1.029); FeIIv->A[_4D32][_6D72] = 0.0;
3609  FeIIv->dE[_4P52][_6D72] = dEtoA(0.99); FeIIv->A[_4P52][_6D72] = 1.5e-3;
3610  FeIIv->dE[_4F72][_4F92] = 2331.3; FeIIv->A[_4F72][_4F92] = 2.9e+7;
3611  FeIIv->dE[_4D32][_4F92] = dEtoA(0.84); FeIIv->A[_4D32][_4F92] = 0.0;
3612  FeIIv->dE[_4P52][_4F72] = dEtoA(0.69); FeIIv->A[_4P52][_4F72] = 4.94e-3;
3613  FeIIv->dE[_4P52][_4D32] = dEtoA(0.592); FeIIv->A[_4P52][_4D32] = 7.71e-5;
3614 
3615 /*
3616  FeIIv->dE[_6D52][_6D92] = dEtoA(0.0827821); FeIIv->A[_6D52][_6D92] = 0.0;
3617  FeIIv->dE[_6D32][_6D92] = dEtoA(0.106950); FeIIv->A[_6D32][_6D92] = 0.0;
3618  FeIIv->dE[_6D12][_6D92] = dEtoA(0.121139); FeIIv->A[_6D12][_6D92] = 0.0;
3619  FeIIv->dE[_4F72][_6D92] = dEtoA(0.3012936); FeIIv->A[_4F72][_6D92] = 0.0;
3620  FeIIv->dE[_4D52][_6D92] = dEtoA(1.040468); FeIIv->A[_4D52][_6D92] = 0.0;
3621  FeIIv->dE[_4D32][_6D92] = dEtoA(1.076239); FeIIv->A[_4D32][_6D92] = 0.0;
3622  FeIIv->dE[_4D12][_6D92] = dEtoA(1.096859); FeIIv->A[_4D12][_6D92] = 0.0;
3623  FeIIv->dE[_4P52][_6D92] = dEtoA(1.6706139); FeIIv->A[_4P52][_6D92] = 0.0;
3624  FeIIv->dE[][_6D72] = ; FeIIv->A[][] = ;
3625  FeIIv->dE[][] = ; FeIIv->A[][] = ;
3626  FeIIv->dE[][] = ; FeIIv->A[][] = ;
3627  FeIIv->dE[][] = ; FeIIv->A[][] = ;
3628  FeIIv->dE[][] = ; FeIIv->A[][] = ;
3629 
3630  _6D92 = 0;
3631  _6D72 = 1;
3632  _4F92 = 2;
3633  _4F72 = 3;
3634  _4D32 = 4;
3635  _4P52 = 5;
3636 
3637 */
3638  Symmetrize_Coeff (FeIIv);
3639 }
3640 
3641 /* ********************************************************************* */
3642 void FeIIb_INIT (Ion *FeIIv)
3643 /*
3644  *
3645  *********************************************************************** */
3646 {
3647  int i, j, n;
3648  int _6D12, _6D32, _6D52, _6D72, _6D92, _4F92, _4D72, _4D52, _4D12, _4P52, _4F72, _4D32;
3649  double lev_en[12] = {0.0, 0.047708, 0.0837821, 0.106950, 0.121139, 0.2321687, 0.3012936, 0.9863313, 1.040468, 1.076239, 1.096859, 1.6706139};
3650 
3651 
3652  FeIIv->N = 3.e-5; /* abundance of Fe with respect to H (Raymond) */
3653  FeIIv->nlev = 12;
3654 
3655 
3656  _6D92 = 0;
3657  _6D72 = 1;
3658  _6D52 = 2;
3659  _6D32 = 3;
3660  _6D12 = 4;
3661  _4F92 = 5;
3662  _4F72 = 6;
3663  _4D72 = 7;
3664  _4D52 = 8;
3665  _4D32 = 9;
3666  _4D12 = 10;
3667  _4P52 = 11;
3668 
3669  FeIIv->nTom = 4;
3670  FeIIv->Tom[0] = 0.5e4;
3671  FeIIv->Tom[1] = 1.0e4;
3672  FeIIv->Tom[2] = 1.5e4;
3673  FeIIv->Tom[3] = 2.0e4;
3674 
3675  if (FeIIv->dE == NULL){
3676  FeIIv->dE = ARRAY_2D(FeIIv->nlev, FeIIv->nlev, double);
3677  FeIIv->A = ARRAY_2D(FeIIv->nlev, FeIIv->nlev, double);
3678  FeIIv->omega = ARRAY_3D(FeIIv->nlev, FeIIv->nlev, FeIIv->nTom, double);
3679  }
3680 
3681 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
3682  O GET PROPER ORDER LATER */
3683 
3684  for (i = 0 ; i < FeIIv->nlev ; i++) {
3685  for (j = 0 ; j < FeIIv->nlev ; j++) {
3686  if (j <= i) {
3687  FeIIv->dE[i][j] = -1.0;
3688  FeIIv->A[i][j] = -1.0;
3689  for (n = 0; n < FeIIv->nTom; n++)
3690  FeIIv->omega[i][j][n] = -1.0;
3691  } else {
3692  FeIIv->dE[i][j] = dEtoA(lev_en[j] - lev_en[i]);
3693  FeIIv->A[i][j] = 0.0;
3694  for (n = 0; n < FeIIv->nTom; n++)
3695  FeIIv->omega[i][j][n] = 0.0;
3696  }
3697  }}
3698 
3699 
3700  FeIIv->wght[_6D92] = 10.; /* 2 J + 1 */
3701  FeIIv->wght[_6D72] = 8.; /* */
3702  FeIIv->wght[_6D52] = 6.; /* */
3703  FeIIv->wght[_6D32] = 4.; /* */
3704  FeIIv->wght[_6D12] = 4.; /* */
3705  FeIIv->wght[_4F92] = 10.; /* */
3706  FeIIv->wght[_4F72] = 8.; /* */
3707  FeIIv->wght[_4D72] = 8.; /* */
3708  FeIIv->wght[_4D52] = 6.; /* */
3709  FeIIv->wght[_4D32] = 4.; /* */
3710  FeIIv->wght[_4D12] = 2.;
3711  FeIIv->wght[_4P52] = 6.; /* */
3712 
3713 
3714  FeIIv->omega[_6D72][_6D92][0] = 7.41e-3;
3715  FeIIv->omega[_6D72][_6D92][1] = 5.52;
3716  FeIIv->omega[_6D72][_6D92][2] = 5.46;
3717  FeIIv->omega[_6D72][_6D92][3] = 5.48;
3718 
3719  FeIIv->omega[_4F92][_6D92][0] = 4.77e-2;
3720  FeIIv->omega[_4F92][_6D92][1] = 3.60;
3721  FeIIv->omega[_4F92][_6D92][2] = 3.19;
3722  FeIIv->omega[_4F92][_6D92][3] = 2.89;
3723 
3724  FeIIv->omega[_4D72][_6D92][0] = 3.10;
3725  FeIIv->omega[_4D72][_6D92][1] = 1.10e+1;
3726  FeIIv->omega[_4D72][_6D92][2] = 9.65;
3727  FeIIv->omega[_4D72][_6D92][3] = 8.77;
3728 
3729  FeIIv->omega[_4D52][_6D52][0] = 3.46;
3730  FeIIv->omega[_4D52][_6D52][1] = 2.85;
3731  FeIIv->omega[_4D52][_6D52][2] = 2.56;
3732  FeIIv->omega[_4D52][_6D52][3] = 2.36;
3733 
3734  FeIIv->omega[_4D52][_6D32][0] = 7.11e-1;
3735  FeIIv->omega[_4D52][_6D32][0] = 6.26e-1;
3736  FeIIv->omega[_4D52][_6D32][0] = 6.05e-1;
3737  FeIIv->omega[_4D52][_6D32][0] = 5.87e-1;
3738 
3739  FeIIv->omega[_4D12][_6D12][0] = 2.06;
3740  FeIIv->omega[_4D12][_6D12][1] = 1.65;
3741  FeIIv->omega[_4D12][_6D12][2] = 1.44;
3742  FeIIv->omega[_4D12][_6D12][3] = 1.30;
3743 
3744  FeIIv->omega[_4D72][_4F92][0] = 2.28;
3745  FeIIv->omega[_4D72][_4F92][1] = 2.11;
3746  FeIIv->omega[_4D72][_4F92][2] = 2.14;
3747  FeIIv->omega[_4D72][_4F92][3] = 2.18;
3748 
3749  FeIIv->omega[_4D52][_4F92][0] = 7.77e-1;
3750  FeIIv->omega[_4D52][_4F92][1] = 7.25e-1;
3751  FeIIv->omega[_4D52][_4F92][2] = 7.54e-1;
3752  FeIIv->omega[_4D52][_4F92][3] = 7.83e-1;
3753 
3754  FeIIv->omega[_4P52][_4F92][0] = 1.22;
3755  FeIIv->omega[_4P52][_4F92][1] = 1.23;
3756  FeIIv->omega[_4P52][_4F92][2] = 1.27;
3757  FeIIv->omega[_4P52][_4F92][3] = 1.29;
3758 
3759  FeIIv->omega[_4D32][_4F72][0] = 0.457;
3760  FeIIv->omega[_4D32][_4F72][1] = 0.447;
3761  FeIIv->omega[_4D32][_4F72][2] = 0.429;
3762  FeIIv->omega[_4D32][_4F72][3] = 0.429;
3763 
3764 /* add now some fake data for not defined transitions - always keep A=0 */
3765  for (i=1; i<FeIIv->nlev; i++)
3766  for (j=0; j<i; j++)
3767  if ( (FeIIv->omega[i][j][0] < 0.0) && (FeIIv->omega[j][i][0] < 0.0) ) {
3768  for (n=0; n<FeIIv->nTom; n++)
3769  FeIIv->omega[i][j][n]=1.0e-30;
3770  FeIIv->A[i][j] = 0.0;
3771  FeIIv->dE[i][j] = 1.0e+30;
3772  }
3773 
3774 
3775  FeIIv->dE[_6D72][_6D92] = 2.598e+5; FeIIv->A[_6D72][_6D92] = 2.13e-3;
3776  FeIIv->dE[_4F92][_6D92] = 5.339e+4; FeIIv->A[_4F92][_6D92] = 4.17e-5;
3777  FeIIv->dE[_4D72][_6D92] = 1.257e+4; FeIIv->A[_4D72][_6D92] = 4.83e-3;
3778  FeIIv->dE[_4D52][_6D52] = 1.294e+4; FeIIv->A[_4D52][_6D52] = 1.94e-3;
3779  FeIIv->dE[_4D52][_6D32] = 1.328e+4; FeIIv->A[_4D52][_6D32] = 1.21e-3;
3780  FeIIv->dE[_4D12][_6D12] = 1.270e+4; FeIIv->A[_4D12][_6D12] = 2.91e-3;
3781  FeIIv->dE[_4D72][_4F92] = 1.644e+4; FeIIv->A[_4D72][_4F92] = 4.65e-3;
3782  FeIIv->dE[_4D52][_4F92] = 1.533e+4; FeIIv->A[_4D52][_4F92] = 2.44e-3;
3783  FeIIv->dE[_4P52][_4F92] = 8617.0; FeIIv->A[_4P52][_4F92] = 2.73e-2;
3784  FeIIv->dE[_4D32][_4F72] = 1.5994e+4; FeIIv->A[_4D32][_4F72] = 1.40e-3;
3785 /*
3786  FeIIv->dE[_6D52][_6D92] = dEtoA(0.0827821); FeIIv->A[_6D52][_6D92] = 0.0;
3787  FeIIv->dE[_6D32][_6D92] = dEtoA(0.106950); FeIIv->A[_6D32][_6D92] = 0.0;
3788  FeIIv->dE[_6D12][_6D92] = dEtoA(0.121139); FeIIv->A[_6D12][_6D92] = 0.0;
3789  FeIIv->dE[_4F72][_6D92] = dEtoA(0.3012936); FeIIv->A[_4F72][_6D92] = 0.0;
3790  FeIIv->dE[_4D52][_6D92] = dEtoA(1.040468); FeIIv->A[_4D52][_6D92] = 0.0;
3791  FeIIv->dE[_4D32][_6D92] = dEtoA(1.076239); FeIIv->A[_4D32][_6D92] = 0.0;
3792  FeIIv->dE[_4D12][_6D92] = dEtoA(1.096859); FeIIv->A[_4D12][_6D92] = 0.0;
3793  FeIIv->dE[_4P52][_6D92] = dEtoA(1.6706139); FeIIv->A[_4P52][_6D92] = 0.0;
3794  FeIIv->dE[][_6D72] = ; FeIIv->A[][] = ;
3795  FeIIv->dE[][] = ; FeIIv->A[][] = ;
3796  FeIIv->dE[][] = ; FeIIv->A[][] = ;
3797  FeIIv->dE[][] = ; FeIIv->A[][] = ;
3798  FeIIv->dE[][] = ; FeIIv->A[][] = ;
3799 
3800  _6D92 = 0;
3801  _6D72 = 1;
3802  _6D52 = 2;
3803  _6D32 = 3;
3804  _6D12 = 4;
3805  _4F92 = 5;
3806  _4F72 = 6;
3807  _4D72 = 7;
3808  _4D52 = 8;
3809  _4D32 = 9;
3810  _4D12 = 10;
3811  _4P52 = 11;
3812 */
3813  Symmetrize_Coeff (FeIIv);
3814 }
3815 
3816 /* ********************************************************************* */
3817 void FeIII_INIT (Ion *FeIIIv)
3818 /*
3819  *
3820  *********************************************************************** */
3821 {
3822  int i, j, n;
3823  int L1, L2;
3824 
3825  FeIIIv->N = 3.e-5; /* abundance of Fe with respect to H (Raymond) */
3826  FeIIIv->nlev = 2;
3827 
3828  L1 = 0;
3829  L2 = 1;
3830 
3831  FeIIIv->nTom = 4;
3832  FeIIIv->Tom[0] = 0.5e4;
3833  FeIIIv->Tom[1] = 1.0e4;
3834  FeIIIv->Tom[2] = 1.5e4;
3835  FeIIIv->Tom[3] = 2.0e4;
3836 
3837  if (FeIIIv->dE == NULL){
3838  FeIIIv->dE = ARRAY_2D(FeIIIv->nlev, FeIIIv->nlev, double);
3839  FeIIIv->A = ARRAY_2D(FeIIIv->nlev, FeIIIv->nlev, double);
3840  FeIIIv->omega = ARRAY_3D(FeIIIv->nlev, FeIIIv->nlev, FeIIIv->nTom, double);
3841  }
3842 
3843 /* INITIALIZE MATRIX WITH NEGATIVE NUMBER,
3844  O GET PROPER ORDER LATER */
3845 
3846  for (i = 0 ; i < FeIIIv->nlev ; i++) {
3847  for (j = 0 ; j < FeIIIv->nlev ; j++) {
3848  FeIIIv->dE[i][j] = -1.0;
3849  FeIIIv->A[i][j] = -1.0;
3850  for (n = 0; n < FeIIIv->nTom; n++){
3851  FeIIIv->omega[i][j][n] = -1.0;
3852  }
3853  }}
3854 
3855 
3856  FeIIIv->wght[L1] = 3.; /* 2 J + 1 */
3857  FeIIIv->wght[L2] = 3.; /* */
3858 
3859 
3860  FeIIIv->omega[L2][L1][0] = 2.87;
3861  FeIIIv->omega[L2][L1][1] = 2.92;
3862  FeIIIv->omega[L2][L1][2] = 2.95;
3863  FeIIIv->omega[L2][L1][3] = 2.95;
3864 
3865  FeIIIv->dE[L2][L1] = 3239.74; FeIIIv->A[L2][L1] = 2.3e-1;
3866 
3867  Symmetrize_Coeff (FeIIIv);
3868 }
void NeIV_INIT(Ion *NeIVv)
Definition: ion_init.c:2567
void NIII_INIT(Ion *NIIIv)
Definition: ion_init.c:1409
void SI_INIT(Ion *SIv)
Definition: ion_init.c:2792
void FeII_INIT(Ion *FeIIv)
Definition: ion_init.c:3488
static int n
Definition: analysis.c:3
int nlev
Definition: cooling_defs.h:112
int isCHEB
Definition: cooling_defs.h:112
void NII_INIT(Ion *NIIv)
Definition: ion_init.c:1234
void NeV_INIT(Ion *NeVv)
Definition: ion_init.c:2682
void OIII_INIT(Ion *OIIIv)
Definition: ion_init.c:2021
void INIT_ATOM(Ion *at, int nat)
Definition: ion_init.c:25
void HI_INIT(Ion *HIv)
Definition: ion_init.c:83
void OI_INIT(Ion *OIv)
Definition: ion_init.c:1767
void HeII_INIT(Ion *HeIIv)
Definition: ion_init.c:400
int nTom
Definition: cooling_defs.h:112
void NeIII_INIT(Ion *NeIIIv)
Definition: ion_init.c:2458
void CI_INIT(Ion *CIv)
Definition: ion_init.c:468
#define ARRAY_3D(nx, ny, nz, type)
Definition: prototypes.h:172
double Tom[8]
Definition: cooling_defs.h:117
#define S_EXPAND(a, b, c, d, e)
Definition: cooling.h:83
void CIII_INIT(Ion *CIIIv)
Definition: ion_init.c:824
#define N_EXPAND(a, b, c, d, e)
Definition: cooling.h:41
int isH
Definition: cooling_defs.h:112
void NV_INIT(Ion *NVv)
Definition: ion_init.c:1711
void SIV_INIT(Ion *SIVv)
Definition: ion_init.c:3187
void NI_INIT(Ion *NIv)
Definition: ion_init.c:1092
void OII_INIT(Ion *OIIv)
Definition: ion_init.c:1907
void OV_INIT(Ion *OVv)
Definition: ion_init.c:2233
double N
Definition: cooling_defs.h:113
void HeI_INIT(Ion *HeIv)
Definition: ion_init.c:286
void SII_INIT(Ion *SIIv)
Definition: ion_init.c:2914
void NeI_INIT(Ion *NeIv)
Definition: ion_init.c:2350
#define C_EXPAND(a, b, c, d, e)
Definition: cooling.h:27
double ** dE
Definition: cooling_defs.h:116
int j
Definition: analysis.c:2
void OIV_INIT(Ion *OIVv)
Definition: ion_init.c:2136
#define dEtoA(x)
Definition: cooling_defs.h:64
void CII_INIT(Ion *CIIv)
Definition: ion_init.c:656
void CIV_INIT(Ion *CIVv)
Definition: ion_init.c:945
PLUTO main header file.
double ** A
Definition: cooling_defs.h:116
void FeI_INIT(Ion *FeIv)
Definition: ion_init.c:3434
int i
Definition: analysis.c:2
void NIV_INIT(Ion *NIVv)
Definition: ion_init.c:1619
int isMAP
Definition: cooling_defs.h:112
void CV_INIT(Ion *CVv)
Definition: ion_init.c:1007
#define O_EXPAND(a, b, c, d, e)
Definition: cooling.h:55
int isCV
Definition: cooling_defs.h:112
void FeIIb_INIT(Ion *FeIIv)
Definition: ion_init.c:3642
#define ARRAY_2D(nx, ny, type)
Definition: prototypes.h:171
void SIII_INIT(Ion *SIIIv)
Definition: ion_init.c:3077
double *** omega
Definition: cooling_defs.h:117
void FeIII_INIT(Ion *FeIIIv)
Definition: ion_init.c:3817
double wght[16]
Definition: cooling_defs.h:114
void Symmetrize_Coeff(Ion *X)
Definition: make_tables.c:97
void SV_INIT(Ion *SVv)
Definition: ion_init.c:3319
#define Fe_EXPAND(a, b, c)
Definition: cooling.h:91
void NeII_INIT(Ion *NeIIv)
Definition: ion_init.c:2404