-
Notifications
You must be signed in to change notification settings - Fork 177
/
Copy pathdefault.cfg
2217 lines (1894 loc) · 120 KB
/
default.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# | (C) 2008-2024 Potsdam Institute for Climate Impact Research (PIK)
# | authors, and contributors see CITATION.cff file. This file is part
# | of MAgPIE and licensed under AGPL-3.0-or-later. Under Section 7 of
# | AGPL-3.0, you are granted additional permissions described in the
# | MAgPIE License Exception, version 1.0 (see LICENSE file).
# | Contact: [email protected]
##################
#### SETTINGS ####
##################
cfg <- list()
#### Main settings ####
# short description of the actual run
cfg$title <- "default"
# path to the submodel to be used relative to main model folder
cfg$model <- "main.gms" #def = "main.gms"
#### input settings ####
# which input data sets should be used?
cfg$input <- c(regional = "rev4.116_h12_magpie.tgz",
cellular = "rev4.116_h12_fd712c0b_cellularmagpie_c200_MRI-ESM2-0-ssp370_lpjml-8e6c5eb1.tgz",
validation = "rev4.116_h12_validation.tgz",
additional = "additional_data_rev4.59.tgz",
calibration = "calibration_H12_27Sep24.tgz")
# NOTE: It is recommended to recalibrate the model when changing cellular input data
# as well as for any other setting that would affect initial values in the model,
# e.g. changes in costs structure, NPI policies, etc.
#a list of repositories (please pay attention to the list format!) in which the
#files should be searched for. Files will be searched in all repositories until
#found, always starting with the first repository in the list. The argument must
#have the format of a named list with the url of the repository as name and a
#corresponding list of options such as username or password to access the
#repository as value. If no options are required the value has to be NULL. (e.g.
#list("ftp://my_pw_protected_server.de/data"=list(user="me",password=12345),
# "http://free_server.de/dat"=NULL))
#Please add system or user specific repositories (such as repos with limited
#access for) through the R option "magpie_repos". Through the append command
#below it will get merged into cfg$repositories
cfg$repositories <- append(list("https://rse.pik-potsdam.de/data/magpie/public"=NULL),
getOption("magpie_repos"))
# Should input data be downloaded from source even if cfg$input did not change?
cfg$force_download <- FALSE
# Should an existing output folder be replaced if a new run with the same name is started?
cfg$force_replace <- FALSE
# Settings for the yield calibration
# For this yield calibration (that uses results from a special MAgPIE calibration run
# triggered by the recalibrate switch) to be activated the switch s14_use_yield_calib needs
# to be turned on. (Default is off)
# This switch should only be activated for penalty_apr22 crop realization.
# For other realizations, it is recommended not to use this yield calibration.
#
# Switch to turn on/off recalibration of yields.
# * (TRUE): Yield calibration will be performed
# * (ifneeded): Yield calibration will only be executed if input data is
# * downloaded from repository
# * (FALSE): Yield calibration will not be performed
cfg$recalibrate <- FALSE # def = FALSE
# Up to which accuracy shall be recalibrated?
cfg$calib_accuracy <- 0.05 # def = 0.05
# What is the maximum number of iterations if the precision goal is not reached?
cfg$calib_maxiter <- 20 # def = 20
# Factor determining how much the divergence infuences the new
# calibration factor in each calibration iteration (0-1)
cfg$damping_factor <- 0.96 # def= 0.96
# switch on/of calibration of cropland (pasture will be left untouched)
cfg$calib_cropland <- TRUE # def= TRUE
# set upper limit for cropland calibration factor
cfg$crop_calib_max <- 1.5 # def= 1.5
# Selection type of calibration factors.
# If FALSE, calibration factors from the last iteration are used.
# If TRUE, calibration factors from the iteration with the lowest divergence are used.
cfg$best_calib <- TRUE # def = TRUE
# Settings for land conversion cost calibration (cropland)
# The calibration routine derives a time-series of regional calibration factors for
# costs of cropland expansion and rewards for cropland reduction,
# with the goal to match historical regional cropland in the period 1995-2015.
# * (TRUE): Land conversion cost calibration will be performed
# * (ifneeded): Land conversion cost calibration will only be executed if the input file "f39_calib.csv" is missing
# * (FALSE): Land conversion cost calibration will not be performed
cfg$recalibrate_landconversion_cost <- "ifneeded" #def "ifneeded"
# Up to which accuracy shall be recalibrated?
cfg$calib_accuracy_landconversion_cost <- 0.01 # def = 0.01
# What is the maximum number of iterations if the precision goal is not reached?
cfg$calib_maxiter_landconversion_cost <- 40 # def = 40
# Restart from existing calibration factors (TRUE or FALSE)
cfg$restart_landconversion_cost <- TRUE # def = TRUE
# Number of lowpass filter iterations applied on calibration factors
# for time steps 1995-2015
cfg$lowpass_filter_landconversion_cost <- 5 # def= 5
# Set upper limit for cropland calibration factor
cfg$cost_calib_max_landconversion_cost <- 3 # def= 3
# Set lower limit for cropland calibration factor
cfg$cost_calib_min_landconversion_cost <- 0.05 # def= 0.05
# Selection type of calibration factors.
# If FALSE, calibration factors from the last iteration are used.
# If TRUE, calibration factors from the iteration with the lowest divergence are used.
cfg$best_calib_landconversion_cost <- TRUE # def = TRUE
# Settings for NPI/NDC recalculation
# * (TRUE): NPI/NDC recalculation will be performed
# * (ifneeded): NPI/NDC recalculation will only be executed if current input files are zero
# * and policy switches (c32_aff_pol, c35_ad_pol) are set to "npi" or "ndc".
# * If policy switches are set to "none" (default) NPI/NDC recalculation will not be performed
# * (FALSE): NPI/NDC recalculation will not be performed
cfg$recalc_npi_ndc <- "ifneeded" # def = ifneeded
# * which national or subnational mappinng should be used
# * (iso): policies on the national levels
# * (bra): includes subnational policies for Brazil
cfg$policyregions <- "bra" # def = "bra"
#### magpie.gms settings ####
cfg$gms <- list()
# Set number of time steps (1-16) or type "less_TS" for remind time steps
cfg$gms$c_timesteps <- "coup2100"
# historic time steps
cfg$gms$c_past <- "till_2010"
# use of gdx files
cfg$gms$s_use_gdx <- 0 # def = 0
#* 0: gdx will not be loaded
#* 1: gdx is loaded in the first time step
#* 2: gdx is loaded in all time steps
# **----------------------------------------------------------------------------
# *** MODULES
# ***---------------------------------------------------------------------------
#### Useful shortcuts ####
# Vector of all iso countries (used for regional policy implementations)
all_iso_countries <- "ABW,AFG,AGO,AIA,ALA,ALB,AND,ARE,ARG,ARM,
ASM,ATA,ATF,ATG,AUS,AUT,AZE,BDI,BEL,BEN,
BES,BFA,BGD,BGR,BHR,BHS,BIH,BLM,BLR,BLZ,
BMU,BOL,BRA,BRB,BRN,BTN,BVT,BWA,CAF,CAN,
CCK,CHN,CHE,CHL,CIV,CMR,COD,COG,COK,COL,
COM,CPV,CRI,CUB,CUW,CXR,CYM,CYP,CZE,DEU,
DJI,DMA,DNK,DOM,DZA,ECU,EGY,ERI,ESH,ESP,
EST,ETH,FIN,FJI,FLK,FRA,FRO,FSM,GAB,GBR,
GEO,GGY,GHA,GIB,GIN,GLP,GMB,GNB,GNQ,GRC,
GRD,GRL,GTM,GUF,GUM,GUY,HKG,HMD,HND,HRV,
HTI,HUN,IDN,IMN,IND,IOT,IRL,IRN,IRQ,ISL,
ISR,ITA,JAM,JEY,JOR,JPN,KAZ,KEN,KGZ,KHM,
KIR,KNA,KOR,KWT,LAO,LBN,LBR,LBY,LCA,LIE,
LKA,LSO,LTU,LUX,LVA,MAC,MAF,MAR,MCO,MDA,
MDG,MDV,MEX,MHL,MKD,MLI,MLT,MMR,MNE,MNG,
MNP,MOZ,MRT,MSR,MTQ,MUS,MWI,MYS,MYT,NAM,
NCL,NER,NFK,NGA,NIC,NIU,NLD,NOR,NPL,NRU,
NZL,OMN,PAK,PAN,PCN,PER,PHL,PLW,PNG,POL,
PRI,PRK,PRT,PRY,PSE,PYF,QAT,REU,ROU,RUS,
RWA,SAU,SDN,SEN,SGP,SGS,SHN,SJM,SLB,SLE,
SLV,SMR,SOM,SPM,SRB,SSD,STP,SUR,SVK,SVN,
SWE,SWZ,SXM,SYC,SYR,TCA,TCD,TGO,THA,TJK,
TKL,TKM,TLS,TON,TTO,TUN,TUR,TUV,TWN,TZA,
UGA,UKR,UMI,URY,USA,UZB,VAT,VCT,VEN,VGB,
VIR,VNM,VUT,WLF,WSM,YEM,ZAF,ZMB,ZWE"
# * Based on https://tntcat.iiasa.ac.at/SspDb/dsd?Action=htmlpage&page=10#regiondefs
oecd90andEU <- "ALB,AUS,AUT,BEL,BIH,BGR,CAN,CYP,CZE,DNK,EST,FIN,FRA,
DEU,GRC,HUN,HRV,ISL,IRL,ITA,JPN,LUX,LVA,LTU,MLT,MNE,
NLD,NOR,NZL,POL,PRT,ROU,SRB,SVK,SVN,ESP,SWE,CHE,MKD,TUR,
GBR,USA"
isoCountriesEUR <- "ALB,AUT,BEL,BGR,CYP,CZE,DEU,DNK,ESP,EST,FIN,FRA,FRO,
GBR,GGY,GIB,GRC,HRV,HUN,IMN,IRL,ITA,JEY,LTU,LUX,LVA,MLT,
NLD,POL,PRT,ROU,SVK,SVN,SWE"
# ***--------------------- 09_drivers ----------------------------------------
# * (aug17): default drivers
cfg$gms$drivers <- "aug17" # def = aug17
cfg$gms$c09_pop_scenario <- "SSP2" # def = SSP2
cfg$gms$c09_gdp_scenario <- "SSP2" # def = SSP2
# * options: SSP: "SSP1", "SSP2", "SSP2EU", "SSP3", "SSP4", "SSP5"
# * SDP: "SDP", "SDP_EI", "SDP_MC", "SDP_RC"
# * Note: SSP2EU a European Commission population/income scenario for
# * Ariadne project. SDP is same as SSP1 income, while SDP_EI, SDP_RC, SDP_MC
# * see different GDP trajectories as described in SHAPE project.
# * Physical activity level scenario:
cfg$gms$c09_pal_scenario <- "SSP2" # def = SSP2
# * options: SSP: "SSP1", "SSP2", "SSP2EU", "SSP3", "SSP4", "SSP5"
# * SDP: "SDP", "SDP_EI", "SDP_MC", "SDP_RC"
# Year until which all parameters are fixed to SSP2 values
cfg$gms$sm_fix_SSP2 <- 2025
# Year until which all parameters affected by climate change are fixed to historical values
cfg$gms$sm_fix_cc <- 2025
# ***--------------------- 10_land ----------------------------------------
# * (landmatrix_dec18): includes a land transition matrix
cfg$gms$land <- "landmatrix_dec18" # def = landmatrix_dec18
# ***--------------------- 11_costs ------ --------------------------------
# * (default): default cost realization
cfg$gms$costs <- "default" # def = default
# ***--------------------- 12_interest_rate ---------------------------------
# * (select_apr20): regional interest rates dependent on development state
cfg$gms$interest_rate <- "select_apr20" # def = select_apr20
# * Interest rate scenario:
# * Options: coupling (exogenous interest rate)
# * gdp_dependent (regional interest rate dependent on development state)
# * Note: Currently, coupling is included as an option of an exogenous interest
# * rate scenario. It is currently not part of coupled runs with REMIND.
# * Note: In the gdp_dependent scenario, the selected interest rate fully takes
# * effect in 2050. It slowly starts fading in by 2025.
cfg$gms$c12_interest_rate <- "gdp_dependent" # def = "gdp_dependent"
# * Interest rate coefficients:
# * The coefficients determine the regionally specific interest rate. They do
# * not represent the value of the interest rate.
# * The s12_interest_lic coefficient determines the intercept for future interest
# * rate determination. It represents the interest rate in low income countries.
cfg$gms$s12_interest_lic <- "0.1" # def = 0.1
# * The s12_interest_hic determines the speed of interest rate adjustment for
# * future interest rates. It represents the interest rate in high income countries.
cfg$gms$s12_interest_hic <- "0.04" # def = 0.04
# * Analog logic applies to historic interest rate coefficients
cfg$gms$s12_hist_interest_lic <- "0.1" # def = 0.1
cfg$gms$s12_hist_interest_hic <- "0.04" # def = 0.04
# * Note: It is also possible to choose a global interest rate by setting the
# * upper (s12_interest_lic) and the lower (s12_interest_hic) bound equal
# * This was formerly used for SSP runs and was set to SSP1, SSP5: 0.07 (hist),
# * 0.04 (future), SSP2: 0.07 (hist, future), SSP3: 0.07 (hist), 0.1 (future),
# * SSP4: s12_interest_lic=0.1, s12_interest_hic=0.04, s12_hist_interest_lic=0.07,
# * s12_hist_interest_hic=0.07
# * Regional interest rate policy scenario switch
# * Options: list of iso-codes of countries where above selected coefficients
# * should be in effect.
# * In all other countries, alternative coefficients (s12_interest_lic_noselect, s12_interest_hic_noselect,
# * s12_hist_interest_lic_noselect, s12_hist_interest_hic_noselect) that can be selected below
# * are in effect.
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$select_countries12 <- all_iso_countries # def = all_iso_countries
# * Interest rate coefficients for non-selected countries:
cfg$gms$s12_interest_lic_noselect <- "0.1" # def = 0.1
cfg$gms$s12_interest_hic_noselect <- "0.04" # def = 0.04
cfg$gms$s12_hist_interest_lic_noselect <- "0.1" # def = 0.1
cfg$gms$s12_hist_interest_hic_noselect <- "0.04" # def = 0.04
# ***--------------------- 13_tc -----------------------------------------
# * (endo_jan22): endogenous technological change with full cost accounting and
# * stepwise updated crop and managed pastures area information
# * (exo): exogenous technological change (removes non-linearities from the model);
# * requires an existing model run with endo tc for generating the input file
# * f13_tau_scenario.csv
cfg$gms$tc <- "endo_jan22" # def = endo_jan22
# * tc cost scenario crops: low, medium or high
cfg$gms$c13_tccost <- "medium" # def = medium
# * ignore historical tau (1) or use it as lower bound (0)
cfg$gms$s13_ignore_tau_historical <- 1 # def = 1
# * Maximum regional tech cost expressed as share of regional GDP
# * A meaningful value would be 0.002. However, this bound causes infeasibilities in some cases.
# * Therefore, this bound is not used in the current model version.
cfg$gms$s13_max_gdp_shr <- Inf # def = Inf
# ***--------------------- 14_yield --------------------------------------
# * (managementcalib_aug19): calibrate potential LPJmL-yields to FAO regional numbers,
# * pasture yields increase based on exogenous demand-side proxy
# * for growth rate of cattle stocks
cfg$gms$yields <- "managementcalib_aug19" # def = managementcalib_aug19
# * yield scenario
# * options: cc (climate change)
# * nocc (no climate change)
# * nocc_hist (no climate change after year defined by sm_fix_cc)
cfg$gms$c14_yields_scenario <- "cc" # def = "cc"
# * switch determing the effectivity of translating crop tc into pasture yield
# * increase. Value has to be in the range of 0 (no pasture yield growth)
# * and 1 (pasture yields increase linearily with tau). Only used in the realizations:
# * biocorrect (tc of current time step) and managementcalib (tc of previous time step).
cfg$gms$s14_yld_past_switch <- 0.25 # def = 0.25
# * Switch that allows selecting how yield calibration factors will be calculated.
# * If 0, crop yields calibration will be calculated as multiplicative relative values.
# * If 1, calibration values will be limited to additive absolute values when modeled yields strongly
# * underestimate historical values. For more information, read the description on the 'preloop'
# * file of module 14_yield.
# * options: 1 (limit to absolute values)
# * 0 (pure relative calibration)
cfg$gms$s14_limit_calib <- 1 # def = 1
# * Switch on scaling of irrigated yields to AQUASTAT irrigated-to-rainfed yield
# * ratio on regional scale
# NOTE: It is recommended to recalibrate the model when changing this setting!
cfg$gms$s14_calib_ir2rf <- 1 # def = 1
# * Switch to include yield impacts of land degradation.
# * The state of yield-relevant nature's contributions to people (NCP)
# * is reported through ./modules/14_yields/input/f14_yld_ncp_report.cs3
# * based on estimated outcomes for soil loss or pollination sufficiency
# * per cluster from an existing model run.
# * options: 1 (yields are reduced based on yield reduction coefficients)
# * 0 (land degradation is switched off)
cfg$gms$s14_degradation <- 0 # def = 0
# Switch to toggle the use of yield calibration factors (that resulted from a calibration run).
# If 0, no yield calibration factors are used, meaning all calibration factors are set to 1.
# If 1, yield calibration factors are used. (For this option to function, either an existing calibration file
# must be supplied in the input directory, or yields must be recalibrated during preprocessing.)
# This switch should only be activated for penalty_apr22 crop realization.
# For other realizations, it is recommended not to use this yield calibration.
cfg$gms$s14_use_yield_calib <- 0 # def = 0
# Include a minimum yield for wood harvest in secondary vegetation (tDM per ha per yr).
# Age classes with wood yields below this threshold have a production of zero.
cfg$gms$s14_minimum_wood_yield <- 10 #def = 10
# ***--------------------- 15_food ---------------------------------------
# * (anthropometrics_jan18): estimates food using scenario dependent regression
# * and demography drivers
# * (anthro_iso_jun22): estimates food using scenario dependent regression
# * and demography drivers on iso level
cfg$gms$food <- "anthro_iso_jun22" # def = anthro_iso_jun22
# * switch between exogenous and endogenous food demand
# * options: 0 (exogenous food demand) and 1 (endogenous food demand)
cfg$gms$s15_elastic_demand <- 0 # def =0
# * maximal number of iterations between food and magpie model before
# * simulation proceeds to next time step
cfg$gms$s15_maxiter <- 5 # def = 5
# * convergence criteria: maximal allowed country-wise deviation in calculated
# * real income between iterations
cfg$gms$s15_convergence <- 0.005 # def = 0.005
# * food scenario for selected (and respectively not selected) countries
# * in scen_countries15
# * options: SSP: "SSP1", "SSP2", "SSP3", "SSP4", "SSP5"
# * SRES: "A1", "A2", "B1", "B2"
# * OTHER: "PB" (planetary boundaries)
cfg$gms$c15_food_scenario <- "SSP2" # def = SSP2
cfg$gms$c15_food_scenario_noselect <- "SSP2" # def = SSP2
# * Temporal development of ruminant meat share within the livestock food product
# * group (applied before food demand model is executed)
# * options: constant, halving2050, mixed
cfg$gms$c15_rum_share <- "mixed" # def = mixed
# * Stronger ruminant fadeout in India
# * options: 0 (=off), 1 (=on)
cfg$gms$s15_rum_share_fadeout_india_strong <- 1 # def = 1
# * Milk share fadeout in India within the livestock food product
# * group (applied before food demand model is executed)
# * options: 0 (=off), 1 (=on)
cfg$gms$s15_milk_share_fadeout_india <- 1 # def = 1
# * Food substitution scenarios (applied after food demand model is executed)
# * Values between 0 and 1 are allowed, where 0 means no food is substituted,
# * while 1 corresponds to a full substitution of food items with alternatives.
# * The functional form and the start and target years of the food substitution
# * can be specified below
cfg$gms$s15_ruminant_substitution <- 0 # def = 0
cfg$gms$s15_fish_substitution <- 0 # def = 0
cfg$gms$s15_alcohol_substitution <- 0 # def = 0
cfg$gms$s15_livestock_substitution <- 0 # def = 0
cfg$gms$s15_rumdairy_scp_substitution <- 0 # def = 0
cfg$gms$s15_rumdairy_substitution <- 0 # def = 0
# * Set items of kfo_rd. This option allows for sensitivity scenarios.
# * kfo_rd is used in the food substitution scenarios s15_rumdairy_scp_substitution and s15_rumdairy_substitution (see above)
# * options: "livst_rum,livst_milk", "livst_rum" or "livst_milk"
cfg$gms$kfo_rd <- "livst_rum" #def = livst_rum
# * Switch for supplemental fat needed as ingredient for scp-based meat alternatives
# * options: 0 (=off), 1 (=on)
cfg$gms$s15_scp_supplement_fat_meat <- 0 # def = 0
# * Convergence of livestock food calorie supply towards a kcal/cap/day target with or w/o substitution.
# * The functional form and the start and target years of the food substitution can be specified below.
# * options: 0 = no converge, 1 = convergence to target
cfg$gms$s15_livescen_target <- 0 # def = 0
# * maximum kcal/cap/day supply target used for downwards convergence of livestock products
cfg$gms$s15_kcal_pc_livestock_supply_target <- "430" # def = 430
# * fade-out of livestock products (0) or substitution of livestock products with plant-based products (1)
# * options: 0 (=fade-out), 1 (=substitution)
cfg$gms$s15_livescen_target_subst <- 1 # def = 1
# * Functional form of the substitution/convergence over time
# * options: 1 = linear substitution, 2 = sigmoid substitution
cfg$gms$s15_food_subst_functional_form <- 1 # def = 1
# * Start year of food subsitution
cfg$gms$s15_food_substitution_start <- 2025 # def = 2025
# * Target year (year when target substitution is reached)
cfg$gms$s15_food_substitution_target <- 2050 # def = 2050
# ***** Start configuration of exogenous food intake and waste scenarios *****
#
#
# * switch for transition to food waste scenarios
# * (1): transition towards exogenous food waste target
# * (0): regression-based estimation of food waste
cfg$gms$s15_exo_waste <- 0 # def = 0
#
# * scenario target for the ratio between food demand and intake
# * only activated if s15_exo_waste is set to 1
# * options: scalars >1
# * (1.1): corresponds to 10% food waste ~ quarter waste of HIC
# * (1.2): corresponds to 20% food waste ~ half waste of HIC
cfg$gms$s15_waste_scen <- 1.2 # def = 1.2
# * Switch for transition to exogenous diet scenarios
# * (EAT Lancet and National Institute of Nutrition (NIN))
# * (3): MAgPIE-specific realization of the EAT-Lancet diet, where model-internal
# * (regression-based) food demand projections are constrained by ranges for
# * intake targets of food groups to ensure healthy and sustainable diets as
# * recommended by the EAT-Lancet Commission (following Springmann et al. 2018 and Willett et al. 2019)
# * (2): transition towards exogenous diets (NIN for India and EAT for other regions)
# * Please use this switch in combination with cfg$gms$c15_EAT_scen <- "FLX_hmilk"
# * If only India's diet needs to be changed, then set cfg$gms$scen_countries15 <- "IND"
# * (1): transition towards exogenous diets and food demand parametrized
# * to a food-specific data set published by the EAT-Lancet Commission
# * (Willett et al., 2019). This EATLancet implementation is deprecated.
# * Please use MAgPIE-specific realization of the EAT-Lancet diet (3)
# * for EATLancet diet.
# * (0): regression-based estimation of diets and food demand
cfg$gms$s15_exo_diet <- 0 # def = 0
# * exogenous calorie scenario (EAT Lancet diet scenarios)
# * only activated if s15_exo_diet is > 0
# * options: healthy_BMI, 2100kcal, 2500kcal,
# * endo, no_underweight, no_overweight
# * half_overweight, no_underweight_half_overweight
# * healthy_BMI: all people have a BMI of 20-25
# * no_underweight: all people with BMI<20 have a BMI 20-25
# * no_overweight: all people with BMI>25 have a BMI 20-25
# * half_overweight: number of people with BMI>25 is halved compared to baseline (have BMI 20-25 instead)
# * no_underweight_half_overweight: combination of no_underweight and half_overweight
# * endo: no changes with respect to endogenous BMI
# * 2100kcal, 2500kcal: an exogenous target of 2100 or 2500 kcal, all
# * people have a BMI 20-25.
cfg$gms$c15_kcal_scen <- "healthy_BMI" # def = healthy_BMI
#
# * exogenous food-specific diet scenario (EAT Lancet diet scenarios)
# * only activated if s15_exo_diet is 1 or 2
# * options: BMK, FLX, PSC, VEG, VGN, FLX_hmilk, FLX_hredmeat
cfg$gms$c15_EAT_scen <- "FLX" # def = FLX
# * Sub-specifications: Which commodities shall be included in the diet shift
# * towards the selected scenario diet? Only selected (1) commodities will be
# * included, while the others will remain to be endogenous.
# * Any shift will be compensated to reach the calorie target by adjusting
# * staple calories.
cfg$gms$s15_exo_monogastric <- 1 # def = 1, options: 0,1
cfg$gms$s15_exo_ruminant <- 1 # def = 1, options: 0,1
cfg$gms$s15_exo_fish <- 1 # def = 1, options: 0,1
cfg$gms$s15_exo_fruitvegnut <- 1 # def = 1, options: 0,1
cfg$gms$s15_exo_roots <- 1 # def = 1, options: 0,1 (only relevant for new EATLancet realization s15_exo_diet=3)
cfg$gms$s15_exo_pulses <- 1 # def = 1, options: 0,1
cfg$gms$s15_exo_sugar <- 1 # def = 1, options: 0,1
cfg$gms$s15_exo_oils <- 1 # def = 1, options: 0,1
cfg$gms$s15_exo_brans <- 0 # def = 0 (as no target defined in EATLancet, they are kept at their projected level, unless switch activated (1), then brans are set to 0), options: 0,1
cfg$gms$s15_exo_scp <- 1 # def = 1, options: 0,1
# * Scenario target for the inclusion of alcohol in the EAT-Lancet diet
# * The EAT-Lancet diet only allows for added sugars,
# * but does not include processed food or alcohol.
# * Only activated if s15_exo_diet is set to 1 or 3
cfg$gms$s15_exo_alcohol <- 1 # def = 1, options: 0,1
# * Via 's15_alc_scen' a maximum target for alcohol consumption can be defined.
# * Only activated if s15_exo_alcohol = 1
# * (0): no alcohol consumption, as in the original version of the EAT-Lancet diet
# * (0.014): maximum target for alcohol consumption is 1.4% of total calorie consumption
# * (see Lassen et al., 2020)
cfg$gms$s15_alc_scen <- 0 # def = 0
#
#
# * Switch and specification of countries for which exogenous food scenarios
# * (EAT Lancet diet and food waste scenarios), food substitution scenarios and
# * c15_food_scenario shall be applied
# * Options: list of iso-codes of countries where exogenous scenario should be
# * in effect
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$scen_countries15 <- all_iso_countries
#
# * Transition to exogenous food intake and waste scenarios (applied after the
# * food demand model is executed). The resulting scenario parametrisation is
# * a linear or sigmoid combination of the default MAgPIE parametrisation and the
# * exogenous scenario data input.
# * The functional form (linear or sigmoid) and the start and target years of
# * the exogeneous food intake scenario can be specified below.
# * Only active if at least one of the exogenous food intake and waste scenario
# * switches (s15_exo_diet and s15_exo_waste) is set to 1.
# * Values between 0 and 1 are allowed, where 0 means no convergence to exogenous
# * food intake scenario, while 1 corresponds to a full convergence to exogenous
# * food intake scenario.
cfg$gms$s15_exo_foodscen_convergence <- 1 # def = 1
# * Functional form of the convergence to the exogeneous food intake scenario over time
# * options: 1 = linear convergence, 2 = sigmoid convergence
cfg$gms$s15_exo_foodscen_functional_form <- 1 # def = 1
# * Start year of convergence to exogeneous food intake scenario
cfg$gms$s15_exo_foodscen_start <- 2025 # def = 2025
# * Target year (year when s15_exo_foodscen_convergence is reached)
cfg$gms$s15_exo_foodscen_target <- 2050 # def = 2050
# ***** End configuration of exogenous food intake and waste scenarios *****
# * calibration to historical values
# * options: 0, 1
cfg$gms$s15_calibrate <- 1 # def = 1
# ***--------------------- 16_demand -------------------------------------
# * (sector_may15): default for flexible regions
cfg$gms$demand <- "sector_may15" # def = sector_may15
# ***--------------------- 17_production ---------------------------------
# * (flexreg_apr16): default production aggregation
cfg$gms$production <- "flexreg_apr16" # def = flexreg_apr16
#* Additional switch to initialize cellular production
# * (on) : it initializes cellular production
# * (off) : it does not initialize cellular production
cfg$gms$c17_prod_init <- "on" # default = on
# ***--------------------- 18_residues -----------------------------------
# * (flexreg_apr16): detailed residue calculations
# * (off): off
cfg$gms$residues <- "flexreg_apr16" # def = flexreg_apr16
# * residue on field burning
# * options: phaseout - phaseout of residue burning to minimum burn share (0-10%)
# * constant - constant shares of on field burning (15-25%)
cfg$gms$c18_burn_scen <- "phaseout" # def = phaseout
# ***--------------------- 20_processing ---------------------------------
# * (substitution_may21) : processing with couple products allowing for substitution
# * (off): off
cfg$gms$processing <- "substitution_may21" # def = substitution_may21
# * SCP route
# * single-cell microbial protein production route
# * options: mixed, methane, sugar, cellulose, hydrogen
# * Mapping of scp route to feedstock: methane:foddr, sugar:sugar_cane, cellulose:begr
# * Note that hydrogen does not require land-based inputs
# * Mixed assumes equal shares of methane, sugar, cellulose and hydrogen
cfg$gms$c20_scp_type <- "sugar" # def = sugar
# ***--------------------- 21_trade --------------------------------------
# * (free_apr16): free trade without restrictions
# * (off): no trade at all
# * (exo): exogenously prescribed trade
# * (selfsuff_reduced): self-sufficiency based trade with trade costs related to exports
# * (selfsuff_reduced_bilateral22): same as `selfsuff_reduced` but with bilateral trade flows
cfg$gms$trade <- "selfsuff_reduced" # def = selfsuff_reduced
# * options for `selfsuff_reduced` and `selfsuff_reduced_bilateral22` realizations:
# * Commodities that can have additional imports to maintain feasibility
cfg$gms$k_import21 <- "wood, woodfuel"
# * Cost for additional imports to maintain feasibility in USD17MER per tDM
cfg$gms$s21_cost_import <- 12300 # def = 10000 * 1.23
# * trade balance reduction scenario
# * (l909090r808080): 10 percent trade liberalisation for secondary and
# * livestock products in 2030,2050,2100 and 20 percent for
# * crops
# * (l908080r807070): livestock/secondary: 10% in 2030, 20% in 2050,2100
# * crops: 20% in 2030, 30% in 2050,2100
# * (l909595r809090): livestock/secondary: 10% in 2030, 5% in 2050,2100
# * crops: 20% in 2030, 10% in 2050,2100
# * Initial values for the trade balance reduction in 1995 are 1, i.e. all trade in
# * 1995 happens through the self-sufficiency pool. For later time steps, additional
# * scenarios of trade liberalization (i.e. of allocation to the comparative advantage pool)
# * are implemented based on Schmitz et al. 2012 (also described in Popp et al. 2017)
cfg$gms$c21_trade_liberalization <- "l909090r808080" # def = l909090r808080
# * Fraction to ease self sufficiency pool trade for roundwood
cfg$gms$s21_trade_bal_damper <- 0.65 # def 0.65
# * whether trade tariff should be considered at all
# * (0) without trade tariff
# * (1) with trade tariff
cfg$gms$s21_trade_tariff <- 1 # def =1
# * whether to fade out trade tariffs (bilateral trade realization) # def = 0
cfg$gms$s21_trade_tariff_fadeout <- 0
# * start year of fadeout if s21_trade_tariff_fadeout = 1 # def = 2025
cfg$gms$s21_trade_tariff_startyear <- 2025
# * end year of fadeout if s21_trade_tariff_fadeout = 1 # def = 2050
cfg$gms$s21_trade_tariff_targetyear <- 2050
# * Minimum trade margin for forestry products (USD17MER per tDM)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate:1.23)
cfg$gms$s21_min_trade_margin_forestry <- 62 # def = 50 * 1.23
# ***--------------------- 22_land_conservation --------------------------------------
# * (area_based_apr22): Area-based conservation (baseline and future)
# * based on WDPA and conservation priority areas
cfg$gms$land_conservation <- "area_based_apr22" # def = area_based_apr22
# * Baseline protection in historic and future time steps
# * ("WDPA") All legally protected areas across all IUCN categories
# * ("WDPA_I-II-III") All legally protected areas in IUCN categories I, II & III
# * ("WDPA_IV-V-VI") All legally protected areas in IUCN categories IV, V & VI
# * ("none") No baseline protection
# * Note: c22_base_protect applies to countries selected in policy_countries22
# * c22_base_protect_noselect applies to all other countries.
cfg$gms$c22_base_protect <- "WDPA" # def = WDPA
cfg$gms$c22_base_protect_noselect <- "WDPA" # def = WDPA
# * Additional land conservation target based on conservation priority areas
# * during future time steps (after `cfg$gms$sm_fix_SSP2`).
# * ("none") No additional land conservation target (Baseline only)
# * ("30by30") 30 % of global land surface in Key Biodiversity Areas (KBA),
# * GSN Distinct Species Assemblages & Critical Connectivity Areas + Baseline
# * ("KBA") Key Biodiversity Areas + Baseline
# * ("GSN_DSA") Global Safety Net: Distinct Species Assemblages + Baseline
# * ("GSN_RarePhen") Global Safety Net: Rare Phenomena + Baseline
# * ("GSN_AreaIntct") Global Safety Net: Areas of Intactness + Baseline
# * ("GSN_ClimTier1") Global Safety Net: Climate Stabilisation Tier 1 + Baseline
# * ("GSN_ClimTier2") Global Safety Net: Climate Stabilisation Tier 2 + Baseline
# * ("CCA") Critical Connectivity Areas (Brennan et al. 2022) + Baseline
# * ("IrrC_XXpc") Land area that covers XX percent of total global irrecoverable carbon
# * as defined by Noon et al. (2022), where XX correponds to either
# * 50, 75, 95, or 99 percent + Baseline
# * ("IrrC_XXpc_30by30") 30by30 + Land area that covers XX percent of total global irrecoverable
# * carbon as defined by Noon et al. (2022), where XX correponds to either
# * 50, 75, 95, or 99 percent + Baseline
# * ("BH") Biodiversity Hotspots + Baseline
# * ("IFL") Intact Forest Landscapes + Baseline
# * ("BH_IFL") Biodiversity Hotspots + Intact Forest Landscapes + Baseline
# * ("GSN_HalfEarth") Full protection of areas within the Global Safety Net, which
# * roughly corresponds to 50 percent of the global land surface
# * ("PBL_HalfEarth") Ecoregion-based approach to protecting half of the global land surface
# * Note: c22_protect_scenario applies to countries selected in policy_countries22
# * c22_protect_scenario_noselect applies to all other countries.
cfg$gms$c22_protect_scenario <- "none" # def = none
cfg$gms$c22_protect_scenario_noselect <- "none" # def = none
# * Switch and specification of countries for which land conservation
# * in c22_base_protect and c22_protect_scenario apply.
# * Options: list of iso-codes of countries where land conservation should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$policy_countries22 <- all_iso_countries
# * Whether land restoration is carried out in areas targeted by land conservation
# * (1) Land is fully restored in conservation priority areas
# * (0) Only remaining forest and other land areas are conserved
cfg$gms$s22_restore_land <- 1 # def = 1
# * Start and target year of land conservation option ('c22_protect_scenario').
# * Defines when full protection based on 'future options' is reached, using a
# * sigmoidal trajectory. NOTE: This switch is only relevant
# * if one of the 'future options' (e.g. BH) is chosen.
# * Start year:
cfg$gms$s22_conservation_start <- 2025 # def = 2025
# * Target year (year when full protection is reached):
cfg$gms$s22_conservation_target <- 2050 # def = 2050
# ***--------------------- 28_ageclass -----------------------------------
# * (oct24): Forest age-classes based on GFAD V1.1 from Poulter et al 2019
cfg$gms$ageclass <- "oct24" # def = oct24
# ***--------------------- 29_cropland -----------------------------------
# * Cropland is defined as the sum of croparea, fallow land and tree cover
# * Croparea is provided by 30_crop.
# * Fallow land and tree cover are defined by 29_cropland,
# * (simple_apr24): Fallow land and tree cover on cropland are fixed to zero
# * (detail_apr24): Fallow land and tree cover based on rules or incentives
# NOTE: It is recommended to recalibrate the model when changing this setting!
cfg$gms$cropland <- "simple_apr24" # def = simple_apr24
# *** Options for all cropland realizations ***
# * Switch to determine whether marginal land (suitability index below 0.33) should be included
# * in the total available cropland. Options are:
# * ("all_marginal"): All marginal land can be used for crop cultivation
# * ("q33_marginal"): The bottom tertile of marginal land is excluded
# * ("no_marginal"): Marginal land is completely excluded from crop cultivation
# * Note: Option "q33_marginal" produces the highest spatial correlation
# * with observed cropland patterns and is recommended for productive runs.
cfg$gms$c29_marginal_land <- "q33_marginal" # def = "q33_marginal"
# * Switch and specification of countries for selected policies in apply.
# * Options: list of iso-codes of countries where SNV policy should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$policy_countries29 <- all_iso_countries
# * Share of available cropland that is withheld for maintaining semi-natural vegetation (SNV)
# * in each square km in cropland areas, including grassland, forest and other land. For example,
# * a share of 0.2 corresponds to 20 % of SNV in terms of the available cropland.
# * The amount of cropland relocation is estimated based on external high resolution
# * land cover information from the Copernicus Global Land Service for the year 2019.
# * Accepted sensible values are between 0 and 0.5
# Note: s29_snv_shr applies to countries selected in policy_countries29
# s29_snv_shr_noselect applies to all other countries.
cfg$gms$s29_snv_shr <- 0 # def = 0
cfg$gms$s29_snv_shr_noselect <- 0 # def = 0
# * Year by which SNV policy ('s29_snv_shr') is fully implemented.
# * Start year (should be close to 2019):
cfg$gms$s29_snv_scenario_start <- 2025 # def = 2025
# * Target year (year when full implementation is reached):
cfg$gms$s29_snv_scenario_target <- 2050 # def = 2050
# * Land types included in the SNV policy. This option allows for sensitivity analyses.
# * plausible options: "secdforest, forestry, past, other",
# * "secdforest, other",
# * "secdforest, past, other" etc.
cfg$gms$land_snv <- "secdforest, other" #def = "secdforest, other"
# *** Options only available for `detail_apr24` realization ***
# * Switch for functional form of faders (1=linear 2=sigmoid)
cfg$gms$s29_fader_functional_form <- 2 # def = 2
## Agroforestry settings for treecover on cropland
# * Initial tree cover
# * (0): tree cover on cropland starts from zero
# * (1): tree cover on cropland is initialized based on satellite data for 2015
cfg$gms$s29_treecover_map <- 0 # def = 0
# * Sigmoid fader for minimum area share of treecover on total cropland at cluster level
# * Minimum area share of treecover on total cropland in target year
# Note: s29_treecover_target applies to countries selected in policy_countries29
# s29_treecover_target_noselect applies to all other countries.
cfg$gms$s29_treecover_target <- 0 # def = 0
cfg$gms$s29_treecover_target_noselect <- 0 # def = 0
# * Avoid loss of existing treecover (1=yes 0=no).
# * If set to 1, `s29_treecover_target` will be adjusted based existing treecover area.
cfg$gms$s29_treecover_keep <- 0 # def = 0
# * Maximum share of treecover on total cropland (1)
cfg$gms$s29_treecover_max <- 0.4 # def = 0.4
# * Start year of fader
cfg$gms$s29_treecover_scenario_start <- 2025 # def = 2025
# * Target year of fader (year when full implementation is reached)
cfg$gms$s29_treecover_scenario_target <- 2050 # def = 2050
# * Penalty for violation of treecover target before scenario start (USD17MER per ha)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate:1.23)
cfg$gms$s29_treecover_penalty_before <- 0 # def = 0
# * Penalty for violation of treecover target after scenario start (USD17MER per ha)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate: 1.23)
cfg$gms$s29_treecover_penalty <- 6150 # def = 5000 * 1.23
# * Tree cover establishment cost (USD17MER per ha)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate:1.23)
cfg$gms$s29_cost_treecover_est <- 2460 # def = 2000 * 1.23
# * Tree cover recurring cost (USD17MER per ha)
cfg$gms$s29_cost_treecover_recur <- 615 # def = 500 * 1.23
# * Switch for using natural vegetation (0) or plantation (1) growth curves towards LPJmL natural
# * vegetation carbon density.
cfg$gms$s29_treecover_plantation <- 0 # def = 0
# * Switch for using secondary vegetation (0) or timber plantation (1) BII coefficients
# * The recommend setting is to map the BII coefficient to the choice of the growth curve.
cfg$gms$s29_treecover_bii_coeff <- 0 # def = 0
# * Sigmoid fader for minimum area share of fallow land on total cropland at cluster level
# * Minimum area share of fallow land on total cropland in target year
cfg$gms$s29_fallow_target <- 0 # def = 0
# * Maximum share of fallow land on total cropland
cfg$gms$s29_fallow_max <- 0.4 # def = 0.4
# * Start year of fader
cfg$gms$s29_fallow_scenario_start <- 2025 # def = 2025
# * Target year of fader (year when full implementation is reached)
cfg$gms$s29_fallow_scenario_target <- 2050 # def = 2050
# * Penalty for violation of fallow land target (USD17MER per ha)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate: 1.23)
cfg$gms$s29_fallow_penalty <- 615 # def = 500 * 1.23
# ***--------------------- 30_croparea ---------------------------------------
# * 30_croparea defines the croparea, which is a subcomponent of total cropland defined in 29_cropland.
# * (simple_apr24): Dynamic croparea with simple rotational constraints
# * (detail_apr24): Dynamic croparea with detailed rules and incentives for rotational constraints
# NOTE: It is recommended to recalibrate the model when changing this setting!
cfg$gms$croparea <- "simple_apr24" # def = simple_apr24
# *** Options for all croparea realizations ***
# * (c30_bioen_type): switch for type of bioenergy crops; options: begr, betr, all
cfg$gms$c30_bioen_type <- "all" # def = "all"
# * (c30_bioen_water): switch for irrigation of bioenergy crops; options: rainfed, irrigated, all
cfg$gms$c30_bioen_water <- "rainfed" # def = "rainfed"
# * Switch and specification of countries for selected policies in apply.
# * Options: list of iso-codes of countries where SNV policy should be applied
# * Note: must be written in the format: "IND, BRA, DEU"
# * Default: all iso countries
cfg$gms$policy_countries30 <- all_iso_countries
## Agroforestry settings for bioenergy trees
# * Sigmoid fader for minimum area share of bioenergy trees (betr) on total cropland at cluster level
# * Minimum area share of bioenergy trees on total cropland in start year
# Note: s30_betr_start applies to countries selected in policy_countries30,
# s30_betr_start_noselect applies to all other countries.
cfg$gms$s30_betr_start <- 0 # def = 0
cfg$gms$s30_betr_start_noselect <- 0 # def = 0
# * Minimum area share of bioenergy trees on total cropland in target year
# Note: s30_betr_target applies to countries selected in policy_countries30,
# s30_betr_target_noselect applies to all other countries.
cfg$gms$s30_betr_target <- 0 # def = 0
cfg$gms$s30_betr_target_noselect <- 0 # def = 0
# * Start year of fader
cfg$gms$s30_betr_scenario_start <- 2025 # def = 2025
# * Target year of fader (year when full implementation is reached)
cfg$gms$s30_betr_scenario_target <- 2050 # def = 2050
# * Penalty for violation of the target (USD17MER per ha)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate: 1.23)
cfg$gms$s30_betr_penalty <- 2460 # def = 2000 * 1.23
# * Allowed annual cropland growth per year per region, relative to the current cropland level
# * e.g., 0.02: 2% annual growth, compounded to 10.4% growth for five-years timestep
cfg$gms$s30_annual_max_growth <- Inf # def = Inf
# *** Options only available for `simple_apr24` realization ***
# * (c30_rotation_constraints): switch for rotational constraints: on, off
cfg$gms$c30_rotation_constraints <- "on" # def = "on"
# *** Options only available for `detail_apr24` realization ***
# * Switch for rule-based (1) or penalty-based (0) implementation of rotation scenarios
cfg$gms$s30_implementation <- 1 # def = 1
# * Rotation rules:
# * min (minimal constraints), default (best guess), good (good practice),
# * good_20div (good practice - 20% for other crops), setaside (default plus fallow),
# * legumes (minimum share of legumes), sixfoldrotation (crops can only repeat after 6 years),
# * agroecology (mix of previous scenarios), FSEC (similar to agroecology)
# * betr0 (minimum share of short rotation agroforestry trees), betr10, betr20, betr25, betr30, betr40, betr50.
cfg$gms$c30_rotation_rules <- "default" # def = "default"
# * Rotation incentives:
# * none (no incentives), default (best guess),
# * legumes (increased incentives for legumes), agroecology (mix),
# * betr500 and betr1000 (incentives for short rotation agroforestry trees)
cfg$gms$c30_rotation_incentives <- "none" # def = "none"
# * Year by which rotation scenario is fully implemented:
# * Start year:
cfg$gms$s30_rotation_scenario_start <- 2025 # def = 2025
# * Target year (year when full implementation is reached):
cfg$gms$s30_rotation_scenario_target <- 2050 # def = 2050
# ***--------------------- 31_past ---------------------------------------
# * (static): static pasture
# * (endo_jun13): dynamic pasture
# NOTE: It is recommended to recalibrate the model when changing this setting!
cfg$gms$past <- "endo_jun13" # def = endo_jun13
# * Factor requirements (USD17 per ton DM)
cfg$gms$s31_fac_req_past <- 1 # def = 1
# ***--------------------- 32_forestry -----------------------------------
# * (dynamic_may24): Dynamic forestry sector including afforestation with detailed age-classes
cfg$gms$forestry <- "dynamic_may24" # def = dynamic_may24
# * afforestation planing horizon (years)
cfg$gms$s32_planing_horizon <- 50 # def = 50
# * Settings for CO2 price driven afforestation (Growth curve and BII)
# * Growth curve for CO2 price driven afforestation
# * Switch for using natural vegetation (0) or plantation (1) growth curves towards LPJmL natural
# * vegetation carbon density.
# * Afforestation following plantation growth curves reflects managed or assistent regrowth,
# * and might also include non-native species.
cfg$gms$s32_aff_plantation <- 0 # def = 0
# * BII coefficient for CO2 price driven afforestation
# * Switch for using secondary vegetation (0) or timber (1) BII coefficients for CO2 price driven afforestation
# * The recommend setting is to map the BII coefficient to the choice of the growth curve.
# * natural vegetation growth curve (0): secondary vegetation BII coefficient (0)
# * plantation growth curve (1): timber BII coefficient (1)
# * However, afforestation with plantations (1) could possibly be done in a biodiversity friendly way (0)
cfg$gms$s32_aff_bii_coeff <- 0 # def = 0
# Afforestation policy
# * ("none"): no prescribed afforestation
# * ("npi"): prescribed afforestation based on NPI policies
# * ("ndc"): prescribed afforestation based on NPI+NDC policies
cfg$gms$c32_aff_policy <- "npi" # def = "npi"
# Year in which NPI NDC reversal should take place (e.g. 2025)
cfg$gms$s32_npi_ndc_reversal <- Inf # def = Inf
# Maximum total global afforestation in Mha (Inf = no constraint)
# Note 1: the limit applies to the sum of endogenous CO2 price driven and exogenous NPI/NDC afforestation
# Note 2: a limit of 0 or below the level of exogenous NPI/NDC afforestation will be a automatically raised to the level of exogenous NPI/NDC afforestation
cfg$gms$s32_max_aff_area <- Inf # def = Inf
# Protection of afforested areas (endogenous CO2 price driven)
# 0=until end of planning horizon (see s32_planing_horizon)
# 1=forever
# Note: Without a price on CO2 emissions from land-use change in module 32_forestry,
# which is the current default (c56_emis_policy <- "reddnatveg_nosoil"),
# the recommended setting for s32_aff_prot is 1.
# Otherwise, the model can do re/afforestation on existing re/afforestation areas
# after the end of planning horizon without penalty for CO2 emissions.
cfg$gms$s32_aff_prot <- 1 # def = 1
# Type of afforestation constraint
cfg$gms$s32_max_aff_area_glo <- 1 # def = 1
# * (1): global limit based on s32_max_aff_area
# * (0): regional limit based on the input file "f32_max_aff_area.cs4"
# Switch to determine whether afforestation should be limited to
# certain latitudinal zones
# * ("unrestricted"): No regions excluded
# * ("noboreal"): Exclude boreal regions > 50deg N
# * ("onlytropical"): Afforestation only in tropical areas 20deg S-20deg N
cfg$gms$c32_aff_mask <- "noboreal" # def = "noboreal"
# Switch to determine whether biogeophysical responses to
# afforestation should be considered
# If this endogenous bgp effect is considered it is adviced to use the
# unrestricted afforestation mask
# to avoid superimposing the additional exogeneous bgp implementation
# * ("nobgp"): No biogeophysical influences
# * ("ann"): Annual BGP
# * ("djf"): Boreal winter BGP December January February
# * ("jja"): Boreal summer BGP June July August
cfg$gms$c32_aff_bgp <- "nobgp" # def = "nobgp"
# Switch for the different TCRE estimates which are used to
# translate the BGP temperature effect into their carbon equivalent.
# The estimates encompass the ensemble mean +/- SD of 20 CMIP5 models.
# Ceq ~ BGP/TCRE - Hence, high TCRE decreases the BGP effect.
# * ("ann_TCREmean"): Ensemble mean
# * ("ann_TCREhigh"): Ensemble mean + SD
# * ("ann_TCRElow"): Ensemble mean - SD
cfg$gms$c32_tcre_ctrl <- "ann_TCREmean"
# Switch for dynamic timber plantations
# "off" means that timber plantations are initialized in the highest
# age class and that there is no regrowth seen in such plantations.
# In addition, timber plantations are fixed to 1995 levels in the "off" case.
# In other cases, age-classes in timber plantations are initialized based on
# rotation length and can change dynamically over time.
# * 0= off
# * 1= Area is distributed equally to all age-classes within the rotation period
cfg$gms$s32_initial_distribution <- 1 # def = 1
# Switch fore regional or global interest rate for rotation length calculations.
# Using the global setting would mean that the timber plantation decisions are
# decoupled from other decisions in the model which are based on regional interest
# rates.
# * ("regional") = Regionally differentiated interest rates
# * ("global") = One global interest rate
cfg$gms$c32_interest_rate <- "regional" # def = "regional"
# Global interest rate for plantations in case c32_interest_rate switch is global
# Accepted values between 0 and 1.
cfg$gms$s32_forestry_int_rate <- 0.05 # def = 0.05
# Setting to define if the model should be forward looking or not in terms of
# seeing the future demand for current timestep establishment of new plantations.
# * 0 = static (establishment based on current demand)
# * 1 = forward looking (establishment based on future demand according to rotation length)
cfg$gms$s32_demand_establishment <- 1 # def = 1
# Establishment cost for plantations (USD17MER per ha)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate: 1.23)
cfg$gms$s32_est_cost_plant <- 2460 # def = 2000 * 1.23
# Establishment cost for natural vegetation (USD17MER per ha)
# * (inflated from default originally in USD05 using USD05 --> USD17 inflation rate: 1.23)
cfg$gms$s32_est_cost_natveg <- 2460 # def = 2000 * 1.23
# Harvesting switch for timber production
# * 0 = No harvested area from plantations, no age-class shifting (area held constant at 1995 levels)
# * This also means that no harvesting or establishment of new plantations takes place.
# * 1 = "Exogenous" scenario. Harvested area from plantations but with age-class shifting
# * All timber plantations are harvested at rotation age and are re-established
# * such that the total plantation area remains constant.
# * 2 = "Endogenous" scenario. Harvest from plantations including age-class shifting
# * All plantations are harvested at rotation age. Plantation establishment is endogenous.
cfg$gms$s32_hvarea <- 2 # def = 2