From 070ce500b53676bc0c36faabb316967eab2ef144 Mon Sep 17 00:00:00 2001
From: Bart Arendarczyk <s1924442@ed.ac.uk>
Date: Thu, 18 May 2023 14:10:01 +0100
Subject: [PATCH] Some forestry fixes and refactoring.

---
 GAMS/IntExtOpt.gms                            |  45 ++-
 GAMS/woodDemand.gms                           | 121 ++++++++
 data/wood_base_demand.csv                     | 276 +++++++++---------
 src/ac/ed/lurg/ModelConfig.java               |   9 +-
 .../country/gams/GamsLocationOptimiser.java   |  30 +-
 src/ac/ed/lurg/types/WoodType.java            |  12 +-
 6 files changed, 316 insertions(+), 177 deletions(-)
 create mode 100644 GAMS/woodDemand.gms

diff --git a/GAMS/IntExtOpt.gms b/GAMS/IntExtOpt.gms
index b2c4732f..4fefa8d8 100644
--- a/GAMS/IntExtOpt.gms
+++ b/GAMS/IntExtOpt.gms
@@ -60,6 +60,7 @@
  PARAMETER maxRotationIntensity(wood_type);
  PARAMETER forestBaseCost(managed_forest);
  PARAMETER previousRotationIntensity(location);
+ PARAMETER minRotationIntensity(location);
 
  SCALAR meatEfficency                        efficiency of converting feed and pasture into animal products;
  SCALAR fertiliserUnitCost                   fert cost at max fert rate;
@@ -86,7 +87,7 @@ $load yieldNone, yieldFertOnly, yieldIrrigOnly, yieldBoth, yieldShock
 $load fertParam, irrigParam, otherIParam, exportPrices, importPrices, maxNetImport, minNetImport, unhandledCropRate, setAsideRate, maxGrossLccRate, subsidyRate
 $load meatEfficency, otherICost, irrigCost, irrigMaxRate, irrigConstraint, fertiliserUnitCost, domesticPriceMarkup, minDemandFraction, seedAndWasteRate
 $load previousLandCoverArea, maxCroplandArea, carbonCreditRate, conversionCost, woodYieldMax, woodYieldParam, maxRotationIntensity, forestBaseCost, tradeAdjustmentCostRate
-$load forestManagementCost, vegClearingCostRate, carbonForestMaxProportion, maxFertChange, maxIrrigChange, previousRotationIntensity
+$load forestManagementCost, vegClearingCostRate, carbonForestMaxProportion, maxFertChange, maxIrrigChange, previousRotationIntensity, minRotationIntensity
 $gdxin
 
  SCALAR delta "use to smooth power function see 7.5 www.gams.com dd docs solversconopt.pdf" / 0.00000000001 /;
@@ -144,6 +145,11 @@ $gdxin
  PARAMETER previousNetImport(import_types);
  previousNetImport(import_types) = previousImportAmount(import_types) - previousExportAmount(import_types);
  
+ PARAMETER loggingCost(wood_type)
+    /   roundwood   0.1
+        fuelwood    0.05
+    /;
+ 
 
  VARIABLES
        unitCost(crop, location)           cost per area for each crop - cost
@@ -168,7 +174,8 @@ $gdxin
 
        woodYieldRota(location)              wood yield tC per ha
        rotationIntensity(location)          equivalent to 1 divided by rotation period
-       woodSupply(location)                 wood supply MtC
+       totalWoodSupply(location)                 wood supply MtC
+       woodSupply(wood_type)
        forestryCost(location)               total cost in 1000$
 
        carbonCredits(location)
@@ -176,7 +183,7 @@ $gdxin
        total_cost                         total cost of domestic supply including net imports;
 
  POSITIVE VARIABLE cropArea, fertI, irrigI, otherIntensity, netSupply, ruminantFeed, monogastricFeed, importAmount, exportAmount, totalFeedDM, 
-                   landCoverArea, landCoverChange, totalConversionCost, animalProd, woodYieldRota, rotationIntensity, woodSupply;
+                   landCoverArea, landCoverChange, totalConversionCost, animalProd, woodYieldRota, rotationIntensity, totalWoodSupply, woodSupply;
 
 
 * POSITIVE VARIABLE A;
@@ -210,7 +217,8 @@ $gdxin
 
        WOOD_YIELD_CALC(location)                    wood yield at rotation - tC per ha
        WOOD_SUPPLY_CALC(location)                   wood supply
-       WOOD_DEMAND_CONSTRAINT                       satisfy wood demand and trade
+       WOOD_SUPPLY_CONSTRAINT
+       WOOD_DEMAND_CONSTRAINT(wood_type)
        ROUNDWOOD_DEMAND_CONSTRAINT                  satisfy roundwood demand (can only by obtained from older trees)
        FORESTRY_COST_CALC(location)                 total forestry cost
  
@@ -297,19 +305,20 @@ $gdxin
  
 * Upper and lower bounds on rotation intensity
  rotationIntensity.UP(location) = 1 / 10;
- rotationIntensity.LO(location) = 1 / 150;
+ rotationIntensity.LO(location) = minRotationIntensity(location);
  
- WOOD_SUPPLY_CALC(location) .. woodSupply(location) =E= woodYieldRota(location) * rotationIntensity(location) * landCoverArea('timberForest', location);
-
- WOOD_DEMAND_CONSTRAINT .. sum(location, woodSupply(location)) =G= sum(wood_type, demand(wood_type) + exportAmount(wood_type) - importAmount(wood_type));
+ WOOD_SUPPLY_CALC(location) .. totalWoodSupply(location) =E= woodYieldRota(location) * rotationIntensity(location) * landCoverArea('timberForest', location);
  
-* The sigmoid function here calculates the proportion of wood yield that is suitable for roundwood (maximum 85% with halfway point at 25 years). 
- ROUNDWOOD_DEMAND_CONSTRAINT .. sum(location, woodSupply(location) * 0.85 * sigmoid(0.2 * (1 / rotationIntensity(location) - 25))) =G= demand('roundwood') + exportAmount('roundwood') - importAmount('roundwood');
+ WOOD_SUPPLY_CONSTRAINT .. sum(wood_type, woodSupply(wood_type)) =E= sum(location, totalWoodSupply(location));
+
+ WOOD_DEMAND_CONSTRAINT(wood_type) .. woodSupply(wood_type) =G= demand(wood_type) + exportAmount(wood_type) - importAmount(wood_type);
+
+* The sigmoid function here calculates the proportion of wood yield that is suitable for roundwood (maximum 100% with halfway point at 25 years). 
+ ROUNDWOOD_DEMAND_CONSTRAINT .. sum(location, totalWoodSupply(location) * sigmoid(0.2 * (1 / rotationIntensity(location) - 25))) =G= woodSupply('roundwood');
                                                             
  FORESTRY_COST_CALC(location) .. forestryCost(location) =E= sum(managed_forest, landCoverArea(managed_forest, location) * forestBaseCost(managed_forest))
                                                             + forestManagementCost * rotationIntensity(location) * landCoverArea('timberForest', location)
-                                                            + sum(land_cover$[not sameAs(land_cover, 'carbonForest')], landCoverChange(land_cover, 'carbonForest', location) * forestManagementCost)
-                                                            + woodSupply(location) * vegClearingCostRate;
+                                                            + sum(land_cover$[not sameAs(land_cover, 'carbonForest')], landCoverChange(land_cover, 'carbonForest', location) * forestManagementCost);
 
 *********** Carbon ***********************************
                                        
@@ -335,9 +344,10 @@ $gdxin
 ************ Total cost ******************************
 
  COST_CALC .. total_cost =E= sum((crop, location), cropArea(crop, location) * unitCost(crop, location) * (1 - subsidyRate(crop))) * domesticPriceMarkup +
-                             sum(animal, animalProd(animal) * animalProdCost(animal) * (1 - subsidyRate(animal))) +
+                             sum(animal, animalProd(animal) * animalProdCost(animal) * (1 - subsidyRate(animal))) * domesticPriceMarkup +
                              sum(location, totalConversionCost(location)) +
                              sum(location, forestryCost(location)) +
+                             sum(wood_type, woodSupply(wood_type) * loggingCost(wood_type)) + 
                              sum(import_types, importPrices(import_types) * importAmount(import_types)) -
                              sum(import_types, exportPrices(import_types) * exportAmount(import_types)) +
                              sum(import_types, tradeAdjustmentCost(import_types));
