FUNCTION dustem_read_dustem_lv,file,silent=silent ;=== determine the number of grains str=' ' OPENR,unit,file,/get_lun ;==read comments str='' & first_char='#' WHILE first_char EQ '#' DO BEGIN readf,unit,str first_char=strmid(str,0,1) ENDWHILE ;readf,unit,str CLOSE,unit free_lun,unit str=strcompress(str) str=strtrim(str,2) vv=str_sep(str,' ') Ngrains=vv(0) ;Ngrains=!dustem_params.Ngrains ;Read model output instruc='readcol,file,wav,' FOR i=0L,Ngrains-1 DO BEGIN instruc=instruc+'em_grain_'+strtrim(i+1,2)+',' ENDFOR instruc=instruc+'em_tot,silent=silent' toto=execute(instruc) ;readcol,wav,em_pah,em_vsg,em_bg,em_tot,silent=silent nlines=n_elements(wav)-1 ;one_st={wav:0.,em_pah:0.,em_vsg:0.,em_bg:0.,em_tot:0.} instruc='one_st={wav:0.,' FOR i=0L,Ngrains-1 DO BEGIN instruc=instruc+'em_grain_'+strtrim(i+1,2)+':0.,' ENDFOR instruc=instruc+'em_tot:0.}' toto=execute(instruc) ;stop st=replicate(one_st,Nlines) st.wav=wav(1:*) FOR i=0L,Ngrains-1 DO BEGIN instruc='st.(i+1)='+'em_grain_'+strtrim(i+1,2)+'(1:*)' toto=execute(instruc) ENDFOR st.em_tot=em_tot(1:*) return,st END