code: def _get_lib_modules(self, full):
          
          #The only complication with the whole process is that we need to get the list of
          #dependencies for the current module. For full lib, we compile *all* the files in
          #the directory, otherwise only those that are explicitly required.
          result = []
          if full:
              found = {}
              from os import path
              mypath = path.dirname(self.module.filepath)
              self.module.parent.scan_path(mypath, found)
              for codefile in found:
                  self.module.parent.load_dependency(codefile.replace(".f90", ""), True, True, False)
                  
              for modname, module in list(self.module.parent.modules.items()):
                  if path.dirname(module.filepath).lower() == mypath.lower():
                      result.append(modname)
          else:
              result.extend(self.module.search_dependencies())
  
          return self._process_module_needs(result)
docs: Returns a list of the modules in the same folder as the one being wrapped for
          compilation as a linked library.
  
          :arg full: when True, all the code files in the source file's directory are considered
            as dependencies; otherwise only those explicitly needed are kept.