@@ -382,7 +392,8 @@ $gdxin
  parameter carbonFlux(location);
  scalar netCarbonCredits;
  scalar totalWoodNetDemand;
- parameter woodSupplyP(wood_type);
+ scalar totalWoodProdCost;
+ scalar totalWoodSupplyP;
 
 * Production quantities based on smaller area (before unhandledCropArea adjustment applied)
  totalProd(crop) = sum(location, cropArea.l(crop, location) * yield.l(crop, location));
@@ -404,8 +415,10 @@ $gdxin
  
  netCarbonCredits = SUM(location, carbonCredits.L(location));
  
- totalWoodNetDemand = sum(wood_type, demand(wood_type) + exportAmount.L(wood_type) - importAmount.L(wood_type));
- woodSupplyP(wood_type) = sum(location, woodSupply.L(location)) * (demand(wood_type) + exportAmount.L(wood_type) - importAmount.L(wood_type)) / (totalWoodNetDemand + 1E-6);
+ totalWoodProdCost = sum(location, (forestBaseCost('timberForest') + forestManagementCost * rotationIntensity.L(location)) * landCoverArea.L('timberForest', location)
+                                    + totalWoodSupply.L(location) * vegClearingCostRate);
+                                    
+ totalWoodSupplyP = sum(location, totalWoodSupply.L(location));
 
  Scalar totalCostsLessLU;
 
diff --git a/GAMS/woodDemand.gms b/GAMS/woodDemand.gms
new file mode 100644
index 00000000..7765d761
--- /dev/null
+++ b/GAMS/woodDemand.gms
@@ -0,0 +1,121 @@
+$ondotl
+
+Set i(*);
+ALIAS (i,j);
+
+PARAMETER
+  alpha(i)     Parameter of MAIDADS
+  beta(i)      Parameter of MAIDADS
+  kappa        Parameter of MAIDADS
+  delta(i)     Parameter of MAIDADS
+  tau(i)       Parameter of MAIDADS
+  omega        Parameter of MAIDADS
+  previousU
+  previousSubs(i)
+  previousDisc(i)
+;
+
+$gdxin %gdx_parameters% 
+$load i, alpha, beta, kappa, delta, tau, omega
+$gdxin
+
+VARIABLE
+  u                Utility
+  error            Error term for NLS
+  ressq            Residual squared
+;
+
+POSITIVE VARIABLE
+  DiscretionaryC(i)  Discretionary consumption
+  SubsistenceC(i)    Subsistence consumption
+  w(i)               Budget share by commodity
+;
+
+PARAMETER
+  p(i)               Price,
+  m                  GDP per capita
+;
+
+$gdxin %gdx_prices_and_gdp% 
+*$gdxin "../../GAMS/PricesAndGdp.gdx" 
+$load p=price, m=gdp_pc, previousU, previousSubs, previousDisc
+$gdxin
+
+display p, m, alpha, beta, kappa, delta, tau, omega;
+
+w.up(j) = 1;
+
+EQUATIONS
+  EQ_w(i)      "Definition of budget share"
+  EQ_u         "Implicit definition of utility"
+  EQ_DiscretionaryC(i)
+  EQ_SubsistenceC(j)
+  EQ_u_NLS     "Relaxed constraint for NLS"
+  EQ_ressq_NLS
+;
+
+EQ_w(j)..
+  w(j) =e= (SubsistenceC(j) + DiscretionaryC(j)) * p(j) / m;
+
+EQ_u ..     sum(i, (alpha(i)+ beta(i)* exp(u)) / (1 + exp(u)) * log(DiscretionaryC(i))) - u =e= kappa;
+  
+EQ_u_NLS .. sum(i, (alpha(i)+ beta(i)* exp(u)) / (1 + exp(u)) * log(DiscretionaryC(i))) - u =e= kappa + error;
+
+EQ_DiscretionaryC(i)$p(i).. DiscretionaryC(i) =e= [(alpha(i) + beta(i) * exp(u))/(1 + exp(u))] / p(i) * [m - sum(j, p(j) * SubsistenceC(j))];
+
+EQ_SubsistenceC(j).. SubsistenceC(j) =e= (delta(j) + tau(j) * exp(omega * u)) / (1 + exp(omega * u));
+  
+EQ_ressq_NLS .. ressq =e= sqr(error);
+
+model MAIDADS_Sim_CNS "MAIDADS model for simulation" /
+      EQ_w
+      EQ_u
+      EQ_DiscretionaryC
+      EQ_SubsistenceC
+/ ;
+
+model MAIDADS_Sim_NLP /
+      EQ_w
+      EQ_u_NLS
+      EQ_DiscretionaryC
+      EQ_SubsistenceC
+      EQ_ressq_NLS
+/ ;
+
+MAIDADS_Sim_CNS.optfile = 1;
+option cns=path;
+
+Parameter minSpending;
+minSpending =  sum(i, p(i)*delta(i));
+
+Scalar ms 'model status', ss 'solve status';
+u = previousU;
+
+If(minSpending < m, 
+
+    SubsistenceC(i)  = previousSubs(i);
+    DiscretionaryC(i) = previousDisc(i);
+    DiscretionaryC.LO(i) = 1E-11;
+    SubsistenceC.LO(j) = 0;
+    w(j) = (SubsistenceC(j)+DiscretionaryC(j))*p(j)/m;
+
+*  Initial solution by least square. If no exact solution then go back to least square
+    solve MAIDADS_Sim_NLP using nlp minimising ressq;
+    solve MAIDADS_Sim_CNS using cns;
+    
+    ms=MAIDADS_Sim_CNS.modelstat;
+    ss=MAIDADS_Sim_CNS.solvestat;
+ 
+    if ((MAIDADS_Sim_CNS.modelstat ne 16),
+        solve MAIDADS_Sim_NLP using nlp minimising ressq;
+        ms=MAIDADS_Sim_NLP.modelstat;
+        ss=MAIDADS_Sim_NLP.solvestat;
+    );
+else
+    SubsistenceC(i)  = delta(i);
+    DiscretionaryC(i) = 0;
+)
+
+
+
+display SubsistenceC.l, DiscretionaryC.l;
diff --git a/data/wood_base_demand.csv b/data/wood_base_demand.csv
index f9d3861a..a526f1a3 100644
--- a/data/wood_base_demand.csv
+++ b/data/wood_base_demand.csv
@@ -2,21 +2,21 @@ Iso3,Item,DemandPc,Price,Production,NetImport
 AFG,Industrial roundwood,0.061364981,232.6481474,1.759918,0.427339667
 AFG,Wood fuel,0.052088804,437.5,1.856559,6.40E-05
 ALB,Industrial roundwood,0.104812015,259.195158,0.024,0.277791
-ALB,Wood fuel,0.409923519,75.41990271,1.185613333,-0.005298
+ALB,Wood fuel,0.407449817,75.41990271,1.206,-0.032807333
 DZA,Industrial roundwood,0.086277556,401.4192736,0.10232,3.446840667
 DZA,Wood fuel,0.209905615,155.2301323,8.634792,0
 AGO,Industrial roundwood,0.040504631,615.1216105,1.249327,-0.025737667
 AGO,Wood fuel,0.154821066,155.2301323,4.676932,0
-ARG,Industrial roundwood,0.333221162,719.5438835,13.792033,0.887897333
-ARG,Wood fuel,0.092690983,233.3765512,4.083585667,-1.20E-04
+ARG,Industrial roundwood,0.333311709,719.5438835,13.796022,0.887897333
+ARG,Wood fuel,0.092638563,233.3765512,4.087995,-0.006838667
 ARM,Industrial roundwood,0.076035597,401.9821841,0.005,0.211847667
-ARM,Wood fuel,0.542094813,671.8665638,1.546011667,1.00E-06
-AUS,Industrial roundwood,0.564707566,186.1466157,32.804804,-18.91845633
-AUS,Wood fuel,0.17065505,94.82618261,4.358941667,-0.162477
+ARM,Wood fuel,0.542093995,671.8665638,1.546,1.03E-05
+AUS,Industrial roundwood,0.567429855,186.1466157,32.871746,-18.91845633
+AUS,Wood fuel,0.168807765,94.82618261,4.399583,-0.248543667
 AUT,Industrial roundwood,2.635896207,314.0779761,23.369815,-0.180528667
