Climate clubs and side-payments
1 collaborator

Tags
climate change
Tagged by Author Author almost 10 years ago
clubs
Tagged by Author Author almost 10 years ago
international cooperation
Tagged by Author Author almost 10 years ago
side-payments
(This model has yet to be categorized with any tags)
Tagged by Author Author almost 10 years ago
Model was written in NetLogo 5.0.4
•
Viewed 625 times
•
Downloaded 40 times
•
Run 0 times

To embed this model in another Web site, use the following link:
<iframe src="http://modelingcommons.org/browse/one_model/4458?embedded=true" />
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Click to Run Model
globals [patch-data countries donors new-volunteers new-bribees new-exits weightedavgnd-gain gross-bribe enthusiast-left] patches-own [enthusiast member benefit payoff emissions emissions-r gdp gdp-r nd-gain vulnerability mdc population WTA WTB WTB/WTA WTB-WTA bribe] to setup ca reset-ticks resize-world 0 14 0 9 use-data set countries patches with [emissions-r > 0] ; ignores the patches with negative emissions, and empty patches. ask patches with [emissions-r <= 0][set pcolor white] set-enthusiasm ask countries [ set gdp gdp-r / sum [gdp-r] of countries ; these are adjusted values so that they sum to one. gdp-r sums to .98 due to missing data set emissions emissions-r / sum [emissions-r] of countries ] who-pays set-damage-costs ask countries with [enthusiast = 1][ set member 1 set pcolor green ] ask countries with [enthusiast = 0] [ set member 0 ] end to use-data file-open "Output_GCP.txt" ; THIS DATA FILE MUST BE STORED IN THE SAME FOLDER AS THE MODEL set patch-data [] while [not file-at-end?] [ set patch-data sentence patch-data (list (list file-read file-read file-read file-read file-read file-read file-read)) ] file-close foreach patch-data [ask patch first ? item 1 ? [set plabel item 2 ? set emissions-r item 3 ? set gdp-r item 4 ? set nd-gain item 5 ? set population item 6 ?]] end to set-damage-costs ifelse vulnerability-index = true [ set weightedavgnd-gain (sum [nd-gain * (gdp / mean [gdp] of countries)] of countries) / count countries ; this calculates the nd-gain avg weighted by gdp for use below ask countries[ ; this calculates vulnerability and mdc so that global damages sum to globalMDC. based on above avg nd-gain which is weighed by gdp set vulnerability (nd-gain + (vulnerability-weight - 1) * (nd-gain - weightedavgnd-gain)) / weightedavgnd-gain set mdc globalMDC * vulnerability ] ][ ask countries [ set mdc globalMDC ] ] end to who-pays ; determinse whether only enthusiasts or all members can contribute to side-payments ifelse only-enthusiasts-pay = false[ set donors countries ][ set donors countries with [enthusiast = 1] ] end to go ; THE OVERARCHING PROCEDURE. BELOW ARE SUB-PROCEDURES. tick if count countries with [member = 0] > 0 [ join-or-leave ; this loops until no more volunteers want to join (volunteering is rare in this model) ] if new-volunteers = 0 and count countries with [member = 1] > 0 and side-payment = true [ ; each negotiation stage is a tick. side payments will only be offered when no more states want to join voluntarily side-payments ] if new-volunteers = 0 and new-bribees = 0 [ ; once no more countries can be bribed into the club, enthusiasts consider leaving enthusiasts-leave ] ask countries [ calculate-payoff ] end to join-or-leave ; This procedure checks whether anyone has incentive for unilater action (rarely the case) set new-volunteers 0 ; this is a counter to determine when to enter next stage ask countries with [member = 0][ calculate-benefit ] ask max-one-of countries with [member = 0][benefit - 1][ if benefit > 1[ ; measured in % of gdp set member 1 set pcolor blue set new-volunteers new-volunteers + 1 ] ] end to side-payments ;This is the side-payment procecure set new-bribees 0 if count countries with [member = 0 ] = 0 [stop] ask countries with [member = 0][ ; it is repeated for every non-member in random order calculate-benefit set WTA (1 - benefit) * gdp ; WTA is compensation needed to join, measured in aboslute terms (% of ggp) calculate-WTB ; this calls a sub-procedure that calculates each potential donor's benefit if a given non-member joins. ifelse equity = false[ ; the procedure differs depending on whether the "equity" option is chosen set WTB/WTA sum [WTB * gdp] of donors with [member = 1] / WTA ; ratio between club WTB and entrant WTA. can be moved to ask max-one-of to speed up the model set WTB-WTA sum [WTB * gdp] of donors with [member = 1] - WTA ; difference between WTA and club WTB, measured in % of ggp ][ set WTB/WTA sum [WTB * gdp] of donors with [member = 1 and (gdp / population) > [gdp / population] of myself] / WTA set WTB-WTA sum [WTB * gdp] of donors with [member = 1 and (gdp / population) > [gdp / population] of myself] - WTA ] ] ask donors [set WTB 0] ; reset needed for technical reasons ask max-one-of countries with [member = 0] [WTB-WTA][ ; the entrant giving the largest net benefits enters first if WTB/WTA > 1 [ ; it will only enter if both it and the club can benefit from it. this could be expressed in terms of WTB-WTA too. calculate-WTB ifelse equity = false [ ; the procedure differs depending on whether the "equity" option is chosen ask donors with [member = 1][ set bribe bribe - WTB * gdp / [WTB/WTA] of myself ; donors share the cost according to their benefit from expansion (See Barrett 2001) ] ; "bribe" is negative for those who pay. It measures accumulated bribes, in absolute terms (% of GGP) ][ let members-richer-than-entrant donors with [member = 1 and (gdp / population) > [gdp / population] of myself] ; if "equity" is on, only the members richer than the entrant share the cost ask members-richer-than-entrant[ set bribe bribe - WTB * gdp / [WTB/WTA] of myself ] ; end most likely entrant asks members ] set member 1 set pcolor orange set bribe bribe + WTA ; "bribe" is negative for those who pay. It measures accumulated bribes, in absolute terms (% of GGP) print WTA * 755.9 ; to convert from % of GGP to US$, multiply by 755.9, as GGP 2013 in current US$ was 75.59 trillion (worldbank.org) set gross-bribe gross-bribe + WTA * 755.9 ; this is a checker set new-bribees new-bribees + 1 ] ] ; end if pareto improvements are possible ask countries with [bribe < 0] ; actors who make net side-payments have their names displayed in black [set plabel-color 0] end to enthusiasts-leave ask countries with [enthusiast = 1][ calculate-payoff if payoff < (- mdc) [ ; payoff in the non cooperative outcome set member 0 set pcolor grey set enthusiast 0 set enthusiast-left 1 ; enthusiasts leave the club ] ] ask countries with [pcolor = orange][ calculate-benefit if benefit < 1 [ set pcolor red ; those who require continous bribes are red ] ] if enthusiast-left = 1 [ ; if enthusiasts leave, those who no longer benefit, leave too. New negotiations will start if there are remaining enthusiasts. ask countries with [member = 1 and enthusiast = 0] [ calculate-benefit if benefit < 1 [ set member 0 set pcolor black ] ] set enthusiast-left 0 ask countries [set bribe 0] ; bribe is reset to allow new negotiations to start. ] end to calculate-benefit ; benefit is measured in % of gdp set benefit mdc * emissions end to calculate-WTB ; WTB is measured in % of gdp, so must often be multiplied by gdp when used ask donors with [member = 1][ ; the potential entrant asks members set WTB mdc * [emissions] of myself ] end to calculate-payoff ; measured in % of gdp. Payoff is normalized to be (- Damage cost) in the BAU, and (-Club fee) if all countries are club members. ifelse member = 1[ set payoff (- 1) - mdc * (sum [emissions] of countries with [member = 0]) + bribe / gdp][ ; payoff for members set payoff (- mdc) * sum [emissions] of countries with [member = 0] ; payoff for non-members ] end to set-enthusiasm ask patches with [plabel = "China"][set enthusiast china-enthusiast] ask patches with [plabel = "United States"][set enthusiast usa-enthusiast] ask patches with [plabel = "European Union"][set enthusiast eu-enthusiast] ask patches with [plabel = "Russian Federation"][set enthusiast russia-enthusiast] ask patches with [plabel = "India"][set enthusiast india-enthusiast] ask patches with [plabel = "Brazil"][set enthusiast brazil-enthusiast] ask patches with [plabel = "Japan"][set enthusiast japan-enthusiast] ask patches with [plabel = "Indonesia"][set enthusiast indonesia-enthusiast] ask patches with [plabel = "Australia"][set enthusiast australia-enthusiast] ask patches with [plabel = "Iran, Islamic Rep."][set enthusiast iran-enthusiast] ask patches with [plabel = "Canada"][set enthusiast canada-enthusiast] ask patches with [plabel = "Mexico"][set enthusiast mexico-enthusiast] ask patches with [plabel = "Korea, Rep."][set enthusiast korea-enthusiast] ask patches with [plabel = "South Africa"][set enthusiast sa-enthusiast] end
There is only one version of this model, created almost 10 years ago by Author Author.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Climate clubs and side-payments.png | preview | Preview for 'Climate clubs and side-payments' | almost 10 years ago, by Author Author | Download |
Output_GCP.txt | data | Input data that must be saved in the same folder as the model. | almost 10 years ago, by Author Author | Download |
This model does not have any ancestors.
This model does not have any descendants.
Author Author
Please note:
The file named "Output_GCP.txt" must be stored in the same folder as the model. It contains input data. The file can be downloaded under the "Files" tab.
Posted almost 10 years ago