pro pc_read_ode, file=file, object=obj common pc_precision, zero, one, precision, data_type, data_bytes, type_idl datadir = strtrim(pc_get_datadir(datadir),2) pc_set_precision, datadir=datadir, quiet=quiet nvar=0L & num=0L if not is_defined(file) then file='ode.dat' openr, 11, datadir+'/allprocs/'+strtrim(file), /f77 readu, 11, nvar, num names=replicate(strjoin(replicate(' ',30)),num) lengs=lonarr(num) readu, 11, names readu, 11, lengs f_ode=make_array(nvar, type=type_idl) readu, 11, f_ode t=zero readu, 11, t close, 11 cmd='obj=create_struct(' iend=lonarr(num+1) & iend[0]=-1 for i=0,num-1 do begin iend(i+1)=iend(i)+lengs(i) cmd += '"'+strtrim(names(i))+'",f_ode(iend('+strtrim(string(i),2)+')+1:iend('+strtrim(string(i+1),2)+')),' endfor cmd += '"t",t)' res = execute(cmd) end