-AUT,Wood fuel,0.812354409,174.2455104,6.713529667,0.433155
+AUT,Wood fuel,0.771324174,174.2455104,6.628713,0.157008333
 AZE,Industrial roundwood,0.138629768,186.1466157,0.0047,1.391519
-AZE,Wood fuel,0.041950771,179.245283,0.42251,0
+AZE,Wood fuel,0.041940643,179.245283,0.422266667,1.41E-04
 BHS,Industrial roundwood,0.171548627,514.8974566,0.015244,0.053207333
 BHS,Wood fuel,0.084654905,155.2301323,0.033779,0
 BHR,Industrial roundwood,0.223616418,379.7158663,0,0.325772
@@ -25,10 +25,10 @@ BGD,Industrial roundwood,0.015860532,564.9780857,0.474633333,2.091505
 BGD,Wood fuel,0.160719166,155.2301323,26.003391,0
 BRB,Industrial roundwood,0.162632931,569.328433,0.005627,0.039778
 BRB,Wood fuel,0.017110396,155.2301323,0.004777,0
-BLR,Industrial roundwood,0.507461158,186.1466157,13.592315,-8.665945
-BLR,Wood fuel,1.000829979,103.8910004,9.715933333,0
+BLR,Industrial roundwood,0.517453045,186.1466157,13.689315,-8.665945
+BLR,Wood fuel,1.000071145,103.8910004,10.0671,-0.358533333
 BEL,Industrial roundwood,0.695400441,427.4236307,5.291256667,2.625522
-BEL,Wood fuel,0.307165097,152.6299559,3.347776667,0.149141
+BEL,Wood fuel,0.264035771,152.6299559,1.55675,1.449162333
 BLZ,Industrial roundwood,0.223057276,387.0373602,0.040177,0.043401
 BLZ,Wood fuel,0.336275297,155.2301323,0.126,0
 BEN,Industrial roundwood,0.029279826,644.0340416,0.383855,-0.044303333
@@ -38,85 +38,85 @@ BTN,Wood fuel,6.870707202,155.2301323,5.195086,0
 BOL,Industrial roundwood,0.103898903,523.3847956,0.950954,0.237185333
 BOL,Wood fuel,0.215734763,155.2301323,2.467042,0
 BIH,Industrial roundwood,0.514208173,303.3461262,2.387453333,-0.618563333
-BIH,Wood fuel,0.287919252,80.07432963,1.86705,-0.8766
+BIH,Wood fuel,0.266073493,80.07432963,2.024633333,-1.109333333
 BWA,Industrial roundwood,0.086822186,394.0693943,0.086381,0.122152
-BWA,Wood fuel,0.291159833,671.8665638,0.699308333,1.10E-05
-BRA,Industrial roundwood,0.538669117,410.7055042,146.1522227,-33.83704
-BRA,Wood fuel,0.602476571,163.179539,125.6193533,0
-BRN,Industrial roundwood,0.2162364,485.696462,0.064464,0.028577333
-BRN,Wood fuel,0.028978299,542.5531915,0.012447667,2.10E-05
-BGR,Industrial roundwood,0.280399052,334.8167532,3.027789333,-1.013843333
-BGR,Wood fuel,0.416038652,125.1767767,3.158921667,-0.170754
+BWA,Wood fuel,0.291159139,671.8665638,0.6993,1.77E-05
+BRA,Industrial roundwood,0.543258776,410.7055042,147.1091893,-33.83704
+BRA,Wood fuel,0.598057153,163.179539,124.8398667,-0.141984
+BRN,Industrial roundwood,0.216738404,485.696462,0.06468,0.028577333
+BRN,Wood fuel,0.02860567,542.5531915,0.01251,-2.02E-04
+BGR,Industrial roundwood,0.290805885,334.8167532,3.102535667,-1.013843333
+BGR,Wood fuel,0.411314159,125.1767767,3.288240333,-0.334006
 BFA,Industrial roundwood,0.061035995,726.1572475,1.170897,0.039804333
 BFA,Wood fuel,0.707298973,155.2301323,14.029882,0
 BDI,Industrial roundwood,0.056972468,690.3158985,0.624821,0.010740667
 BDI,Wood fuel,0.537757159,155.2301323,5.999,0
 CPV,Industrial roundwood,0.029197657,581.2086296,0,0.016495333
-CPV,Wood fuel,0.338493635,188.5350318,0.191233333,0
+CPV,Wood fuel,0.336640977,188.5350318,0.186,0.004186667
 KHM,Industrial roundwood,0.026278452,642.7748624,0.379,0.037006
 KHM,Wood fuel,0.473782095,155.2301323,7.500297,0
 CMR,Industrial roundwood,0.074128749,382.3673683,3.826171,-2.017935
 CMR,Wood fuel,0.430358919,155.2301323,10.497823,0
-CAN,Industrial roundwood,2.381085117,330.4182836,145.7970067,-58.75799267
-CAN,Wood fuel,0.072269542,148.2216758,2.706625,-0.064859
+CAN,Industrial roundwood,2.408949892,330.4182836,146.8155853,-58.75799267
+CAN,Wood fuel,0.065853753,148.2216758,5.608314667,-3.201073667
 CAF,Industrial roundwood,0.100230997,252.067436,0.844713,-0.343884667
 CAF,Wood fuel,0.40026089,155.2301323,2,0
 TCD,Industrial roundwood,0.051152632,186.1466157,0.761,0.010682667
 TCD,Wood fuel,0.521895435,155.2301323,7.873254,0
-CHL,Industrial roundwood,1.524596852,313.9923096,45.855993,-17.85131833
-CHL,Wood fuel,0.884271329,409.8119379,16.242804,2.00E-06
+CHL,Industrial roundwood,1.526012313,313.9923096,45.881993,-17.85131833
+CHL,Wood fuel,0.882953699,409.8119379,16.225789,-0.007186
 CHN,Industrial roundwood,0.380318567,340.2357267,413.2903683,135.1446397
-CHN,Wood fuel,0.116250675,195.5528878,167.637227,0.001025
+CHN,Wood fuel,0.116037836,195.5528878,167.2932787,0.038050333
 COL,Industrial roundwood,0.080824976,645.0252696,2.722711,1.185311667
 COL,Wood fuel,0.146011913,155.2301323,7.05992,0
 COM,Industrial roundwood,0.038604949,240.8759124,0.024607,0.004797
 COM,Wood fuel,0.413476284,155.2301323,0.31493,0
 COG,Industrial roundwood,0.206886294,409.2371792,2.270123,-1.171072667
 COG,Wood fuel,0.279862546,155.2301323,1.486725,0
-CRI,Industrial roundwood,0.40726125,582.8118002,1.273937,0.759861333
-CRI,Wood fuel,0.665728177,186.9158879,3.324541333,0
+CRI,Industrial roundwood,0.408743075,582.8118002,1.281337,0.759861333
+CRI,Wood fuel,0.66423921,186.9158879,3.316963,1.43E-04
 CIV,Industrial roundwood,0.099660915,646.6391036,2.399259,0.077117
-CIV,Wood fuel,0.370727036,671.8665638,9.211832333,-1.00E-06
+CIV,Wood fuel,0.37072701,671.8665638,9.211829,1.67E-06
 HRV,Industrial roundwood,0.244755176,276.8192484,2.505453333,-1.479325333
-HRV,Wood fuel,0.413965413,98.9971765,2.419448333,-0.683912
+HRV,Wood fuel,0.412512887,98.9971765,2.837353333,-1.107906667
 CUB,Industrial roundwood,0.065095387,763.9545306,0.609989,0.127958667
 CUB,Wood fuel,0.100649192,155.2301323,1.141,0
 CYP,Industrial roundwood,0.180272117,471.4334348,0.005647,0.212216
-CYP,Wood fuel,0.019108449,158.0790705,0.020738,0.002355
-CZE,Industrial roundwood,0.820421021,200.142222,14.242888,-5.602784
-CZE,Wood fuel,0.245502211,111.7813025,2.767481667,-0.182023
+CYP,Wood fuel,0.017930151,158.0790705,0.013618,0.008051
+CZE,Industrial roundwood,0.83694319,200.142222,14.416888,-5.602784
+CZE,Wood fuel,0.238067584,111.7813025,3.072,-0.564837667
 PRK,Industrial roundwood,0.058949538,393.748614,1.497804,0.006371333
