diff --git a/lib/aslint/fortran/gfortran_checkers.py b/lib/aslint/fortran/gfortran_checkers.py
index 31a4479fe67c731903054e8a96ba67d02ffe5444..df86cc5a9fb3580755954815cf08668e5c4a6991 100644
--- a/lib/aslint/fortran/gfortran_checkers.py
+++ b/lib/aslint/fortran/gfortran_checkers.py
@@ -41,12 +41,7 @@ def check_command_line(kwargs):
         ]
         + sizeopts
         + kwargs["flags"]
-        + [
-            "-c",
-            kwargs["source"],
-            "-o",
-            kwargs["object"],
-        ]
+        + ["-c", kwargs["source"], "-o", kwargs["object"]]
     )
     return cmd
 
@@ -83,7 +78,6 @@ def search_loc_msg(expr):
 
 
 class SentinelLocError(CompilOutputCat, CompilMsg):
-
     """Error"""
 
     id = "E9990"
@@ -94,7 +88,6 @@ class SentinelLocError(CompilOutputCat, CompilMsg):
 
 
 class SentinelError(CompilOutputCat, CompilMsg):
-
     """Error"""
 
     id = "E9991"
@@ -103,7 +96,6 @@ class SentinelError(CompilOutputCat, CompilMsg):
 
 
 class SentinelLocWarning(CompilOutputCat, CompilMsg):
-
     """Unexpected warning"""
 
     id = "C9992"
@@ -114,7 +106,6 @@ class SentinelLocWarning(CompilOutputCat, CompilMsg):
 
 
 class SentinelWarning(CompilOutputCat, CompilMsg):
-
     """Warning"""
 
     id = "W9993"
@@ -126,7 +117,6 @@ class SentinelWarning(CompilOutputCat, CompilMsg):
 
 
 class UnclassifiableStatement(CompilOutputCat, CompilMsg):
-
     """Unclassifiable statement"""
 
     id = "E0001"
@@ -135,7 +125,6 @@ class UnclassifiableStatement(CompilOutputCat, CompilMsg):
 
 
 class InvalidCharacter(CompilOutputCat, CompilMsg):
-
     """Invalid character"""
 
     id = "E0002"
@@ -144,7 +133,6 @@ class InvalidCharacter(CompilOutputCat, CompilMsg):
 
 
 class InvalidUnit(CompilOutputCat, CompilMsg):
-
     """Invalid unit"""
 
     id = "E0003"
@@ -153,7 +141,6 @@ class InvalidUnit(CompilOutputCat, CompilMsg):
 
 
 class LineTruncated(CompilOutputCat, CompilMsg):
-
     """Line truncated"""
 
     id = "C0004"
@@ -162,7 +149,6 @@ class LineTruncated(CompilOutputCat, CompilMsg):
 
 
 class XDescriptor(CompilOutputCat, CompilMsg):
-
     """Invalid X descriptor"""
 
     id = "C0005"
@@ -171,7 +157,6 @@ class XDescriptor(CompilOutputCat, CompilMsg):
 
 
 class InvalidStatement(CompilOutputCat, CompilMsg):
-
     """Invalid form of statement"""
 
     id = "E0006"
@@ -180,7 +165,6 @@ class InvalidStatement(CompilOutputCat, CompilMsg):
 
 
 class ContinousMarkerMissing(CompilOutputCat, CompilMsg):
-
     """Missing continous character '&'"""
 
     id = "W0007"
@@ -192,7 +176,6 @@ class ContinousMarkerMissing(CompilOutputCat, CompilMsg):
 
 
 class TypeMismatch(CompilOutputCat, CompilMsg):
-
     """Type mismatch"""
 
     id = "E0101"
@@ -203,7 +186,6 @@ class TypeMismatch(CompilOutputCat, CompilMsg):
 
 
 class RankMismatch(CompilOutputCat, CompilMsg):
-
     """Rank mismatch"""
 
     id = "E0103"
@@ -229,7 +211,6 @@ class RankMismatch(CompilOutputCat, CompilMsg):
 
 
 class DummyArgument(CompilOutputCat, CompilMsg):
-
     """Dummy argument"""
 
     id = "W0104"
@@ -252,7 +233,6 @@ class DummyArgument(CompilOutputCat, CompilMsg):
 
 
 class TooFewElements(CompilOutputCat, CompilMsg):
-
     """Too few elements in argument"""
 
     id = "E0105"
@@ -265,7 +245,6 @@ class TooFewElements(CompilOutputCat, CompilMsg):
 
 
 class TooManyArgs(CompilOutputCat, CompilMsg):
-
     """Too many arguments"""
 
     id = "E0106"
