From dcc41ede5cf29c5e6ffef2db8241e6fb790858c5 Mon Sep 17 00:00:00 2001
From: Peter Alexander <p.m.w.alexander@gmail.com>
Date: Fri, 8 Sep 2017 09:23:15 +0100
Subject: [PATCH] Irrigiation and calibration changes

---
 GAMS/IntExtOpt.gms                            |  13 +-
 data/bioenergy_futures_BAU.csv                |  82 ++---
 data/other_water_uses.csv                     | 309 ++++++++++++++++++
 hind1970/data/bioenergy_futures_BAU.csv       |  82 ++---
 hind1970/data/country_groups.csv              |   8 +-
 src/ac/ed/lurg/ModelConfig.java               |  25 +-
 src/ac/ed/lurg/ModelMain.java                 |  12 +-
 src/ac/ed/lurg/country/CountryAgent.java      |   4 +
 .../country/gams/GamsLocationOptimiser.java   |   5 +
 9 files changed, 431 insertions(+), 109 deletions(-)

diff --git a/GAMS/IntExtOpt.gms b/GAMS/IntExtOpt.gms
index 595b76f9..4a6639d5 100644
--- a/GAMS/IntExtOpt.gms
+++ b/GAMS/IntExtOpt.gms
@@ -46,13 +46,14 @@
  SCALAR otherICost                           cost of other intensity;
  SCALAR unhandledCropArea                    includes fruit veg forage crops set aside and failed crop;
  SCALAR domesticPriceMarkup                  factor price increased from cost of production;
- 
+ SCALAR maxLandExpansionRate                 max rate of country land expansion 
+
 *$gdxin "/Users/peteralexander/Documents/R_Workspace/UNPLUM/temp/GamsTmp/t1.gdx"
 $gdxin %gdxincname% 
 $load location, suitableLandArea, demand, agriExpansionCost, cropIncCost, pastureIncCost, cropDecCost, pastureDecCost
 $load previousArea, previousFertIntensity, previousIrrigIntensity, previousOtherIntensity, previousRuminantFeed, previousMonogastricFeed, previousImportAmount, previousExportAmount
 $load yieldNone, yieldFertOnly, yieldIrrigOnly, yieldBoth
-$load fertParam, irrigParam, otherIParam, exportPrices, importPrices, maxNetImport, minNetImport, unhandledCropArea
+$load fertParam, irrigParam, otherIParam, exportPrices, importPrices, maxNetImport, minNetImport, unhandledCropArea, maxLandExpansionRate
 $load meatEfficency, otherICost, irrigCost, irrigMaxRate, irrigConstraint, fertiliserUnitCost, domesticPriceMarkup
 $gdxin    
  
@@ -81,8 +82,8 @@ $gdxin
 
  PARAMETER baseCost(crop);
  PARAMETER otherIntCost(crop);
- baseCost(crop) = prodCost(crop)/2;
- otherIntCost(crop) = baseCost(crop)/2 + otherICost;
+ baseCost(crop) = prodCost(crop)*0.35;
+ otherIntCost(crop) = baseCost(crop)*0.65 + otherICost;
  baseCost('pasture') = 0.02;
  otherIntCost('pasture') = 0.8 + otherICost;
                               
@@ -135,6 +136,7 @@ $gdxin
        PASTURE_INCREASE_CONV_CALC(location)             
        PASTURE_DECREASE_CONV_CALC(location)          
        PASTURE_TOTAL_CHANGE_CONSTRAINT(location)   
