Skip to content

Commit

Permalink
Balmorel v3.02 (20110920) from Balmorel.com
Browse files Browse the repository at this point in the history
  • Loading branch information
olejandro committed Jul 6, 2017
0 parents commit adabc9b
Show file tree
Hide file tree
Showing 290 changed files with 762,470 additions and 0 deletions.
55 changes: 55 additions & 0 deletions base/addons/AGKNdisc/AGKNDISC-documentation.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@





to m�der:
(1) IAGKN recuderes med IAGKNDISC:



(2) IAGKN er u�ndret IAGKNDISC
fordele:
meget f� �ndringer af eksisterende: muligvis kun i QOBJ, hvor enten vi skal 'tr�kke fra', eller omskrive eksisterende, MHT GOMFCOST og AGKNDISCINVCOST.
[ problem: hvis der er f�llesbegr�nsninger p� teknologi; der kan komme investeringer af begge slags; ... NEJ: IKKE NOGET PROBLEM! DER ER JO NETOP IKKE MULIGHED FOR DETTE, EN TEKNOLOGI KAN IKKE V�RE B�DE AKGN OG AGKNDISC!]
[Eneste problem er vel VKGN/VGKNDISC, hvor VGKN ikke skal eksistere. men det g�r den jo? Jo, det er en af fiduserne: at den 'bare' indg�r.]
Vi skal blot tage h�jde for, at (a) dens omkostninger (GOMFCOST og AGKNDISCINVCOST) bliver nulstillet
(b) der indf�rer VGKN(IAGKN(IA,G)) =E= sumdisckap [n�ppe s�rlig vanskelig, vi har �n konstinuert og en sum af deskrete]
(c) h�jst �n af de diskrete kan v�lges.

SMART!
Bem�rk endvidere, at i stedet for at tr�kke fra og l�gge til i QOBJ mht omkostninger, kan vi jo definere nye differencomkostninger:
parameter Iagkndiscdiffcost(AAA,G,AGKNDISCSIZES,AGKNDISCDATASET);
Iagkndiscdiffcost(IA,G,AGKNDISCSIZES,AGKNDISCDATASET)$AGKNDISC(IA,G) =
AGKNDISCDATA(G,AGKNDISCSIZES,'AGKNDISCINVCOST')
- AGKNDISCDATA(G,AGKNDISCSIZES,'AGKNDISCSIZE')*GOMFCOST(IA,G)
- AGKNDISCDATA(G,AGKNDISCSIZES,'AGKNDISCSIZE')*GINVCOST(IA,G);
og bare l�gge den til i QOBJ.
GENIALT!


AGKNDISCDATA(GGG,AGKNDISCSIZES,AGKNDISCDATASET)





==== huskhusk:

�ndret i egn_cy.inc

==================================
Her forslag til to nye sets, IGHNOSTO 'Technologies generating heat, except seasonal storage' , IGENOSTO 'Technologies generating electricity, except seasonal storage' .
Der vil g�lde, at IGENOSTO==IGKENOSTO (svarende til (IGE==IGKE)), og IGKHNOSTO!=IGHNOSTO (faktisk delm�ngde, IGKHNOSTO(IGHNOSTO), parallelt med at IGH!=IGKH )
TEST:
set gtest(g);
SET IGENOSTO(G);
IGENOSTO(G) = IGE(G) - IGESTO(G);
gtest(g)= IGKENOSTO(G) -IGENOSTO(G);
display "special: IGENOSTO : ", IGENOSTO , "DIFF FROM IGKENOSTO :" ,gtest ;
SET IGHNOSTO(G);
IGHNOSTO(G)=IGH(G)-IGHSTO(G);
GTEST(G)=IGHNOSTO(G)-IGKHNOSTO(G);
Display "special: IGhNOSTO : ", IGHNOSTO , "DIFF FROM IGKHNOSTO :" ,gtest ;

====================================================================
7 changes: 7 additions & 0 deletions base/addons/AGKNdisc/agkndiscaddobj.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
* File agkndiscaddobj.inc.
* To be used with addon AGKNDISC to the Balmorel model.


* Addon AGKNDISC: contribution to QOBJ:

