diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java
index 86980ad6cc38a3596a777e2206897cf98f559021..29cc0e1c95edd80667f051b7844ce65cd9ab4836 100644
--- a/src/ac/ed/lurg/ModelMain.java
+++ b/src/ac/ed/lurg/ModelMain.java
@@ -33,6 +33,8 @@ import ac.ed.lurg.demand.DemandManagerFromFile;
 import ac.ed.lurg.demand.DemandManagerSSP;
 import ac.ed.lurg.landuse.CropUsageData;
 import ac.ed.lurg.landuse.CropUsageReader;
+import ac.ed.lurg.landuse.FPUManager;
+import ac.ed.lurg.landuse.IrrigationConstraintReader;
 import ac.ed.lurg.landuse.IrrigationItem;
 import ac.ed.lurg.landuse.IrrigationMaxAmountReader;
 import ac.ed.lurg.landuse.IrrigationRasterSet;
@@ -43,7 +45,6 @@ import ac.ed.lurg.landuse.LandUseItem;
 import ac.ed.lurg.landuse.MaxCropAreaReader;
 import ac.ed.lurg.landuse.ProtectedAreasReader;
 import ac.ed.lurg.landuse.RunOffReader;
-import ac.ed.lurg.landuse.FPUManager;
 import ac.ed.lurg.output.LandUseOutputer;
 import ac.ed.lurg.output.LpjgOutputer;
 import ac.ed.lurg.types.CommodityType;
@@ -365,8 +366,10 @@ public class ModelMain {
 		if (ModelConfig.IS_CALIBRATION_RUN) {
 			serializeLandUse(landUseRaster);
 
-			if (timestep.isInitialTimestep())
+			if (timestep.isInitialTimestep()) {
 				outputClusters(clusterIdRaster);
+				outputWaterAvailablity(currentIrrigationData);
+			}
 		}
 
 		// Output LandUses to tabular file, for analysis (perhaps)
@@ -379,6 +382,19 @@ public class ModelMain {
 		//		outputLandCover(timestep.getYear(), landUseRaster, LandCoverType.PASTURE); 	
 	}
 
+	private void outputWaterAvailablity(IrrigationRasterSet irrigiationRS) {
+		new RasterOutputer<Double, IrrigationItem>(irrigiationRS, ModelConfig.OUTPUT_DIR + File.separator + "irrig_constraint.asc") {
+			@Override
+			public Double getValue(RasterKey location) {
+				IrrigationItem item = results.get(location);
+				if (item == null)
+					return null;
+
+				return item.getIrrigConstraint();
+			}
+		}.writeOutput();
+	}
+
 	private void outputClusters(RasterSet<IntegerRasterItem> landUseRaster) {
 		new RasterOutputer<Integer, IntegerRasterItem>(landUseRaster, ModelConfig.CLUSTERED_YIELD_FILE) {
 			@Override
@@ -391,7 +407,7 @@ public class ModelMain {
 			}
 		}.writeOutput();
 	}
-
+	
 	public RasterSet<IntegerRasterItem> getClusterRaster() {
 		RasterSet<IntegerRasterItem> clusters = new RasterSet<IntegerRasterItem>(desiredProjection) {
 			private static final long serialVersionUID = 2467452274591854417L;
@@ -555,7 +571,8 @@ public class ModelMain {
 	private IrrigationRasterSet getFixedIrrigationData() {	
 	    IrrigationRasterSet fixedIrrigData = new IrrigationRasterSet(desiredProjection, fpuManager);
 		new IrrigiationCostReader(fixedIrrigData).getRasterDataFromFile(ModelConfig.IRRIGATION_COST_FILE);
-		return fixedIrrigData;
+//        new IrrigationConstraintReader(fixedIrrigData).getRasterDataFromFile(ModelConfig.IRRIGATION_CONSTRAINT_FILE);
+        return fixedIrrigData;
 	}
 	
 	private RasterSet<IrrigationItem> getUpdateIrrigationData(Timestep timestep, YieldRaster yieldSurfaces) {