public static boolean computePartialMatchScoreP(ControlFrame frame) {
    { PartialMatchFrame partialmatchframe = frame.partialMatchFrame;
      double score = Stella.NULL_FLOAT;

      { Keyword testValue000 = partialmatchframe.kind;

        if (testValue000 == Logic.KWD_AND) {
          score = partialmatchframe.computeAndScore();
        }
        else if (testValue000 == Logic.KWD_OR) {
          score = partialmatchframe.computeOrScore();
        }
        else if (testValue000 == Logic.KWD_ATOMIC_GOAL) {
          score = partialmatchframe.computeGoalScore();
        }
        else {
        }
      }
      KeyValueList.setDynamicSlotValue(((QueryIterator)(Logic.$QUERYITERATOR$.get())).dynamicSlots, Logic.SYM_LOGIC_LATEST_POSITIVE_SCORE, FloatWrapper.wrapFloat(score), Stella.NULL_FLOAT_WRAPPER);
      partialmatchframe.positiveScore = score;
      KeyValueList.setDynamicSlotValue(frame.proposition.dynamicSlots, Logic.SYM_LOGIC_MATCH_SCORE, FloatWrapper.wrapFloat(score), Stella.NULL_FLOAT_WRAPPER);
      if (ControlFrame.unboundVariablesInFrameP(frame)) {
        return (false);
      }
      else {
        return (score > Logic.$MINIMUM_SCORE_CUTOFF$);
      }
    }
  }