diff --git a/loopy/frontend/fortran/translator.py b/loopy/frontend/fortran/translator.py
index 50272e5fece9322db3f63104698e21f68c4f21db..7a08984f88a6add0181f3752144ede93b636fe81 100644
--- a/loopy/frontend/fortran/translator.py
+++ b/loopy/frontend/fortran/translator.py
@@ -312,7 +312,16 @@ class F2LoopyTranslator(FTreeWalkerBase):
 
     def dtype_from_stmt(self, stmt):
         length, kind = stmt.selector
-        assert not kind
+
+        if kind and not length:
+            length = kind
+        elif length and not kind:
+            pass
+        elif not length and not kind:
+            pass
+        else:
+            raise RuntimeError("both length and kind specified")
+
         return np.dtype(self.TYPE_MAP[(type(stmt).__name__.lower(), length)])
 
     def map_type_decl(self, node):