+ IOF1000000*(SUM(IAGKNDISCAG(IA,G), SUM(AGKNDISCGSIZESET$AGKNDISCGDATA(G,AGKNDISCGSIZESET,'AGKNDISCSIZE'), VGKNDISC(IA,G,AGKNDISCGSIZESET)* Iagkndiscdiffcost(IA,G,AGKNDISCGSIZESET,'AGKNDISCINVCOST') )))
67 changes: 67 additions & 0 deletions base/addons/AGKNdisc/agkndiscequations.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
* File agkndisceauations.inc.
* To be used with addon AGKNDISC to the Balmorel model.



$ONTEXT
QAGKNDISC1(IAGKNDISC(IA,IGDISPATCH(IGE)),IS3,T)..


SUM(AGKNDISCSIZES$AGKNDISCDATA(IGDISPATCH,AGKNDISCSIZES,'AGKNDISCSIZE'),
VGKNDISC(IA,IGDISPATCH,AGKNDISCSIZES)*AGKNDISCDATA(IGDISPATCH,AGKNDISCSIZES,'AGKNDISCSIZE')*GKDERATE(IA,IGDISPATCH,IS3)/(1$(not IGESTO(IGE)) + GDATA(IGE,'GDSTOHUNLD')$IGESTO(IGE)) )
=G=
VGEN_T(IA,IGDISPATCH,IS3,T)

;

$OFFTEXT





* 'The invested capacity must be one of the specified sizes or zero (MW) (Addon AGKNDISC)'

QAGKNDISCCONT(IAGKNDISCAG(IA,G))..

VGKN(IA,G) =E= SUM(AGKNDISCGSIZESET$AGKNDISCGDATA(G,AGKNDISCGSIZESET,'AGKNDISCSIZE'), VGKNDISC(IA,G,AGKNDISCGSIZESET)*AGKNDISCGDATA(G,AGKNDISCGSIZESET,'AGKNDISCSIZE'));











$ontext

QGEKNT(IAGKN(IA,IGDISPATCH(IGE)),IS3,T)$
$ifi not %COMBTECH%==yes 1 ..
$ifi %COMBTECH%==yes (NOT IGCOMB2(IGE)) ..
* LARS20070814: Modified to account for investment in storage
VGKN(IA,IGDISPATCH)*GKDERATE(IA,IGDISPATCH,IS3)/(1$(not IGESTO(IGE)) + GDATA(IGE,'GDSTOHUNLD')$IGESTO(IGE))
=G=
VGEN_T(IA,IGDISPATCH,IS3,T)
$ifi %COMBTECH%==yes * Add secondary generation if using combination technologies.
$ifi %COMBTECH%==yes + SUM(IGCOMB2$GGCOMB(IGDISPATCH,IGCOMB2), VGEN_T(IA,IGCOMB2,IS3,T))$IGCOMB1(IGDISPATCH)
;

QGHKNT(IAGKN(IA,IGKH),IS3,T)..
* LARS20070814: Modified to account for investment in storage
* LARS20071015: Skulle denne i virkeligheden også bruge IGDISPATCH for konsistens? For nuværende er alle varme teknologier dispatchable,
* men hvad med solvarme?
VGKN(IA,IGKH)*GKDERATE(IA,IGKH,IS3)/(1$(not IGHSTO(IGKH)) + GDATA(IGKH,'GDSTOHUNLD')$IGHSTO(IGKH))
=G=
VGHN_T(IA,IGKH,IS3,T)
;

$offtext



* 'At most one of the specified discrete capacity size investments is chosen (Addon AGKNDISC)'
QAGKNDISC01(IAGKNDISCAG(IA,G))..
SUM(AGKNDISCGSIZESET$AGKNDISCGDATA(G,AGKNDISCGSIZESET,'AGKNDISCSIZE'), VGKNDISC(IA,G,AGKNDISCGSIZESET) )=L= 1;
15 changes: 15 additions & 0 deletions base/addons/AGKNdisc/agkndiscinternal.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
* File agkndiscinternal.inc.
* To be used with addon AGKNDISC to the Balmorel model.


SET IAGKNDISCAG(AAA,G) 'Area, technology for discrete size investment, where technology may be invested based on AGKN and implicit constraints (Addon AGKNDISC)';