@@ -274,18 +253,14 @@ class TooManyArgs(CompilOutputCat, CompilMsg):
 
 
 class NotEnoughArgs(CompilOutputCat, CompilMsg):
-
     """Not enough arguments"""
 
     id = "E0107"
     fmt = "%(id)s: %(label)s at %(line)s,%(col)s: call to %(elt)r, " "missing %(arg)r"
-    search = search_loc_msg(
-        "Missing actual argument '(?P<arg>.*?)' " "in call to '(?P<elt>.*?)' at"
-    )
+    search = search_loc_msg("Missing actual argument '(?P<arg>.*?)' in call to '(?P<elt>.*?)' at")
 
 
 class UninitializedVariable(CompilOutputCat, CompilMsg):
-
     """Uninitialized variable"""
 
     id = "C0108"
@@ -294,7 +269,6 @@ class UninitializedVariable(CompilOutputCat, CompilMsg):
 
 
 class MaybeUninitializedVariable(CompilOutputCat, CompilMsg):
-
     """Maybe uninitialized variable"""
 
     id = "C0109"
@@ -302,11 +276,20 @@ class MaybeUninitializedVariable(CompilOutputCat, CompilMsg):
     search = search_loc_msg(".*?(?P<arg>\w+).*? may be used uninitialized")
 
 
+class TooLargeArraysOnStack(CompilOutputCat, CompilMsg):
+    """Array is larger than limit on stack"""
+
+    id = "C0110"
+    fmt = "%(id)s: %(label)s at %(line)s,%(col)s: %(arg)r"
+    search = search_loc_msg(
+        "Array '(?P<arg>.*?)' at .* is larger than limit set by .*\-fmax\-stack\-var\-size"
+    )
+
+
 # types errors
 
 
 class PossibleChangeConversion(CompilOutputCat, CompilMsg):
-
     """Possible change of value in conversion"""
 
     id = "W0202"
@@ -315,7 +298,6 @@ class PossibleChangeConversion(CompilOutputCat, CompilMsg):
 
 
 class ImplicitType(CompilOutputCat, CompilMsg):
-
     """No implicit type"""
 
     id = "E0203"
@@ -324,7 +306,6 @@ class ImplicitType(CompilOutputCat, CompilMsg):
 
 
 class OperandsInComparison(CompilOutputCat, CompilMsg):
-
     """Operands of comparison operator mismatch"""
 
     id = "W0204"
@@ -335,7 +316,6 @@ class OperandsInComparison(CompilOutputCat, CompilMsg):
 
 
 class SameArgInOut(CompilOutputCat, CompilMsg):
-
     """Same variable used for IN and OUT argument
     The same variable is used for an input and an output argument."""
 
@@ -348,7 +328,6 @@ class SameArgInOut(CompilOutputCat, CompilMsg):
 
 
 class Misalignment(CompilOutputCat, CompilMsg):
-
     """Problem of alignment of variables"""
 
     id = "W0206"
@@ -360,7 +339,6 @@ class Misalignment(CompilOutputCat, CompilMsg):
 
 
 class ArrayOutOfBounds(CompilOutputCat, CompilMsg):
-
     """Array accessed out of its bounds"""
 
     id = "C0207"
@@ -374,7 +352,6 @@ class ArrayOutOfBounds(CompilOutputCat, CompilMsg):
 
 
 class DuplicateExternal(CompilOutputCat, CompilMsg):
-
     """Duplicate external declaration"""
 
     id = "E0301"
@@ -385,7 +362,6 @@ class DuplicateExternal(CompilOutputCat, CompilMsg):
 
 
 class UnusedVar(CompilOutputCat, CompilMsg):
-
     """Unused variable"""
 
     id = "W0302"
@@ -394,7 +370,6 @@ class UnusedVar(CompilOutputCat, CompilMsg):
 
 
 class UnusedParam(CompilOutputCat, CompilMsg):
-
     """Unused parameter"""
 
     id = "C0303"
@@ -403,7 +378,6 @@ class UnusedParam(CompilOutputCat, CompilMsg):
 
 
 class UnusedLabel(CompilOutputCat, CompilMsg):
-
     """Unused label"""
 
     id = "C0304"
@@ -412,7 +386,6 @@ class UnusedLabel(CompilOutputCat, CompilMsg):
 
 
 class UsedBeforeTyped(CompilOutputCat, CompilMsg):
-
     """Symbol used before being typed"""
 
     id = "C0305"
@@ -421,7 +394,6 @@ class UsedBeforeTyped(CompilOutputCat, CompilMsg):
 
 
 class ExpectedDimension(CompilOutputCat, CompilMsg):
