function barrel_find_file,fname,dirname
CD, CURRENT=current_working_directory
candidate = current_working_directory + PATH_SEP() + fname
IF FILE_TEST(candidate, /READ, /REGULAR) THEN return,candidate
pathsep = PATH_SEP(/SEARCH_PATH)
all_pathfolders = STRSPLIT(!PATH, pathsep, /EXTRACT, COUNT=n_pathfolders)
IF (n_pathfolders NE 0) THEN BEGIN
spec_folder_search = STRMATCH(all_pathfolders, "*"+dirname+"*", /FOLD_CASE)
spec_folder_index = WHERE(spec_folder_search, n_matches)
FOR i=0, n_matches-1 DO BEGIN
candidate = all_pathfolders[spec_folder_index[i]] + PATH_SEP() + fname
IF FILE_TEST(candidate, /READ, /REGULAR) THEN return,candidate
ENDFOR
ENDIF
return,fname
end