-PRK,Wood fuel,0.243322356,89.18705604,6.208731333,-4.00E-05
+PRK,Wood fuel,0.243273224,89.18705604,6.202463,0.004974667
 COD,Industrial roundwood,0.053979956,691.7105365,4.607489,-0.057881667
 COD,Wood fuel,1.003407995,155.2301323,84.57051,0
-DNK,Industrial roundwood,0.792819855,298.9214369,1.096372,3.452260667
-DNK,Wood fuel,1.172953672,156.8976415,6.663573333,0.065995
+DNK,Industrial roundwood,0.803277765,298.9214369,1.156372,3.452260667
+DNK,Wood fuel,1.012512831,156.8976415,2.3011,3.507973667
 DJI,Industrial roundwood,0.125131261,535.0548357,3.35E-16,0.130165667
 DJI,Wood fuel,0.379374621,155.2301323,0.394638,0
 DOM,Industrial roundwood,0.09640811,542.2620794,0.026,1.000480667
-DOM,Wood fuel,0.090504735,367.7777778,0.963626,0
+DOM,Wood fuel,0.090476559,367.7777778,0.962126,0.0012
 ECU,Industrial roundwood,0.132934985,498.005573,2.439851,-0.220243
 ECU,Wood fuel,0.301036345,42.79452514,5.026346,4.10E-05
 EGY,Industrial roundwood,0.075200077,340.8140531,0,7.654569667
-EGY,Wood fuel,0,122.4342491,0,0
+EGY,Wood fuel,0.174912844,122.4342491,0,17.804271
 SLV,Industrial roundwood,0.188665913,616.9634103,0.681985,0.500319
-SLV,Wood fuel,0.662736925,75.36231884,4.153143,0
+SLV,Wood fuel,0.662718574,75.36231884,4.152568,4.60E-04
 GNQ,Industrial roundwood,0.067350983,268.9414997,1.199999,-1.102293333
 GNQ,Wood fuel,0.308128385,155.2301323,0.447,0
 ERI,Industrial roundwood,0.007502945,778.0040733,0.02248,0.003007
 ERI,Wood fuel,0.294540987,155.2301323,1.000536,0
 EST,Industrial roundwood,2.065543925,195.3127731,5.623333333,-2.901878
-EST,Wood fuel,3.466373547,129.5851289,4.815465,-0.248348
+EST,Wood fuel,3.411874625,129.5851289,6.395106667,-1.899794667
 SWZ,Industrial roundwood,0.713861507,409.1565509,0.928724,-0.106791
 SWZ,Wood fuel,1.010709664,42.79452514,1.754,-0.590279
 ETH,Industrial roundwood,0.030015957,516.5323898,2.934818,0.312847
 ETH,Wood fuel,1.022406293,155.2301323,110.622265,0
 FJI,Industrial roundwood,0.6746636,223.0511184,0.799259,-0.179230333
 FJI,Wood fuel,0.040114513,186.5671642,0.037,-1.34E-04
-FIN,Industrial roundwood,4.707848747,397.7524628,49.92700067,-23.99551067
-FIN,Wood fuel,1.551410276,95.69019636,8.594816,-0.049431
+FIN,Industrial roundwood,4.728666422,397.7524628,50.04166733,-23.99551067
+FIN,Wood fuel,1.527964068,95.69019636,8.407757667,0.008482333
 FRA,Industrial roundwood,0.513675228,440.1393312,30.87954967,2.069678333
-FRA,Wood fuel,0.423646757,102.1863701,27.5162,-0.341766
+FRA,Wood fuel,0.415477025,102.1863701,26.78933333,-0.138939333
 PYF,Industrial roundwood,0.087887403,637.7218292,0,0.025966333
 PYF,Wood fuel,0.015647318,155.2301323,0.004623,0
 GAB,Industrial roundwood,0.71800559,577.9237165,2.3,-0.763313667
@@ -124,17 +124,17 @@ GAB,Wood fuel,0.499949771,155.2301323,1.07,0
 GMB,Industrial roundwood,0.068110759,344.6170278,0,1.71E-04
 GMB,Wood fuel,0.318158377,155.2301323,0.757593,0
 GEO,Industrial roundwood,0.156646694,266.6097117,0.2117,0.379155667
-GEO,Wood fuel,0.110074852,50.76322446,0.423174333,-0.007983
+GEO,Wood fuel,0.110074675,50.76322446,0.423171,-0.007980333
 DEU,Industrial roundwood,0.692885952,449.8246826,54.16052633,3.088741667
-DEU,Wood fuel,0.32791438,170.2376348,26.79832033,0.2954
+DEU,Wood fuel,0.317241056,170.2376348,25.626093,0.585750667
 GHA,Industrial roundwood,0.068870534,499.8257279,2.379684,-0.298260667
-GHA,Wood fuel,1.535604472,342.364532,46.40962967,-1.89E-04
-GRC,Industrial roundwood,0.206951005,513.9557666,0.459499667,1.753267667
-GRC,Wood fuel,0.133198993,88.72736508,1.253112,0.171082
+GHA,Wood fuel,1.535606843,342.364532,46.409988,-4.76E-04
+GRC,Industrial roundwood,0.208629389,513.9557666,0.477445333,1.753267667
+GRC,Wood fuel,0.129670636,88.72736508,1.136264667,0.250203333
 GRD,Industrial roundwood,0.090538451,474.361474,0,0.010948
-GRD,Wood fuel,0.096670087,155.2301323,0,1.19E-05
-GTM,Industrial roundwood,0.08954411,515.4603314,0.518534,0.965993
-GTM,Wood fuel,1.248452992,671.8665638,20.69780233,-4.60E-05
+GRD,Wood fuel,0.096643878,155.2301323,0,1.19E-05
+GTM,Industrial roundwood,0.091166612,515.4603314,0.545433,0.965993
+GTM,Wood fuel,1.246790279,671.8665638,20.66757,0.002620667
 GIN,Industrial roundwood,0.051654241,607.0467934,0.650867,-0.018578333
 GIN,Wood fuel,1.005045998,155.2301323,12.302556,0
 GNB,Industrial roundwood,0.07045989,597.3705834,0.131863,5.89E-04
@@ -143,132 +143,132 @@ GUY,Industrial roundwood,0.147600443,309.8739591,0.298226,-0.185569667
 GUY,Wood fuel,1.076539596,45.40833616,0.827573,-0.005902
 HTI,Industrial roundwood,0.035300529,364.948498,0.237698,0.14579082
 HTI,Wood fuel,0.19413197,155.2301323,2.108961,0
-HND,Industrial roundwood,0.110306786,522.7832654,1.035334333,0.026571667
-HND,Wood fuel,0.861631191,458.5987261,8.295100333,-3.13E-04
-HUN,Industrial roundwood,0.303255582,371.2037134,2.599337667,0.369213333
-HUN,Wood fuel,0.303122847,61.32575889,2.987233667,-0.019982
+HND,Industrial roundwood,0.110474685,522.7832654,1.036950667,0.026571667
+HND,Wood fuel,0.861463257,458.5987261,8.293482333,-3.12E-04
+HUN,Industrial roundwood,0.304034488,371.2037134,2.606962333,0.369213333
+HUN,Wood fuel,0.299847587,61.32575889,2.857425667,0.077764667
 ISL,Industrial roundwood,0.465369931,451.6214682,0.002,0.157916
-ISL,Wood fuel,2.13E-04,259.6076524,9.73E-04,-9.00E-04
+ISL,Wood fuel,2.29E-04,259.6076524,1.00E-03,-9.21E-04
 IND,Industrial roundwood,0.042829236,453.4414156,45.138469,12.86069767
-IND,Wood fuel,0.224809878,423.4972678,304.436562,4.00E-06
-IDN,Industrial roundwood,0.21801864,505.8704734,72.60085,-14.93517
-IDN,Wood fuel,0.167180849,109.8107923,44.21983767,-6.95E-04
+IND,Wood fuel,0.224809803,423.4972678,304.436052,4.12E-04
+IDN,Industrial roundwood,0.218207677,505.8704734,72.65085,-14.93517
+IDN,Wood fuel,0.16717388,109.8107923,44.410621,-0.193321667
 IRN,Industrial roundwood,0.072257569,428.2209306,2.3495,3.756631333
 IRN,Wood fuel,3.55E-04,432.4324324,0.03,2.90E-05
 IRQ,Industrial roundwood,0.021377557,359.8535286,0.038957,0.808046667
 IRQ,Wood fuel,0.002978206,155.2301323,0.118,0
