def find_source_files_from_list(self, file_names):
for file_name in file_names:<EOL><INDENT>if os.path.exists(file_name):<EOL><INDENT>routine_name = os.path.splitext(os.path.basename(file_name))[<NUM_LIT:0>]<EOL>if routine_name not in self._source_file_names:<EOL><INDENT>self._source_file_names[routine_name] = file_name<EOL><DEDENT>else:<EOL><INDENT>self._io.error("<STR_LIT>".<EOL>format(self._source_file_names[routine_name], file_name))<EOL>self.error_file_names.add(file_name)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self._io.error("<STR_LIT>".format(file_name))<EOL>self.error_file_names.add(file_name)<EOL><DEDENT><DEDENT>
Finds all source files that actually exists from a list of file names.

:param list[str] file_names: The list of file names.