+       LAND_RATE_CHANGE_CONSTRAINT_INCREASE
        COST_EQ                                        total cost objective function;
  
  UNIT_COST_EQ(crop, location) .. unitCost(crop, location) =E=  (     baseCost(crop) +           
@@ -188,6 +190,8 @@ $gdxin
  PASTURE_DECREASE_CONV_CALC(location) .. pastureDecrease(location) =G= -(area('pasture', location) - previousArea('pasture', location));
  PASTURE_TOTAL_CHANGE_CONSTRAINT(location) .. pastureIncrease(location) -pastureDecrease(location) =G= area('pasture', location) - previousArea('pasture', location);
   
+ LAND_RATE_CHANGE_CONSTRAINT_INCREASE .. sum(location, cropIncrease(location)) / sum(location, (suitableLandArea(location)*(1.0 - unhandledCropArea))-sum(crop, previousArea(crop, location))) =L= maxLandExpansionRate;
+
  COST_EQ .. total_cost =E= 
          ( 
               (   SUM((crop, location), area(crop, location) * unitCost(crop, location)) +
@@ -205,7 +209,6 @@ $gdxin
          );
  
  MODEL LAND_USE /ALL/ ;
- 
  fertI.L(crop, location) = previousFertIntensity(crop, location);
  irrigI.L(crop, location) = previousIrrigIntensity(crop, location);
  otherIntensity.L(crop, location) = previousOtherIntensity(crop, location);
diff --git a/data/bioenergy_futures_BAU.csv b/data/bioenergy_futures_BAU.csv
index e39a4124..9d990741 100644
--- a/data/bioenergy_futures_BAU.csv
+++ b/data/bioenergy_futures_BAU.csv
@@ -1,43 +1,43 @@
 MODEL,SCENARIO,REGION,Variable,Unit,Year,value
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2000,21.76
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2005,27.2
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2000,20
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2005,27
 PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2010,34
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2015,42.5
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2020,53.125
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2025,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2030,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2035,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2040,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2045,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2050,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2055,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2060,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2065,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2070,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2075,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2080,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2085,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2090,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2095,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2100,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2000,10
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2005,30
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2010,60
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2015,110
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2020,200
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2025,350
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2030,580
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2035,910
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2040,1300
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2045,1700
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2050,2000
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2055,2200
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2060,2400
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2065,2600
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2070,2800
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2075,3000
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2080,3200
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2085,3400
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2090,3600
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2095,3800
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2100,4000
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2015,41
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2020,31
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2025,23
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2030,33
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2035,125
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2040,221
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2045,166
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2050,61
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2055,25
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2060,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2065,23
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2070,23
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2075,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2080,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2085,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2090,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2095,23
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2100,22
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2000,0
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2005,0
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2010,0
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2015,45
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2020,114
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2025,249
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2030,509
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2035,856
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2040,1241
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2045,1659
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2050,1927
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2055,1934
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2060,1797
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2065,1599
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2070,1591
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2075,1798
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2080,1913
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2085,1920
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2090,1962
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2095,1995
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2100,2014
diff --git a/data/other_water_uses.csv b/data/other_water_uses.csv
index e79a53d4..a12c0367 100644
--- a/data/other_water_uses.csv
+++ b/data/other_water_uses.csv
@@ -40169,3 +40169,312 @@ FPU,Year,Value
 307,2099,0.161867397257906
 308,2099,0.398715070512395
 309,2099,0.197570261548918
+1,2100,1.88687808718898e-05
+2,2100,0.206564808367889
+3,2100,0.0444486195702849
+4,2100,0.174522488202001
+5,2100,0.030832672264296
+6,2100,0.0172927181433096
+7,2100,0.188520490030896
+8,2100,0.575141081831689
+9,2100,1.0205137597597
+10,2100,0.518566466179873
+11,2100,0.130999641650533
+12,2100,0.340730698635411
+13,2100,0.81978929275963
+14,2100,5.00678887062895
+15,2100,0.00124871744796451
+16,2100,0.522774953504268
+17,2100,0.189367675047881
+18,2100,0.852362059561678
+19,2100,1.17846341796511
+20,2100,0.301327849470972
+21,2100,0.196070608324439
+22,2100,0.969064405245717
+23,2100,0.387708748146636
+24,2100,0.344043591744082
+25,2100,0.492618069304399
+26,2100,1.45981875338862
+27,2100,0.441474804935297
+28,2100,0.223270617252638
+29,2100,0.413291826451143
+30,2100,0.29786722346832
+31,2100,4.2104586123005
+32,2100,0.0260551298606515
+33,2100,0.0777100088299107
+34,2100,2.39660865380847
+35,2100,4.0583820003659
+36,2100,3.35601219902512
+37,2100,2.02853658288739
+38,2100,1.0692593687607
+39,2100,0.811520508327249
+40,2100,1.50173337486922
+41,2100,1.90766812824895
+42,2100,1.12747679453582
+43,2100,0.0647257746695686
+44,2100,0.0583266040698618
+45,2100,0.111804107461239
+46,2100,0.144288611208399
+47,2100,0.0530587903387634
+48,2100,4.10370701947404
+49,2100,0.188448647138089
+50,2100,0.0582723738563289
+51,2100,1.22874230841314
+52,2100,2.93192604093929
+53,2100,0.695978334622902
+54,2100,0.0249364984223348
+55,2100,0.450945873217812
+56,2100,0.218866732235832
+57,2100,0.195051710119699
+58,2100,0.294330573666912
+59,2100,5.76871990434483
+60,2100,0.220711942517482
+61,2100,0.91591994232482
+62,2100,0.396192035030396
+63,2100,3.06509091547372
+64,2100,0.405101207798907
+65,2100,0.505266945437654
+66,2100,0.00992006713931914
+67,2100,0.208551598242593
+68,2100,0.215424445826102
+69,2100,1.9002733364841
+70,2100,0.372050918184414
+71,2100,0.665764873984699
+72,2100,1.0161849897122
+73,2100,5.71460464608435
+74,2100,2.79503683440271
+75,2100,1.09163540422014
+76,2100,0.0182346573276391
+77,2100,0.456661561411519
+78,2100,0.146857047941921
+79,2100,0.19222879500802
+80,2100,0.087919844489079
+81,2100,0.755920918250922
+82,2100,2.80171273822498
+83,2100,0.848005872593774
+84,2100,0.219223202006617
+85,2100,2.70269047454531
+86,2100,0.00401615417695211
+87,2100,7.69155150422694
+88,2100,4.07639167479766
+89,2100,0.200932409578577
+90,2100,1.00364885592371
+91,2100,1.95848374654209
+92,2100,8.74411912379401
+93,2100,5.14052913727528
+94,2100,4.26998119094719
+95,2100,0.869467002916736
+96,2100,1.93313208260406
+97,2100,12.1551707871727
+98,2100,0.22316646369643
+99,2100,0.788764127332627
+100,2100,3.31149561509301
+101,2100,0.760893872760446
+102,2100,0.00850839679594628
+103,2100,3.98330441678218
+104,2100,0.550945106934179
+105,2100,3.10615639804968
+106,2100,0.0696426752254089
+107,2100,0.0722311890914877
+108,2100,0.0682309198516009
+109,2100,4.36753030527325
+110,2100,0.556735196441874
+111,2100,0.196704295256495
+112,2100,0.100620698292914
+113,2100,0.148551942655786
+114,2100,0.621604885033577
+115,2100,0.0740267472624225
+116,2100,0.563702275394462
+117,2100,0.424618898312663
+118,2100,0.0089230343314739
+119,2100,0.422180694865574
+120,2100,0.377084798651481
+121,2100,1.11943255017786
+122,2100,0.224139095415239
+123,2100,1.13554549255673
+124,2100,0.357159893871914
+125,2100,0.116184128922297
+126,2100,1.86096746614714
+127,2100,4.2855853521794
+128,2100,3.02224515774287
+129,2100,0.0161053505180462
+130,2100,1.40701724931705
+131,2100,3.19310560005033
+132,2100,5.93672335216098
+133,2100,1.9934832528491
+134,2100,1.31253391709084
+135,2100,0.320918039053837
+136,2100,0.558007632293929
+137,2100,0.124657363136066
+138,2100,0.580127622048167
+139,2100,0.30075481475069
+140,2100,0.103963973702776
+141,2100,0.144656081845824
+142,2100,0.0394580503343605
+143,2100,2.03896248506521
+144,2100,2.98033020493487
+145,2100,0.125000322252163
+146,2100,12.5786998826776
+147,2100,0.317466083461795
+148,2100,2.82240541303679
+149,2100,5.84972310785034
+150,2100,1.12509265054223
+151,2100,1.11447347819643
+152,2100,1.02510241014658
+153,2100,0.16629325689183
+154,2100,0.28955199037952
+155,2100,0.245511349716112
+156,2100,0.0387102549053111
+157,2100,0.118058659936509
+158,2100,3.14872937379869
+159,2100,0.0936867571260809
+160,2100,0.98024845947532
+161,2100,0.0294072220344788
+162,2100,2.24127008432242
+163,2100,0.887617108222912
+164,2100,0.0131586534947701
+165,2100,0.606599566453838
+166,2100,1.20432724823378
+167,2100,0.202035974823389
+168,2100,1.36704228365352
+169,2100,0.0351727882034538
+170,2100,2.00470439078262
+171,2100,0.171218394389143
+172,2100,0.0211956352932248
+173,2100,0.887777138465992
+174,2100,0.309727491222247
+175,2100,1.44071878225119
+176,2100,0.229319051083579
+177,2100,2.64617223709405
+178,2100,4.68903883078875
+179,2100,0.446514705583743
+180,2100,1.48769058281403
+181,2100,3.5085026328575
+182,2100,0.597609611350083
+183,2100,0.129615886053671
+184,2100,0.291893209739555
+185,2100,2.67745695296253
+186,2100,0.244853730715931
+187,2100,0.882015727239832
+188,2100,0.835957145525526
+189,2100,0.584480748305729
+190,2100,0.374933550144377
+191,2100,0.81875996198869
+192,2100,0.390262696834782
+193,2100,0.42246322590654
+194,2100,5.7965001355891
+195,2100,0.317598370433575
+196,2100,0.307915814927822
+197,2100,0.0114179773489465
+198,2100,0.0426001814130501
+199,2100,0.0868389024001388
+200,2100,0.167974581339234
+201,2100,0.0235582382725852
+202,2100,0.124150008580187
+203,2100,1.70757005507496
+204,2100,15.78236607041
+205,2100,1.37191132909868
+206,2100,9.28004865018505
+207,2100,0.820646334246931
+208,2100,0.477716656074108
+209,2100,0.432720058490304
+210,2100,0.206383337424882
+211,2100,1.0866297537832
+212,2100,6.43831338405113
+213,2100,1.73053996916743
+214,2100,0.168224487046245
+215,2100,1.62177137951359
+216,2100,0.821070508778803
+217,2100,0.39639324865675
+218,2100,0.213552505244479
+219,2100,2.97219282844492
+220,2100,0.843503358561428
+221,2100,0.328211755214703
+222,2100,0.17605330332708
+223,2100,1.1069043794173
+224,2100,0.21612240455579
+225,2100,1.20577492524808
+226,2100,1.25291219222737
+227,2100,0.200468749273568
+228,2100,0.780454671720967
+229,2100,0.106299340147643
+230,2100,0.169379075578263
+231,2100,1.83722166799052
+232,2100,0.369450444717586
+233,2100,1.18527965247631
+234,2100,0.854136994448481
+235,2100,3.84873594390002
+236,2100,0.735046560642303
+237,2100,0.136281480070954
+238,2100,0.0413730341306859
+239,2100,0.255527432230359
+240,2100,0.147967382299043
+241,2100,0.0292073392551373
+242,2100,1.26825856954292
+243,2100,0.321247202948207
+244,2100,0.0485922709822262
+245,2100,3.31187047969279
+246,2100,0.978121764652315
+247,2100,2.31946069830155
+248,2100,1.63554747949217
+249,2100,1.62674657825119
+250,2100,0.148847691296396
+251,2100,0.191906322492287
+252,2100,0.163661165563099
+253,2100,0.111012678244151
+254,2100,0.180439168732846
+255,2100,0.401822217529116
+256,2100,0.59604340145205
+257,2100,0.367647576531454
+258,2100,0.46186141538945
+259,2100,2.81616635550927
+260,2100,2.80417958429488
+261,2100,0.571035745688278
+262,2100,0.192959470989173
+263,2100,0.143823357043626
+264,2100,1.29683103004572
+265,2100,0.219663890987213
+266,2100,1.11320642325646
+267,2100,0.28657518663158
+268,2100,0.654926170169006
+269,2100,2.30867047360834
+270,2100,0.0334534515545215
+271,2100,0.0056169209278778
+272,2100,0.172145810711299
+273,2100,4.41872451874951
+274,2100,0.409619658019437
+275,2100,0.0359870281607755
+276,2100,0.310719558172423
+277,2100,5.38563572439637
+278,2100,2.17224025123187
+279,2100,11.5301647254202
+280,2100,4.38766390518703
+281,2100,18.9189891972046
+282,2100,0.0341369833784171
+283,2100,0.514444477284599
+284,2100,0.279895664211153
+285,2100,4.05473946462735
+286,2100,13.5828679154583
+287,2100,10.7211283306124
+288,2100,12.2894399501215
+289,2100,3.09632456176877
+290,2100,5.63209184040729
+291,2100,1.70516409765219
+292,2100,14.7788975165167
+293,2100,7.56016000240061
+294,2100,2.05425777406847
+295,2100,0.03664298461063
+296,2100,4.01162510614813
+297,2100,3.09453219841089
+298,2100,8.98950905029051
+299,2100,0.811757224664589
+300,2100,0.762723579194691
+301,2100,0.88460226088979
+302,2100,4.80506116481229
+303,2100,10.1391146961203
+304,2100,0.381055037625629
+305,2100,1.33972262755319
+306,2100,1.91011800912111
+307,2100,0.161867397257906
+308,2100,0.398715070512395
+309,2100,0.197570261548918
diff --git a/hind1970/data/bioenergy_futures_BAU.csv b/hind1970/data/bioenergy_futures_BAU.csv
index e39a4124..9d990741 100644
--- a/hind1970/data/bioenergy_futures_BAU.csv
+++ b/hind1970/data/bioenergy_futures_BAU.csv
@@ -1,43 +1,43 @@
 MODEL,SCENARIO,REGION,Variable,Unit,Year,value
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2000,21.76
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2005,27.2
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2000,20
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2005,27
 PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2010,34
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2015,42.5
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2020,53.125
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2025,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2030,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2035,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2040,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2045,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2050,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2055,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2060,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2065,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2070,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2075,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2080,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2085,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2090,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2095,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2100,66.40625
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2000,10
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2005,30
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2010,60
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2015,110
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2020,200
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2025,350
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2030,580
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2035,910
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2040,1300
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2045,1700
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2050,2000
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2055,2200
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2060,2400
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2065,2600
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2070,2800
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2075,3000
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2080,3200
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2085,3400
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2090,3600
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2095,3800
-PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2100,4000
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2015,41
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2020,31
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2025,23
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2030,33
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2035,125
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2040,221
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2045,166
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2050,61
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2055,25
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2060,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2065,23
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2070,23
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2075,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2080,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2085,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2090,24
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2095,23
+PLUM,BAU,World,Agricultural Demand|Bioenergy|1st generation,million t DM/yr,2100,22
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2000,0
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2005,0
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2010,0
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2015,45
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2020,114
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2025,249
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2030,509
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2035,856
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2040,1241
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2045,1659
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2050,1927
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2055,1934
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2060,1797
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2065,1599
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2070,1591
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2075,1798
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2080,1913
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2085,1920
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2090,1962
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2095,1995
+PLUM,BAU,World,Agricultural Demand|Bioenergy|2nd generation,million t DM/yr,2100,2014
diff --git a/hind1970/data/country_groups.csv b/hind1970/data/country_groups.csv
index 09a1a752..1084d127 100644
--- a/hind1970/data/country_groups.csv
+++ b/hind1970/data/country_groups.csv
@@ -54,9 +54,9 @@ Switzerland,7.824909,Europe & Central Asia,High income: OECD,Germany Austria & S
 Austria,8.363404,Europe & Central Asia,High income: OECD,Germany Austria & Switzerland
 Germany,81.77693,Europe & Central Asia,High income: OECD,Germany Austria & Switzerland
 Italy,59.277417,Europe & Central Asia,High income: OECD,Italy
-Estonia,1.331475,Europe & Central Asia,High income: OECD,Other former USSR
-Latvia,2.097555,Europe & Central Asia,High income: nonOECD,Other former USSR
-Lithuania,3.097282,Europe & Central Asia,High income: nonOECD,Other former USSR
+Estonia,1.331475,Europe & Central Asia,High income: OECD,Scandinavia
+Latvia,2.097555,Europe & Central Asia,High income: nonOECD,Scandinavia
+Lithuania,3.097282,Europe & Central Asia,High income: nonOECD,Scandinavia
 Georgia,3.926,Europe & Central Asia,Lower middle income,Other former USSR
 Turkmenistan,5.041995,Europe & Central Asia,Upper middle income,Other former USSR
 Kyrgyzstan,5.4479,Europe & Central Asia,Low income,Other former USSR
@@ -191,4 +191,4 @@ Burkina Faso,15.632066,Sub-Saharan Africa,Low income,West Africa
 Niger,16.29199,Sub-Saharan Africa,Low income,West Africa
 Cote d'Ivoire,20.131707,Sub-Saharan Africa,Lower middle income,West Africa
 Ghana,24.317734,Sub-Saharan Africa,Lower middle income,West Africa
-Somalia,,Sub-Saharan Africa,,West Africa
\ No newline at end of file
+Somalia,,Sub-Saharan Africa,,West Africa
diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index 4f47bf94..05776854 100644
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -182,7 +182,7 @@ public class ModelConfig {
 	public static final int BASE_YEAR = getIntProperty("BASE_YEAR", 2010);
 
 	// Import export limits
-	public static final double ANNUAL_MAX_IMPORT_CHANGE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("ANNUAL_MAX_IMPORT_CHANGE", 0.025);
+	public static final double ANNUAL_MAX_IMPORT_CHANGE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("ANNUAL_MAX_IMPORT_CHANGE", 0.04);
 	public static final double MAX_IMPORT_CHANGE = IS_CALIBRATION_RUN ? 0.0 : getDoubleProperty("MAX_IMPORT_CHANGE", ANNUAL_MAX_IMPORT_CHANGE*TIMESTEP_SIZE);
 
 	// Fertiliser application rates in kg/ha
@@ -197,7 +197,7 @@ public class ModelConfig {
 
 	// Other model parameters
 	public static final boolean CHANGE_DEMAND_YEAR = IS_CALIBRATION_RUN ? false : getBooleanProperty("CHANGE_DEMAND_YEAR", true);
-	public static final double DIETARY_CLOSURE = getDoubleProperty("DIETARY_CLOSURE", 0.2); // Amount diet converges in DIETARY_CLOSURE_GDP_CHANGE rate of GDP shift
+	public static final double DIETARY_CLOSURE = getDoubleProperty("DIETARY_CLOSURE", 0.0); // Amount diet converges in DIETARY_CLOSURE_GDP_CHANGE rate of GDP shift
 	public static final double DIETARY_CLOSURE_GDP_CHANGE = getDoubleProperty("DIETARY_CLOSURE_GDP_CHANGE", 2.0); // 2 is double of GDP
 	public static final double DIETARY_CLOSURE_PARAM = getDoubleProperty("DIETARY_CLOSURE_PARAM", Math.log((1-DIETARY_CLOSURE))/DIETARY_CLOSURE_GDP_CHANGE); // Zero is no dietary closure, number specifies closure rate for changes in GDP per capita, e.g. Math.log(0.5)/2
 	public static final String SSP_SCENARIO = getProperty("SSP_SCENARIO", "SSP1_v9_130325");
@@ -212,16 +212,16 @@ public class ModelConfig {
 	public static final double OTHER_WATER_USE_FACTOR = getDoubleProperty("OTHER_WATER_USE_FACTOR", 1.0);
 	public static final boolean USE_BLUE_WATER_FILE_IRRIG_CONSTRAINT = getBooleanProperty("USE_BLUE_WATER_FILE_IRRIG_CONSTRAINT", false);;
 
-	public static final double LAND_CHANGE_COST = getDoubleProperty("LAND_CHANGE_COST", 0.7);
+	public static final double LAND_CHANGE_COST = getDoubleProperty("LAND_CHANGE_COST", 0.2);
 	public static final double CROP_TO_PASTURE_COST_FACTOR = getDoubleProperty("CROP_TO_PASTURE_COST_FACTOR", 1.0);
 	public static final double AGRI_LAND_EXPANSION_COST_FACTOR = getDoubleProperty("AGRI_LAND_EXPANSION_COST_FACTOR", 1.0);
 
-	public static final double CROP_INCREASE_COST = getDoubleProperty("CROP_INCREASE_COST", 0.5 * LAND_CHANGE_COST * AGRI_LAND_EXPANSION_COST_FACTOR);
-	public static final double PASTURE_DECREASE_COST = getDoubleProperty("PASTURE_DECREASE_COST", 0.25 * LAND_CHANGE_COST);
-	public static final double CROP_DECREASE_COST = getDoubleProperty("CROP_DECREASE_COST", LAND_CHANGE_COST);
-	public static final double PASTURE_INCREASE_COST = getDoubleProperty("PASTURE_INCREASE_COST", 0.1 * LAND_CHANGE_COST * CROP_TO_PASTURE_COST_FACTOR * AGRI_LAND_EXPANSION_COST_FACTOR);
-	public static final double AGRI_EXPANSION_COST_BASE = getDoubleProperty("AGRI_EXPANSION_COST_BASE", 0.05 * LAND_CHANGE_COST * AGRI_LAND_EXPANSION_COST_FACTOR);
-	public static final double AGRI_EXPANSION_COST_BASE_MANAGED_FOREST = getDoubleProperty("AGRI_EXPANSION_COST_BASE_MANAGED_FOREST", 0.3 * LAND_CHANGE_COST * AGRI_LAND_EXPANSION_COST_FACTOR);
+	public static final double CROP_INCREASE_COST = getDoubleProperty("CROP_INCREASE_COST", 0.2 * LAND_CHANGE_COST * AGRI_LAND_EXPANSION_COST_FACTOR);
+	public static final double PASTURE_DECREASE_COST = getDoubleProperty("PASTURE_DECREASE_COST", LAND_CHANGE_COST);
+	public static final double CROP_DECREASE_COST = getDoubleProperty("CROP_DECREASE_COST", 3.5 * LAND_CHANGE_COST);
+	public static final double PASTURE_INCREASE_COST = getDoubleProperty("PASTURE_INCREASE_COST", 0.2 * LAND_CHANGE_COST * CROP_TO_PASTURE_COST_FACTOR * AGRI_LAND_EXPANSION_COST_FACTOR);
+	public static final double AGRI_EXPANSION_COST_BASE = getDoubleProperty("AGRI_EXPANSION_COST_BASE", 0.08 * LAND_CHANGE_COST * AGRI_LAND_EXPANSION_COST_FACTOR);
+	public static final double AGRI_EXPANSION_COST_BASE_MANAGED_FOREST = getDoubleProperty("AGRI_EXPANSION_COST_BASE_MANAGED_FOREST", LAND_CHANGE_COST * AGRI_LAND_EXPANSION_COST_FACTOR);
 
 	public static final double SEED_AND_WASTE_FRACTION = getDoubleProperty("SEED_AND_WASTE_FRACTION", 0.1);  
 
@@ -249,19 +249,20 @@ public class ModelConfig {
 	public static final double OTHER_INTENSITY_COST = getDoubleProperty("OTHER_INTENSITY_COST", 0.4);
 	public static final double OTHER_INTENSITY_PARAM = getDoubleProperty("OTHER_INTENSITY_PARAM", 3.22);
 
-	public static final double IRRIG_COST_SCALE_FACTOR = getDoubleProperty("IRRIG_COST_SCALE_FACTOR", 0.001);
-	public static final double FERTILISER_COST_PER_T = getDoubleProperty("FERTILISER_COST_PER_T", 2.7); // $500/t, 18% N/t
+	public static final double IRRIG_COST_SCALE_FACTOR = getDoubleProperty("IRRIG_COST_SCALE_FACTOR", 0.0004);
+	public static final double FERTILISER_COST_PER_T = getDoubleProperty("FERTILISER_COST_PER_T", 1.8); // $500/t, 18% N/t
 	public static final double FERTILISER_MAX_COST = FERTILISER_COST_PER_T * MAX_FERT_AMOUNT/1000;
 	
 	public static final double DOMESTIC_PRICE_MARKUP = getDoubleProperty("DOMESTIC_PRICE_MARKUP", 1.0);
 	public static final double TRANSPORT_LOSSES = getDoubleProperty("TRANSPORT_LOSSES", 0.05);  // in international trade
 	public static final double TRANSPORT_COST = getDoubleProperty("TRANSPORT_COST", 0.3);  // 100 $/t  see Wheat Transportation Profile - USDA
-	public static final double TRADE_BARRIER_FACTOR_DEFAULT = getDoubleProperty("TRADE_BARRIER_FACTOR_DEFAULT", 0.4);  // price factor in international trade, transport cost and real trade barriers
+	public static final double TRADE_BARRIER_FACTOR_DEFAULT = getDoubleProperty("TRADE_BARRIER_FACTOR_DEFAULT", 0.3);  // price factor in international trade, transport cost and real trade barriers
 	public static final double TRADE_BARRIER_ADJ = getDoubleProperty("TRADE_BARRIER_ADJ", 1.0);
 	public static final boolean ACTIVE_TRADE_BARRIERS = getBooleanProperty("ACTIVE_TRADE_BARRIERS", false);  // if set to true read in barrier information from file, otherwise use default as above
 
 	public static final boolean PROTECTED_AREAS_ENABLED = getBooleanProperty("PROTECTED_AREAS_ENABLED", true);
 	public static final double MIN_NATURAL_RATE = getDoubleProperty("MIN_NATURAL_RATE", 0.10);
+	public static final double MAX_CHINA_LAND_EXPANSION_RATE = getDoubleProperty("MAX_CHINA_LAND_EXPANSION_RATE", 0.011*0.4); // 1.1% max forest change 40% of natural land is forest
 
 	public static final boolean DEBUG_JUST_DEMAND_OUTPUT = getBooleanProperty("DEBUG_JUST_DEMAND_OUTPUT", false);
 	public static final boolean DEBUG_LIMIT_COUNTRIES = getBooleanProperty("DEBUG_LIMIT_COUNTRIES", false);
diff --git a/src/ac/ed/lurg/ModelMain.java b/src/ac/ed/lurg/ModelMain.java
index 7bfe18ce..37dbdd75 100644
--- a/src/ac/ed/lurg/ModelMain.java
+++ b/src/ac/ed/lurg/ModelMain.java
@@ -145,8 +145,9 @@ public class ModelMain {
 		LogWriter.printlnError("Test key: " + yresp.getYieldMax(CropType.MAIZE) + ", " + yresp.getYieldFertOnly(CropType.MAIZE) + ", "
 						+ yresp.getYieldIrrigOnly(CropType.MAIZE) + ", " + yresp.getYieldNone(CropType.MAIZE));
 
-		double previousGen2EcDDemand = timestep.isInitialTimestep() ? 0: demandManager.getSecondGenBioenergyDemand(timestep.getPreviousTimestep());
-		double gen2EcDDemand = demandManager.getSecondGenBioenergyDemand(timestep);
+		double previousGen2EcDDemand = (timestep.isInitialTimestep() || ModelConfig.IS_CALIBRATION_RUN ) ? 0: demandManager.getSecondGenBioenergyDemand(timestep.getPreviousTimestep());
+		double gen2EcDDemand = demandManager.getSecondGenBioenergyDemand(ModelConfig.IS_CALIBRATION_RUN ? new Timestep(1) : timestep);
+		double gen2Increase = (gen2EcDDemand>previousGen2EcDDemand) ? gen2EcDDemand - previousGen2EcDDemand : 0.0;
 		CropToDoubleMap totalImportCommodities = new CropToDoubleMap();
 		CropToDoubleMap totalExportCommodities = new CropToDoubleMap();
 
@@ -161,7 +162,7 @@ public class ModelMain {
 
 			// do the optimization
 			try {
-				result = ca.determineProduction(timestep, countryYieldSurfaces, irrigData, prevWorldPrices, (gen2EcDDemand - previousGen2EcDDemand));
+				result = ca.determineProduction(timestep, countryYieldSurfaces, irrigData, prevWorldPrices, gen2Increase);
 			} catch (Exception e) {
 				LogWriter.printlnError("Exception processing " + ca.getCountry() + " will continue with other countries");
 				LogWriter.print(e);
@@ -354,6 +355,7 @@ public class ModelMain {
 					lpjOutputer.writeOutput();
 				}
 			}
+			outputWaterAvailablity(timestep, currentIrrigationData);  // uses the year directory structure created above
 		}
 
 		if (ModelConfig.IS_CALIBRATION_RUN)
@@ -373,7 +375,7 @@ public class ModelMain {
 	}
 
 	private void outputWaterAvailablity(Timestep timestep, IrrigationRasterSet irrigiationRS) {
-		new RasterOutputer<Double, IrrigationItem>(irrigiationRS, ModelConfig.OUTPUT_DIR + File.separator + "irrig_constraint_" + timestep.getYear() + ".asc") {
+		new RasterOutputer<Double, IrrigationItem>(irrigiationRS, ModelConfig.OUTPUT_DIR + File.separator + timestep.getYear() + File.separator + "IrrigConstraint.asc") {
 			@Override
 			public Double getValue(RasterKey location) {
 				IrrigationItem item = results.get(location);
@@ -557,8 +559,6 @@ public class ModelMain {
 			new RunOffReader(currentIrrigationData, false).getRasterDataFromFile(rootDir + File.separator + ModelConfig.IRRIG_RUNOFF_FILE);
 			currentIrrigationData.updateIrrigConstraints(timestep);
 		}
-		
-		outputWaterAvailablity(timestep, currentIrrigationData);
 	}
 
 	private Map<CropType, Double> getInitialStockLevels() {
diff --git a/src/ac/ed/lurg/country/CountryAgent.java b/src/ac/ed/lurg/country/CountryAgent.java
index bc9c8d81..abaa9f9a 100644
--- a/src/ac/ed/lurg/country/CountryAgent.java
+++ b/src/ac/ed/lurg/country/CountryAgent.java
@@ -162,6 +162,10 @@ public class CountryAgent {
 			if (CropType.ENERGY_CROPS.equals(crop)) {
 				double croplandArea = LandUseItem.getTotalLandCover(previousGamsRasterOutput.getLandUses().values(), LandCoverType.CROPLAND);
 				double ecMaxExport = gen2EcIncrease * croplandArea / 1500.0 * 2;
+				if (ModelConfig.IS_CALIBRATION_RUN) {
+					baseNetImport = 0.0;
+					ecMaxExport = 0.0; 
+				}
 				changeDown = ecMaxExport; 
 			}
 			
diff --git a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
index 5c426fb3..fc385087 100644
--- a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
+++ b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
@@ -255,6 +255,11 @@ public class GamsLocationOptimiser {
 		addScalar(inDB, "otherIParam", ModelConfig.OTHER_INTENSITY_PARAM, 3);
 		addScalar(inDB, "unhandledCropArea", ModelConfig.UNHANDLED_CROP_AREA, 3);
 		addScalar(inDB, "domesticPriceMarkup", ModelConfig.DOMESTIC_PRICE_MARKUP, 3);
+		double maxExpansion = 1.0;
+		if (!ModelConfig.IS_CALIBRATION_RUN && countryInput.getCountry().getName().equals("China")) {
+			maxExpansion = ModelConfig.MAX_CHINA_LAND_EXPANSION_RATE;
+		}
+		addScalar(inDB, "maxLandExpansionRate", maxExpansion, 3);
 	}
 
 	private void addScalar(GAMSDatabase gamsDb, String recordName, double val, int places) {
-- 
GitLab