// 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