# to unbundle, sh this file (in an empty directory) echo README 1>&2 sed >README <<'//GO.SYSIN DD README' 's/^-//' -netgen.f and data0 are from Darwin Klingman. - -netgen.f is Fortran 77, except that FORMATs omit carriage -control characters. - -Comments in netgen.f explain its usage. - -Directory Data contains one file for each data set in data0, -named netgn101, ..., netgn150. - -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 NETGEN 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 Sinks then Infinity else 0; - - param capacity{A} > 0; - param cost{A}; - - minimize netcost; - - arc a{(i,j) in A} - from n[i] - to n[j] - >= 0 - <= capacity[i,j] - obj netcost cost[i,j]; - - -and the following awk script to massage the output -of netgen.f into a data set for the above model: - - #convert netgen output to an AMPL data file - awk '/^NETGEN PROBLEM/ {print "data;"; next} - /^SUPPLY/ {print "param :Sources: supply :="; next} - /^ARCS/ {print ";\nparam :A: cost capacity :="; next} - /^DEMAND/ {print ";\nparam :Sinks: demand :="; next} - /^END/ {print ";\nend;"; exit} - /^[^ ]/ {next} - {print}' $* - - -NPROB Optimal objective - -101 6.1917260000E+06 -102 7.2337144000E+07 -103 2.1894755300E+08 -104 -1.9100371000E+07 -105 3.1192578000E+07 -106 4.3142760000E+06 -107 7.3937690000E+06 -108 8.4057380000E+06 -109 9.1903000000E+06 -110 8.9750480000E+06 -111 4.7475320000E+06 -112 4.0126710000E+06 -113 2.9797250000E+06 -114 5.8211810000E+06 -115 6.3533100000E+06 -116 5.9154260000E+06 -117 4.4205600000E+06 -118 7.0458420000E+06 -119 7.7241790000E+06 -120 8.4552000000E+06 -121 6.6366360000E+07 -122 3.0997529000E+07 -123 2.3388777000E+07 -124 1.7803443000E+07 -125 1.4119622000E+07 -126 1.8802218000E+07 -127 2.7674647000E+07 -128 3.0906194000E+07 -129 4.0905209000E+07 -130 3.8939608000E+07 -131 1.6752978000E+07 -132 1.3302951000E+07 -133 9.8302680000E+06 -134 3.8048740000E+06 -135 1.1729616000E+07 -136 3.3318101000E+07 -137 4.6426030000E+07 -138 6.0710879000E+07 -139 3.2729682000E+07 -140 2.7183831000E+07 -141 1.9963286000E+07 -142 2.0243457000E+07 -143 1.8586777000E+07 -144 2.5045910000E+06 -145 2.1595613800E+08 -146 2.2531138110E+09 -147 -4.2790837300E+08 -148 -9.2965318000E+07 -149 8.6051224000E+07 -150 6.1931491900E+08 - -------------------------- - -Here are some comments by John Mote, as forwarded by Kuban Altinel -(on 20 April 1992), in response to a question about why NETGEN sometimes -generates more than the requested number of arcs: - - 1. The requested number of arcs (e.g. 1300) and the actual number of - arcs (e.g. 1308) only match about half of the time. If you browse - through the source code you can see why: The code must generate a - connected graph; if the number of requested arcs has been reached and - the generated problem is not fully connected, then the code generates - a few remaining arcs to ensure connectedness. So, in the first - test problem, the initial 1300 arcs yielded a disconnected - graph (actually, nine sub-graphs) that required eight additional - arcs in order to connect. - - 2. The version of NETGEN used to generate the test problems for the - old Management Science article had a BAD random number generator. - Shortly after publication, Klingman et al modified the code to use - a better internal generator. This modified version has been the - one that has been distributed for the past twenty years or so. //GO.SYSIN DD README echo netgen.f 1>&2 sed >netgen.f <<'//GO.SYSIN DD netgen.f' 's/^-//' -c From arpa!UTA3081.CC.UTEXAS.EDU!GFAA211 Thursday June 29 8:45am CST 1989 -c To: dmg@research.att.com -c From: GFAA211@UTA3081.CC.UTEXAS.EDU -c Subject: NETGEN source code - - -C*********************************************************************** -CDr. Darwin Klingman -C NETGEN: CURRENT UNIVERSITY OF TEXAS VERSION -C -C THIS IS A GENERAL PURPOSE CODE FOR THE GENERATION OF NETWORK TEST -C PROBLEMS. IT CAN CREATE CAPACITATED AND UNCAPACITATED MINIMUM COST -C FLOW (OR TRANSSHIPMENT), TRANSPORTATION, AND ASSIGNEMNT PROBLEMS. -C -C ORIGINAL REFERENCE: MANAGEMENT SCIENCE VOL 20 #5 (JANUARY 1974) -C MODIFIED APRIL-MAY 1986 BY JOHN MOTE (512 / 471-9436) -C (BITNET: BGHY231 @ UTA3081) -C -C -C COSMETIC MODIFICATION HIGHLIGHTS: -C 1. GENERATION OF ONE PROBLEM ONLY PER SUBMISSION. (DISK QUOTA) -C 2. ELIMINATION OF "SOLVE" AND "QUIT" RECORDS AT END OF FILE. -C 3. ELIMINATION OF "UNCAPACITATED" ON ARCS RECORD. -C 4. ADDITION OF PROBLEM NUMBER FIELD IN FIRST COMMAND RECORD. -C 5. ELIMINATION OF BLANK TRAILER IN COMMAND FILE. -C 6. GENERATES NON-CIRCULARIZED NETWORKS ONLY. -C 7. MODIFIED BEGIN/DOCUMENTATION SECTION. <----- NOTE THIS. -C 8. ELIMINATION OF PROBLEM SUMMARY FILE. -C 9. CHANGE READ/WRITE FROM 5/3 TO LUIN/LUOUT. ADD COMMON. -C 10. ELIMINATION OF FILE CLOSE COMMANDS. -C 11. ELIMINATION OF UNNECESSARY VARIABLES IN COMMON -C 12. PUT ARRAY DIMENSION ON COMMON INSTEAD OF DIMENSION LINE. -C 13. CHANGE DENS VARIABLE TO IARCS. ELIMINATE INTEGER LINE. -C 14. REMOVAL OF TWELVE YEAR OLD TYPO (NON6OR <---> NONSOR) -C 15. ELIMINATION OF WHEAD AND WEND ROUTINES. -C 16. IMPROVED COMMENTS AND STATEMENT NUMBERING IN SOME ROUTINES. -C 17. RENAMED ROUTINES: SRT ---> SORT PKHD ---> PICKJ -C 18. USE OF IMPLICIT TYPE STATEMENT IN EACH ROUTINE -C 19. ADDITION OF RRAN FOR REAL RANDOM NUMBERS (NOT USED HERE) -C 20. REPLACEMENT OF MAX SOURCE/SINK WITH MAX NODE PARAMETER -C 21. ADDITION OF SIMPLE PROBLEM PARAMETER CONSISTENCY CHECKS -C -C*********************************************************************** -C -C NETGEN MAKES USE OF TWO LOGICAL UNITS/FILES: -C (1) LUIN : USER'S TEST PROBLEM DESCRIPTION -C (2) LUOUT : GENERATED NETWORK IN SHARE FORMAT -C -C THE USER'S PROBLEM DESCRIPTION IS GIVEN ON TWO RECORDS: -C -C COLUMNS DESCRIPTION VARIABLE -C ------- ----------- -------- -C RECORD ONE: -C 1-8 8 DIGIT POSITIVE RANDOM NUMBER SEED........ ISEED -C 9-16 8 DIGIT PROBLEM ID NUMBER.................. NPROB -C -C RECORD TWO: -C 1-5 TOTAL NUMBER OF NODES...................... NODES -C 6-10 TOTAL NUMBER OF SOURCE NODES (INCLUDING -C TRANSSHIPMENT SOURCES)..................... NSORC -C 11-15 TOTAL NUMBER OF SINK NODES (INCLUDING -C TRANSSHIPMENT SINKS)....................... NSINK -C 16-20 NUMBER OF ARCS............................. IARCS -C 21-25 MINIMUM COST FOR ARCS...................... MINCST -C 26-30 MAXIMUM COST FOR ARCS...................... MAXCST -C 31-40 TOTAL SUPPLY............................... ITSUP -C 41-45 NUMBER OF TRANSSHIPMENT SOURCE NODES....... NTSORC -C 46-50 NUMBER OF TRANSSHIPMENT SINK NODES......... NTSINK -C 51-55 PERCENTAGE OF SKELETON ARCS TO BE GIVEN -C THE MAXIMUM COST........................... IPHIC -C 56-60 PERCENTAGE OF ARCS TO BE CAPACITATED....... IPCAP -C 61-70 MINIMUM UPPER BOUND FOR CAPACITATED ARCS... MINCAP -C 71-80 MAXIMUM UPPER BOUND FOR CAPACITATED ARCS... MAXCAP -C -C ALL INPUT VALUES ARE INTEGER AND MUST BE RIGHT-JUSTIFIED. -C -C NETGEN WILL GENERATE A TRANSPORTATION PROBLEM IF: -C NSORC+NSINK=NODES , NTSORC=0 , AND NTSINK=0 -C -C NETGEN WILL GENERATE AN ASSIGNMENT PROBLEM IF THE REQUIREMENTS FOR -C A TRANSPORTATION PROBLEM ARE MET AND: -C NSORC=NSINK AND ITSUP=NSORC -C -C THE SIX NODE LENGTH ARRAYS SHOULD BE ADJUSTED FOR LARGE PROBLEMS. -C THE PARAMETER "MXNODE" MUST BE CHANGED ACCORDINGLY. -C -C*********************************************************************** - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) - COMMON /VAR/ NODES,IARCS,MINCST,MAXCST,ITSUP,NSORC,NSINK,NONSOR, - 1 NFSINK,NARCS,NSORT,NFTSOR,IPCAP,MINCAP,MAXCAP,KTL,NODLFT - COMMON /ARRAY1/ IST,IPRED(10101) - COMMON /ARRAY2/ IHEAD(10101) - COMMON /ARRAY3/ ITAIL(10101) - COMMON /ARRAY4/ IFLAG(10101) - COMMON /ARRAY5/ ISUP(10101) - COMMON /ARRAY6/ LSINKS(10101) - COMMON /NEW/ LUIN,LUOUT -C -C DEFINE THE ARRAY DIMENSION (MAXIMUM NUMBER OF NODES). -C - MXNODE=(10101) -C -C SET THE LOGICAL UNITS. -C - LUIN=5 - LUOUT=6 -C -C INPUT THE USER'S RANDOM NUMBER SEED AND FIX IT IF NON-POSITIVE. -C - READ(LUIN,10) ISEED,NPROB - 10 FORMAT(2I8) - IF(ISEED.LE.0) ISEED=13502460 - CALL SETRAN(ISEED) -C -C INPUT THE USER'S PROBLEM CHARACTERISTICS. -C - READ(LUIN,20) NODES,NSORC,NSINK,IARCS,MINCST,MAXCST,ITSUP, - 1 NTSORC,NTSINK,IPHIC,IPCAP,MINCAP,MAXCAP - 20 FORMAT(6I5,I10,4I5,2I10) -C -C PRINT THE PROBLEM DOCUMENTATION RECORDS. (NOTE CHANGE FROM OLD CODE) -C - WRITE(LUOUT,30) NPROB,NODES,IARCS - 30 FORMAT('BEGIN',/'NETGEN PROBLEM',I8,10X,I10,' NODES AND',I10, - 1 ' ARCS') - WRITE(LUOUT,40) ISEED,NSORC,NSINK,MINCST,MAXCST,ITSUP,NTSORC, - 1 NTSINK,IPHIC,IPCAP,MINCAP,MAXCAP - 40 FORMAT('USER:',6I11/'DATA:',6I11) -C -C CHECK THE SIZE OF THE PROBLEM. -C - IF(NODES.LE.MXNODE) GO TO 60 - WRITE(LUOUT,50) NODES,MXNODE - 50 FORMAT(' FATAL ERROR: PROBLEM TOO LARGE FOR NETGEN', - 1 /' REQUESTED NODES: ',I10, - 1 /' CURRENT DIMENSION:',I10) - STOP 10 -C -C CHECK USER SUPPLIED PARAMETERS FOR CONSISTENCY. -C - 60 IF(NSORC+NSINK.GT.NODES) STOP 11 - IF(NTSORC.GT.NSORC) STOP 12 - IF(NTSINK.GT.NSINK) STOP 13 - IF(MINCST.GT.MAXCST) STOP 14 - IF(MINCAP.GT.MAXCAP) STOP 15 -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 -C -C RANDOMLY DISTRIBUTE THE SUPPLY AMONG THE SOURCE NODES. -C - IF(NPSORC+NPSINK.NE.NODES) GO TO 70 - IF(NPSORC.NE.NPSINK) GO TO 70 - IF(ITSUP.NE.NSORC) GO TO 70 - CALL ASSIGN - NSKEL=NSORC - GO TO 390 - 70 CALL CRESUP -C -C PRINT THE SUPPLY RECORDS. -C - WRITE(LUOUT,80) - 80 FORMAT('SUPPLY') - DO 90 I=1,NSORC - 90 WRITE(LUOUT,100) I,ISUP(I) - 100 FORMAT(6X,I6,18X,I10) - WRITE(LUOUT,110) - 110 FORMAT('ARCS') -C -C MAKE THE SOURCES POINT TO THEMSELVES IN IPRED ARRAY. -C - DO 120 I=1,NSORC - 120 IPRED(I)=I - IF(NTRANS.EQ.0) GO TO 170 -C -C CHAIN THE TRANSSHIPMENT NODES TOGETHER IN THE IPRED ARRAY. -C - IST=NFTR - IPRED(NLTR)=0 - K=NLTR-1 - DO 130 I=NFTR,K - 130 IPRED(I)=I+1 -C -C FORM EVEN LENGTH CHAINS FOR 60 PERCENT OF THE TRANSSHIPMENTS. -C - NTRAVL=6*NTRANS/10 - NTRREM=NTRANS-NTRAVL - 140 LSORC=1 - 150 IF(NTRAVL.EQ.0) GO TO 160 - LPICK=IRAN(1,NTRAVL+NTRREM) - NTRAVL=NTRAVL-1 - CALL CHAIN(LPICK,LSORC) - IF(LSORC.EQ.NSORC) GO TO 140 - LSORC=LSORC+1 - GO TO 150 -C -C ADD THE REMAINING TRANSSHIPMENTS TO THE CHAINS. -C - 160 IF(NTRREM.EQ.0) GO TO 170 - LPICK=IRAN(1,NTRREM) - NTRREM=NTRREM-1 - LSORC=IRAN(1,NSORC) - CALL CHAIN(LPICK,LSORC) - GO TO 160 -C -C SET ALL DEMANDS EQUAL TO ZERO. -C - 170 DO 180 I=NFSINK,NODES - 180 IPRED(I)=0 -C -C THE FOLLOWING LOOP TAKES ONE CHAIN AT A TIME (THROUGH THE USE OF -C LOGIC CONTAINED IN THE LOOP AND CALLS TO OTHER ROUTINES) AND CREATES -C THE REMAINING NETWORK ARCS. -C - DO 360 LSORC=1,NSORC - CALL CHNARC(LSORC) - DO 190 I=NFSINK,NODES - 190 IFLAG(I)=0 -C -C CHOOSE THE NUMBER OF SINKS TO BE HOOKED UP TO THE CURRENT CHAIN(NSK -C - IF(NTRANS.EQ.0) GO TO 200 - NSKSR=(NSORT*2*NSINK)/NTRANS - GO TO 210 - 200 NSKSR=NSINK/NSORC+1 - 210 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 240 J=1,NSKSR - ITEM=IRAN(1,KTL) - KTL=KTL-1 - DO 220 L=NFSINK,NODES - IF(IFLAG(L).EQ.1) GO TO 220 - ITEM=ITEM-1 - IF(ITEM.EQ.0) GO TO 230 - 220 CONTINUE - GO TO 250 - 230 LSINKS(J)=L - IFLAG(L)=1 - 240 CONTINUE -C -C IF LAST SOURCE CHAIN, ADD ALL SINKS WITH ZERO DEMAND TO LSINKS LIST -C - 250 IF(LSORC.NE.NSORC) GO TO 270 - DO 260 J=NFSINK,NODES - IF(IPRED(J).NE.0) GO TO 260 - IF(IFLAG(J).EQ.1) GO TO 260 - NSKSR=NSKSR+1 - LSINKS(NSKSR)=J - IFLAG(J)=1 - 260 CONTINUE -C -C CREATE DEMANDS FOR GROUP OF SINKS IN LSINKS -C - 270 KS=ISUP(LSORC)/NSKSR - K=IPRED(LSORC) - DO 290 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 280 II=1,N - 280 K=IPRED(K) - 290 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 SORT KEY. -C - CALL SORT -C -C PRINT THIS PART OF SKELETON AND CREATE THE ARCS FOR THESE NODES. -C - I=1 - ITAIL(NSORT+1)=0 - 300 DO 310 J=NFTSOR,NODES - 310 IFLAG(J)=0 - KTL=NONSOR-1 - IT=ITAIL(I) - IFLAG(IT)=1 - 320 IH=IHEAD(I) - IFLAG(IH)=1 - NARCS=NARCS+1 - KTL=KTL-1 -C -C DETERMINE IF THIS SKELETON ARC SHOULD BE CAPACITATED. -C - ICAP=ITSUP - JCAP=IRAN(1,100) - IF(JCAP.GT.IPCAP) GO TO 330 - ICAP=ISUP(LSORC) - IF(MINCAP.GT.ICAP) ICAP=MINCAP -C -C DETERMINE IF THIS SKELETON ARC SHOULD HAVE THE MAXIMUM COST. -C - 330 ICOST=MAXCST - JCOST=IRAN(1,100) - IF(JCOST.LE.IPHIC) GO TO 340 - ICOST=IRAN(MINCST,MAXCST) - 340 WRITE(LUOUT,350) IT,IH,ICOST,ICAP - 350 FORMAT(6X,2I6,2X,2I10) - I=I+1 - IF(ITAIL(I).EQ.IT) GO TO 320 - CALL PICKJ(IT) - IF(I.LE.NSORT) GO TO 300 - 360 CONTINUE -C -C CREATE ARCS FROM THE TRANSSHIPMENT SINKS. -C - IF(NTSINK.EQ.0) GO TO 390 - NZ=0 - DO 380 I=NFSINK,LTSINK - DO 370 J=NFTSOR,NODES - 370 IFLAG(J)=0 - KTL=NONSOR-1 - IFLAG(I)=1 - CALL PICKJ(I) - 380 CONTINUE -C -C PRINT THE DEMAND RECORDS AND END RECORD. -C - 390 WRITE(LUOUT,400) - 400 FORMAT('DEMAND') - DO 410 I=NFSINK,NODES - 410 WRITE(LUOUT,420) I,IPRED(I) - 420 FORMAT(6X,I6,18X,I10) - WRITE(LUOUT,430) - 430 FORMAT('END') - STOP - END -C -C -C - SUBROUTINE CRESUP - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C CRESUP RANDOMLY DISTRIBUTES THE TOTAL SUPPLY AMONG THE SOURCE NODES. -C*********************************************************************** - COMMON /VAR/ NODES,IARCS,MINCST,MAXCST,ITSUP,NSORC,NSINK,NONSOR, - 1 NFSINK,NARCS,NSORT,NFTSOR,IPCAP,MINCAP,MAXCAP,KTL,NODLFT - COMMON /ARRAY1/ IST,IPRED(10101) - COMMON /ARRAY2/ IHEAD(10101) - COMMON /ARRAY3/ ITAIL(10101) - COMMON /ARRAY4/ IFLAG(10101) - COMMON /ARRAY5/ ISUP(10101) - COMMON /ARRAY6/ LSINKS(10101) - COMMON /NEW/ LUIN,LUOUT -C - IF(ITSUP.LE.NSORC) STOP 20 - KS=ITSUP/NSORC - DO 10 I=1,NSORC - 10 ISUP(I)=0 - DO 20 I=1,NSORC - KSP=IRAN(1,KS) - J=IRAN(1,NSORC) - ISUP(I)=ISUP(I)+KSP - 20 ISUP(J)=ISUP(J)+KS-KSP - J=IRAN(1,NSORC) - ISUP(J)=ISUP(J)+ITSUP-(KS*NSORC) - RETURN - END -C -C -C - SUBROUTINE CHAIN(LPICK,LSORC) - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C CHAIN HAS TWO INPUT PARAMETERS (LPICK AND LSORC). IT ADDS NODE LPICK -C TO THE END OF THE CHAIN WITH SOURCE NODE LSORC. -C*********************************************************************** - COMMON /VAR/ NODES,IARCS,MINCST,MAXCST,ITSUP,NSORC,NSINK,NONSOR, - 1 NFSINK,NARCS,NSORT,NFTSOR,IPCAP,MINCAP,MAXCAP,KTL,NODLFT - COMMON /ARRAY1/ IST,IPRED(10101) - COMMON /ARRAY2/ IHEAD(10101) - COMMON /ARRAY3/ ITAIL(10101) - COMMON /ARRAY4/ IFLAG(10101) - COMMON /ARRAY5/ ISUP(10101) - COMMON /ARRAY6/ LSINKS(10101) - COMMON /NEW/ LUIN,LUOUT -C - K=0 - M=IST - DO 10 I=1,LPICK - L=K - K=M - 10 M=IPRED(K) - IPRED(L)=M - J=IPRED(LSORC) - IPRED(K)=J - IPRED(LSORC)=K - RETURN - END -C -C -C - SUBROUTINE CHNARC(LSORC) - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C THIS ROUTINE PUTS THE ARCS IN THE CHAIN FROM SOURCE LSORC INTO THE -C IHEAD AND ITAIL ARRAYS FOR SORTING. -C*********************************************************************** - COMMON /VAR/ NODES,IARCS,MINCST,MAXCST,ITSUP,NSORC,NSINK,NONSOR, - 1 NFSINK,NARCS,NSORT,NFTSOR,IPCAP,MINCAP,MAXCAP,KTL,NODLFT - COMMON /ARRAY1/ IST,IPRED(10101) - COMMON /ARRAY2/ IHEAD(10101) - COMMON /ARRAY3/ ITAIL(10101) - COMMON /ARRAY4/ IFLAG(10101) - COMMON /ARRAY5/ ISUP(10101) - COMMON /ARRAY6/ LSINKS(10101) - COMMON /NEW/ LUIN,LUOUT -C - NSORT=0 - ITO=IPRED(LSORC) - 10 IF(ITO.EQ.LSORC) RETURN - NSORT=NSORT+1 - IFROM=IPRED(ITO) - IHEAD(NSORT)=ITO - ITAIL(NSORT)=IFROM - ITO=IFROM - GO TO 10 - END -C -C -C - SUBROUTINE SORT - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C THIS ROUTINE SORTS THE NSORT ARCS IN THE IHEAD AND ITAIL ARRAYS. -C IHEAD IS USED AS THE SORT KEY (I.E. FORWARD STAR SORT ORDER). -C*********************************************************************** - COMMON /VAR/ NODES,IARCS,MINCST,MAXCST,ITSUP,NSORC,NSINK,NONSOR, - 1 NFSINK,NARCS,NSORT,NFTSOR,IPCAP,MINCAP,MAXCAP,KTL,NODLFT - COMMON /ARRAY1/ IST,IPRED(10101) - COMMON /ARRAY2/ IHEAD(10101) - COMMON /ARRAY3/ ITAIL(10101) - COMMON /ARRAY4/ IFLAG(10101) - COMMON /ARRAY5/ ISUP(10101) - COMMON /ARRAY6/ LSINKS(10101) - COMMON /NEW/ LUIN,LUOUT -C - N=NSORT - M=N - 10 M=M/2 - IF(M.EQ.0) RETURN - K=N-M - J=1 - 20 I=J - 30 L=I+M - IF(ITAIL(I)-ITAIL(L).LE.0) GO TO 40 - 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.GE.1) GO TO 30 - 40 J=J+1 - IF(J.LE.K) GO TO 20 - GO TO 10 - END -C -C -C - SUBROUTINE PICKJ(IT) - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C THIS ROUTINE CREATES A RANDOM NUMBER OF ARCS OUT OF NODE 'IT'. -C VARIOUS PARAMETERS ARE DYNAMICALLY ADJUSTED IN AN ATTEMPT TO ENSURE -C THAT THE GENERATED NETWORK HAS THE CORRECT NUMBER OF ARCS. -C*********************************************************************** - COMMON /VAR/ NODES,IARCS,MINCST,MAXCST,ITSUP,NSORC,NSINK,NONSOR, - 1 NFSINK,NARCS,NSORT,NFTSOR,IPCAP,MINCAP,MAXCAP,KTL,NODLFT - COMMON /ARRAY1/ IST,IPRED(10101) - COMMON /ARRAY2/ IHEAD(10101) - COMMON /ARRAY3/ ITAIL(10101) - COMMON /ARRAY4/ IFLAG(10101) - COMMON /ARRAY5/ ISUP(10101) - COMMON /ARRAY6/ LSINKS(10101) - COMMON /NEW/ LUIN,LUOUT -C - IF((NODLFT-1)*2.LE.IARCS-NARCS-1) GO TO 10 - NODLFT=NODLFT-1 - RETURN - 10 IF((IARCS-NARCS+NONSOR-KTL-1)/NODLFT-NONSOR+1) 30,20,20 - 20 K=NONSOR - GO TO 50 - 30 NUPBND=(IARCS-NARCS-NODLFT)/NODLFT*2 - 40 K=IRAN(1,NUPBND) - IF(NODLFT.EQ.1) K=IARCS-NARCS - IF((NODLFT-1)*(NONSOR-1).LT.IARCS-NARCS-K) GO TO 40 - 50 NODLFT=NODLFT-1 - DO 100 J=1,K - NN=IRAN(1,KTL) - KTL=KTL-1 - DO 60 L=NFTSOR,NODES - IF(IFLAG(L).EQ.1) GO TO 60 - NN=NN-1 - IF(NN.EQ.0) GO TO 70 - 60 CONTINUE - RETURN - 70 IFLAG(L)=1 - ICAP=ITSUP - JCAP=IRAN(1,100) - IF(JCAP.GT.IPCAP) GO TO 80 - ICAP=IRAN(MINCAP,MAXCAP) - 80 ICOST=IRAN(MINCST,MAXCST) - WRITE(LUOUT,90) IT,L,ICOST,ICAP - 90 FORMAT(6X,2I6,2X,2I10) - NARCS=NARCS+1 - 100 CONTINUE - RETURN - END -C -C -C - SUBROUTINE ASSIGN - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C THIS ROUTINE GENERATES ASSIGNMENT PROBLEMS. IT DEFINES THE UNIT -C SUPPLIES, BUILDS A SKELETON, THEN CALLS PICKJ TO CREATE THE ARCS. -C*********************************************************************** - COMMON /VAR/ NODES,IARCS,MINCST,MAXCST,ITSUP,NSORC,NSINK,NONSOR, - 1 NFSINK,NARCS,NSORT,NFTSOR,IPCAP,MINCAP,MAXCAP,KTL,NODLFT - COMMON /ARRAY1/ IST,IPRED(10101) - COMMON /ARRAY2/ IHEAD(10101) - COMMON /ARRAY3/ ITAIL(10101) - COMMON /ARRAY4/ IFLAG(10101) - COMMON /ARRAY5/ ISUP(10101) - COMMON /ARRAY6/ LSINKS(10101) - COMMON /NEW/ LUIN,LUOUT -C - WRITE(LUOUT,10) - 10 FORMAT('SUPPLY') - DO 20 I=1,NSORC - ISUP(I)=1 - IFLAG(I)=0 - 20 WRITE(LUOUT,30) I,ISUP(I) - 30 FORMAT(6X,I6,18X,I10) - WRITE(LUOUT,40) - 40 FORMAT('ARCS') - DO 50 I=NFSINK,NODES - 50 IPRED(I)=1 - DO 100 IT=1,NSORC - DO 60 I=NFSINK,NODES - 60 IFLAG(I)=0 - KTL=NSINK-1 - NN=IRAN(1,NSINK-IT+1) - DO 70 L=1,NSORC - IF(IFLAG(L).EQ.1) GO TO 70 - NN=NN-1 - IF(NN.EQ.0) GO TO 80 - 70 CONTINUE - 80 NARCS=NARCS+1 - LL=NSORC+L - ICOST=IRAN(MINCST,MAXCST) - WRITE(LUOUT,90) IT,LL,ICOST,ISUP(1) - 90 FORMAT(6X,2I6,2X,2I10) - IFLAG(L)=1 - IFLAG(LL)=1 - CALL PICKJ(IT) - 100 CONTINUE - RETURN - END -C -C -C - SUBROUTINE SETRAN(ISEED) - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C PORTABLE CONGRUENTIAL (UNIFORM) RANDOM NUMBER GENERATOR: -C NEXT_VALUE = ((7**5) * PREVIOUS_VALUE) MODULO ((2**31)-1) -C -C THIS GENERATOR CONSISTS OF THREE ROUTINES: -C (1) SETRAN - INITIALIZES CONSTANTS AND SEED -C (2) IRAN - GENERATES AN INTEGER RANDOM NUMBER -C (3) RRAN - GENERATES A REAL RANDOM NUMBER -C -C THE GENERATOR REQUIRES A MACHINE WITH AT LEAST 32 BITS OF PRECISION. -C THE SEED (ISEED) MUST BE IN THE RANGE (1,(2**31)-1). -C*********************************************************************** - COMMON /RAN/ MULT,MODUL,I15,I16,JRAN - IF(ISEED.LT.1) STOP 77 - MULT=16807 - MODUL=2147483647 - I15=2**15 - I16=2**16 - JRAN=ISEED - RETURN - END -C -C -C - FUNCTION IRAN(ILOW,IHIGH) - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C IRAN GENERATES AN INTEGER RANDOM NUMBER BETWEEN ILOW AND IHIGH. -C IF ILOW.GT.IHIGH THEN IRAN RETURNS IRAN=IHIGH. -C*********************************************************************** - COMMON /RAN/ MULT,MODUL,I15,I16,JRAN - 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=IHIGH-ILOW+1 - IF(J.LE.0) GO TO 10 - IRAN=MOD(JRAN,J)+ILOW - RETURN - 10 IRAN=IHIGH - RETURN - END -C -C -C - FUNCTION RRAN(RLOW,RHIGH) - IMPLICIT REAL*8 (A-H,O-Z) , INTEGER*4 (I-N) -C*********************************************************************** -C RRAN GENERATES A REAL RANDOM NUMBER BETWEEN RLOW AND RHIGH BY SIMPLY -C USING IRAN, THEN SCALING THE INTEGER VALUE TO THE DESIRED REAL RANGE. -C IF RLOW.GT.RHIGH THEN RRAN RETURNS RRAN=RHIGH. -C*********************************************************************** - RRANGE=RHIGH-RLOW - IF(RRANGE.GT.0.0) GO TO 10 - RRAN=RHIGH - RETURN - 10 ISCALE=10000 - IVALUE=IRAN(0,ISCALE) - RSCALE=ISCALE - RVALUE=IVALUE - RRAN=RLOW+(RVALUE/RSCALE)*RRANGE - RETURN - END //GO.SYSIN DD netgen.f echo data0 1>&2 sed >data0 <<'//GO.SYSIN DD data0' 's/^-//' -From arpa!UTA3081.CC.UTEXAS.EDU!GFAA211 Thursday June 29 8:40am CST 1989 -Subject: Test data for NETGEN - - N . S . S . A . MIN. MAX. SUM .TRN .TRN .%HI . % . MIN .MAX - O . O . I . R . C . C . S . S . S . C . C . C . C - D . U . N . C . O . O . U . O . I . O . A . A . A - E . R . K . S . S . S . P . U . N . S . P . P . P - S . C . S . . T . T . P . R . K . T . P . . - . E . . . . . L . C . S . S . E . . - . S . . . . . Y . E . . . D . . - . . . . . . . S . . . . . - . . . . . . . . . . . . - -13502460 101 - 5000 2500 250025000 1 100 250000 0 0 0 100 1 1000 -04281922 102 - 5000 2500 250025000 1 100 2500000 0 0 0 100 1 1000 -44820113 103 - 5000 2500 250025000 1 100 6250000 0 0 0 100 1 1000 -13450451 104 - 5000 2500 250025000 -100 -1 250000 0 0 0 100 1 1000 -14719436 105 - 5000 2500 250025000 101 200 250000 0 0 0 100 1 1000 -17365786 106 - 5000 2500 250012500 1 100 125000 0 0 0 100 1 1000 -19540113 107 - 5000 2500 250037500 1 100 375000 0 0 0 100 1 1000 -19560313 108 - 5000 2500 250050000 1 100 500000 0 0 0 100 1 1000 -02403509 109 - 5000 2500 250075000 1 100 750000 0 0 0 100 1 1000 -92480414 110 - 5000 2500 250012500 1 100 250000 0 0 0 100 1 1000 -04230140 111 - 5000 2500 250037500 1 100 250000 0 0 0 100 1 1000 -10032490 112 - 5000 2500 250050000 1 100 250000 0 0 0 100 1 1000 -17307474 113 - 5000 2500 250075000 1 100 250000 0 0 0 100 1 1000 -04925114 114 - 5000 500 450025000 1 100 250000 0 0 0 100 1 1000 -19842704 115 - 5000 1500 350025000 1 100 250000 0 0 0 100 1 1000 -88392060 116 - 5000 2500 250025000 1 100 250000 0 0 0 0 1 1000 -12904407 117 - 5000 2500 250012500 1 100 125000 0 0 0 0 1 1000 -11811811 118 - 5000 2500 250037500 1 100 375000 0 0 0 0 1 1000 -90023593 119 - 5000 2500 250050000 1 100 500000 0 0 0 0 1 1000 -93028922 120 - 5000 2500 250075000 1 100 750000 0 0 0 0 1 1000 -72707401 121 - 5000 50 5025000 1 100 250000 50 50 0 100 1 1000 -93040771 122 - 5000 250 25025000 1 100 250000 250 250 0 100 1 1000 -70220611 123 - 5000 500 50025000 1 100 250000 500 500 0 100 1 1000 -52774811 124 - 5000 1000 100025000 1 100 250000 1000 1000 0 100 1 1000 -22492311 125 - 5000 1500 150025000 1 100 250000 1500 1500 0 100 1 1000 -35269337 126 - 5000 500 50012500 1 100 125000 500 500 0 100 1 1000 -30140502 127 - 5000 500 50037500 1 100 375000 500 500 0 100 1 1000 -49205455 128 - 5000 500 50050000 1 100 500000 500 500 0 100 1 1000 -42958341 129 - 5000 500 50075000 1 100 750000 500 500 0 100 1 1000 -25440925 130 - 5000 500 50012500 1 100 250000 500 500 0 100 1 1000 -75294924 131 - 5000 500 50037500 1 100 250000 500 500 0 100 1 1000 -04463965 132 - 5000 500 50050000 1 100 250000 500 500 0 100 1 1000 -13390427 133 - 5000 500 50075000 1 100 250000 500 500 0 100 1 1000 -95250971 134 - 1000 500 50025000 1 100 250000 500 500 0 100 1 1000 -54830522 135 - 2500 500 50025000 1 100 250000 500 500 0 100 1 1000 -00520593 136 - 7500 500 50025000 1 100 250000 500 500 0 100 1 1000 -52900925 137 -10000 500 50025000 1 100 250000 500 500 0 100 1 1000 -22603395 138 - 5000 500 50025000 1 100 250000 500 500 0 100 1 50 -55253099 139 - 5000 500 50025000 1 100 250000 500 500 0 100 1 250 -75357001 140 - 5000 500 50025000 1 100 250000 500 500 0 100 1 500 -10072459 141 - 5000 500 50025000 1 100 250000 500 500 0 100 1 2500 -55728492 142 - 5000 500 50025000 1 100 250000 500 500 0 100 1 5000 -00593043 143 - 5000 500 50025000 1 100 250000 500 500 0 0 1 1000 -94236572 144 - 5000 500 50025000 1 10 250000 500 500 0 100 1 1000 -94882955 145 - 5000 500 50025000 1 1000 250000 500 500 0 100 1 1000 -48489922 146 - 5000 500 50025000 110000 250000 500 500 0 100 1 1000 -75578374 147 - 5000 500 50025000 -100 -1 250000 500 500 0 100 1 1000 -44821152 148 - 5000 500 50025000 -50 49 250000 500 500 0 100 1 1000 -45224103 149 - 5000 500 50025000 101 200 250000 500 500 0 100 1 1000 -63491741 150 - 5000 500 50025000 1001 1100 250000 500 500 0 100 1 1000 //GO.SYSIN DD data0 mkdir Data echo Data/netgn102 1>&2 sed >Data/netgn102 <<'//GO.SYSIN DD Data/netgn102' 's/^-//' -04281922 102 - 5000 2500 250025000 1 100 2500000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn102 echo Data/netgn103 1>&2 sed >Data/netgn103 <<'//GO.SYSIN DD Data/netgn103' 's/^-//' -44820113 103 - 5000 2500 250025000 1 100 6250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn103 echo Data/netgn104 1>&2 sed >Data/netgn104 <<'//GO.SYSIN DD Data/netgn104' 's/^-//' -13450451 104 - 5000 2500 250025000 -100 -1 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn104 echo Data/netgn105 1>&2 sed >Data/netgn105 <<'//GO.SYSIN DD Data/netgn105' 's/^-//' -14719436 105 - 5000 2500 250025000 101 200 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn105 echo Data/netgn106 1>&2 sed >Data/netgn106 <<'//GO.SYSIN DD Data/netgn106' 's/^-//' -17365786 106 - 5000 2500 250012500 1 100 125000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn106 echo Data/netgn107 1>&2 sed >Data/netgn107 <<'//GO.SYSIN DD Data/netgn107' 's/^-//' -19540113 107 - 5000 2500 250037500 1 100 375000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn107 echo Data/netgn108 1>&2 sed >Data/netgn108 <<'//GO.SYSIN DD Data/netgn108' 's/^-//' -19560313 108 - 5000 2500 250050000 1 100 500000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn108 echo Data/netgn109 1>&2 sed >Data/netgn109 <<'//GO.SYSIN DD Data/netgn109' 's/^-//' -02403509 109 - 5000 2500 250075000 1 100 750000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn109 echo Data/netgn110 1>&2 sed >Data/netgn110 <<'//GO.SYSIN DD Data/netgn110' 's/^-//' -92480414 110 - 5000 2500 250012500 1 100 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn110 echo Data/netgn111 1>&2 sed >Data/netgn111 <<'//GO.SYSIN DD Data/netgn111' 's/^-//' -04230140 111 - 5000 2500 250037500 1 100 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn111 echo Data/netgn112 1>&2 sed >Data/netgn112 <<'//GO.SYSIN DD Data/netgn112' 's/^-//' -10032490 112 - 5000 2500 250050000 1 100 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn112 echo Data/netgn113 1>&2 sed >Data/netgn113 <<'//GO.SYSIN DD Data/netgn113' 's/^-//' -17307474 113 - 5000 2500 250075000 1 100 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn113 echo Data/netgn114 1>&2 sed >Data/netgn114 <<'//GO.SYSIN DD Data/netgn114' 's/^-//' -04925114 114 - 5000 500 450025000 1 100 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn114 echo Data/netgn115 1>&2 sed >Data/netgn115 <<'//GO.SYSIN DD Data/netgn115' 's/^-//' -19842704 115 - 5000 1500 350025000 1 100 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn115 echo Data/netgn116 1>&2 sed >Data/netgn116 <<'//GO.SYSIN DD Data/netgn116' 's/^-//' -88392060 116 - 5000 2500 250025000 1 100 250000 0 0 0 0 1 1000 //GO.SYSIN DD Data/netgn116 echo Data/netgn117 1>&2 sed >Data/netgn117 <<'//GO.SYSIN DD Data/netgn117' 's/^-//' -12904407 117 - 5000 2500 250012500 1 100 125000 0 0 0 0 1 1000 //GO.SYSIN DD Data/netgn117 echo Data/netgn118 1>&2 sed >Data/netgn118 <<'//GO.SYSIN DD Data/netgn118' 's/^-//' -11811811 118 - 5000 2500 250037500 1 100 375000 0 0 0 0 1 1000 //GO.SYSIN DD Data/netgn118 echo Data/netgn119 1>&2 sed >Data/netgn119 <<'//GO.SYSIN DD Data/netgn119' 's/^-//' -90023593 119 - 5000 2500 250050000 1 100 500000 0 0 0 0 1 1000 //GO.SYSIN DD Data/netgn119 echo Data/netgn120 1>&2 sed >Data/netgn120 <<'//GO.SYSIN DD Data/netgn120' 's/^-//' -93028922 120 - 5000 2500 250075000 1 100 750000 0 0 0 0 1 1000 //GO.SYSIN DD Data/netgn120 echo Data/netgn121 1>&2 sed >Data/netgn121 <<'//GO.SYSIN DD Data/netgn121' 's/^-//' -72707401 121 - 5000 50 5025000 1 100 250000 50 50 0 100 1 1000 //GO.SYSIN DD Data/netgn121 echo Data/netgn122 1>&2 sed >Data/netgn122 <<'//GO.SYSIN DD Data/netgn122' 's/^-//' -93040771 122 - 5000 250 25025000 1 100 250000 250 250 0 100 1 1000 //GO.SYSIN DD Data/netgn122 echo Data/netgn123 1>&2 sed >Data/netgn123 <<'//GO.SYSIN DD Data/netgn123' 's/^-//' -70220611 123 - 5000 500 50025000 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn123 echo Data/netgn124 1>&2 sed >Data/netgn124 <<'//GO.SYSIN DD Data/netgn124' 's/^-//' -52774811 124 - 5000 1000 100025000 1 100 250000 1000 1000 0 100 1 1000 //GO.SYSIN DD Data/netgn124 echo Data/netgn125 1>&2 sed >Data/netgn125 <<'//GO.SYSIN DD Data/netgn125' 's/^-//' -22492311 125 - 5000 1500 150025000 1 100 250000 1500 1500 0 100 1 1000 //GO.SYSIN DD Data/netgn125 echo Data/netgn126 1>&2 sed >Data/netgn126 <<'//GO.SYSIN DD Data/netgn126' 's/^-//' -35269337 126 - 5000 500 50012500 1 100 125000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn126 echo Data/netgn127 1>&2 sed >Data/netgn127 <<'//GO.SYSIN DD Data/netgn127' 's/^-//' -30140502 127 - 5000 500 50037500 1 100 375000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn127 echo Data/netgn128 1>&2 sed >Data/netgn128 <<'//GO.SYSIN DD Data/netgn128' 's/^-//' -49205455 128 - 5000 500 50050000 1 100 500000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn128 echo Data/netgn129 1>&2 sed >Data/netgn129 <<'//GO.SYSIN DD Data/netgn129' 's/^-//' -42958341 129 - 5000 500 50075000 1 100 750000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn129 echo Data/netgn130 1>&2 sed >Data/netgn130 <<'//GO.SYSIN DD Data/netgn130' 's/^-//' -25440925 130 - 5000 500 50012500 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn130 echo Data/netgn131 1>&2 sed >Data/netgn131 <<'//GO.SYSIN DD Data/netgn131' 's/^-//' -75294924 131 - 5000 500 50037500 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn131 echo Data/netgn132 1>&2 sed >Data/netgn132 <<'//GO.SYSIN DD Data/netgn132' 's/^-//' -04463965 132 - 5000 500 50050000 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn132 echo Data/netgn133 1>&2 sed >Data/netgn133 <<'//GO.SYSIN DD Data/netgn133' 's/^-//' -13390427 133 - 5000 500 50075000 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn133 echo Data/netgn134 1>&2 sed >Data/netgn134 <<'//GO.SYSIN DD Data/netgn134' 's/^-//' -95250971 134 - 1000 500 50025000 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn134 echo Data/netgn135 1>&2 sed >Data/netgn135 <<'//GO.SYSIN DD Data/netgn135' 's/^-//' -54830522 135 - 2500 500 50025000 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn135 echo Data/netgn136 1>&2 sed >Data/netgn136 <<'//GO.SYSIN DD Data/netgn136' 's/^-//' -00520593 136 - 7500 500 50025000 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn136 echo Data/netgn137 1>&2 sed >Data/netgn137 <<'//GO.SYSIN DD Data/netgn137' 's/^-//' -52900925 137 -10000 500 50025000 1 100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn137 echo Data/netgn138 1>&2 sed >Data/netgn138 <<'//GO.SYSIN DD Data/netgn138' 's/^-//' -22603395 138 - 5000 500 50025000 1 100 250000 500 500 0 100 1 50 //GO.SYSIN DD Data/netgn138 echo Data/netgn139 1>&2 sed >Data/netgn139 <<'//GO.SYSIN DD Data/netgn139' 's/^-//' -55253099 139 - 5000 500 50025000 1 100 250000 500 500 0 100 1 250 //GO.SYSIN DD Data/netgn139 echo Data/netgn140 1>&2 sed >Data/netgn140 <<'//GO.SYSIN DD Data/netgn140' 's/^-//' -75357001 140 - 5000 500 50025000 1 100 250000 500 500 0 100 1 500 //GO.SYSIN DD Data/netgn140 echo Data/netgn141 1>&2 sed >Data/netgn141 <<'//GO.SYSIN DD Data/netgn141' 's/^-//' -10072459 141 - 5000 500 50025000 1 100 250000 500 500 0 100 1 2500 //GO.SYSIN DD Data/netgn141 echo Data/netgn142 1>&2 sed >Data/netgn142 <<'//GO.SYSIN DD Data/netgn142' 's/^-//' -55728492 142 - 5000 500 50025000 1 100 250000 500 500 0 100 1 5000 //GO.SYSIN DD Data/netgn142 echo Data/netgn143 1>&2 sed >Data/netgn143 <<'//GO.SYSIN DD Data/netgn143' 's/^-//' -00593043 143 - 5000 500 50025000 1 100 250000 500 500 0 0 1 1000 //GO.SYSIN DD Data/netgn143 echo Data/netgn144 1>&2 sed >Data/netgn144 <<'//GO.SYSIN DD Data/netgn144' 's/^-//' -94236572 144 - 5000 500 50025000 1 10 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn144 echo Data/netgn145 1>&2 sed >Data/netgn145 <<'//GO.SYSIN DD Data/netgn145' 's/^-//' -94882955 145 - 5000 500 50025000 1 1000 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn145 echo Data/netgn146 1>&2 sed >Data/netgn146 <<'//GO.SYSIN DD Data/netgn146' 's/^-//' -48489922 146 - 5000 500 50025000 110000 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn146 echo Data/netgn147 1>&2 sed >Data/netgn147 <<'//GO.SYSIN DD Data/netgn147' 's/^-//' -75578374 147 - 5000 500 50025000 -100 -1 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn147 echo Data/netgn148 1>&2 sed >Data/netgn148 <<'//GO.SYSIN DD Data/netgn148' 's/^-//' -44821152 148 - 5000 500 50025000 -50 49 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn148 echo Data/netgn149 1>&2 sed >Data/netgn149 <<'//GO.SYSIN DD Data/netgn149' 's/^-//' -45224103 149 - 5000 500 50025000 101 200 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn149 echo Data/netgn150 1>&2 sed >Data/netgn150 <<'//GO.SYSIN DD Data/netgn150' 's/^-//' -63491741 150 - 5000 500 50025000 1001 1100 250000 500 500 0 100 1 1000 //GO.SYSIN DD Data/netgn150 echo Data/netgn101 1>&2 sed >Data/netgn101 <<'//GO.SYSIN DD Data/netgn101' 's/^-//' -13502460 101 - 5000 2500 250025000 1 100 250000 0 0 0 100 1 1000 //GO.SYSIN DD Data/netgn101