# to unbundle, sh this file (in an empty directory) echo README 1>&2 sed >README <<'//GO.SYSIN DD README' 's/^-//' -GNETGEN, a generator of generalized network flow problems, -is a modification by Fred Glover of the University of Colorado -of the well-known NETGEN generator (for details on the latter, see -D. Klingman, A. Napier, and J. Stutz, "NETGEN: a program for -generating large scale capacitated assignment, transportation, and -minimum cost flow problems", Management Science, 20, 814-821, 1974.) -File gnetgen.f is Fortran source for the GNETGEN program, modified -to use double precision arithmetic for more portable output. -The specific problem instances in seed/* were developed by M. Ramamurti -for use in his 1989 Ph.D. thesis at the Department of Operations -Research and Engineering Management of Southern Methodist University. -Computational results with various algorithms for these problems are -given in "Generalized Networks: Parallel Algorithms and an Empirical -Analysis" by Robert H. Clark, Jeffery L. Kennington, Robert R. Meyer -and Muthukrishnan Ramamurti, to appear in the ORSA Journal on -Computing, vol. 4, no. 2, 1992. - -Comments in gnetgen.f explain its usage. - -Directory seed contains input data for 15 problems. - -Below is a table of optimal values, computed by MINOS 5.3 -running on an SGI computer (with IEEE arithmetic). For this -exercise, I (David M. Gay) used the following AMPL model: - - # AMPL model for GNETGEN output (dmg). - - set A dimen 2; - - set From_nodes := setof{(i,j) in A} i; - set To_nodes := setof{(i,j) in A} j; - set Nodes := From_nodes union To_nodes ordered by Integers; - - set Sources within From_nodes; - set Sinks within To_nodes; - check: card(Sources intersect Sinks) == 0; - - param supply{Sources} > 0; - param demand{Sinks} >= 0; - - node n{i in Nodes}: - if i in Sources - then -supply[i] - else if i in Sinks - then demand[i] - else 0 - <= net_in - <= if i in Sources then -supply[i] - else if i in Sinks then demand[i] else 0; - - param capacity{A} > 0; - param cost{A}; - param mult{A}; - - minimize netcost: to_come; - - arc a{(i,j) in A} - from n[i] - to n[j] mult[i,j] - >= 0 - <= capacity[i,j] - obj netcost cost[i,j]; - - -and the following awk script to massage the output -of gnetgen.f into a data set for the above model: - - #convert GNETGEN output to an AMPL data file - awk '/^ PROBLEM/ {print "data;"; next} - /^SUPPLY/ {print "param :Sources: supply :="; next} - /^ARCS/ {print ";\nparam :A: cost capacity mult :="; next} - /^DEMAND/ {print ";\nparam :Sinks: demand :="; next} - /^END/ {print ";\nend;"; exit} - /^[^ ]/ {next} - {print substr($0,7,6), substr($0,13,6), substr($0,21,10), - substr($0,31,10), substr($0,51,10)}' $* - -Note that the above model imposes equality constraints (not -inequalities) on the flows out of the sources and into the sinks. - -Problem Optimal objective - -2.13.000 5409085.85 -2.13.050 5512775.13 -2.13.100 5907601.94 -2.25.000 3270208.04 -2.25.050 3204669.40 -2.25.100 3332097.82 -2.50.000 1847882.00 -2.50.050 2086080.81 -2.50.100 1740551.02 -4.26.000 6693248.67 -4.26.050 7089676.15 -4.26.100 6973833.96 -6.39.000 7470212.62 -6.39.050 7648788.36 -6.39.100 7107797.41 //GO.SYSIN DD README echo gnetgen.f 1>&2 sed >gnetgen.f <<'//GO.SYSIN DD gnetgen.f' 's/^-//' - PROGRAM GNETGN -C ****************************************************************** -C ****************************************************************** -C -C -C THE FOLLOWING ARE THE INPUT REQUIREMENTS FOR EACH PROBLEM -C -C FIELD # CONTENTS VARIABLE -C ------- ------- -------- -C -C CARD 1. -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP -C -C -C THE DATA (INPUT) DECK MUST CONTAIN 2 CARDS (PUNCHED ACCORDING -C TO THE ABOVE FORMAT) FOR EACH PROBLEM DESIRED. THE PROGRAM -C WILL GENERATE A SEPARATE NETWORK PROBLEM FOR EACH PAIR OF -C CARDS IN THE DATA DECK. -C -C ////////////////////////////////////////////////// -C -C THE PROGRAM WILL GENERATE A TRANSPORTATION PROBLEM IF -C NSORC+NSINK=NODES -C AND -C NTSORC=NTSINK=0 -C -C -C THE PROGRAM WILL GENERATE AN ASSIGNMENT PROBLEM IF THE -C REQUIREMENTS FOR A TRANSPORTATION PROBLEM ARE MET AND IN -C ADDITION -C NSORC=NSINK -C AND -C ITSUP=NSORC -C -C /////////////////////////////////////////////////// -C -C THE FOLLOWING ARRAYS AND VARIBLES SHOULD BE ADJUSTED, AS -C INDICATED, ACCORDING TO THE LARGEST PROBLEM IT IS DESIRED TO -C GENERATE IN A GIVEN RUN. -C -C ARRAY SIZE -C ----- ---- -C IPRED TOTAL NUMBER OF NODES -C IHEAD TOTAL NUMBER OF NODES -C ITAIL TOTAL NUMBER OF NODES -C IFLAG TOTAL NUMBER OF NODES -C ISUP TOTAL NUMBER OF SOURCES -C LSINKS TOTAL NUMBER OF SINKS -C -C -C VARIABLE VALUE -C -------- ----- -C MXNODE TOTAL NUMBER OF NODES -C MXSORC TOTAL NUMBER OF SOURCES -C MXSINK TOTAL NUMBER OF SINKS -C -C NOTE...... IT IS ONLY NECESSARY TO CHANGE THE SIZE OF THE -C ARRAYS IN THE DIMENSION STATEMENT OF THE MAIN SUBPROGRAM -C (GNETGEN). THE 3 VARIABLES TO BE CHANGED ARE ALSO SET IN THE -C MAIN SUBPROGRAM (THEY ARE THE FIRST 3 EXECUTABLE STATEMENTS) -C -C /////////////////////////////////////////////////// -C -C THE PROGRAM USES THE FOLLOWING 3 EXTERNAL FILES. -C (1) THE INPUT FILE (FILE 5), WHICH CONTAINS THE -C DATA DECK (NORMALLY PUNCH CARDS) -C (2) THE PROBLEM FILE (FILE 6), WHERE THE ACTUAL -C NETWORK PROBLEMS ARE WRITTEN IN SHARE INPUT -C FORMAT (NORMALLY MAGNETIC TAPE OR DISK FOR -C FUTURE INPUT TO A NETWORK CODE) -C (3) THE OUTPUT FILE (FILE 7), WHERE A SUMMARY OF -C THE INPUT SPECIFICATIONS, THE NUMBER OF ARCS -C CREATED, AND ANY ERROR MESSAGES ARE OUTPUT FOR -C EACH PROBLEM (NORMALLY ASSIGNED TO THE PRINTER) -C -C ****************************************************************** -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON /GENVAR/FINITY,IFGEN,IPMIN,IPMAX - DOUBLE PRECISION FINITY - INTEGER IFGEN,IPMIN,IPMAX - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED,IHEAD,ITAIL, ISEED, IFLAG,ISUP,LSINKS -C - INTEGER IRAN - EXTERNAL ASSIGN, CHAIN, CHNARC, CRESUP, IRAN, PKHD, SETRAN, - 1 SRT, WEND, WHEAD -C - INTEGER I, ICAP, ICOST, IH, II, INFIN, IT, ITEM, J, JCAP, JCOST, - 1 K, KS, KSP, L, LI, LPICK, LSORC, MXNODE, MXSINK, MXSORC, - 2 N, NARSCS, NODESC, NSKEL, NSRCHN - DOUBLE PRECISION AMT, CAP, CST, GFMAX, GFMIN, PMACP, PMAXC, - 1 PMICP, PMINC, TSUP, ZER -C ***** -C THE FOLLOWING DIMENSION STATEMENT IS THE ONLY ONE IN THE PROGRAM -C THAT MUST BE CHANGED IN ORDER TO CHANGE THE MAXIMUM SIZE PROBLEM -C THAT CAN BE GENERATED. IT IS SET AS DETAILED ABOVE. -C ***** - DIMENSION IPRED(430000),IHEAD(430000),ITAIL(430000),IFLAG(430000), - +ISUP(30000),LSINKS(30000) -C ***** -C THE FOLLOWING 3 VARIABLES DETERMINE THE MAXIMUM PROBLEM AND ARE -C SET AS DETAILED ABOVE. -C ***** - MXNODE=430000 - MXSORC=30000 - MXSINK=30000 - NPROB=0 -C OPEN(UNIT=6,FILE='fort.6',STATUS='NEW',FORM='FORMATTED') -C OPEN(UNIT=5,FILE='fort.5',STATUS='OLD',FORM='FORMATTED') -C OPEN(UNIT=7,FILE='fort.7',STATUS='NEW',FORM='FORMATTED') -C ***** -C READ THE INPUT CARDS FOR THE NEXT PROBLEM AND INITIALIZE THE -C RANDOM NUMBER GENERATOR. -C ***** - 50 READ (5, *)ISEED,ICOPT,INFIN,IFGEN,GFMIN,GFMAX - FINITY = INFIN*(1.0) - 51 FORMAT(I8,I12,I12,I12,F12.2,F12.2) - IF(ISEED.EQ.0) GO TO 9000 - IF(INFIN.EQ.0) FINITY=1000000. - FINITY=FINITY*100. - IF(NPROB-NPROB/3*3.EQ.0)WRITE(7,10010) -10010 FORMAT(1H1) - NPROB=NPROB+1 - CALL SETRAN(ISEED) - READ (5,52)NODES, NSORC,NSINK,DENS, PMINC,PMAXC,TSUP,NTSORC, - + NTSINK,IPHIC,IPCAP,PMICP,PMACP - 52 FORMAT(I8,I6,I6,I6,F6.1,F6.1,F6.0,I6,I6,I6,I6,F6.0,F6.0) - WRITE(6,53) NPROB, ISEED,ICOPT,INFIN,IFGEN,GFMIN,GFMAX, - + NODES, NSORC,NSINK,DENS, PMINC,PMAXC,TSUP, - + NTSORC,NTSINK,IPHIC,IPCAP, PMICP,PMACP - 53 FORMAT('GNETGEN PROBLEM ',I5/'USER:',2(1X,I11,1X,I1),2G21.12/ - + 'DATA:',I9,3I7,3G15.6/'MORE:',4I7,2G15.6) -C ****** -C SET VARIOUS CONSTANTS USED IN THE PROGRAM -C ****** - NARCS=0 - NSKEL=0 - NLTR=NODES-NSINK - LTSINK=NLTR+NTSINK - NTRANS=NLTR-NSORC - NFSINK=NLTR+1 - ISSORC=NODES+1 - ISSINK=NODES+2 - NONSOR=NODES-NSORC+NTSORC - NPSINK=NSINK-NTSINK - NODLFT=NODES-NSINK+NTSINK - NFTR=NSORC+1 - NFTSOR=NSORC-NTSORC+1 - NPSORC=NSORC-NTSORC - IPMIN=GFMIN*100.+.5 - IPMAX=GFMAX*100.+.5 - MINCST=PMINC*100.+.5 - MAXCST=PMAXC*100.+.5 - ITSUP=TSUP*100.+.5 - MINCAP=PMICP*100.+.5 - MAXCAP=PMACP*100.+.5 -C ***** -C WRITE OUT THE INPUT SPECIFICATIONS ON THE OUTPUT (PRINT) FILE -C ***** - WRITE(7,10150)NPROB,NODES,NSORC,NSINK,DENS,PMINC,PMAXC,TSUP, - +NTSORC,NTSINK,IPHIC,IPCAP,PMICP,PMACP,ISEED -10150 FORMAT(/////52X,8HPROBLEM ,I3,5X,14HSPECIFICATIONS//1X,124(1H*) - +/ 2H * ,5X,1H*,7X,1H*,2(5X,1H*),6X,27HCOST RANGE * TO - +TAL *,2(8H TRANS *),48HPERCENT*PERCENT* UPPER BOUND RANGE *RAN - +DOM NO*/ 1X,124H*NODES*SOURCES*SINKS* ARCS* MIN * MAX - + * SUPPLY *SOURCES* SINKS *HI COST* CAPAC.* MIN * MAX - +* SEED */1X,124(1H*)/ 1X,1H*,5X,1H*,7X,1H*,2(5X,1H*), - +3(10X,1H*),4(7X,1H*),2(10X,1H*),9X,1H*/2H *,I5,2H* , - +I5, 2H *, 2(I5,1H*), 3(F10.2,1H*), 4(I7, - +1H*),2(F10.2,1H*),1X,I8,1H*/1X,1H*,5X,1H*,7X,1H*,2(5X,1H*), - +3(10X,1H*),4(7X,1H*),2(10X,1H*),9X,1H*/1X,124(1H*)/) - IF(IFGEN.EQ.0) GO TO 99 - WRITE(7,98) GFMIN,GFMAX - 98 FORMAT(///,1X,53HPROBLEM IS GENERALIZED WITH MULTIPLIERS IN THE RA - +NGE ,F10.2,3H - ,F10.2,//) - 99 CONTINUE - IF(NODES.LE.MXNODE.AND.NSORC.LE.MXSORC.AND.NSINK.LE.MXSINK)GOTO150 - WRITE(7,10170) -10170 FORMAT(1X,30(1H/),70H THE NUMBER OF NODES, SOURCES, OR SINKS EXCEE - +DS CURRENT ARRAY CAPACITY ,33(1H/)) - GO TO 50 -C ****** -C RANDOMLY DISTRIBUTE THE SUPPLY AMONG THE SOURCE NODES -C ****** - 150 IF(NPSORC+NPSINK.NE.NODES)GO TO 25 - IF(NPSORC.NE.NPSINK) GO TO 25 - IF(ITSUP.NE.NSORC) GO TO 25 - CALL ASSIGN - NSKEL=NSORC - GO TO 1450 - 25 CALL CRESUP -C ****** -C WRITE OUT THE HEADER AND THE ARCS FROM THE SUPER SOURCE TO THE -C SOURCE. -C ****** - CALL WHEAD -C ****** -C MAKE THE SOURCES POINT TO THEMSELVES IN IPRED ARRAY -C ***** - DO 200 I=1,NSORC - 200 IPRED(I)=I - IF(NTRANS.EQ.0)GO TO 600 -C ****** -C CHAIN THE TRANSHIPMENT NODES TOGETHER IN THE IPRED ARRAY -C ***** - IST=NFTR - IPRED(NLTR)=0 - K=NLTR-1 - DO 300 I=NFTR,K - 300 IPRED(I)=I+1 -C ****** -C FORM EVEN LENGTH CHAINS FOR 60 PERCENT OF THE TRANSHIPMENTS -C ****** - NTRAVL=6*NTRANS/10 - NTRREM=NTRANS-NTRAVL - 340 LSORC=1 - 350 IF(NTRAVL.EQ.0)GO TO 500 - LPICK=IRAN(1,NTRAVL+NTRREM) - NTRAVL=NTRAVL-1 - CALL CHAIN(LPICK,LSORC) - IF(LSORC.EQ.NSORC)GO TO 340 - LSORC=LSORC+1 - GO TO 350 -C ****** -C ADD THE REMAINING TRANSHIPMENTS TO THE CHAINS -C ****** - 500 IF(NTRREM.EQ.0)GO TO 600 - LPICK=IRAN(1,NTRREM) - NTRREM=NTRREM-1 - LSORC=IRAN(1,NSORC) - CALL CHAIN(LPICK,LSORC) - GO TO 500 -C ****** -C SET ALL DEMANDS EQUAL TO ZERO -C ****** - 600 DO 700 I=NFSINK,NODES - 700 IPRED(I)=0 -C ***** -C THE FOLLOWING DO LOOP (TO STATEMENT 3000) TAKES ONE CHAIN -C AT A TIME THROUGH THE USE OF CODE CONTAINED IN THE LOOP AND -C CALLS TO OTHER SUBROUTINES COMPLETES THE NETWORK -C ***** - DO 3000 LSORC=1,NSORC - CALL CHNARC(LSORC) - DO 705 I=NFSINK,NODES - 705 IFLAG(I)=0 -C ***** -C CHOOSE THE NUMBER OF SINKS TO BE HOOKED UP TO THE CURRENT -C CHAIN (NSKSR). -C ***** - IF(NTRANS.EQ.0) GO TO 711 - NSKSR=(NSORT*2*NSINK)/NTRANS - GO TO 710 - 711 NSKSR=NSINK/NSORC+1 - 710 IF(NSKSR.LT.2) NSKSR=2 - IF(NSKSR.GT.NSINK)NSKSR=NSINK - NSRCHN=NSORT -C ****** -C RANDOMLY PICK NSKSR SINKS AND PUT THEIR NAMES IN LSINKS -C ****** - KTL=NSINK - DO 800 J=1,NSKSR - ITEM=IRAN(1,KTL) - KTL=KTL-1 - DO 750 L=NFSINK,NODES - IF(IFLAG(L).EQ.1)GO TO 750 - ITEM=ITEM-1 - IF(ITEM.EQ.0)GO TO 775 - 750 CONTINUE - GO TO 825 - 775 LSINKS(J)=L - IFLAG(L)=1 - 800 CONTINUE -C ****** -C IF LAST SOURCE CHAIN, ADD ALL SINKS WITH ZERO DEMAND TO -C LSINKS LIST. -C ****** - 825 IF(LSORC.NE.NSORC)GO TO 850 - DO 910 J=NFSINK,NODES - IF(IPRED(J).NE.0)GO TO 910 - IF(IFLAG(J).EQ.1)GO TO 910 - NSKSR=NSKSR+1 - LSINKS(NSKSR)=J - IFLAG(J)=1 - 910 CONTINUE -C ****** -C CREATE DEMANDS FOR GROUP OF SINKS IN LSINKS -C ****** - 850 KS=ISUP(LSORC)/NSKSR - K=IPRED(LSORC) - DO 1000 I=1,NSKSR - NSORT=NSORT+1 - KSP=IRAN(1,KS) - J=IRAN(1,NSKSR) - ITAIL(NSORT)=K - LI=LSINKS(I) - IHEAD(NSORT)=LI - IPRED(LI)=IPRED(LI)+KSP - LI=LSINKS(J) - IPRED(LI)=IPRED(LI)+KS-KSP - N=IRAN(1,NSRCHN) - K=LSORC - DO 950 II=1,N - 950 K=IPRED(K) - 1000 CONTINUE - LI=LSINKS(1) - IPRED(LI)=IPRED(LI)+ISUP(LSORC)-(KS*NSKSR) - NSKEL=NSKEL+NSORT -C ****** -C SORT THE ARCS IN THE CHAIN FROM SOURCE LSORC USING ITAIL AS -C THE SORT KEY. -C ****** - CALL SRT -C ****** -C WRITE OUT THIS PART OF SKELETON AND CREATE DENSITY ARCS FOR -C THESE NODES. -C ****** - I=1 - ITAIL(NSORT+1)=0 - 1050 DO 1100 J=NFTSOR,NODES - 1100 IFLAG(J)=0 - KTL=NONSOR-1 - IT=ITAIL(I) - IFLAG(IT)=1 - IF(IFGEN.NE.0) IFLAG(IT)=0 - 1150 IH=IHEAD(I) - IFLAG(IH)=1 - NARCS=NARCS+1 - KTL=KTL-1 -C ****** -C DETERMINE IF THIS SKELETON ARC SHOULD BE CAPACITATED -C ****** - ICAP=FINITY - JCAP=IRAN(1,100) - IF(JCAP.GT.IPCAP) GO TO 1160 - ICAP=ISUP(LSORC) - IF(MINCAP.GT.ICAP)ICAP=MINCAP -C ****** -C DETERMINE IF THIS SKELETON ARC SHOULD HAVE THE MAXIMUM COST -C ****** - 1160 ICOST=MAXCST - JCOST=IRAN(1,100) - IF(JCOST.LE.IPHIC) GO TO 1175 - ICOST=IRAN(MINCST,MAXCST) - 1175 CST=ICOST/100. - CAP=ICAP/100. - WRITE(6,10300) IT,IH,CST,CAP -10300 FORMAT(6X,2I6,2X,2F10.2,16X,4H1.00) - I=I+1 - IF(ITAIL(I).EQ.IT)GO TO 1150 - CALL PKHD(IT) - IF(I.LE.NSORT)GO TO 1050 - 3000 CONTINUE -C ****** -C CREATE ARCS FROM THE TRANSHIPMENT SINKS -C ****** - IF(NTSINK.EQ.0)GO TO 1450 - ZER=0. - DO 1400 I=NFSINK,LTSINK - IF(ICOPT.EQ.0) GO TO 1401 - AMT=IPRED(I)/100. - WRITE(6,10300)I,ISSINK,ZER,AMT - 1401 CONTINUE - DO 1350 J=NFTSOR,NODES - 1350 IFLAG(J)=0 - KTL=NONSOR-1 - IFLAG(I)=1 - CALL PKHD(I) - 1400 CONTINUE -C ****** -C PRINT THE NUMBER OF ARCS IN THE SKELETON ON THE OUTPUT FILE -C ****** - 1450 NODESC=NODES+2 - NARSCS=NARCS+NSORC+NSINK+1 - WRITE(7,10400)NARCS,NODESC,NARSCS -10400 FORMAT(20X,21HTHE NETWORK CONTAINS ,I5,5H ARCS,26H (CIRCULATION N - +ETWORK HAS ,I5,11H NODES AND ,I5,6H ARCS)) -C ****** -C WRITE OUT THE ARCS FROM THE SINKS TO THE SUPER SINK WITH DEMANDS, -C AND PUT OUT THE END MESSAGES FOR SHARE FORMAT -C ****** - CALL WEND - 9000 WRITE(6,10500) -10500 FORMAT(4HQUIT) - ENDFILE 3 - REWIND 3 - END - SUBROUTINE WHEAD -C ****************************************************************** -C WHEAD WRITES OUT THE HEADER CARDS FOR SHARE FORMAT ON THE -C PROBLEM FILE. THIS CONSISTS OF THE BEGIN, TITLE, AND ARCS -C CARDS. THIS SUBROUTINE ALSO WRITES OUT THE ARCS FROM THE -C SUPER SOURCE TO THE SOURCE NODES ON THE PROBLEM FILE. -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON /GENVAR/FINITY,IFGEN,IPMIN,IPMAX - DOUBLE PRECISION FINITY - INTEGER IFGEN,IPMIN,IPMAX - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED(430000),IHEAD(430000),ITAIL(430000), - + ISEED, IFLAG(430000),ISUP(30000),LSINKS(30000) -C - INTEGER I - DOUBLE PRECISION AMT, CAPMAX, CAPMIN, CSTMAX, CSTMIN, ONE, PMAX, - 1 PMIN, TSUP, ZER -C - IF(ICOPT.LE.1) GO TO 500 - PMIN=IPMIN/100. - PMAX=IPMAX/100. - WRITE(6,10000)ISEED,IPHIC,PMIN,PMAX -10000 FORMAT(5HBEGIN,2X,5HSEED=,I8,5X,16H,PERCENT HI CST=,I5, - +11HMULT RANGE=,F10.2,3H - ,F10.2) - TSUP=ITSUP/100. - CSTMIN=MINCST/100. - CSTMAX=MAXCST/100. - WRITE(6,10100)NODES,NSORC,NSINK,DENS,CSTMIN,CSTMAX,TSUP -10100 FORMAT(3HND=,I5,4HSRC=,I5,4HSNK=,I5,4HARC=,I5,4HCST=,F10.2, - +1H-,F10.2,5HSPLY=,F10.2) - CAPMIN=MINCAP/100. - CAPMAX=MAXCAP/100. - WRITE(6,10200)NTSORC,NTSINK,CAPMIN,CAPMAX,IPCAP -10200 FORMAT(4HARCS,6X,7HTSORCE=,I5,7H,TSINK=,I5,5H,CAP=,F10.2,1H-, - +F10.2,13H,PERCENT CAP=,I5) - 800 ZER=0. - ONE=1. - DO 100 I=1,NSORC - AMT=ISUP(I)/100. - 100 WRITE(6,10300) ISSORC,I,ZER,AMT,ONE -10300 FORMAT (6X,2I6,2X,2F10.2,10X,F10.2) - RETURN - 500 WRITE(6,10800) NPROB,NODES,DENS -10800 FORMAT(5HBEGIN/15H PROBLEM NUMBER,I4,I10,6H NODES,I10,5H ARCS) - IF(ICOPT.EQ.0) GO TO 200 - WRITE(6,10900) ISSORC,ISSINK -10900 FORMAT(4HCIRC,2X,2I6) - GO TO 600 - 200 WRITE(6,10400) -10400 FORMAT(6HSUPPLY) - DO 300 I=1,NSORC - AMT=ISUP(I)/100. - 300 WRITE(6,10500) I,AMT -10500 FORMAT(6X,I6,18X,F10.2) - 600 IF(IPCAP.NE.0) GO TO 400 - WRITE(6,10600) -10600 FORMAT(4HARCS) - GO TO 700 - 400 WRITE(6,10700) -10700 FORMAT(4HARCS) - 700 IF(ICOPT.NE.0) GO TO 800 - RETURN - END - SUBROUTINE CRESUP -C ****************************************************************** -C CRESUP DISTRIBUTES THE TOTAL SUPPLY AMONG THE SOURCE NODES -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED(430000),IHEAD(430000),ITAIL(430000), - + ISEED, IFLAG(430000),ISUP(30000),LSINKS(30000) -C - INTEGER IRAN - EXTERNAL IRAN -C - INTEGER I, J, KS, KSP -C - IF(ITSUP.LE.NSORC)STOP 66 - KS=ITSUP/NSORC - DO 100 I=1,NSORC - 100 ISUP(I)=0 - DO 500 I=1,NSORC - KSP=IRAN(1,KS) - J=IRAN(1,NSORC) - ISUP(I)=ISUP(I)+KSP - 500 ISUP(J)=ISUP(J)+KS-KSP - J=IRAN(1,NSORC) - ISUP(J)=ISUP(J)+ITSUP-(KS*NSORC) - RETURN - END - SUBROUTINE CHAIN(LPICK,LSORC) - INTEGER LPICK, LSORC -C ****************************************************************** -C CHAIN HAS 2 INPUT PARAMETERS (LPICK AND LSORC). THE SUBROUTINE -C ADDS NODE LPICK TO THE END OF THE CHAIN WITH SOURCE NODE LSORC -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED(430000),IHEAD(430000),ITAIL(430000), - + ISEED, IFLAG(430000),ISUP(30000),LSINKS(30000) -C - INTEGER I, J, K, L, M -C - K=0 - M=IST - DO 100 I=1,LPICK - L=K - K=M - 100 M=IPRED(K) - IPRED(L)=M - J=IPRED(LSORC) - IPRED(K)=J - IPRED(LSORC)=K - RETURN - END - SUBROUTINE CHNARC(LSORC) - INTEGER LSORC -C ****************************************************************** -C THIS ROUTINE PUTS THE ARCS IN THE CHAIN FROM SOURCE LSORC, IN -C IHEAD AND ITAIL FOR SORTING -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED(430000),IHEAD(430000),ITAIL(430000), - + ISEED, IFLAG(430000),ISUP(30000),LSINKS(30000) -C - INTEGER IFROM, ITO -C - NSORT=0 - ITO=IPRED(LSORC) - GO TO 150 - 100 NSORT=NSORT+1 - IFROM=IPRED(ITO) - IHEAD(NSORT)=ITO - ITAIL(NSORT)=IFROM - ITO=IFROM - 150 IF(ITO.NE.LSORC) GO TO 100 - RETURN - END - SUBROUTINE SRT -C ****************************************************************** -C SRT SORTS THE ARCS IN ITAIL AND IHEAD USING ITAIL AS THE -C SORT KEY. VARIABLE NSORT INDICATES HOW MANY ARCS ARE TO BE -C SORTED. -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED(430000),IHEAD(430000),ITAIL(430000), - + ISEED, IFLAG(430000),ISUP(30000),LSINKS(30000) -C - INTEGER I, IT, J, K, L, M, N -C - N=NSORT - M=N - 20 M=M/2 - IF(M)30,65,30 - 30 K=N-M - J=1 - 41 I=J - 49 L=I+M - IF(ITAIL(I)-ITAIL(L))60,60,50 - 50 IT=ITAIL(I) - ITAIL(I)=ITAIL(L) - ITAIL(L)=IT - IT=IHEAD(I) - IHEAD(I)=IHEAD(L) - IHEAD(L)=IT - I=I-M - IF(I-1)60,49,49 - 60 J=J+1 - IF(J-K)41,41,20 - 65 CONTINUE - RETURN - END - SUBROUTINE WEND -C ****************************************************************** -C WEND WRITES OUT THE ARCS FROM THE SINKS TO THE SUPER SINK, -C THE ARC FROM THE SUPER SINK TO THE SUPER SOURCE, AND THE -C END CARDS FOR SHARE FORMAT. THESE ARE ALL WRITTEN ON THE -C PROBLEM FILE. -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED(430000),IHEAD(430000),ITAIL(430000), - + ISEED, IFLAG(430000),ISUP(30000),LSINKS(30000) -C - INTEGER I, NFPSNK - DOUBLE PRECISION AMT, ONE, TSUP, ZER -C - IF(ICOPT.EQ.0) GO TO 200 - ZER=0. - ONE=1. - NFPSNK=LTSINK+1 - IF(NFPSNK.GT.NODES)GO TO 150 - DO 100 I=NFPSNK,NODES - AMT=IPRED(I)/100. - 100 WRITE(6,10100) I,ISSINK,ZER,AMT,ZER,ONE -10100 FORMAT(6X,2I6,2X,4F10.2) - 150 TSUP=ITSUP/100. - WRITE(6,10100) ISSINK,ISSORC,ZER,TSUP,TSUP,ONE - GO TO 300 - 200 WRITE(6,10300) -10300 FORMAT(6HDEMAND) - DO 400 I=NFSINK,NODES - AMT=IPRED(I)/100. - 400 WRITE(6,10400)I,AMT -10400 FORMAT(6X,I6,18X,F10.2) - 300 CONTINUE - WRITE(6,10200) -10200 FORMAT(3HEND/5HSOLVE) - RETURN - END - SUBROUTINE PKHD(IT) - INTEGER IT -C ****************************************************************** -C PKHD HAS ONE FORMAL PARAMETER (IT). THE SUBROUTINE CREATES -C AND WRITES ON THE PROBLEM FILE A RANDOM NUMBER OF ARCS -C FROM NODE IT TO RANDOMLY SELECTED NODES. THE SUBROUTINE -C DYNAMICALLY ADJUSTS VARIOUS PARAMETERS IN ORDER TO INSURE -C THAT THE RESULTING NETWORK HAS THE RIGHT NUMBER OF ARCS. -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON /GENVAR/FINITY,IFGEN,IPMIN,IPMAX - DOUBLE PRECISION FINITY - INTEGER IFGEN,IPMIN,IPMAX - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED(430000),IHEAD(430000),ITAIL(430000), - + ISEED, IFLAG(430000),ISUP(30000),LSINKS(30000) -C - INTEGER IRAN - EXTERNAL IRAN -C - INTEGER ICAP, ICOST, J, JCAP, K, L, MULT, NN - DOUBLE PRECISION CAP, CST, PMULT -C - IF((NODLFT-1)*2.LE.DENS-NARCS-1)GO TO 5 - NODLFT=NODLFT-1 - RETURN - 5 IF((DENS-NARCS+NONSOR-KTL-1)/NODLFT-NONSOR+1) 12,10,10 - 10 K=NONSOR - GO TO 15 - 12 NUPBND=(DENS-NARCS-NODLFT)/NODLFT*2 - 14 K=IRAN(1,NUPBND) - IF(NODLFT.EQ.1) K=DENS-NARCS - IF((NODLFT-1)*(NONSOR-1).LT.DENS-NARCS-K)GO TO 14 - 15 NODLFT=NODLFT-1 - DO 100 J=1,K - NN=IRAN(1,KTL) - KTL=KTL-1 - DO 25 L=NFTSOR,NODES - IF(IFLAG(L).EQ.1) GO TO 25 - NN=NN-1 - IF(NN.EQ.0) GO TO 35 - 25 CONTINUE - RETURN - 35 IFLAG(L)=1 - ICAP=FINITY - JCAP=IRAN(1,100) - IF(JCAP.GT.IPCAP) GO TO 40 - ICAP=IRAN(MINCAP,MAXCAP) - 40 ICOST=IRAN(MINCST,MAXCST) - PMULT=1. - IF(IFGEN.EQ.0) GO TO 50 - MULT=IRAN(IPMIN,IPMAX) - PMULT=MULT/100. - 50 CST=ICOST/100. - CAP=ICAP/100. - WRITE(6,10100) IT,L,CST,CAP,PMULT -10100 FORMAT(6X,2I6,2X,2F10.2,10X,F10.2) - NARCS=NARCS+1 - 100 CONTINUE - RETURN - END - SUBROUTINE ASSIGN -C ****************************************************************** -C ASSIGN HANDLES THE GENERATION OF ASSIGNMENT PROBLEMS. THE -C SUBROUTINE CREATES THE SUPPLIES, GENERATES THE SKELETON, -C AND CALLS PKHD TO GENERATE THE REMAINING ARCS. -C ****************************************************************** - COMMON/VAR/NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - INTEGER NODES,DENS,MINCST,MAXCST,ITSUP,NSORC,NTSORC,NSINK, - +NTSINK,NONSOR,NUPBND,NFSINK,NARCS,NLTR,NTRANS,NTRAVL, - +NTRREM,NFTR,ISSORC,ISSINK,NSINKZ,NSORT,NSKSR,NFTSOR,IPHIC, - +IPCAP,MINCAP,MAXCAP,KTL,NODLFT,NPSORC,NPSINK,LTSINK,ICOPT,NPROB - COMMON/ARRAY1/IST,IPRED - COMMON/ARRAY2/IHEAD - COMMON/ARRAY3/ITAIL - COMMON/ARRAY4/ISEED - COMMON/ARRAY5/IFLAG - COMMON/ARRAY6/ISUP - COMMON/ARRAY7/LSINKS - INTEGER IST, IPRED(430000),IHEAD(430000),ITAIL(430000), - + ISEED, IFLAG(430000),ISUP(30000),LSINKS(30000) -C - INTEGER IRAN - EXTERNAL IRAN -C - INTEGER I, ICOST, IT, L, LL, NN - DOUBLE PRECISION AMT, CST -C - DO 30 I=1,NSORC - 30 ISUP(I)=1 - CALL WHEAD - DO 40 I=NFSINK,NODES - 40 IPRED(I)=1 - DO 45 I=1,NSORC - 45 IFLAG(I)=0 - DO 100 IT=1,NSORC - DO 48 I=NFSINK,NODES - 48 IFLAG(I)=0 - KTL=NSINK-1 - NN=IRAN(1,NSINK-IT+1) - DO 50 L=1,NSORC - IF(IFLAG(L).EQ.1) GO TO 50 - NN=NN-1 - IF(NN.EQ.0) GO TO 75 - 50 CONTINUE - 75 NARCS=NARCS+1 - LL=NSORC+L - ICOST=IRAN(MINCST,MAXCST) - CST=ICOST/100. - AMT=ISUP(I)/100. - WRITE(6,10100) IT,LL,CST,AMT -10100 FORMAT(6X,2I6,2X,2F10.2,16X,4H1.00) - IFLAG(L)=1 - IFLAG(LL)=1 - CALL PKHD(IT) - 100 CONTINUE - RETURN - END - SUBROUTINE SETRAN(ISEED) - INTEGER ISEED -C -C PORTABLE RANDOM NUMBER GENERATOR -C -C THIS GENERATOR CONSISTS OF TWO ROUTINES -C 1) SETRAN - INITIALIZES CONSTANTS AND SEED -C 2) IRAN - GENERATES A RANDOM INTEGER IN A SPECIFIED RANGE -C -C ALL INTEGER VARIABLES IN SETRAN AND IRAN MUST HAVE AT -C LEAST 31 BITS OF PRECISION EXCLUSIVE OF SIGN -C -C THE GENERATOR IS THE CONGRUENTIAL GENERATOR -C I = 7**5 * I MOD(2**31 - 1) -C -C INITIALIZE CONSTANTS AND SEED -C ISEED IS ASSUMED IN THE RANGE 0 .LT. ISEED .LT. 2**31 - 1 - COMMON/RAN/MULT,MODUL,I15,I16,JRAN - INTEGER MULT,MODUL,I15,I16,JRAN -C - IF(ISEED.LT.1) STOP 77 - MULT=16807 - MODUL=2147483647 - I15=2**15 - I16=2**16 - JRAN=ISEED - RETURN - END - INTEGER FUNCTION IRAN(IA,IB) - INTEGER IA, IB -C GENERATE A RANDOM INTEGER IN THE RANGE IA TO IB -C IF IA .GT. IB THEN RETURN IRAN = IB - COMMON/RAN/MULT,MODUL,I15,I16,JRAN - INTEGER MULT,MODUL,I15,I16,JRAN -C - INTEGER IFULHI, IOVER, IRTHI, IRTLO, IXAHI, IXALO, IXHI, - 1 IXLO, J, LEFTLO -C - IXHI=JRAN/I16 - IXLO=JRAN-IXHI*I16 - IXALO=IXLO*MULT - LEFTLO=IXALO/I16 - IXAHI=IXHI*MULT - IFULHI=IXAHI+LEFTLO - IRTLO=IXALO-LEFTLO*I16 - IOVER=IFULHI/I15 - IRTHI=IFULHI-IOVER*I15 - JRAN=((IRTLO-MODUL) + IRTHI*I16) + IOVER - IF(JRAN.LT.0) JRAN=JRAN+MODUL - J=IB-IA+1 - IF(J.LE.0) GO TO 120 - IRAN=MOD(JRAN,J)+IA - RETURN - 120 IRAN=IB - RETURN - END //GO.SYSIN DD gnetgen.f mkdir seed echo seed/2.13.000 1>&2 sed >seed/2.13.000 <<'//GO.SYSIN DD seed/2.13.000' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 13000 1.0 100.0100000 0 0 35 0 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.13.000 echo seed/2.13.050 1>&2 sed >seed/2.13.050 <<'//GO.SYSIN DD seed/2.13.050' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 13000 1.0 100.0100000 0 0 35 50 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.13.050 echo seed/2.13.100 1>&2 sed >seed/2.13.100 <<'//GO.SYSIN DD seed/2.13.100' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 13000 1.0 100.0100000 0 0 35 100 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.13.100 echo seed/2.25.000 1>&2 sed >seed/2.25.000 <<'//GO.SYSIN DD seed/2.25.000' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 25000 1.0 100.0100000 0 0 35 0 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.25.000 echo seed/2.25.050 1>&2 sed >seed/2.25.050 <<'//GO.SYSIN DD seed/2.25.050' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 25000 1.0 100.0100000 0 0 35 50 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.25.050 echo seed/2.25.100 1>&2 sed >seed/2.25.100 <<'//GO.SYSIN DD seed/2.25.100' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 25000 1.0 100.0100000 0 0 35 100 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.25.100 echo seed/2.50.000 1>&2 sed >seed/2.50.000 <<'//GO.SYSIN DD seed/2.50.000' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 50000 1.0 100.0100000 0 0 35 0 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.50.000 echo seed/2.50.050 1>&2 sed >seed/2.50.050 <<'//GO.SYSIN DD seed/2.50.050' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 50000 1.0 100.0100000 0 0 35 50 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.50.050 echo seed/2.50.100 1>&2 sed >seed/2.50.100 <<'//GO.SYSIN DD seed/2.50.100' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 2000 150 600 50000 1.0 100.0100000 0 0 35 100 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/2.50.100 echo seed/4.26.000 1>&2 sed >seed/4.26.000 <<'//GO.SYSIN DD seed/4.26.000' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 4000 150 600 26000 1.0 100.0100000 0 0 35 0 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/4.26.000 echo seed/4.26.050 1>&2 sed >seed/4.26.050 <<'//GO.SYSIN DD seed/4.26.050' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 4000 150 600 26000 1.0 100.0100000 0 0 35 50 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/4.26.050 echo seed/4.26.100 1>&2 sed >seed/4.26.100 <<'//GO.SYSIN DD seed/4.26.100' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 4000 150 600 26000 1.0 100.0100000 0 0 35 100 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/4.26.100 echo seed/6.39.000 1>&2 sed >seed/6.39.000 <<'//GO.SYSIN DD seed/6.39.000' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 6000 150 600 39000 1.0 100.0100000 0 0 35 0 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/6.39.000 echo seed/6.39.050 1>&2 sed >seed/6.39.050 <<'//GO.SYSIN DD seed/6.39.050' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 6000 150 600 39000 1.0 100.0100000 0 0 35 50 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/6.39.050 echo seed/6.39.100 1>&2 sed >seed/6.39.100 <<'//GO.SYSIN DD seed/6.39.100' 's/^-//' -13502460 0 1000000 1 0.50 1.50 - 6000 150 600 39000 1.0 100.0100000 0 0 35 100 1000 2000 - ISEED ICOPT FINITY IFGEN GFMIN GFMAX - NODES NSORC NSINK DENS PMINC PMAXC TSUPNTSORCNTSINK IPHIC IPCAP PMICP PMAXP -C 1 8 DIGIT POSITIVE INTEGER TO INITIALIZE ISEED -C THE RANDOM NUMBER GENERATOR. (MUST HAVE -C AT LEAST ONE NON-ZERO DIGIT IN COLUMNS -C 1-8 -C 2 CIRCULARIZATION FLAG (0=NOT CIRCULARIZED) ICOPT -C 3 LARGEST POSSIBLE FLOW VALUE (INFINITY)... FINITY -C 4 GENERALIZED FLAG (0=NOT GENERALIZED)..... IFGEN -C 5 MINIMUM MULTIPLIER....................... GFMIN -C 6 MAXIMUM MULTIPLIER....................... GFMAX -C -C CARD 2. -C 1 TOTAL NUMBER OF NODES.................... NODES -C 2 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSHIPMENT SOURCES).................... NSORC -C 3 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSHIPMENT SINKS)...................... NSINK -C 4 NUMBER OF ARCS........................... DENS -C 5 MINIMUM COST FOR ARCS.................... PMINC -C 6 MAXIMUM COST FOR ARCS.................... PMAXC -C 7 TOTAL SUPPLY............................. TSUP -C 8 NUMBER OF TRANSHIPMENT SOURCE NODES...... NTSORC -C 9 NUMBER OF TRANSHIPMENT SINK NODES........ NTSINK -C 10 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST......................... IPHIC -C 11 PERCENTAGE OF ARCS TO BE CAPACITATED..... IPCAP -C 12 MINIMUM UPPER BOUND FOR CAPACITATED ARCS. PMICP -C 13 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS. PMACP //GO.SYSIN DD seed/6.39.100