PARAMETER IAGKNDISCDIFFCOST(AAA,G,AGKNDISCGSIZESET,AGKNDISCGDATASET) 'Investment costs in relation to discrete capacity size investments, as difference for aech size (Money) (Addon AGKNDISC)';

IAGKNDISCDIFFCOST(IA,G,AGKNDISCGSIZESET,AGKNDISCGDATASET)$AGKNDISCAG(IA,G) =
AGKNDISCGDATA(G,AGKNDISCGSIZESET,'AGKNDISCINVCOST')
- AGKNDISCGDATA(G,AGKNDISCGSIZESET,'AGKNDISCSIZE')*GOMFCOST(IA,G)
- AGKNDISCGDATA(G,AGKNDISCGSIZESET,'AGKNDISCSIZE')*GINVCOST(IA,G);



10 changes: 10 additions & 0 deletions base/addons/AGKNdisc/agkndiscsets.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

* This file not used - but similar declarations are used.

SET AGKNDISCAG(AAA,G) 'Areas for possible location of discrete capacity investments in technologies';

SET AGKNDISCGSIZESET 'Set of possible sizes for discrete capacity investments in technologies';

SET AGKNDISCGDATASET 'Technology investment data types for discrete capacity size investments';

PARAMETER AGKNDISCGDATA(GGG,AGKNDISCGSIZESET,AGKNDISCGDATASET) 'Technology investment data for discrete capacity size investments'
4 changes: 4 additions & 0 deletions base/addons/AGKNdisc/agkndiscvariables.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* File agkndiscvariables.inc.
* To be used with addon AGKNDISC to the Balmorel model.

BINARY VARIABLE VGKNDISC(AAA,G,AGKNDISCGSIZESET) 'New generation capacity in relation to discrete capacity size investments (binary) (Addon AGKNDISC)';
20 changes: 20 additions & 0 deletions base/addons/AGKNdisc/testdata/AGKNDISC.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

SET AGKNDISC(AAA,G) 'Areas for possible location of new technologies taking discrete capacity size investments';

*AGKNDISC(AAA,'backstop') = yes;
AGKNDISC('DK_W_1','backstop') = yes;
AGKNDISC('FI_R_Rural','backstop') = yes;
AGKNDISC('DK_E_1','backstop') = yes;

AGKNDISC(aaa,'backstop')$RRRAAA('dk_e',aaa)=yes;
AGKNDISC(aaa,'backstop')$RRRAAA('dk_w',aaa)=yes;



* med mulighed i alle AAA taget det meget lagn tid at finde den optimale løsning:
*DK_E_4 BACKSTOP AGKNDISCSIZE1 1.00 6000.00
*DK_W_1 BACKSTOP AGKNDISCSIZE1 1.00 6000.00
*FI_R_Rural BACKSTOP AGKNDISCSIZE2 1.00 12000.00
*NO_O_Rural BACKSTOP AGKNDISCSIZE1 1.00 6000.00


16 changes: 16 additions & 0 deletions base/addons/AGKNdisc/testdata/AGKNDISCDATA.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

TABLE AGKNDISCDATA(GGG,AGKNDISCSIZES,AGKNDISCDATASET) 'Technology investment data for discrete capacity size investments'

AGKNDISCSIZE AGKNDISCINVCOST AGKNDISCGOMFCOST
* MW MMoney kMoney/MW
backstop.AGKNDISCSIZE1 6000 - 30
backstop.AGKNDISCSIZE2 12000 - 50
backstop.AGKNDISCSIZE3 18000 - 100
;

/*
600
1000
2000
*/
8 changes: 8 additions & 0 deletions base/addons/AGKNdisc/testdata/AGKNDISCDATASET.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

SET AGKNDISCDATASET 'Technology investment data types for discrete capacity size investments'
/
AGKNDISCSIZE 'Size (MW)'
AGKNDISCINVCOST 'Investment cost (MMoney?)'
AGKNDISCGOMFCOST 'Annual operating and maintenance costs (kMoney/MW)(default value)'
/;