-
     """Expected another dimension in array declaration"""
 
     id = "E0306"
@@ -430,7 +402,6 @@ class ExpectedDimension(CompilOutputCat, CompilMsg):
 
 
 class UnusedParameter(CompilOutputCat, CompilMsg):
-
     """Unused (function) parameter"""
 
     id = "W0307"
@@ -441,7 +412,6 @@ class UnusedParameter(CompilOutputCat, CompilMsg):
 
 
 class ImplicitInterface(CompilOutputCat, CompilMsg):
-
     """Call with an implicit interface
     An explicit interface must be defined to call an external subprogram.
     You must add the corresponding include statement for this subprogram."""
@@ -455,7 +425,6 @@ class ImplicitInterface(CompilOutputCat, CompilMsg):
 
 
 class NoTabs(CompilOutputCat, CompilMsg):
-
     """Nonconforming tab character"""
 
     id = "C0401"
@@ -466,7 +435,6 @@ class NoTabs(CompilOutputCat, CompilMsg):
 
 
 class CharacterTruncated(CompilOutputCat, CompilMsg):
-
     """Character will be truncated"""
 
     id = "W0402"
@@ -482,7 +450,6 @@ class CharacterTruncated(CompilOutputCat, CompilMsg):
 
 
 class CharacterTruncatedSure(CompilOutputCat, CompilMsg):
-
     """Character is truncated"""
 
     id = "C0403"
@@ -493,7 +460,6 @@ class CharacterTruncatedSure(CompilOutputCat, CompilMsg):
 
 
 class ObsolescentFeature(CompilOutputCat, CompilMsg):
-
     """Obsolescent feature
     Source code may not work unaltered with modern compilers.
     See http://fortranwiki.org/fortran/show/Modernizing+Old+Fortran
@@ -516,7 +482,6 @@ class ObsolescentFeature(CompilOutputCat, CompilMsg):
 
 
 class EquivalenceMixingTypes(CompilOutputCat, CompilMsg):
-
     """Equivalence between different types"""
 
     id = "W0405"
@@ -527,7 +492,6 @@ class EquivalenceMixingTypes(CompilOutputCat, CompilMsg):
 
 
 class MissingComma(CompilOutputCat, CompilMsg):
-
     """Missing comma"""
 
     id = "E0406"
@@ -536,7 +500,6 @@ class MissingComma(CompilOutputCat, CompilMsg):
 
 
 class NonStdDeclaration(CompilOutputCat, CompilMsg):
-
     """Nonstandard type declaration"""
 
     id = "C0407"
@@ -545,7 +508,6 @@ class NonStdDeclaration(CompilOutputCat, CompilMsg):
 
 
 class HollerithConstant(CompilOutputCat, CompilMsg):
-
     """Deprecated Hollerith constant"""
 
     id = "C0408"
@@ -554,7 +516,6 @@ class HollerithConstant(CompilOutputCat, CompilMsg):
 
 
 class DeletedFeature(CompilOutputCat, CompilMsg):
-
     """Deleted feature"""
 
     id = "W0409"
@@ -563,7 +524,6 @@ class DeletedFeature(CompilOutputCat, CompilMsg):
 
 
 class ArrayIndex(CompilOutputCat, CompilMsg):
-
     """Unexpected type for array index"""
 
     id = "C0410"
@@ -574,7 +534,6 @@ class ArrayIndex(CompilOutputCat, CompilMsg):
 
 
 class RealArrayIndex(CompilOutputCat, CompilMsg):
-
     """Real array index"""
 
     id = "C0411"
@@ -583,7 +542,6 @@ class RealArrayIndex(CompilOutputCat, CompilMsg):
 
 
 class DoubleComplex(CompilOutputCat, CompilMsg):
-
     """Double complex"""
 
     id = "C0412"
@@ -592,7 +550,6 @@ class DoubleComplex(CompilOutputCat, CompilMsg):
 
 
 class ComparisonBetweenReal(CompilOutputCat, CompilMsg):
-
     """Equality/inequality comparison for floating-point numbers
     It is unsafe to rely on exact floating-point comparisons. Slight variations
     in rounding can change the outcome of such comparisons, leading to
@@ -621,7 +578,6 @@ class ComparisonBetweenReal(CompilOutputCat, CompilMsg):
 
 
 class UnaryOpAfterArithmeticOp(CompilOutputCat, CompilMsg):
-
     """Unary operator following arithmetic operator
     The same code may be compiled differently by different compilers.
     Example: ``d1=a**-2*b`` gets interpretted as ``d1=a**(-2*b)`` by ifort but