FUNCTION dustem_read_circ_vg,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) ;Read model output instruc='readcol,file,wav,' FOR i=0L,Ngrains-1 DO BEGIN instruc=instruc+'circ_grain_'+strtrim(i+1,2)+',' ENDFOR ;VG read circ_tot from the file instruc=instruc+'circ_tot,silent=silent' toto=execute(instruc) nlines=n_elements(wav)-1 one_st = {wav:0., circ_grain:replicate(0.,Ngrains), circ_tot:0.} st=replicate(one_st,Nlines) st.wav=wav(1:*) FOR iwav=0L,Nlines-1 DO BEGIN FOR igrain=0L,Ngrains-1 DO BEGIN instruc = 'st(iwav).circ_grain(igrain) = circ_grain_'+strtrim(igrain+1,2)+'(iwav)' toto = execute(instruc) instruc = 'st(iwav).circ_tot = circ_tot(iwav)' toto = execute(instruc) ENDFOR ENDFOR return,st END