pro h2label,jpp,vpp,lminmax,velsft_c,cs,ncol,b,indata,col c=2.9979e10 ;[cm/s] mh2=3.32e-24 ;H2 mass [gm] kB=1.3806e-16 ;Boltzmann's constant [erg/K] e=4.8033e-10 ;e charge [g^0.5*cm^1.5/s] me=9.109e-28 ;e mass [g] mh=mh2/2 amu=1.660531e-24 ;amu [g] vh2=1.e5 ;1 km/sec (in units of cm/sec) dir='/home/stephan/idlpro/h2/' if vpp eq 0 then begin openr,1,dir+'highjsh2vpnvpp0.dat' numlines=1580 endif if vpp eq 1 then begin openr,1,dir+'highjsh2vpnvpp1.dat' numlines=1580 endif if vpp eq 2 then begin numlines =1580 openr,1,dir+'highjsh2vpnvpp2.dat' endif if vpp eq 3 then begin numlines =1580 openr,1,dir+'highjsh2vpnvpp3.dat' endif if vpp eq 4 then begin numlines =1580 openr,1,dir+'highjsh2vpnvpp4.dat' endif if vpp eq 5 then begin numlines =1580 openr,1,dir+'highjsh2vpnvpp5.dat' endif if vpp eq 6 then begin numlines =1580 openr,1,dir+'highjsh2vpnvpp6.dat' endif if vpp eq 7 then begin numlines =1580 openr,1,dir+'highjsh2vpnvpp7.dat' endif indatas=dblarr(8,numlines) readf,1,indatas close,1 ;select j'' j0=where(indatas(3,*) eq jpp) indata=indatas(*,j0) if lminmax(0) eq 900. then bandpass=where(indata(4,*) ge lminmax(0)+15 and indata(4,*) le lminmax(1)) else bandpass=where(indata(4,*) ge lminmax(0) and indata(4,*) le lminmax(1)) if lminmax(1) eq 1200. then bandpass=where(indata(4,*) ge lminmax(0) and indata(4,*) le lminmax(1)-10) if bandpass(0) ne -1 then begin indata=indata(*,bandpass) numline=n_elements(bandpass) line=dblarr(8,numline) for i=0,numline-1 do begin line(0,i)=indata(4,i)/1e8 ;wavelength in [cm] line(1,i)=indata(5,i) ;oscillator strength (fij) line(4,i)=line(0,i)*vh2/c ;(sqrt(2*kB*T/(mh2*c^2)+(Vh2/c)^2)) ;b[cm] ;calc tau0 line(5,i)=sqrt(!pi)*(e^2/(me*c))*(1/(line(4,i))) line(5,i)=line(5,i)*(line(0,i)^2/c) line(5,i)=line(5,i)*line(1,i) endfor t0s=line(5,*)*ncol/b bigones=where(t0s gt .15) if bigones(0) ne -1 then begin indata=indata(*,bigones) t0s=t0s(bigones) endif ;print,t0s endif else goto,leave if bigones(0) eq -1 then goto,leave ;order of indatas is v' v'' j' j'' lam f g'' ps=where(indata(2,*) lt indata(3,*)) qs=where(indata(2,*) eq indata(3,*)) rs=where(indata(2,*) gt indata(3,*)) if ps(0) ne -1 then begin nps=n_elements(ps) for p=0,nps-1 do begin if t0s(ps(p)) gt 1 then length=.9 else length=t0s(ps(p)) plots,[1,1]*indata(4,ps(p))*(1.+velsft_c),!y.crange(1)*[1.-length,1]*.6,linestyle=2,color=col,psym=0 endfor xyouts,indata(4,ps)*(1.+velsft_c),!y.crange(1)*.7,'P('+strtrim(string(indata(3,ps),'(I2)'),2)+')'+'('+strtrim(string(indata(0,ps),'(I2)'),2)+'-'+string(indata(1,ps),'(I1)')+') '+string(indata(4,ps),'(F7.2)'),orient=90,color=col,charsize=cs endif if qs(0) ne -1 then begin nqs=n_elements(qs) for q=0,nqs-1 do begin if t0s(qs(q)) gt 1 then length=.9 else length=t0s(qs(q)) plots,[1,1]*indata(4,qs(q))*(1.+velsft_c),!y.crange(1)*[1.-length,1]*.6,linestyle=2,color=col,psym=0 endfor xyouts,indata(4,qs)*(1.+velsft_c),!y.crange(1)*.8,'Q('+strtrim(string(indata(3,qs),'(I2)'),2)+')'+'('+strtrim(string(indata(0,qs),'(I2)'),2)+'-'+string(indata(1,qs),'(I1)')+') '+string(indata(4,qs),'(F7.2)'),orient=90,color=col,charsize=cs endif if rs(0) ne -1 then begin nrs=n_elements(rs) for r=0,nrs-1 do begin if t0s(rs(r)) gt 1 then length=.9 else length=t0s(rs(r)) plots,[1,1]*indata(4,rs(r))*(1.+velsft_c),!y.crange(1)*[1.-length,1]*.6,linestyle=2,color=col,psym=0 endfor xyouts,indata(4,rs)*(1.+velsft_c),!y.crange(1)*.6,'R('+strtrim(string(indata(3,rs),'(I2)'),2)+')'+'('+strtrim(string(indata(0,rs),'(I2)'),2)+'-'+string(indata(1,rs),'(I1)')+') '+string(indata(4,rs),'(F7.2)'),orient=90,color=col,charsize=cs endif leave:dum=0;print,'leaving h2label' return end