public PriorityQueue<Patch> bOptimizeCutsScenario5()
    {
        String results;
        StringBuilder modelContent = new StringBuilder();
        HashMap<Integer, Patch> candidateIDMap = new HashMap<>();
        org.neos.gams.Set patchSet = new org.neos.gams.Set("M", "patches");
        org.neos.gams.Set dimSet = new org.neos.gams.Set("N", "dimensions");
        
        Parameter subsidy = new Parameter("subsidy(M)", "subsidy cost");
        Parameter coord = new Parameter("coord(M,N)", "coordinates");
        
        dimSet.addValue("0");
        dimSet.addValue("1");
        
        for(Patch p : habitatCandidates)
        {
            String pID = String.valueOf(p.patchID);
            patchSet.addValue(pID);
            double subsidyCost = 250 - p.lumberProfit;
            if(subsidyCost < 0) subsidyCost = 0;
            subsidy.add(pID, String.valueOf(subsidyCost));
            candidateIDMap.put(p.patchID, p);
            coord.add(pID + ".0", String.valueOf(p.x));
            coord.add(pID + ".1", String.valueOf(p.y));
        }
        
        modelContent.append("$offdigit\n");
        modelContent.append(patchSet.toString()).append("\n");
        modelContent.append(dimSet.toString()).append("\n");
        modelContent.append(subsidy.toString()).append("\n");
        modelContent.append(coord.toString()).append("\n");
        modelContent.append(modelTemplateS5);
        
        try (FileWriter modelFile = new FileWriter(Calculation.outputModelPathS5)) {
            modelFile.write(modelContent.toString());
            modelFile.close();
        }
        catch(IOException ioe)
        {
            try (FileWriter modelFile = new FileWriter(Calculation.outputModelPath)) {
                    modelFile.write(modelContent.toString());
                }
            catch(IOException ioExcept)
            {
                
            }
        }
        
        return null;
    }