ÐÏࡱá>þÿ  þÿÿÿþÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAREHOUSE, CUSTOMER) : COST, VOLUME; ENDSETS ! The objective; [OBJ] min = @SUM( ROUTES: COST * VOLUME); ! The demand constraints; @FOR( CUSTOMER( J): [R_DEM] @SUM( WAREHOUSE( I): VOLUME( I, J)) >= DEMAND( J)); ! The supply constraints; @FOR( WAREHOUSE( I): [R_SUP] @SUM( CUSTOMER( J): VOLUME( I, J)) <= CAPACITY( I)); ! Here are the parameters; DATA: CAPACITY = 30, 25, 21 ; DEMAND = 15, 17, 22, 12; COST = 6, 2, 6, 7, 4, 9, 5, 3, 8, 8, 1, 5; ENDDATA DATA: INFINITY = 1.E30; LENF1S = 31; LENF1R = 24; ! Solution report.............................................; @TEXT() = @WRITE( @NEWLINE( 1), 70*'v', @NEWLINE( 1)); @TEXT() = @WRITE( 3*' ', @IF( @STATUS() #EQ# 0, 'Global optimal', '**** Non-global ***'), ' solution found at iteration:', @FORMAT( @ITERS(), '14.14G'), @NEWLINE( 1) ); @TEXT() = @WRITE( 3*' ', 'Objective value:', @FORMAT( OBJ, '#41.7G'), @NEWLINE( 2) ); @TEXT() = @WRITE( 23*' ', 'Variable Value Reduced Cost', @NEWLINE( 1) ); @TEXT() = @WRITEFOR( WAREHOUSE( I): ( LENF1S - @STRLEN( @NAME( CAPACITY( I))))*' ', @NAME( CAPACITY( I)), @FORMAT( CAPACITY( I), '#16.7G'), @FORMAT( @DUAL( CAPACITY( I)), '#20.6G'), @NEWLINE( 1) ); @TEXT() = @WRITEFOR( CUSTOMER( I): ( LENF1S - @STRLEN( @NAME( DEMAND( I))))*' ', @NAME( DEMAND( I)), @FORMAT( DEMAND( I), '#16.7G'), @FORMAT( @DUAL( DEMAND( I)), '#20.6G'), @NEWLINE( 1) ); @TEXT() = @WRITEFOR( ROUTES( I, J): ( LENF1S - @STRLEN( @NAME( COST( I, J))))*' ', @NAME( COST( I, J)), @FORMAT( COST( I, J), '#16.7G'), @FORMAT( @DUAL( COST( I, J)), '#20.6G'), @NEWLINE( 1) ); @TEXT() = @WRITEFOR( ROUTES( I, J): ( LENF1S - @STRLEN( @NAME( VOLUME( I, J))))*' ', @NAME( VOLUME( I, J)), @FORMAT( VOLUME( I, J), '#16.7G'), @FORMAT( @DUAL( VOLUME( I, J)), '#20.7G'), @NEWLINE( 1) ); @TEXT() = @WRITE( @NEWLINE( 1), 28*' ', 'Row Slack or Surplus Dual Price', @NEWLINE( 1) ); @TEXT() = @WRITE( 28*' ','OBJ', @FORMAT( OBJ, '#16.7G'), @FORMAT( @DUAL( OBJ), '#20.7G'), @NEWLINE( 1) ); @TEXT() = @WRITEFOR( CUSTOMER( I): ( LENF1S - @STRLEN( @NAME( R_DEM( I))))*' ', @NAME( R_DEM( I)), @FORMAT( R_DEM( I), '#16.7G'), @FORMAT( @DUAL( R_DEM( I)), '#20.7G'), @NEWLINE( 1) ); @TEXT() = @WRITEFOR( WAREHOUSE( I): ( LENF1S - @STRLEN( @NAME( R_SUP( I))))*' ', @NAME( R_SUP( I)), @FORMAT( R_SUP( I), '#16.7G'), @FORMAT( @DUAL( R_SUP( I)), '#20.7G'), @NEWLINE( 1) ); ! Range report.............................................; @TEXT() = @WRITE( @NEWLINE( 1), ' Ranges in which the basis is unchanged:', @NEWLINE( 2) ); @TEXT() = @WRITE( 38*' ', 'Objective Coefficient Ranges', @NEWLINE( 1)); @TEXT() = @WRITE( 34*' ', 'Current Allowable Allowable', @NEWLINE( 1)); @TEXT() = @WRITE( 16*' ', 'Variable Coefficient Increase Decrease', @NEWLINE( 1) ); @TEXT() = @WRITEFOR( ROUTES( I, J): ( LENF1R - @STRLEN( @NAME( VOLUME( I, J))))*' ', @NAME( VOLUME( I, J)), @FORMAT( COST( I, J), '#17.7G'), @IF( @RANGEU( VOLUME( I, J)) #LT# INFINITY, @FORMAT( @RANGEU( VOLUME( I, J)), '#17.7G'), ' INFINITY'), @IF( @RANGED( VOLUME( I, J)) #LT# INFINITY, @FORMAT( @RANGED( VOLUME( I, J)), '#17.7G'), ' INFINITY'), @NEWLINE( 1) ); @TEXT() = @WRITE( @NEWLINE( 1), 43*' ', 'Righthand Side Ranges', @NEWLINE( 1)); @TEXT() = @WRITE( 21*' ','Row Current Allowable Allowable', @NEWLINE( 1) ); @TEXT() = @WRITE( 38*' ', 'RHS Increase Decrease', @NEWLINE( 1)); @TEXT() = @WRITEFOR( CUSTOMER( I): ( LENF1R - @STRLEN( @NAME( R_DEM( I))))*' ', @NAME( R_DEM( I)), @FORMAT( DEMAND( I), '#17.7G'), @IF( @RANGEU( R_DEM( I)) #LT# INFINITY, @FORMAT( @RANGEU( R_DEM( I)), '#17.7G'), ' INFINITY' ), @FORMAT( @RANGED( R_DEM( I)), '#17.7G'), @NEWLINE( 1) ); @TEXT() = @WRITEFOR( WAREHOUSE( I): ( LENF1R - @STRLEN( @NAME( R_SUP( I))))*' ', @NAME( R_SUP( I)), @FORMAT( CAPACITY( I), '#17.7G'), @IF( @RANGEU( R_SUP( I)) #LT# INFINITY, @FORMAT( @RANGEU( R_SUP( I)), '#17.7G'), ' INFINITY' ), @FORMAT( @RANGED( R_SUP( I)), '#17.7G'), @NEWLINE( 1) ); @TEXT() = @WRITE( @NEWLINE( 1), 70*'^', @NEWLINE( 1)); ENDDATA END MODEL: ! A 3 Warehouse, 4 Customer Transportation Problem; ! This model contains report writing statements that mimic the standard Lingo solution report; ! *** You'll need to enable range computations *** *** with the Lingo|Options command. You'll find *** *** the dual computations option on the General *** *** Solver tab. ***; SETS: WAREHOUSE / W1..W3/ : CAPACITY; CUSTOMER / C1..C4/ : DEMAND; ROUTES( WþÿÿÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot EntryÿÿÿÿÿÿÿÿþÿÿÿCONTENTSÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ*0_šîÏ»òÀð^`HˆOeþÄþÿÿÿContentsÿÿÿÿÿÿÿÿÿÿÿÿHÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì‹{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Courier New;}} {\colortbl ;\red0\green0\blue255;\red0\green0\blue0;\red0\green175\blue0;} \viewkind4\uc1\pard\cf1\f0\fs20 MODEL\cf2 : \par \cf3 ! A 3 Warehouse, 4 Customer Transportation Problem;\cf2 \par \par \cf3 ! This model contains report writing statements \par that mimic the standard Lingo solution report;\cf2 \par \par \cf3 ! *** You'll need to enable range computations *** \par *** with the Lingo|Options command. You'll find *** \par *** the dual computations option on the General *** \par *** Solver tab. ***;\cf2 \par \par \cf1 SETS\cf2 : \par WAREHOUSE / W1..W3/ : CAPACITY; \par CUSTOMER / C1..C4/ : DEMAND; \par ROUTES( WAREHOUSE, CUSTOMER) : COST, VOLUME; \par \cf1 ENDSETS\cf2 \par \par \cf3 ! The objective;\cf2 \par [OBJ] \cf1 min\cf2 = \cf1 @SUM\cf2 ( ROUTES: COST * VOLUME); \par \par \cf3 ! The demand constraints;\cf2 \par \cf1 @FOR\cf2 ( CUSTOMER( J): [R_DEM] \par \cf1 @SUM\cf2 ( WAREHOUSE( I): VOLUME( I, J)) >= \par DEMAND( J)); \par \par \cf3 ! The supply constraints;\cf2 \par \cf1 @FOR\cf2 ( WAREHOUSE( I): [R_SUP] \par \cf1 @SUM\cf2 ( CUSTOMER( J): VOLUME( I, J)) <= \par CAPACITY( I)); \par \par \cf3 ! Here are the parameters;\cf2 \par \cf1 DATA\cf2 : \par CAPACITY = 30, 25, 21 ; \par DEMAND = 15, 17, 22, 12; \par COST = 6, 2, 6, 7, \par 4, 9, 5, 3, \par 8, 8, 1, 5; \par \cf1 ENDDATA\cf2 \par \cf1 DATA\cf2 : \par INFINITY = 1.E30; \par LENF1S = 31; \par LENF1R = 24; \par \par \cf3 ! Solution report.............................................;\cf2 \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( \cf1 @NEWLINE\cf2 ( 1), 70*'v', \cf1 @NEWLINE\cf2 ( 1)); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( 3*' ', \par \cf1 @IF\cf2 ( \cf1 @STATUS\cf2 () #EQ# 0, 'Global optimal', '**** Non-global ***'), \par ' solution found at iteration:', \cf1 @FORMAT\cf2 ( \cf1 @ITERS\cf2 (), '14.14G'), \par \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( 3*' ', 'Objective value:', \cf1 @FORMAT\cf2 ( OBJ, '#41.7G'), \par \cf1 @NEWLINE\cf2 ( 2) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( 23*' ', 'Variable Value Reduced Cost', \par \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( WAREHOUSE( I): \par ( LENF1S - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( CAPACITY( I))))*' ', \cf1 @NAME\cf2 ( CAPACITY( I)), \par \cf1 @FORMAT\cf2 ( CAPACITY( I), '#16.7G'), \par \cf1 @FORMAT\cf2 ( \cf1 @DUAL\cf2 ( CAPACITY( I)), '#20.6G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( CUSTOMER( I): \par ( LENF1S - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( DEMAND( I))))*' ', \cf1 @NAME\cf2 ( DEMAND( I)), \par \cf1 @FORMAT\cf2 ( DEMAND( I), '#16.7G'), \par \cf1 @FORMAT\cf2 ( \cf1 @DUAL\cf2 ( DEMAND( I)), '#20.6G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( ROUTES( I, J): \par ( LENF1S - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( COST( I, J))))*' ', \cf1 @NAME\cf2 ( COST( I, J)), \par \cf1 @FORMAT\cf2 ( COST( I, J), '#16.7G'), \par \cf1 @FORMAT\cf2 ( \cf1 @DUAL\cf2 ( COST( I, J)), '#20.6G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( ROUTES( I, J): \par ( LENF1S - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( VOLUME( I, J))))*' ', \cf1 @NAME\cf2 ( VOLUME( I, J)), \par \cf1 @FORMAT\cf2 ( VOLUME( I, J), '#16.7G'), \par \cf1 @FORMAT\cf2 ( \cf1 @DUAL\cf2 ( VOLUME( I, J)), '#20.7G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( \cf1 @NEWLINE\cf2 ( 1), 28*' ', \par 'Row Slack or Surplus Dual Price', \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( \par 28*' ','OBJ', \par \cf1 @FORMAT\cf2 ( OBJ, '#16.7G'), \par \cf1 @FORMAT\cf2 ( \cf1 @DUAL\cf2 ( OBJ), '#20.7G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( CUSTOMER( I): \par ( LENF1S - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( R_DEM( I))))*' ', \cf1 @NAME\cf2 ( R_DEM( I)), \par \cf1 @FORMAT\cf2 ( R_DEM( I), '#16.7G'), \par \cf1 @FORMAT\cf2 ( \cf1 @DUAL\cf2 ( R_DEM( I)), '#20.7G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( WAREHOUSE( I): \par ( LENF1S - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( R_SUP( I))))*' ', \cf1 @NAME\cf2 ( R_SUP( I)), \par \cf1 @FORMAT\cf2 ( R_SUP( I), '#16.7G'), \par \cf1 @FORMAT\cf2 ( \cf1 @DUAL\cf2 ( R_SUP( I)), '#20.7G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \par \cf3 ! Range report.............................................;\cf2 \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( \cf1 @NEWLINE\cf2 ( 1), \par ' Ranges in which the basis is unchanged:', \cf1 @NEWLINE\cf2 ( 2) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( 38*' ', 'Objective Coefficient Ranges', \cf1 @NEWLINE\cf2 ( 1)); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( 34*' ', 'Current Allowable Allowable', \cf1 @NEWLINE\cf2 ( 1)); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( 16*' ', 'Variable Coefficient Increase Decrease', \par \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( ROUTES( I, J): ( LENF1R - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( VOLUME( I, J))))*' ', \par \cf1 @NAME\cf2 ( VOLUME( I, J)), \par \cf1 @FORMAT\cf2 ( COST( I, J), '#17.7G'), \par \cf1 @IF\cf2 ( \cf1 @RANGEU\cf2 ( VOLUME( I, J)) #LT# INFINITY, \par \cf1 @FORMAT\cf2 ( \cf1 @RANGEU\cf2 ( VOLUME( I, J)), '#17.7G'), \par ' INFINITY'), \par \cf1 @IF\cf2 ( \cf1 @RANGED\cf2 ( VOLUME( I, J)) #LT# INFINITY, \par \cf1 @FORMAT\cf2 ( \cf1 @RANGED\cf2 ( VOLUME( I, J)), '#17.7G'), \par ' INFINITY'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( \cf1 @NEWLINE\cf2 ( 1), 43*' ', 'Righthand Side Ranges', \cf1 @NEWLINE\cf2 ( 1)); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( 21*' ','Row Current Allowable Allowable', \par \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( 38*' ', 'RHS Increase Decrease', \cf1 @NEWLINE\cf2 ( 1)); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( CUSTOMER( I): ( LENF1R - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( R_DEM( I))))*' ', \par \cf1 @NAME\cf2 ( R_DEM( I)), \par \cf1 @FORMAT\cf2 ( DEMAND( I), '#17.7G'), \par \cf1 @IF\cf2 ( \cf1 @RANGEU\cf2 ( R_DEM( I)) #LT# INFINITY, \par \cf1 @FORMAT\cf2 ( \cf1 @RANGEU\cf2 ( R_DEM( I)), '#17.7G'), \par ' INFINITY' \par ), \par \cf1 @FORMAT\cf2 ( \cf1 @RANGED\cf2 ( R_DEM( I)), '#17.7G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITEFOR\cf2 ( WAREHOUSE( I): ( LENF1R - \cf1 @STRLEN\cf2 ( \cf1 @NAME\cf2 ( R_SUP( I))))*' ', \par \cf1 @NAME\cf2 ( R_SUP( I)), \par \cf1 @FORMAT\cf2 ( CAPACITY( I), '#17.7G'), \par \cf1 @IF\cf2 ( \cf1 @RANGEU\cf2 ( R_SUP( I)) #LT# INFINITY, \par \cf1 @FORMAT\cf2 ( \cf1 @RANGEU\cf2 ( R_SUP( I)), '#17.7G'), \par ' INFINITY' \par ), \par \cf1 @FORMAT\cf2 ( \cf1 @RANGED\cf2 ( R_SUP( I)), '#17.7G'), \cf1 @NEWLINE\cf2 ( 1) \par ); \par \cf1 @TEXT\cf2 () = \cf1 @WRITE\cf2 ( \cf1 @NEWLINE\cf2 ( 1), 70*'^', \cf1 @NEWLINE\cf2 ( 1)); \par \cf1 ENDDATA\cf2 \par \cf1 END\cf2 \par \par }