5 changes: 5 additions & 0 deletions base/addons/AGKNdisc/testdata/AGKNDISCSET.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SET AGKNDISCSET 'Set of possible sizes for discrete capacity investments in technologies'
/
AGKNDISCSIZE1, AGKNDISCSIZE2, AGKNDISCSIZE3
/;

4 changes: 4 additions & 0 deletions base/addons/AGKNdisc/testdata/agkndisc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

SET AGKNDISC(AAA,G) 'Areas for possible location of new technologies taking discrete size capacities';

AGKNDISC(AAA,'backstop') = yes;
6 changes: 6 additions & 0 deletions base/addons/Combtech/combBB1.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
QECOMBGLK
QECOMBSLO
QECOMBSUP
QHCOMBGLK
QHCOMBSLO
QHCOMBSUP
7 changes: 7 additions & 0 deletions base/addons/Combtech/combBB2.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
$include '../../base/addons/combtech/combbb1.inc';
QNECOMBGLK
QNECOMBSLO
QNECOMBSUP
QNHCOMBGLK
QNHCOMBSLO
QNHCOMBSUP
151 changes: 151 additions & 0 deletions base/addons/Combtech/combEQ.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
EQUATIONS
QECOMBGLK(AAA,G,S,T) 'Combination technology, sum of production limit, electricity'
QECOMBSLO(AAA,G,S,T) 'Combination technology, minimum share of total production, electricity'
QECOMBSUP(AAA,G,S,T) 'Combination technology, maximum share of total production, electricity'
QHCOMBGLK(AAA,G,S,T) 'Combination technology, sum of production limit, heat'
QHCOMBSLO(AAA,G,S,T) 'Combination technology, minimum share of total production, heat'
QHCOMBSUP(AAA,G,S,T) 'Combination technology, maximum share of total production, heat'
QNECOMBGLK(AAA,G,S,T) 'New combination technology, sum of production limit, electricity'
QNECOMBSLO(AAA,G,S,T) 'New combination technology, minimum share of total production, electricity'
QNECOMBSUP(AAA,G,S,T) 'New combination technology, maximum share of total production, electricity'
QNHCOMBGLK(AAA,G,S,T) 'New combination technology, sum of production limit, heat'
QNHCOMBSLO(AAA,G,S,T) 'New combination technology, minimum share of total production, heat'
QNHCOMBSUP(AAA,G,S,T) 'New combination technology, maximum share of total production, heat';

QECOMBGLK(IA,IGCOMB1,IS3,T)$(IAGK_Y(IA,IGCOMB1) AND IGKE(IGCOMB1)
AND ((GDATA(IGCOMB1,'GDCOMBSK') + SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), GDATA(IGCOMB2,'GDCOMBSK'))) GT 1))..
(IGKVACCTOY(IA,IGCOMB1) + IGKFX_Y(IA,IGCOMB1)) * GKDERATE(IA,IGCOMB1,IS3)
=G=
VGE_T(IA,IGCOMB1,IS3,T) + SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), VGE_T(IA,IGCOMB2,IS3,T))
;


QECOMBSLO(IA,IGKE,IS3,T)$(IAGK_Y(IA,IGKE) AND (GDATA(IGKE,'GDCOMBSLO') GT 0) AND (IGCOMB1(IGKE) OR IGCOMB2(IGKE)))..
VGE_T(IA,IGKE,IS3,T) =G= GDATA(IGKE,'GDCOMBSLO')*(
(SUM(IGCOMB2$GGCOMB(IGKE,IGCOMB2), VGE_T(IA,IGCOMB2,IS3,T))
+ VGE_T(IA,IGKE,IS3,T))$IGCOMB1(IGKE)
+ (SUM(IGCOMB1$GGCOMB(IGCOMB1,IGKE),
VGE_T(IA,IGCOMB1,IS3,T)
+ SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2),
VGE_T(IA,IGCOMB2,IS3,T)))
)$IGCOMB2(IGKE));


