Parses three potential optimization errors: failing to converge within the allowed number
        of optimization cycles, failure to determine the lamda needed to continue, and inconsistent
        size of MO files due to a linear dependence in the AO basis.

def _check_optimization_errors(self):
        """
        Parses three potential optimization errors: failing to converge within the allowed number
        of optimization cycles, failure to determine the lamda needed to continue, and inconsistent
        size of MO files due to a linear dependence in the AO basis.
        """
        if read_pattern(
                self.text, {
                    "key": r"MAXIMUM OPTIMIZATION CYCLES REACHED"
                },
                terminate_on_match=True).get('key') == [[]]:
            self.data["errors"] += ["out_of_opt_cycles"]
        elif read_pattern(
                self.text, {
                    "key": r"UNABLE TO DETERMINE Lamda IN FormD"
                },
                terminate_on_match=True).get('key') == [[]]:
            self.data["errors"] += ["unable_to_determine_lamda"]
        elif read_pattern(
                self.text, {
                    "key": r"Inconsistent size for SCF MO coefficient file"
                },
                terminate_on_match=True).get('key') == [[]]:
            self.data["errors"] += ["linear_dependent_basis"]