-IRL,Industrial roundwood,0.627525975,353.7462807,3.0749,-0.080437667
-IRL,Wood fuel,0.052554206,345.1415831,0.24834,0.002441
+IRL,Industrial roundwood,0.630669407,353.7462807,3.0899,-0.080437667
+IRL,Wood fuel,0.049103137,345.1415831,0.226,0.008313
 ISR,Industrial roundwood,0.244394455,562.6013967,0.133,1.897736333
-ISR,Wood fuel,0.001952962,163.8732227,0.006096667,0.010131
+ISR,Wood fuel,0.001854358,163.8732227,0.002,0.013408333
 ITA,Industrial roundwood,0.488195549,481.0569987,11.22522,18.06848133
-ITA,Wood fuel,0.259595127,159.054582,14.68933833,0.887416
+ITA,Wood fuel,0.246761529,159.054582,11.43233333,3.374353333
 JAM,Industrial roundwood,0.148071222,387.9803554,0.1508,0.265039667
-JAM,Wood fuel,0.183154606,250,0.514367,0
+JAM,Wood fuel,0.18315247,250,0.514337,2.40E-05
 JPN,Industrial roundwood,0.612267949,286.1958782,41.87333333,35.67803867
-JPN,Wood fuel,0.056197882,176.0801255,7.113706667,0.004456
+JPN,Wood fuel,0.054497763,176.0801255,6.206333333,0.696488
 JOR,Industrial roundwood,0.091933722,520.0170541,0.00317,0.935968
-JOR,Wood fuel,0.034973928,118.3098592,0.356935,3.37E-04
+JOR,Wood fuel,0.034973341,118.3098592,0.356905,3.61E-04
 KAZ,Industrial roundwood,0.11120304,393.9196309,0.38763,1.649033
-KAZ,Wood fuel,0.013366429,226.5960966,0.242951667,0.001852
+KAZ,Wood fuel,0.013345117,226.5960966,0.241,0.003413333
 KEN,Industrial roundwood,0.035190219,648.1095064,1.030307,0.692188667
 KEN,Wood fuel,0.53934637,155.2301323,26.4,0
 KWT,Industrial roundwood,0.191875738,478.4055968,0,0.791469
-KWT,Wood fuel,0.005032117,429.1417166,0.020342,4.15E-04
+KWT,Wood fuel,0.005026784,429.1417166,0.020232,5.03E-04
 KGZ,Industrial roundwood,0.093243151,186.1466157,0.1346,0.436165667
-KGZ,Wood fuel,0.006251435,147,0.038266667,0
+KGZ,Wood fuel,0.00619698,147,0.0366,0.001333333
 LAO,Industrial roundwood,0.164878539,679.9597317,1.431971,-0.278164667
 LAO,Wood fuel,0.830076436,155.2301323,5.808806,0
 LVA,Industrial roundwood,1.884616749,186.1466157,9.971408,-6.287242333
-LVA,Wood fuel,1.061910082,122.0631631,2.403896667,-0.328009
+LVA,Wood fuel,1.041049615,122.0631631,4.282666667,-2.247558333
 LBN,Industrial roundwood,0.155981889,450.5480455,0.0551,0.897832667
 LBN,Wood fuel,0.003256372,109.3375898,0.018641,0.001253
 LSO,Industrial roundwood,0.024534591,391.0704568,0.005,0.0482552
-LSO,Wood fuel,0.985255344,73.04347826,2.138062,5.50E-04
+LSO,Wood fuel,0.985163205,73.04347826,2.137062,0.00135
 LBR,Industrial roundwood,0.071065157,288.0198593,0.463375,-0.122501667
 LBR,Wood fuel,1.850694998,155.2301323,8.877101,0
 LBY,Industrial roundwood,0.035830874,405.8570299,0.093584,0.134954667
 LBY,Wood fuel,0.161714298,155.2301323,1.031456,0
 LTU,Industrial roundwood,1.602304739,188.8545765,4.1476,0.506214
-LTU,Wood fuel,0.655936236,142.3327048,2.061795,-0.156661
+LTU,Wood fuel,0.652713939,142.3327048,2.479,-0.583225
 LUX,Industrial roundwood,2.194882855,186.1466157,0.98929,0.319481333
-LUX,Wood fuel,0.319296933,146.9387899,0.178888333,0.011503
+LUX,Wood fuel,0.282717546,146.9387899,0.12983,0.038749667
 MDG,Industrial roundwood,0.007420267,446.9797387,0.173631,0.020554
-MDG,Wood fuel,0.55098022,420.6008584,14.418907,-7.00E-06
+MDG,Wood fuel,0.550974373,420.6008584,14.418142,6.05E-04
 MWI,Industrial roundwood,0.079641595,450.2371955,1.426367,-0.002282333
 MWI,Wood fuel,0.327133626,155.2301323,5.849531,0
-MYS,Industrial roundwood,0.23285057,374.6879019,12.790607,-5.345022333
-MYS,Wood fuel,0.078442151,145.5787262,2.511078,-0.002827
+MYS,Industrial roundwood,0.239261668,374.6879019,12.995607,-5.345022333
+MYS,Wood fuel,0.07833335,145.5787262,3.313683,-0.808911
 MDV,Industrial roundwood,0.242448809,604.2052909,0,0.114543
 MDV,Wood fuel,0.03597267,88.60759494,0.016363,6.32E-04
 MLI,Industrial roundwood,0.041633346,757.125704,0.816947,-0.012950667
 MLI,Wood fuel,0.296773582,155.2301323,5.7311,0
 MLT,Industrial roundwood,0.196863241,684.8091007,0,0.094395333
-MLT,Wood fuel,0.007503001,197.1094663,0.002576667,0.001021
+MLT,Wood fuel,0.006428264,197.1094663,0,0.003082333
 MRT,Industrial roundwood,0.011927361,592.1605226,0.024794,0.024824
 MRT,Wood fuel,0.511716184,155.2301323,2.128747,0
 MUS,Industrial roundwood,0.121051237,528.0239852,0.00148,0.15525
-MUS,Wood fuel,0.004079323,461.5384615,0.005206667,7.50E-05
-MEX,Industrial roundwood,0.153328851,557.0665019,7.942333333,10.892469
-MEX,Wood fuel,0.314999952,121.372494,38.70979633,-0.015436
-MNG,Industrial roundwood,0.083573049,307.4291258,0.122701667,0.136043
-MNG,Wood fuel,0.204610205,191.7808219,0.633333333,1.46E-04
+MUS,Wood fuel,0.004075204,461.5384615,0.00518,9.63E-05
+MEX,Industrial roundwood,0.153339706,557.0665019,7.943666667,10.892469
+MEX,Wood fuel,0.314965788,121.372494,38.69414633,-0.003982667
+MNG,Industrial roundwood,0.085726344,307.4291258,0.129368333,0.136043
+MNG,Wood fuel,0.20245691,191.7808219,0.626666667,1.46E-04
 MNE,Industrial roundwood,0.281400443,186.1466157,0.4654,-0.287431667
-MNE,Wood fuel,1.354872731,151.1445072,0.863085,-0.006212
+MNE,Wood fuel,1.329546928,151.1445072,0.896333333,-0.055477333
 MAR,Industrial roundwood,0.072345906,459.2923085,0.303066667,2.267247
-MAR,Wood fuel,0.186966791,229.1057861,6.642659667,-8.20E-05
+MAR,Wood fuel,0.18693689,229.1057861,6.644014667,-0.002499333
 MOZ,Industrial roundwood,0.030965231,286.7244727,1.98301,-1.098350667
 MOZ,Wood fuel,0.585383697,352.9411765,16.724,8.50E-05
 MMR,Industrial roundwood,0.093008146,711.6701717,4.359995,0.503246667
 MMR,Wood fuel,0.732209117,155.2301323,38.286,0
 NAM,Industrial roundwood,0.040414306,462.7962352,0.002,0.093561
-NAM,Wood fuel,0.623982146,67.35655548,1.485733,-0.010306
+NAM,Wood fuel,0.623981723,67.35655548,1.485728,-0.010302
 NPL,Industrial roundwood,0.054253127,553.7259253,1.292142,0.236897
 NPL,Wood fuel,0.425505863,155.2301323,11.992213,0
 NLD,Industrial roundwood,0.321438195,420.7972245,1.250333333,4.280717333
