public static Vector allocateCollectionVariables(ControlFrame frame, Description description) {
    { int variablescount = description.ioVariables.length();
      Vector externalvariables = Vector.newVector(variablescount);

      { PatternVariable iovar = null;
        Vector vector000 = description.ioVariables;
        int index000 = 0;
        int length000 = vector000.length();
        int i = Stella.NULL_INTEGER;
        int iter000 = 0;

        for (;index000 < length000; index000 = index000 + 1, iter000 = iter000 + 1) {
          iovar = ((PatternVariable)((vector000.theArray)[index000]));
          i = iter000;
          (externalvariables.theArray)[i] = (Logic.createVariable(iovar.skolemType, iovar.skolemName, false));
          ((PatternVariable)((externalvariables.theArray)[i])).boundToOffset = i;
        }
      }
      if (frame.patternRecord == null) {
        ControlFrame.createPatternRecord(frame, null, null);
      }
      PatternRecord.activatePatternRecord(frame.patternRecord, variablescount);
      return (externalvariables);
    }
  }