QECOMBSUP(IA,IGKE,IS3,T)$(IAGK_Y(IA,IGKE) AND (IGCOMB1(IGKE) OR IGCOMB2(IGKE)) AND (GDATA(IGKE,'GDCOMBSUP') LT 1))..
GDATA(IGKE,'GDCOMBSUP')
*(
(SUM(IGCOMB2$GGCOMB(IGKE,IGCOMB2), VGE_T(IA,IGCOMB2,IS3,T))
+ VGE_T(IA,IGKE,IS3,T)
)$IGCOMB1(IGKE)
+ (SUM(IGCOMB1$GGCOMB(IGCOMB1,IGKE), VGE_T(IA,IGCOMB1,IS3,T)
+ SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), VGE_T(IA,IGCOMB2,IS3,T)))
)$IGCOMB2(IGKE)
)
=G=
VGE_T(IA,IGKE,IS3,T)
;

QHCOMBGLK(IA,IGCOMB1,IS3,T)$(IAGK_Y(IA,IGCOMB1) AND IGKH(IGCOMB1)
AND (GDATA(IGCOMB1,'GDCOMBSK') + SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), GDATA(IGCOMB1,'GDCOMBSK') GT 1)))..
(IGKVACCTOY(IA,IGCOMB1) + IGKFX_Y(IA,IGCOMB1))*GKDERATE(IA,IGCOMB1,IS3)
=G=
VGH_T(IA,IGCOMB1,IS3,T) + SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), VGH_T(IA,IGCOMB2,IS3,T))
;

QHCOMBSLO(IA,IGKH,IS3,T)$(IAGK_Y(IA,IGKH) AND (IGCOMB1(IGKH) OR IGCOMB2(IGKH)) AND (GDATA(IGKH,'GDCOMBSLO') GT 0))..
VGH_T(IA,IGKH,IS3,T)
=G=
GDATA(IGKH,'GDCOMBSLO')*(
(SUM(IGCOMB2$GGCOMB(IGKH,IGCOMB2), VGH_T(IA,IGCOMB2,IS3,T))
+ VGH_T(IA,IGKH,IS3,T))$IGCOMB1(IGKH)
+ (SUM(IGCOMB1$GGCOMB(IGCOMB1,IGKH),
VGH_T(IA,IGCOMB1,IS3,T)
+ SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2),
VGH_T(IA,IGCOMB2,IS3,T)))
)$IGCOMB2(IGKH))
;


QHCOMBSUP(IA,IGKH,IS3,T)$(IAGK_Y(IA,IGKH) AND (IGCOMB1(IGKH) OR IGCOMB2(IGKH)) AND (GDATA(IGKH,'GDCOMBSUP') LT 1))..
GDATA(IGKH,'GDCOMBSUP')*(
(SUM(IGCOMB2$GGCOMB(IGKH,IGCOMB2), VGH_T(IA,IGCOMB2,IS3,T))
+ VGH_T(IA,IGKH,IS3,T))$IGCOMB1(IGKH)

+( SUM(IGCOMB1$GGCOMB(IGCOMB1,IGKH),
VGH_T(IA,IGCOMB1,IS3,T)
+SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2),
VGH_T(IA,IGCOMB2,IS3,T)))
)$IGCOMB2(IGKH))
=G=
VGH_T(IA,IGKH,IS3,T)
;


QNECOMBGLK(IA,IGCOMB1,IS3,T)$
(IAGKN(IA,IGCOMB1) AND IGKE(IGCOMB1)
AND (GDATA(IGCOMB1,'GDCOMBSK') + SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), GDATA(IGCOMB1,'GDCOMBSK') GT 1)))..
VGKN(IA,IGCOMB1)*GKDERATE(IA,IGCOMB1,IS3)
=G=
VGEN_T(IA,IGCOMB1,IS3,T) + SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), VGEN_T(IA,IGCOMB2,IS3,T))
;


QNECOMBSLO(IA,IGKE,IS3,T)$(IAGKN(IA,IGKE) AND (IGCOMB1(IGKE) OR IGCOMB2(IGKE)) AND (GDATA(IGKE,'GDCOMBSLO') GT 0))..
VGEN_T(IA,IGKE,IS3,T) =G= GDATA(IGKE,'GDCOMBSLO')*(
(SUM(IGCOMB2$GGCOMB(IGKE,IGCOMB2), VGEN_T(IA,IGCOMB2,IS3,T))
+ VGEN_T(IA,IGKE,IS3,T))$IGCOMB1(IGKE)
+ (SUM(IGCOMB1$GGCOMB(IGCOMB1,IGKE),
VGEN_T(IA,IGCOMB1,IS3,T)
+ SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2),
VGEN_T(IA,IGCOMB2,IS3,T)))
)$IGCOMB2(IGKE));


