public double getCyclePrice(int year_count, int []cycle, double []ratio) {  // function to calculate the prices of the possible fuel cycles for the current year
		double dummy_price = 999999;
		int length = 0;
		boolean available=true;
		for (int i=0; i<NumberOfTiers; i++) {
			if (cycle[i] != -1) {
				length++;
				if (YEAR_AVAILABLE[cycle[i]] > year_count+START_YEAR) {
					available = false;
				}
			}
		}
		double fe_costs = 0.;
		double be_costs = 0.;
		double reactor_costs = 0.;
		double om_costs = 0.;
		for (int j=0; j<length; j++) {
			fe_costs += augmentFrontEndChargesnp(targetGenCap[year_count]*ratio[j], cycle[j], year_count);
			be_costs += augmentBackEndDDChargesnp(cycle[j], targetGenCap[year_count]*ratio[j], year_count);
			reactor_costs += targetGenCap[year_count]*ratio[j]*yearlyCapitalCharge[cycle[j]]/AVAILABILITY[cycle[j]];
			om_costs += targetGenCap[year_count]*ratio[j]*yearlyOM[cycle[j]]/AVAILABILITY[cycle[j]];
		}
		double price = (fe_costs+be_costs+reactor_costs+om_costs)/targetGenCap[year_count]/100.;    // where does the availability come in?
		if (available == false) {
			price = dummy_price;
		}
		if ((cycle[0] == 2) && (cycle[1] == -1) && (cycle[2] == -1)) {
			tempcoe[year_count] = price;
			tempfe[year_count] = fe_costs/targetGenCap[year_count]/100.;
			tempbe[year_count] = be_costs/targetGenCap[year_count]/100.;
			tempom[year_count] = om_costs/targetGenCap[year_count]/100.;
			tempbl[year_count] = reactor_costs/targetGenCap[year_count]/100.;
		}
		return price;

	}