function ydb_pre2dir, pfiles, toplev=toplev
;
;+
;   Name: ydb_pre2dir
;
;   Purpose: return local directory for input file prefixes or subdir name
;   
;   Calling Sequence:
;      local=ydb_pre2dir(PREFIX [,/toplev] )
;
;   Calling Examples:
;      t=findfile(ydb_pre2dir('nar'))
;      cd,ydb_pre2dir('gev',/top)	; local parent directory of gev...
;   
;   History:
;      15-Jun-1994 (SLF) - originally, utility for rd_ydbtap.pro
;-

paths=strsplit(pfiles,'/',/head,tail=files)
nop=where(paths eq '',pcnt)
if pcnt gt 0 then paths(nop) = pfiles

uprefix=uniqo(paths)
; resolve top level directory
subdir=strarr(n_elements(uprefix))
for i=0,n_elements(subdir)-1 do begin
   subdir(i)=get_logenv('dir_gen_' + paths(uprefix(i)),/case_ignore)
   if subdir(i) eq '' then subdir(i)=get_logenv('dir_sxt_' + paths(uprefix(i)),/case_ignore)
   if subdir(i) eq '' then subdir(i)=(get_logenv('*' + $
	strmid(files(uprefix(i)),0,3) + '*', /case_ignore))(0)
endfor

retval=subdir
chk=where(subdir eq '') 

if keyword_set(toplev) then begin
   break_file,subdir,logs,top,files,exts,vers
   retval=top
endif

if n_elements(retval) eq 1 then retval=retval(0)	; make scaler

return,retval
end
