def _find_executables(self):
        """Finds the list of executables that pass the requirements necessary to have
        a wrapper created for them.
        """
        if len(self.needs) > 0:
            return
        
        for execname, executable in list(self.module.executables.items()):
            skip = False
            #At the moment we can't handle executables that use special derived types.
            if not execname in self.module.publics or not executable.primitive:
                msg.info("Skipping {}.{} because it is not public.".format(self.module.name, execname))
                skip = True
            #Check that all the parameters have intent specified, otherwise we won't handle them well.ha
            if any([p.direction == "" for p in executable.ordered_parameters]):
                msg.warn("Some parameters in {}.{} have no intent".format(self.module.name, execname) +
                         " specified. Can't wrap that executable.")
                skip = True
    
            if not skip:
                self.uses.append(execname)
                for depmod in executable.search_dependencies():
                    if depmod not in self.needs:
                        self.needs.append(depmod)
Finds the list of executables that pass the requirements necessary to have
        a wrapper created for them.