diff --git a/mkhelper/depgen/fortran.py b/mkhelper/depgen/fortran.py index 92ac1bd..b9840c7 100644 --- a/mkhelper/depgen/fortran.py +++ b/mkhelper/depgen/fortran.py @@ -53,6 +53,13 @@ class Parser: r"^\s*use(?:\s+|(?:\s*,\s*((?:non_)?intrinsic))?\s*::\s*)(\w+)", re.I ) _re_module_end = re.compile(r"^\s*end\s+module(?:\s+(\w+))?\s*$", re.I) + _re_module_subprogram = re.compile( + r"^(?!['\"]).*" + r"module" + r"\s+(?:(?:elemental|recursive|(?:im)?pure)\s+)*" + r"(?:subroutine|function)", + re.I, + ) def __init__( self, @@ -84,6 +91,7 @@ def __init__( self.module_start_callback = None self.submodule_start_callback = None self.module_use_callback = None + self.module_subprogram_callback = None self.debug_callback = None self._include_finder = IncludeFinder(include_order, include_dirs)