-NLD,Wood fuel,0.150617201,120.9781988,2.9215,-0.3298
+NLD,Wood fuel,0.143765417,120.9781988,2.6844,-0.2106
 NCL,Industrial roundwood,0.164183216,641.4735789,0.014179,0.032506333
 NCL,Wood fuel,0.044906084,155.2301323,0.012769,0
-NZL,Industrial roundwood,2.301762668,193.0005494,34.34311267,-23.418367
-NZL,Wood fuel,0.017654141,488.299532,0.083745,4.60E-05
+NZL,Industrial roundwood,2.305274211,193.0005494,34.35977933,-23.418367
+NZL,Wood fuel,0.014125251,488.299532,0.066666667,3.75E-04
 NIC,Industrial roundwood,0.044222604,571.1260766,0.133862,0.152724
 NIC,Wood fuel,0.952069213,155.2301323,6.169915,0
 NER,Industrial roundwood,0.034609058,665.5691348,0.699618,0.052711
 NER,Wood fuel,0.525924465,155.2301323,11.432505,0
 NGA,Industrial roundwood,0.054587527,691.8018481,10.020922,0.541541
-NGA,Wood fuel,0.340528707,292.1348315,65.891282,-3.71E-04
+NGA,Wood fuel,0.340528273,292.1348315,65.890862,-3.50E-05
 MKD,Industrial roundwood,0.185754057,323.5045202,0.086138,0.306170667
-MKD,Wood fuel,0.387347128,162.6256833,0.8029,0.015169
-NOR,Industrial roundwood,1.077754315,242.1695881,9.818218667,-4.130486667
-NOR,Wood fuel,0.352704518,93.80841079,1.77702,0.08434
+MKD,Wood fuel,0.37637164,162.6256833,0.687,0.107889
+NOR,Industrial roundwood,1.083803262,242.1695881,9.850141333,-4.130486667
+NOR,Wood fuel,0.350846782,93.80841079,1.855690667,-0.004134667
 OMN,Industrial roundwood,0.165257404,411.81391,2.33E-16,0.750575
-OMN,Wood fuel,0.012156049,232.1201862,0.055149,6.20E-05
+OMN,Wood fuel,0.011827108,232.1201862,0.047679,0.006038
 PAK,Industrial roundwood,0.026243484,606.609618,3.852254,1.826302
-PAK,Wood fuel,0.136488286,671.8665638,29.53338733,-9.90E-05
+PAK,Wood fuel,0.136488251,671.8665638,29.533349,-6.83E-05
 PAN,Industrial roundwood,0.118628872,521.6962549,0.379088,0.106823333
-PAN,Wood fuel,0.249306143,671.8665638,1.021173667,0
+PAN,Wood fuel,0.249248445,671.8665638,1.019992,9.45E-04
 PNG,Industrial roundwood,0.096207675,233.1613345,4.071959,-3.195045667
 PNG,Wood fuel,0.607034979,155.2301323,5.533,0
 PRY,Industrial roundwood,0.65567838,805.0544871,4.043939,0.123162
 PRY,Wood fuel,1.157264275,82.31707317,7.35521,-3.28E-04
 PER,Industrial roundwood,0.074824341,546.2745258,1.045122,1.319737667
-PER,Wood fuel,0.228213872,155.599886,7.212810333,0
+PER,Wood fuel,0.228176864,155.599886,7.206962,0.004678667
 PHL,Industrial roundwood,0.067083695,450.5383423,3.696289,3.464124
 PHL,Wood fuel,0.10871913,671.8665638,11.604495,2.20E-05
-POL,Industrial roundwood,1.057048203,364.5040883,36.17027833,4.560761333
-POL,Wood fuel,0.170006582,134.1546854,6.662939667,-0.112108
-PRT,Industrial roundwood,0.872893506,367.5679896,9.290991333,-0.293615333
-PRT,Wood fuel,0.14051226,135.7487521,1.452878333,-0.004544
+POL,Industrial roundwood,1.068527597,364.5040883,36.61261167,4.560761333
+POL,Wood fuel,0.162663611,134.1546854,7.017546333,-0.74966
+PRT,Industrial roundwood,0.895861116,367.5679896,9.527730667,-0.293615333
+PRT,Wood fuel,0.132649497,135.7487521,1.994607333,-0.627318667
 QAT,Industrial roundwood,0.19452839,375.4338563,0,0.527513333
-QAT,Wood fuel,0.007463432,361.7280725,0.014218,0.006021
+QAT,Wood fuel,0.00679228,361.7280725,0.005118,0.013301
 KOR,Industrial roundwood,0.440633634,359.3880185,8.399666667,14.298094
-KOR,Wood fuel,0.092449883,115.8969093,4.76208,1.65E-04
-MDA,Industrial roundwood,0.136204533,264.0182288,0.018377,0.414822333
-MDA,Wood fuel,0.395402493,118.1947484,1.25755,3.00E-05
+KOR,Wood fuel,0.075098154,115.8969093,0.383666667,3.484762333
+MDA,Industrial roundwood,0.137227116,264.0182288,0.021629333,0.414822333
+MDA,Wood fuel,0.393081793,118.1947484,1.244651667,0.005547333
 ROU,Industrial roundwood,0.646271943,307.0138832,13.478473,-0.747657
-ROU,Wood fuel,0.31793599,88.12299391,5.984801333,0.278173
-RUS,Industrial roundwood,0.905917618,186.1466157,193.8481203,-62.08010533
-RUS,Wood fuel,0.108671207,97.02948747,15.89027367,-0.083771
+ROU,Wood fuel,0.30706309,88.12299391,5.980549667,0.068241
+RUS,Industrial roundwood,0.911089981,186.1466157,194.6004537,-62.08010533
+RUS,Wood fuel,0.107155982,97.02948747,17.79764033,-2.211531
 RWA,Industrial roundwood,0.101551369,688.8615474,1.211735,0.030272667
 RWA,Wood fuel,0.408819412,155.2301323,5,0
 LCA,Industrial roundwood,0.188442282,388.6935894,0,0.033385
@@ -280,29 +280,29 @@ WSM,Wood fuel,0.337138178,155.2301323,0.07,0
 STP,Industrial roundwood,0.135539041,640.427971,0.027196,0.001001
 STP,Wood fuel,0.543867408,155.2301323,0.113144,0
 SAU,Industrial roundwood,0.141646352,407.7914854,0,4.843331
-SAU,Wood fuel,0.009849963,451.6108059,0.323073,0.013728
+SAU,Wood fuel,0.009684345,451.6108059,0.294758,0.03638
 SEN,Industrial roundwood,0.064200243,609.1055743,0.807464,0.16567
 SEN,Wood fuel,0.368391889,155.2301323,5.584008,0
 SRB,Industrial roundwood,0.269451753,510.6031061,1.261,0.750425
-SRB,Wood fuel,0.937233195,128.0647059,7.024333333,-0.028
+SRB,Wood fuel,0.921470495,128.0647059,6.872,0.006666667
 SLE,Industrial roundwood,0.009375759,651.7994041,0.123578,-0.051595
 SLE,Wood fuel,0.766034544,155.2301323,5.88128,0
 SGP,Industrial roundwood,0.176252284,652.961782,0.017,0.999004
-SGP,Wood fuel,0.005899687,439.9579114,0.036273667,-0.002265
-SVK,Industrial roundwood,0.880863151,261.4798926,7.669163333,-2.877781333
-SVK,Wood fuel,0.135636472,94.37102321,0.690997333,0.046786
-SVN,Industrial roundwood,0.524427911,260.2205337,2.950512,-1.850056667
-SVN,Wood fuel,0.432448116,120.3074514,1.221569667,-0.314124
+SGP,Wood fuel,0.00565416,439.9579114,0.029197,0.003396333
+SVK,Industrial roundwood,0.891219653,261.4798926,7.725496667,-2.877781333
+SVK,Wood fuel,0.131963714,94.37102321,0.816442333,-0.098636667
+SVN,Industrial roundwood,0.543490126,260.2205337,2.990512,-1.850056667
+SVN,Wood fuel,0.415032241,120.3074514,1.198843,-0.327942667
 SLB,Industrial roundwood,0.233115404,188.4968102,3.205947,-3.055906
 SLB,Wood fuel,0.208683817,155.2301323,0.134316,0
 SOM,Industrial roundwood,0.015122533,328.1468456,0.107405,0.117379667
 SOM,Wood fuel,1.023012373,155.2301323,15.206282,0
