[flang] Add runtime interface for GET_ENVIRONMENT_VARIABLE

Split into 2 entry points, one for the length and one for the value.

Differential Revision: https://reviews.llvm.org/D111392

GitOrigin-RevId: 02602c02a3019a99f1949510a08692e57d2dd270
diff --git a/include/flang/Runtime/command.h b/include/flang/Runtime/command.h
index f5f20a5..45a9f11 100644
--- a/include/flang/Runtime/command.h
+++ b/include/flang/Runtime/command.h
@@ -35,6 +35,21 @@
 // Try to get the significant length of the n'th argument.
 // Returns 0 if it doesn't manage.
 std::int64_t RTNAME(ArgumentLength)(std::int32_t n);
+
+// 16.9.84 GET_ENVIRONMENT_VARIABLE
+// We're breaking up the interface into several different functions, since most
+// of the parameters are optional.
+
+// Try to get the value of the environment variable specified by NAME.
+// Returns a STATUS as described in the standard.
+std::int32_t RTNAME(EnvVariableValue)(const Descriptor &name,
+    const Descriptor *value = nullptr, bool trim_name = true,
+    const Descriptor *errmsg = nullptr);
+
+// Try to get the significant length of the environment variable specified by
+// NAME. Returns 0 if it doesn't manage.
+std::int64_t RTNAME(EnvVariableLength)(
+    const Descriptor &name, bool trim_name = true);
 }
 } // namespace Fortran::runtime