QNECOMBSUP(IA,IGKE,IS3,T)$(IAGKN(IA,IGKE) AND (IGCOMB1(IGKE) OR IGCOMB2(IGKE)) AND (GDATA(IGKE,'GDCOMBSUP') LT 1))..
GDATA(IGKE,'GDCOMBSUP')*(
(SUM(IGCOMB2$GGCOMB(IGKE,IGCOMB2), VGEN_T(IA,IGCOMB2,IS3,T))
+ VGEN_T(IA,IGKE,IS3,T))$IGCOMB1(IGKE)
+ (SUM(IGCOMB1$GGCOMB(IGCOMB1,IGKE),
VGEN_T(IA,IGCOMB1,IS3,T)
+ SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2),
VGEN_T(IA,IGCOMB2,IS3,T)))
)$IGCOMB2(IGKE))
=G=
VGEN_T(IA,IGKE,IS3,T)
;


QNHCOMBGLK(IA,IGCOMB1,IS3,T)$(IAGKN(IA,IGCOMB1) AND IGKH(IGCOMB1)
AND (GDATA(IGCOMB1,'GDCOMBSK') + SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), GDATA(IGCOMB1,'GDCOMBSK') GT 1)))..
VGKN(IA,IGCOMB1)*GKDERATE(IA,IGCOMB1,IS3)
=G=
VGHN_T(IA,IGCOMB1,IS3,T) + SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2), VGHN_T(IA,IGCOMB2,IS3,T))
;


QNHCOMBSLO(IA,IGKH,IS3,T)$(IAGKN(IA,IGKH) AND (IGCOMB1(IGKH) OR IGCOMB2(IGKH)) AND (GDATA(IGKH,'GDCOMBSLO') GT 0))..
VGHN_T(IA,IGKH,IS3,T)
=G=
GDATA(IGKH,'GDCOMBSLO')*(
(SUM(IGCOMB2$GGCOMB(IGKH,IGCOMB2), VGHN_T(IA,IGCOMB2,IS3,T))
+ VGHN_T(IA,IGKH,IS3,T))$IGCOMB1(IGKH)
+ (SUM(IGCOMB1$GGCOMB(IGCOMB1,IGKH),
VGHN_T(IA,IGCOMB1,IS3,T)
+ SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2),
VGHN_T(IA,IGCOMB2,IS3,T)))
)$IGCOMB2(IGKH))
;


QNHCOMBSUP(IA,IGKH,IS3,T)$(IAGKN(IA,IGKH) AND (IGCOMB1(IGKH) OR IGCOMB2(IGKH)) AND (GDATA(IGKH,'GDCOMBSUP') LT 1))..
GDATA(IGKH,'GDCOMBSUP')*(
(SUM(IGCOMB2$GGCOMB(IGKH,IGCOMB2), VGH_T(IA,IGCOMB2,IS3,T))
+ VGHN_T(IA,IGKH,IS3,T))$IGCOMB1(IGKH)
+ (SUM(IGCOMB1$GGCOMB(IGCOMB1,IGKH),
VGHN_T(IA,IGCOMB1,IS3,T)
+ SUM(IGCOMB2$GGCOMB(IGCOMB1,IGCOMB2),
VGHN_T(IA,IGCOMB2,IS3,T)))
)$IGCOMB2(IGKH))
=G=
VGHN_T(IA,IGKH,IS3,T)
;
2 changes: 2 additions & 0 deletions base/addons/Combtech/combGassign.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
IGCOMB1(G) = YES$(GDATA(G,'GDCOMB') EQ 1);
LOOP(IGCOMB1, IGCOMB2(G)$((GDATA(G,'GDCOMB') EQ 2) AND (GGCOMB(IGCOMB1,G))) = YES);
Loading

0 comments on commit adabc9b

Please sign in to comment.