# 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