2 /* Originator: Peter van Hoof <p.van-hoof@qub.ac.uk> */
3 /* { dg-do compile { target sparc-*-* } } */
4 /* { dg-options "-O2 -mcpu=ultrasparc" } */
12 extern const int ipH_LIKE
;
13 extern const int ipHYDROGEN
;
14 extern const int ipH1s
;
15 extern const int ipH2s
;
16 extern const int ipH2p
;
18 extern EmLine
****EmisLines
;
30 long int numLevels
[2][30L];
33 extern struct t_LineSave
40 char chHoldComments
[10][200];
51 double DensityLaw
[10];
60 float xIonFracs
[30L +3][30L +1];
63 extern struct t_CaseBHS
65 long int nDensity
[2][8] , ntemp
[2][8] , ncut
[2][8] ;
69 extern struct t_smbeta
78 extern struct t_phycon
84 extern struct t_sphere
90 void linadd(double xInten
, float wavelength
, char *chLab
, char chInfo
);
92 extern struct t_radiusVar
98 void lines_hydro(void)
100 long int i
, nelem
, ipHi
, ipLo
;
101 double hbetab
, em
, EmisFac
, pump
;
104 linadd(abund
.xIonFracs
[ipHYDROGEN
][1]*iso
.Pop2Ion
[ipH_LIKE
][ipHYDROGEN
][3]*hydro
.pestrk
[3][2]*3.025e-12, 6563,"Strk",'i');
106 linadd(abund
.xIonFracs
[ipHYDROGEN
][1]*iso
.Pop2Ion
[ipH_LIKE
][ipHYDROGEN
][4]*hydro
.pestrk
[4][2]*4.084e-12, 4861,"Strk",'i');
108 linadd(abund
.xIonFracs
[ipHYDROGEN
][1]*iso
.Pop2Ion
[ipH_LIKE
][ipHYDROGEN
][4]*hydro
.pestrk
[4][3]*1.059e-12, 18751,"Strk",'i');
110 linadd(abund
.xIonFracs
[ipHYDROGEN
][1]*iso
.Pop2Ion
[ipH_LIKE
][ipHYDROGEN
][5]*hydro
.pestrk
[5][4]*4.900e-13, 40512,"Strk",'i');
112 ((void)((LineSave
.ipass
<1 || EmisLines
[ipH_LIKE
][ipHYDROGEN
][ipH2p
][ipH1s
].ots
>= 0.) || (__assert("LineSave.ipass <1 || EmisLines[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].ots>= 0.", "lines_hydro.c", 118), 0)));
114 linadd(EmisLines
[ipH_LIKE
][ipHYDROGEN
][3][ipH2s
].ots
*EmisLines
[ipH_LIKE
][ipHYDROGEN
][3][ipH2s
].EnergyErg
, 6563,"Dest",'i');
116 linadd(EmisLines
[ipH_LIKE
][ipHYDROGEN
][5][4].ots
*EmisLines
[ipH_LIKE
][ipHYDROGEN
][5][4].EnergyErg
,40516, "Dest",'i');
118 smbeta
.SimHBeta
= smbeta
.SimHBeta
/(float)radius
.dVeff
*sphere
.covgeo
;
120 linadd(smbeta
.SimHBeta
,4861,"Q(H)",'i');
122 smbeta
.SimHBeta
= smbeta
.SimHBeta
*(float)radius
.dVeff
/sphere
.covgeo
;
124 for( nelem
=0; nelem
< 30L; nelem
++ )
127 for( iCase
=0; iCase
<2; ++iCase
)
129 char chAB
[2]={'A','B'};
132 for( ipLo
=1+iCase
; ipLo
<(((6)<(iso
.numLevels
[ipH_LIKE
][nelem
])) ? (6) : (5)); ++ipLo
)
134 for( ipHi
=ipLo
+1; ipHi
< (((ipLo
+5)<(iso
.numLevels
[ipH_LIKE
][nelem
])) ? (ipLo
+5) : (iso
.numLevels
[ipH_LIKE
][nelem
])); ++ipHi
)
138 hbetab
= HSRate( ipHi
,ipLo
, nelem
+1, phycon
.te
, dense
.eden
, chAB
[iCase
] );
140 CaseBHS
.lgHCaseBOK
[iCase
][nelem
] = 0;
142 if( !hydro
.lgHydEmiss
)
143 hbetab
*= abund
.xIonFracs
[nelem
][nelem
+1]*dense
.eden
;
145 linadd(hbetab
,wl
,chLab
,'i' );