-ZAF,Industrial roundwood,0.153817562,413.9409757,12.872552,-4.160139333
-ZAF,Wood fuel,0.223021987,42.79452514,12.072929,0.559306
+ZAF,Industrial roundwood,0.153905837,413.9409757,12.877552,-4.160139333
+ZAF,Wood fuel,0.222855448,42.79452514,12.045764,0.577038
 SSD,Industrial roundwood,0.068110759,498.5132515,0,7.12E-04
 SSD,Wood fuel,0.439378936,155.2301323,4.683,0
 ESP,Industrial roundwood,0.284453438,481.597169,13.44831,-0.197282667
-ESP,Wood fuel,0.06273166,206.7196727,2.940442333,-0.01814
+ESP,Wood fuel,0.059847211,206.7196727,3.000594,-0.212661333
 LKA,Industrial roundwood,0.079634641,527.9612805,0.72012,0.992567333
 LKA,Wood fuel,0.217712871,155.2301323,4.68231,0
 SDN,Industrial roundwood,0.036143426,449.8005611,1.156228,0.314080363
@@ -310,54 +310,54 @@ SDN,Wood fuel,0.378983903,155.2301323,15.417,0
 SUR,Industrial roundwood,0.655026417,186.1466157,0.862857,-0.477990333
 SUR,Wood fuel,0.149772193,155.2301323,0.088,0
 SWE,Industrial roundwood,3.76681222,381.378774,59.82166667,-21.93435367
-SWE,Wood fuel,0.970182541,123.7809717,9.618308333,0.139972
+SWE,Wood fuel,0.910165613,123.7809717,8.921333333,0.233285333
 CHE,Industrial roundwood,0.360729245,468.4353241,2.759958667,0.288812
-CHE,Wood fuel,0.255816383,221.5372512,2.152435,0.009645
+CHE,Wood fuel,0.243802569,221.5372512,1.92475,0.135793
 SYR,Industrial roundwood,0.021419745,428.4767047,0.029846,0.376773
 SYR,Wood fuel,0.001792832,155.2301323,0.034034,0
 TWN,Industrial roundwood,0.270614177,415.8577448,1.064658,5.339433
-TWN,Wood fuel,0.002277707,186.9947502,0.05267,0.001232
+TWN,Wood fuel,0.001873355,186.9947502,0.004825,0.039508
 TJK,Industrial roundwood,0.093703508,186.1466157,0,0.836353
 TJK,Wood fuel,0.411628448,155.2301323,3.674,0
 THA,Industrial roundwood,0.164506739,307.8520104,22.70513333,-11.04190133
-THA,Wood fuel,0.262610844,91.60265493,18.61874767,-1.11E-04
+THA,Wood fuel,0.262573744,91.60265493,18.77892933,-0.162923
 TLS,Industrial roundwood,0.007585587,486.4086984,3.00E-04,0.009130667
 TLS,Wood fuel,0.071485278,155.2301323,0.088873,0
 TGO,Industrial roundwood,0.028124381,465.5408044,0.243714,-0.022859
 TGO,Wood fuel,0.563366292,155.2301323,4.424,0
 TTO,Industrial roundwood,0.234250886,585.9217604,0.162977,0.183388
 TTO,Wood fuel,0.02079863,155.2301323,0.030753,0
-TUN,Industrial roundwood,0.097670059,464.7625782,0.281492,0.872132333
-TUN,Wood fuel,0.305674477,193.5594774,3.610456667,0
-TUR,Industrial roundwood,0.325918846,474.9062875,19.32733333,7.427288
-TUR,Wood fuel,0.066024016,80.14842301,5.3469,0.073
+TUN,Industrial roundwood,0.09792405,464.7625782,0.284492,0.872132333
+TUN,Wood fuel,0.305666745,193.5594774,3.622,-0.011634667
+TUR,Industrial roundwood,0.325935088,474.9062875,19.32866667,7.427288
+TUR,Wood fuel,0.066014514,80.14842301,5.348333333,0.070786667
 TKM,Industrial roundwood,0.085518976,292.3832362,0,0.51041
-TKM,Wood fuel,0.096670087,155.2301323,0,5.95E-04
+TKM,Wood fuel,0.096643878,155.2301323,0,5.95E-04
 UGA,Industrial roundwood,0.137131441,605.7507987,5.329952,0.172733
 UGA,Wood fuel,1.078885272,155.2301323,43.292521,0
 UKR,Industrial roundwood,0.085957713,244.2549972,7.5945,-3.755864333
-UKR,Wood fuel,0.251701995,47.32443773,12.72301167,-1.482691
+UKR,Wood fuel,0.246753139,47.32443773,12.966,-1.946681667
 ARE,Industrial roundwood,0.51095237,406.3544718,0,4.633467333
-ARE,Wood fuel,0.00299233,281.5646785,0.023019333,0.004116
+ARE,Wood fuel,0.002899405,281.5646785,0.018806,0.007486667
 GBR,Industrial roundwood,0.468098889,441.8867194,10.56547267,20.35938867
-GBR,Wood fuel,0.210086786,176.9902048,13.83648833,0.042854
+GBR,Wood fuel,0.174545052,176.9902048,2.478225333,9.053059333
 TZA,Industrial roundwood,0.051448173,651.2561596,2.822098,0.072738
 TZA,Wood fuel,0.436710452,155.2301323,24.572401,0
-USA,Industrial roundwood,1.12620949,403.0884476,363.7313327,7.682681333
-USA,Wood fuel,0.20462145,129.2673887,67.76436,-0.282
-URY,Industrial roundwood,1.995259774,350.5008913,13.31821433,-6.490036333
-URY,Wood fuel,0.750580036,141.8137553,2.568635,0
+USA,Industrial roundwood,1.133201691,403.0884476,366.0372993,7.682681333
+USA,Wood fuel,0.20256296,129.2673887,73.59386667,-6.790378667
+URY,Industrial roundwood,1.995357178,350.5008913,13.31854767,-6.490036333
+URY,Wood fuel,0.750433055,141.8137553,2.567453333,6.79E-04
 UZB,Industrial roundwood,0.106403718,186.1466157,0.159887333,3.239252
-UZB,Wood fuel,7.52E-04,277.4489796,0.024078333,-5.10E-05
+UZB,Wood fuel,7.52E-04,277.4489796,0.024,1.17E-05
 VUT,Industrial roundwood,0.139046326,567.3643374,0.037298,0.003058667
 VUT,Wood fuel,0.313534708,155.2301323,0.091,0
 VEN,Industrial roundwood,0.044456611,496.8107318,1.51088,-0.152133333
-VEN,Wood fuel,0.140059321,200,4.280693667,0
-VNM,Industrial roundwood,0.228996126,248.863311,27.69273433,-6.159530667
-VNM,Wood fuel,0.213909366,109.7350165,20.13554167,-0.020992
+VEN,Wood fuel,0.140059375,200,4.280702,-6.67E-06
+VNM,Industrial roundwood,0.235508021,248.863311,28.30506767,-6.159530667
+VNM,Wood fuel,0.213621081,109.7350165,22.44933333,-2.361892
 YEM,Industrial roundwood,0.016791374,414.51696,0.002199,0.502119667
 YEM,Wood fuel,0.018530359,155.2301323,0.556548,0
-ZMB,Industrial roundwood,0.149095519,919.9304233,2.572603667,0.006458667
-ZMB,Wood fuel,1.334909541,671.8665638,23.09133333,4.00E-06
+ZMB,Industrial roundwood,0.149769968,919.9304233,2.584270333,0.006458667
+ZMB,Wood fuel,1.334235092,671.8665638,23.07966667,4.00E-06
 ZWE,Industrial roundwood,0.045526749,526.1956602,0.563978,0.107591667
 ZWE,Wood fuel,0.625982833,155.2301323,9.233936,0
