PRO markspec, zel, xlo, xhi, listn, listwav, listion, listlab, listmlt, listgf, listfr ; Data for constructing labels ; Assesses lines in linelsit by the strength values "listfr". ; Positions of all lines are plotted for each element, relative to the strongest line ; due to each element in each spectral region. Note that these strengths are independent ; of abundance. The scale is logarithmic, such that the a line with 1/1000 strength ; of the the strongest line will not appear, ie if full scale = 0, the axis is at -3. ; Elements for which there are no lines in the spectral range are omitted. elem = StrArr(93) elem( 1: 2) = [ 'H ', 'He' ] elem( 3:10) = [ 'Be', 'Li', 'B ', 'C ', 'N ', 'O ', 'F ', 'Ne' ] elem(11:18) = [ 'Na', 'Mg', 'Al', 'Si', 'P ', 'S ', 'Cl', 'A ' ] elem(19:20) = [ 'K ', 'Ca' ] elem(31:36) = [ 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr' ] elem(21:30) = [ 'Sc', 'Ti', 'V ', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn' ] elem(31:36) = [ 'Ga','Ge','As','Se','Br','Kr' ] elem(37:48) = [ 'Rb','Sr','Y ', 'Zr','Nb','Mo','Tc','Ru','Rh','Pd','Ag','Cd' ] elem(49:54) = [ 'In','Sn','Sb','Te','I ','Xe' ] elem(55:71) = [ 'Cs','Ba','La','Ce','Pr','Nd','Pm','Sm','Eu','Gd','Tb','Dy','Ho','Er','Tm','Yb','Lu' ] elem(72:80) = [ 'Hf','Ta','W ','Re','Os','Ir','Pt','Au','Hg' ] elem(81:86) = [ 'Tl','Pb','Bi','Po','At','Rn' ] elem(87:92) = [ 'Fr','Ra','Ac','Th','Pa','U ' ] yzel = FltArr(93) ; position of each atom yzel( 1: 2) = [ 0.00, 0.02 ] yzel( 3:10) = [ 0.04, 0.05, 0.06, 0.08, 0.12, 0.16, 0.18, 0.20 ] yzel(11:18) = [ 0.22, 0.24, 0.26, 0.28, 0.30, 0.32, 0.34, 0.36 ] yzel(19:20) = [ 0.38, 0.40 ] yzel(31:36) = [ 1.04, 1.06, 1.08, 1.10, 1.12, 1.14 ] yzel(21:30) = [ 0.42, 0.44, 0.48, 0.50, 0.52, 0.56, 0.58, 0.60, 0.62, 0.64 ] lzel = IntArr(93) ; linestyles for each atom lzel( 1: 2) = [ 0, 0 ] lzel( 3:10) = [ 1, 1, 1, 0, 0, 0, 1, 0 ] lzel(11:18) = [ 1, 0, 1, 0, 1, 0, 1, 0 ] lzel(19:20) = [ 1, 0 ] lzel(31:36) = [ 1, 1, 1, 1, 1, 1 ] lzel(21:30) = [ 1, 0, 1, 0, 1, 0, 1, 0, 1, 1 ] ; level at which this ion is to be marked yb = -yzel(zel) yb = -0.04 * fix(zel) + 0.4 ysc = 0.1 nid = 0 colors = GetColor(/Load) frmax = -99. msk = WHERE ( xlo LT listwav AND listwav LT xhi AND FIX(listion) EQ zel, cnt ) IF ( cnt GT 0 ) THEN BEGIN frmax = max ( listfr(msk) ) FOR i = 0,listn-1 DO BEGIN IF zel EQ FIX (listion(i)) THEN BEGIN wl = listwav(i) IF xlo LT wl AND wl LT xhi THEN BEGIN dy = ysc * MAX( [(alog10(listfr(i)/frmax) + 3.),0.] ) / 3. xel = FIX ( 100 * (listion(i)-zel) ) xcol = colors.darkgreen IF xel EQ 1 THEN xcol = colors.limegreen IF xel EQ 2 THEN xcol = colors.seagreen IF xel EQ 3 THEN xcol = colors.forestgreen oplot, [wl,wl], [yb,yb+dy], linestyle = 0, color=colors.green nid = nid + 1 ENDIF ENDIF ENDFOR IF nid GT 0 THEN BEGIN oplot, [xlo,xhi], [yb,yb], linestyle = 0,color=colors.navy dx = (xhi-xlo)/20. xyouts, xhi-(1+lzel(zel))*dx , yb+0.005, elem(zel), noclip=0, color=colors.cyan ENDIF ENDIF END