$OnText This file contains the DEA–MBP model program code to measureeco-efficiency. This model developed by Arabi et al (2016). Table of contents: 1- Sets 2- Data 3- Calculations & post Parameter definition 4- Variables 5- Equations 6- Bounds 7- Models & solution 8- Display & Table generation $offtext option solprint=on; Option nlp=conopt4; *$OnText $set commandfile commands.txt $onecho > %commandfile% I=DATA.xlsx O=Data.GDX $offecho $call gdxxrw Index=Index!a1 @commands.txt *$OffText $gdxin 'Data.GDX' Sets l set of Low pollutant inputs h set of High pollutant inputs m set of NON- pollutant inputs j set of NON- pollutant outputs k set of pollutant outputs n set of Decision making units $Load l,h,m,j,k,n Alias (n,o) Parameters XL(n,l) Amount of Low pollutant inputs XH(n,h) Amount of High pollutant inputs XM(n,m) Amount of NON- pollutant inputs Y(n,j) Amount of NON- pollutant outputs Z(n,k) Amount of pollutant outputs b(j,k) al(l,k) ah(h,k) eff(o) Eficiency Score; $Load XL,XH,XM,Y,Z,b,al,ah Display l,h,m,j,k,n,XL,XH,XM,Y,Z,b,al,ah *$Exit Parameters XLO(l) Amount of Low pollutant inputs for under-assessment of DMU XHO(h) Amount of High pollutant inputs for under-assessment of DMU XMO(m) Amount of NON- pollutant inputs for under-assessment of DMU YO(j) Amount of NON- pollutant outputs for under-assessment of DMU ZO(k) Amount of pollutant outputs for under-assessment of DMU RXL(l) RXH(h) RXM(m) RY(j) RZ(k); XLO(l)=XL("2",l); XHO(h)=XH("2",h); XMO(m)=XM("2",m); YO(j) =Y ("2",j); ZO(k) =Z ("2",k); RXL(l)=Smax(n,XL(n,l))-Smin(n,XL(n,l)); RXH(h)=Smax(n,XH(n,h))-Smin(n,XH(n,h)); RXM(m)=Smax(n,XM(n,m))-Smin(n,Xm(n,m)); RY(j)=Smax(n,Y(n,j))-Smin(n,Y(n,j)); RZ(k)=Smax(n,Z(n,k))-Smin(n,Z(n,K)); Positive variable Lambda_V(n) AlphaL_V(l) AlphaH_V(h) AlphaM_V(m) Beta_V(j) Gama_V(k) Variable D_V Equations obj XLCon(l) XHCon(h) XMCon(m) YCon(j) ZCon(k) Balance1 Balance2(k) *Equal1 ; Obj.. D_V=e=Sum(l,AlphaL_V(l)) +Sum(h,AlphaH_V(h))+Sum(m,AlphaM_V(m)) +Sum(j,Beta_V(j)) +Sum(k,Gama_V(k)); XLCon(l).. Sum(n,Lambda_V(n)*XL(n,l))=l=XLO(l)+AlphaL_V(l); XHCon(h).. Sum(n,Lambda_V(n)*XH(n,h))=l=XHO(h)-AlphaH_V(h); XMCon(m)..Sum(n,Lambda_V(n)*XM(n,m))=l=XMO(m)-AlphaM_V(m); YCon(j)..Sum(n,Lambda_V(n)*Y(n,j))=g=YO(j)+Beta_V(j); ZCon(k)..Sum(n,Lambda_V(n)*Z(n,k))=e=ZO(k)-Gama_V(k); Balance1.. sum(l,AlphaL_V(l))-Sum(h,AlphaH_V(h))=e=0; Balance2(k)..Gama_V(k)-Sum(j,b(j,k)*Beta_V(j))=e= Sum(h,ah(h,k)*AlphaH_V(h))-sum(l,al(l,k)*AlphaL_V(l)); model EcoEFF /all/; Parameters Lambda_P(o) AlphaL_P(o,l) AlphaH_P(o,h) AlphaM_P(o,m) Beta_P(o,j) Gama_P(o,k) *$Exit loop(o,XLO(l)=XL(o,l);XHO(h)=XH(o,h);XMO(m)=XM(o,m);YO(j) =Y (o,j);ZO(k) =Z (o,k); solve EcoEFF using nlp maximizing D_V; Eff(o)=1-(1/(Card(l)+Card(h)+card(m)+card(j)+card(k)))*(Sum(l,AlphaL_V.l(l)/RXL(l)) +Sum(h,AlphaH_V.l(h)/RXH(h))+Sum(m,AlphaM_V.l(m)/RXM(m)) +Sum(j,Beta_V.l(j)/RY(j)) +Sum(k,Gama_V.l(k)/RZ(k))); Lambda_P(o)=Lambda_V.l(o); AlphaL_P(o,l)=AlphaL_V.l(l); AlphaH_P(o,h)=AlphaH_V.l(h); AlphaM_P(o,m)=AlphaM_V.l(m); Beta_P(o,j) =Beta_V.l(j); Gama_P(o,k)=Gama_V.l(k); ) Display Eff; execute_unload "results.gdx" Eff Lambda_P AlphaL_P AlphaH_P AlphaM_P Beta_P Gama_P $onecho > gdxxrwout1.txt I=results.gdx O=results.xlsx par = Eff rng=Eff!a1 Rdim=1 Cdim = 0 par = Lambda_P rng=Lambda_P!a1 Rdim=1 Cdim = 0 par = AlphaL_P rng=AlphaL_P!a1 Rdim=1 Cdim = 1 par = AlphaH_P rng=AlphaH_P!a1 Rdim=1 Cdim = 1 par = AlphaM_P rng=AlphaM_P!a1 Rdim=1 Cdim = 1 par = Beta_P rng=Beta_P!a1 Rdim=1 Cdim = 1 par = Gama_P rng=Gama_P!a1 Rdim=1 Cdim = 1 $offecho execute 'gdxxrw.exe @gdxxrwout1.txt trace=2';