diff --git a/examples/energy_carrier_comparison/GBOML/GENERAL.txt b/examples/energy_carrier_comparison/GBOML/GENERAL.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f1f2007c0ad71bb0cc0b80a1c7c60df7c22c9f01
--- /dev/null
+++ b/examples/energy_carrier_comparison/GBOML/GENERAL.txt
@@ -0,0 +1,329 @@
+#TIMEHORIZON
+T=43800;  // hours 
+
+#GLOBAL
+wacc = 0.07;
+number_years_horizon = T/8760;
+
+#NODE SOLAR_PV_PLANTS
+// Berger et al. 2019 have been used for the node
+#PARAMETERS
+full_capex = 380.0;  // M€/GW
+lifetime = 25.0;  // year 
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // M€
+fom = 7.25; // M€/year
+vom = 0.0;
+capacity_factor_PV = import "Data/pv_capacity_factors.csv"; // Dimensionless
+max_capacity = 500.0; // GW
+#VARIABLES
+internal: capacity;  //GW
+external: electricity[T];  //GWh
+#CONSTRAINTS
+electricity[t] <= capacity_factor_PV[t] * capacity;
+capacity <= max_capacity;
+capacity >= 0;
+electricity[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * electricity[t];
+
+#NODE WIND_PLANTS
+// Berger et al. 2019 have been used for the node
+#PARAMETERS
+full_capex = 1040.0;  // M€/GW
+lifetime = 30.0;  // year 
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // MEur
+fom = 12.6; // MEur/year
+vom = 0.00135; // MEur/GWh
+capacity_factor_wind = import "Data/wind_capacity_factors.csv"; // Dimensionless
+max_capacity = 500.0; // GW
+#VARIABLES
+internal: capacity;  // GW
+external: electricity[T];  // GWh
+#CONSTRAINTS
+electricity[t] <= capacity_factor_wind[t] * capacity;
+capacity <= max_capacity;
+capacity >= 0;
+electricity[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * electricity[t];
+
+#NODE BATTERY_STORAGE
+// Berger et al. 2019 have been used for the node
+#PARAMETERS
+full_capex_stock = 142.0;  // M€/GWh
+full_capex_flow = 160.0;  // M€/GW
+lifetime_stock = 10.0;  // year
+lifetime_flow = 10.0;  // year
+annualised_capex_stock = full_capex_stock * global.wacc * (1 + global.wacc)**lifetime_stock / ((1 + global.wacc)**lifetime_stock - 1); // M€
+annualised_capex_flow = full_capex_flow * global.wacc * (1 + global.wacc)**lifetime_flow / ((1 + global.wacc)**lifetime_flow - 1); // M€
+fom_stock = 0.0;  // M€/GWh-year
+fom_flow = 0.5;  // M€/GW-year
+vom_stock = 0.0018;  // M€/GWh
+vom_flow = 0.0;  // M€/GWh
+charge_discharge_ratio = 1.0;
+self_discharge = 0.00004;
+efficiency_in = 0.959;
+efficiency_out = 0.959;
+#VARIABLES
+internal: capacity_flow;  //GW
+internal: capacity_stock;  //GWh
+internal: electricity_stored[T]; //GWh
+external: electricity_in[T];  //GWh
+external: electricity_out[T];  //GWh
+#CONSTRAINTS
+electricity_in[t] <= capacity_flow;
+electricity_out[t] <= charge_discharge_ratio * capacity_flow;
+electricity_stored[t] <= capacity_stock;
+electricity_stored[0] == electricity_stored[T-1];
+electricity_stored[t+1] == (1 - self_discharge) * electricity_stored[t] + efficiency_in * electricity_in[t] - electricity_out[t] / efficiency_out;
+capacity_flow >= 0;
+capacity_stock >= 0;
+electricity_stored[t] >= 0;
+electricity_in[t] >= 0;
+electricity_out[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex_stock + fom_stock) * capacity_stock + global.number_years_horizon * (annualised_capex_flow + fom_flow) * capacity_flow;
+min: vom_stock * electricity_stored[t] + vom_flow * electricity_in[t];
+
+#NODE HVDC
+// Berger et al. 2019 have been used for the node
+#PARAMETERS
+full_capex_lines = 0.25*1000;  // M€/GW
+full_capex_stations = 2*115.0;  // M€/GW
+lifetime_lines = 40.0;  // year
+lifetime_stations = 40.0;  // year
+annualised_capex_lines = full_capex_lines * global.wacc * (1 + global.wacc)**lifetime_lines / ((1 + global.wacc)**lifetime_lines - 1); // M€
+annualised_capex_stations = full_capex_stations * global.wacc * (1 + global.wacc)**lifetime_stations / ((1 + global.wacc)**lifetime_stations - 1); // M€
+annualised_capex = annualised_capex_lines + annualised_capex_stations; // M€/GW-year (Lines + Stations)
+fom = 2.5 + 4.6; // M€/year
+vom = 0.0;  // M€/GWh
+efficiency_HVDC = 0.9499;
+#VARIABLES
+internal: capacity;  //GW
+external: electricity_in[T];  //GWh
+external: electricity_out[T];  //GWh
+#CONSTRAINTS
+electricity_in[t] <= capacity;
+electricity_out[t] == efficiency_HVDC * electricity_in[t];
+capacity >= 0;
+electricity_in[t] >= 0;
+electricity_out[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * electricity_in[t];
+
+#NODE ELECTROLYSIS_PLANTS
+// Berger et al. 2019 have been used for the node
+#PARAMETERS
+full_capex = 600.0;  // M€/GW(e)
+lifetime = 15.0;  // year
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // M€
+fom = 30.0; // M€/GW(e)-year
+vom = 0.0; // M€/GWh(e)
+conversion_factor_electricity = 50.6;
+conversion_factor_water = 9.0;
+minimum_level = 0.05;
+#VARIABLES
+internal: capacity; // GW - reference flow for sizing is electricity
+external: electricity[T]; // GWh/h
+external: water[T]; // kt/h
+external: hydrogen[T]; // kt/h
+#CONSTRAINTS
+electricity[t] <= capacity;
+minimum_level * capacity <= electricity[t];
+electricity[t] == conversion_factor_electricity * hydrogen[t];
+water[t] == conversion_factor_water * hydrogen[t];
+capacity >= 0;
+electricity[t] >= 0;
+hydrogen[t] >= 0;
+water[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * electricity[t];
+
+#NODE DESALINATION_PLANTS
+// Berger et al. 2019 have been used for the node
+#PARAMETERS
+full_capex = 28.08;  // M€/(kt/h) - freshwater is the reference flow for sizing
+lifetime = 20.0; // year
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // M€
+fom = 0.0; // M€/year
+vom = 0.000315;  // M€/kt
+conversion_factor_electricity = 0.004;
+minimum_level = 1.0;
+ramp_rate_up = 0.0;
+ramp_rate_down = 0.0;
+#VARIABLES
+internal: capacity; // kt/h 
+external: electricity[T];  // GWh
+external: water[T];  // kt
+#CONSTRAINTS
+water[t] <= capacity;
+minimum_level * capacity <= water[t];
+electricity[t] == conversion_factor_electricity * water[t];
+water[t] <= water[t-1] + ramp_rate_up * capacity;
+water[t-1] <= water[t] + ramp_rate_down * capacity;
+capacity >= 0;
+electricity[t] >= 0;
+water[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * water[t];
+
+#NODE HYDROGEN_STORAGE
+// Berger et al. 2019 have been used for the node
+#PARAMETERS
+full_capex_stock = 45.0;  // M€/kt
+full_capex_flow = 0.0;  // M€/(kt/h)
+lifetime_stock = 30.0;  // year
+lifetime_flow = 30.0;  // year
+annualised_capex_stock = full_capex_stock * global.wacc * (1 + global.wacc)**lifetime_stock / ((1 + global.wacc)**lifetime_stock - 1); // M€
+annualised_capex_flow = full_capex_flow * global.wacc * (1 + global.wacc)**lifetime_flow / ((1 + global.wacc)**lifetime_flow - 1); // M€
+fom_stock = 2.25;  // M€/kt-yr  
+fom_flow = 0.0;  
+vom_stock = 0.0;  // M€/kt
+vom_flow = 0.0;   
+conversion_factor_electricity = 1.3;
+minimum_level = 0.05;
+#VARIABLES
+internal: capacity_flow; // kt/h
+internal: capacity_stock;  // kt
+internal: hydrogen_stored[T];  // kt 
+external: electricity[T];  // GWh
+external: hydrogen_in[T]; // kt/h
+external: hydrogen_out[T];  // kt/h
+#CONSTRAINTS
+hydrogen_in[t] <= capacity_flow;
+hydrogen_out[t] <= capacity_flow;
+minimum_level * capacity_stock <= hydrogen_stored[t];
+hydrogen_stored[t] <= capacity_stock;
+hydrogen_stored[0] == hydrogen_stored[T-1];
+hydrogen_stored[t+1] == hydrogen_stored[t] + hydrogen_in[t] - hydrogen_out[t];
+electricity[t] == conversion_factor_electricity * hydrogen_in[t];
+capacity_flow >= 0;
+capacity_stock >= 0;
+hydrogen_stored[t] >= 0;
+hydrogen_in[t] >= 0;
+hydrogen_out[t] >= 0;
+electricity[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex_stock + fom_stock) * capacity_stock + global.number_years_horizon * (annualised_capex_flow + fom_flow) * capacity_flow;
+min: vom_stock * hydrogen_stored[t] + vom_flow * hydrogen_in[t];
+
+#NODE WATER_STORAGE
+// Berger et al. 2019 have been used for the node
+#PARAMETERS
+full_capex_stock = 0.065;  // M€/kt
+full_capex_flow = 1.55923;  // M€/(kt/h)
+lifetime_stock = 30.0;  // year
+lifetime_flow = 30.0;  // year
+annualised_capex_stock = full_capex_stock * global.wacc * (1 + global.wacc)**lifetime_stock / ((1 + global.wacc)**lifetime_stock - 1); // M€
+annualised_capex_flow = full_capex_flow * global.wacc * (1 + global.wacc)**lifetime_flow / ((1 + global.wacc)**lifetime_flow - 1); // M€
+fom_stock = 0.0013;  // M€/kt-yr
+fom_flow = 0.0312;  // M€/(kt/h)-yr
+vom_stock = 0.0;  // M€/kt
+vom_flow = 0.0;  // M€/kt
+conversion_factor_electricity = 0.00036;
+#VARIABLES
+internal: capacity_flow;  // kt/h
+internal: capacity_stock;  // kt
+internal: water_stored[T];  // kt
+external: electricity[T];  // GWh
+external: water_in[T];  // kt
+external: water_out[T];  // kt
+#CONSTRAINTS
+water_in[t] <= capacity_flow;
+water_out[t] <= capacity_flow;
+water_stored[t] <= capacity_stock;
+water_stored[0] == water_stored[T-1];
+water_stored[t+1] == water_stored[t] + water_in[t] - water_out[t];
+electricity[t] == conversion_factor_electricity * water_in[t];
+capacity_flow >= 0;
+capacity_stock >= 0;
+water_stored[t] >= 0;
+water_in[t] >= 0;
+water_out[t] >= 0;
+electricity[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex_stock + fom_stock) * capacity_stock + global.number_years_horizon * (annualised_capex_flow + fom_flow) * capacity_flow;
+min: vom_stock * water_stored[t] + vom_flow * water_in[t];
+
+#NODE DIRECT_AIR_CAPTURE_PLANTS
+// Data from Keith.D et al, 2018
+#PARAMETERS
+full_capex = 4801.4;  // M€/(kt/h)
+lifetime = 30.0;  // year
+annualised_capex = full_capex * global.wacc * (1 + global.wacc)**lifetime / ((1 + global.wacc)**lifetime - 1); // MEur
+fom = 0.0; // MEur/year
+vom = 0.0207; // MEur/kt
+conversion_factor_electricity = 0.1091;
+conversion_factor_water = 5.0;
+conversion_factor_hydrogen = 1.46 / 33.3; // heat consumption / LHV of hydrogen
+minimum_level = 1.0;
+ramp_rate_up = 0.0;
+ramp_rate_down = 0.0;
+#VARIABLES
+internal: capacity; // kt/h - carbon dioxide is the reference flow for sizing
+external: electricity[T];  // GWh
+external: hydrogen[T]; // kt/h
+external: water[T]; // kt/h
+external: carbon_dioxide[T]; // kt/h
+#CONSTRAINTS
+carbon_dioxide[t] <= capacity;
+minimum_level * capacity <= carbon_dioxide[t];
+electricity[t] == conversion_factor_electricity * carbon_dioxide[t];
+water[t] == conversion_factor_water * carbon_dioxide[t];
+hydrogen[t] == conversion_factor_hydrogen * carbon_dioxide[t];
+carbon_dioxide[t] <= carbon_dioxide[t-1] + ramp_rate_up * capacity;
+carbon_dioxide[t-1] <= carbon_dioxide[t] + ramp_rate_down * capacity;
+capacity >= 0;
+electricity[t] >= 0;
+water[t] >= 0;
+hydrogen[t] >= 0;
+carbon_dioxide[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex + fom) * capacity;
+min: vom * carbon_dioxide[t];
+
+#NODE CARBON_DIOXIDE_STORAGE
+// Data from Mitsubishi Heavy Industries, 2004
+#PARAMETERS
+full_capex_stock = 1.35;  // M€/kt
+full_capex_flow = 32.4+16.2;  // M€/(kt/h)
+lifetime_stock = 30.0;  // year
+lifetime_flow = 30.0;  // year
+annualised_capex_stock = full_capex_stock * global.wacc * (1 + global.wacc)**lifetime_stock / ((1 + global.wacc)**lifetime_stock - 1); // MEur
+annualised_capex_flow = full_capex_flow * global.wacc * (1 + global.wacc)**lifetime_flow / ((1 + global.wacc)**lifetime_flow - 1); // MEur
+fom_stock = 0.0675;  // M€/kt-yr
+fom_flow = 1.62 + 0.81; // MEur/(kt/h)-year (carbon dioxide liquefaction + regasification)
+vom_stock = 0.0; // M€/kt
+vom_flow = 0.0;  // M€/kt
+conversion_factor_electricity = 0.105;
+#VARIABLES
+internal: capacity_flow; // kt/h
+internal: capacity_stock; // kt
+internal: carbon_dioxide_stored[T];  //kt
+external: electricity[T];  // GWh
+external: carbon_dioxide_in[T];  // kt/h
+external: carbon_dioxide_out[T];  // kt/h
+#CONSTRAINTS
+carbon_dioxide_in[t] <= capacity_flow;
+carbon_dioxide_out[t] <= capacity_flow;
+carbon_dioxide_stored[t] <= capacity_stock;
+carbon_dioxide_stored[0] == carbon_dioxide_stored[T-1];
+carbon_dioxide_stored[t+1] == carbon_dioxide_stored[t] + carbon_dioxide_in[t] - carbon_dioxide_out[t];
+electricity[t] == conversion_factor_electricity * carbon_dioxide_in[t];
+capacity_flow >= 0;
+capacity_stock >= 0;
+carbon_dioxide_stored[t] >= 0;
+carbon_dioxide_in[t] >= 0;
+carbon_dioxide_out[t] >= 0;
+electricity[t] >= 0;
+#OBJECTIVES
+min: global.number_years_horizon * (annualised_capex_stock + fom_stock) * capacity_stock + global.number_years_horizon * (annualised_capex_flow + fom_flow) * capacity_flow;
+min: vom_stock * carbon_dioxide_stored[t] + vom_flow * carbon_dioxide_in[t];
+
+
+