\ No newline at end of file
diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index 1c84687c..2d619343 100755
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -580,17 +580,14 @@ public class ModelConfig {
 	public static final String WOOD_DEMAND_FILENAME = getProperty("WOOD_DEMAND_FILENAME", "wood_base_demand.csv");
 	public static final String WOOD_DEMAND_FILE = getProperty("WOOD_DEMAND_FILE", DATA_DIR + File.separator + WOOD_DEMAND_FILENAME);
 	public static final double INIT_WOOD_STOCK = getDoubleProperty("INIT_WOOD_STOCK", 600.0); // MtC-eq
-	public static final double IND_ROUNDWOOD_DEMAND_ELASTICITY = getDoubleProperty("IND_ROUNDWOOD_DEMAND_ELASTICITY",  0.3123881); // fitted to FAO data
-	public static final double FUELWOOD_DEMAND_ELASTICITY = getDoubleProperty("FUELDWOOD_DEMAND_ELASTICITY", -0.3598551);
 	public static final double WOOD_BIOMASS_CONVERSION_FACTOR = getDoubleProperty("WOOD_BIOMASS_CONVERSION_FACTOR", 0.3); // m3 to tC-eq p.16 [https://doi.org/10.5194/gmd-13-5425-2020]
 	public static final double VEGETATION_CLEARING_COST = getDoubleProperty("VEGETATION_CLEARING_COST", 0.08); //$1000/tC
-	public static final double FOREST_MANAGEMENT_COST = IS_FORESTRY_ON ? getDoubleProperty("FOREST_MANAGEMENT_COST", 2.5) : 0.0; // establishment, management etc. $1000/ha
-	public static final double FOREST_BASE_COST = getDoubleProperty("FOREST_BASE_COST", 0.3); // $1000/ha
-	public static final double WOOD_TRADE_BARRIER = getDoubleProperty("WOOD_TRADE_BARRIER", 0.05); //$1000/tC
+	public static final double FOREST_MANAGEMENT_COST = IS_FORESTRY_ON ? getDoubleProperty("FOREST_MANAGEMENT_COST", 2.0) : 0.0; // establishment, management etc. $1000/ha
+	public static final double FOREST_BASE_COST = getDoubleProperty("FOREST_BASE_COST", 0.12); // $1000/ha
+	public static final double WOOD_TRADE_BARRIER = getDoubleProperty("WOOD_TRADE_BARRIER", 0.1); //$1000/tC
 	public static final double INIT_ROUNDWOOD_PRICE = IS_FORESTRY_ON ? getDoubleProperty("INIT_ROUNDWOOD_PRICE", 0.1) : 0.0; // $1000/tC-eq
 	public static final double INIT_FUELWOOD_PRICE = IS_FORESTRY_ON ? getDoubleProperty("INIT_FUELWOOD_PRICE", 0.04) : 0.0; // $1000/tC-eq
 	public static final int CARBON_WOOD_MAX_TIME = getIntProperty("CARBON_WOOD_MAX_TIME", 160); // upper data limit, years
-	public static final int LAND_AGE_GROUP_SIZE = getIntProperty("LAND_AGE_GROUP_SIZE", 5); // grouping size for land cover age
 	
 	// Carbon
 	public static final boolean IS_CARBON_ON = getBooleanProperty("IS_CARBON_ON", false);
diff --git a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
index 45804f90..810bae54 100644
--- a/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
+++ b/src/ac/ed/lurg/country/gams/GamsLocationOptimiser.java
@@ -131,6 +131,7 @@ public class GamsLocationOptimiser {
 		GAMSParameter prevLandCoverP = inDB.addParameter("previousLandCoverArea", 2);
 		GAMSParameter maxCroplandAreaP = inDB.addParameter("maxCroplandArea", 1);
 		GAMSParameter prevRotaIntP = inDB.addParameter("previousRotationIntensity", 1);
+		GAMSParameter minRotaIntP = inDB.addParameter("minRotationIntensity", 1);
 		
 		double totalAgriLand = 0;
 		double totalSuitable = 0;
@@ -200,6 +201,8 @@ public class GamsLocationOptimiser {
 
 			setGamsParamValue(maxCroplandAreaP.addRecord(locString), landUseItem.getMaxCroplandArea(), 6);
 			setGamsParamValue(prevRotaIntP.addRecord(locString), landUseItem.getForestRotationIntensity(), 6);
+			double minRotaIntensity = ModelConfig.IS_CALIBRATION_RUN ? 1.0 / 160 :  1 / ((1 / landUseItem.getForestRotationIntensity()) + 1);
+			setGamsParamValue(minRotaIntP.addRecord(locString), minRotaIntensity, 6);
 		}
 		
 		if (DEBUG) LogWriter.println(String.format("  Total agricultural %.1f,\t suitable %.1f", totalAgriLand, totalSuitable));
@@ -640,18 +643,28 @@ public class GamsLocationOptimiser {
 			List<LandCoverChangeItem> changesList = landCoverChanges.computeIfAbsent(locId, k -> new ArrayList<>());
 			changesList.add(new LandCoverChangeItem(fromLc, toLc, change));
 		}
+
+		// Wood production cost
+		GAMSParameter totalWoodProdCostP = outDB.getParameter("totalWoodProdCost");
+		GAMSParameter totalWoodSupplyP = outDB.getParameter("totalWoodSupplyP");
+		double totalWoodProdCost = totalWoodProdCostP.getFirstRecord().getValue();
+		double totalWoodSupply = totalWoodSupplyP.getFirstRecord().getValue();
 		
 		// Wood production
 		Map<WoodType, WoodUsageData> newWoodUsageMap = new HashMap<>();
-		/*
-		GAMSVariable varWoodSupplyRota = outDB.getVariable("woodSupply");
-		for (GAMSVariableRecord rec : varWoodSupplyRota) {
-			WoodType wType = WoodType.getForName(rec.getKey(0));
-			double supply = rec.getLevel();
-			double netImports = getParmValue(parmNetImports, wType.getName());
-			newWoodUsageMap.put(wType, new WoodUsageData(supply, netImports));
+		double totalWoodProd = 0;
+
+		GAMSVariable varWoodSupply = outDB.getVariable("woodSupply");
+		for (WoodType wType : WoodType.values()) {
+			double netImports = varNetImports.findRecord(wType.getName()).getLevel();
+			double supply = varWoodSupply.findRecord(wType.getName()).getLevel();
+			double woodProdCost = supply > 0 ? supply / totalWoodProd * totalWoodProdCost : 0;
+			WoodUsageData woodUsageData = new WoodUsageData(supply, netImports, woodProdCost);
+			newWoodUsageMap.put(wType, woodUsageData);
+			totalWoodProd += supply;
 		}
-		 */
+
+		/*
 		GAMSParameter woodSupplyP = outDB.getParameter("woodSupplyP");
 		for (WoodType wType : WoodType.values()) {
 			double netImports = varNetImports.findRecord(wType.getName()).getLevel();
@@ -661,6 +674,7 @@ public class GamsLocationOptimiser {
 			woodUsageData.setNetImports(netImports);
 			newWoodUsageMap.put(wType, woodUsageData);
 		}
+		 */
 
 		Map<Integer, Double> rotationPeriods = new HashMap<>();
 		GAMSVariable varRota = outDB.getVariable("rotationIntensity");
diff --git a/src/ac/ed/lurg/types/WoodType.java b/src/ac/ed/lurg/types/WoodType.java
index 73c6f370..0ae02e8f 100644
--- a/src/ac/ed/lurg/types/WoodType.java
+++ b/src/ac/ed/lurg/types/WoodType.java
@@ -5,17 +5,15 @@ import java.util.Map;
 import ac.ed.lurg.ModelConfig;
 
 public enum WoodType {
-	IND_ROUNDWOOD("roundwood", ModelConfig.IND_ROUNDWOOD_DEMAND_ELASTICITY, 30, ModelConfig.INIT_ROUNDWOOD_PRICE),
-	FUELWOOD("fuelwood", ModelConfig.FUELWOOD_DEMAND_ELASTICITY, 10, ModelConfig.INIT_FUELWOOD_PRICE);
+	IND_ROUNDWOOD("roundwood", 30, ModelConfig.INIT_ROUNDWOOD_PRICE),
+	FUELWOOD("fuelwood", 10, ModelConfig.INIT_FUELWOOD_PRICE);
 	
 	private String name;
-	private double incomeDemandElasticity;
 	private int minRotation;
 	private double initialPrice;
 	
-	WoodType(String name, double incomeDemandElasticity, int minRotation, double initialPrice) {
+	WoodType(String name, int minRotation, double initialPrice) {
 		this.name = name;
-		this.incomeDemandElasticity = incomeDemandElasticity;
 		this.minRotation = minRotation;
 		this.initialPrice = initialPrice;
 	}
@@ -40,10 +38,6 @@ public enum WoodType {
 	public String getName() {
 		return name;
 	}
-	
-	public double getIncomeDemandElasticity() {
-		return incomeDemandElasticity;
-	}
 
 	public int getMinRotation() {
 		return minRotation;
-- 
GitLab