SUBROUTINE GRGSUB(INPRNT,OTPRNT,NCORE,NNVARS,NFUN,MAXBAS, 1 MAXHES,NNOBJ,TITLE,BLVAR,BUVAR,BLCON,BUCON,DEFAUL,FPNEWT,FPINIT, 2 FPSTOP,FPSPIV,PPH1EP,NNSTOP,IITLIM,LLMSER,IIPR,IIPN4,IIPN5, 3 IIPN6,IIPER,IIDUMP,IIQUAD,LDERIV,MMODCG, 4 RAMCON,RAMVAR,XX,FCNS,INBIND,RMULTS,NONBAS,REDGR, 5 NBIND,NNONB,INFORM,Z) * DUMMY ARGUMENT TTITLE WAS CHANGED TO TITLE ON 18 FEB 1989 BY J.L.ILLES C GRG25320 C THIS IS THE SUBROUTINE INTERFACE FOR GRG2. DESPITE THE LONG ARGUMEGRG25330 C LIST, IT IS ACTUALLY EASY TO USE. MANY OF THE INPUT ARGUMENTS HAVEGRG25340 C DEFAULTS AND NEED NOT BE SPECIFIED. GRG25350 C GRG25360 C THE ARGUMENTS ARE DIVIDED INTO 5 SECTIONS: GRG25370 C GRG25380 C 1. ARGUMENTS {INPRNT} THROUGH {DEFAUL} - GRG25390 C VALUES FOR THESE MUST BE PROVIDED GRG25400 C GRG25410 C 2. ARGUMENTS {FPNEWT} THROUGH {RAMVAR}- GRG25420 C THESE ARE ALSO INPUT ARGUMENTS. VALUES FOR THESE ARE GRG25430 C OPTIONAL. THE ARRAY {DEFAUL} TELLS GRGSUB WHICH ONES GRG25440 C YOU WANT TO USE THE GRG2 DEFAULT VALUES FOR, AS IS EXPLAINED GRG25450 C BELOW GRG25460 C GRG25470 C 3. ARGUMENT XX - THIS IS BOTH AN INPUT AND OUTPUT ARGUMENT. GRG25480 C VALUES MUST BE PROVIDED PRIOR TO CALLING GRGSUB. ANY SUCH GRG25490 C VALUES WHICH DO NOT SATISFY THE BOUNDS ON THE VARIABLE WILL GRG25500 C BE CHANGED TO THE BOUND NEAREST THE VALUE. ON TERMINATION GRG25510 C XX GIVES GRGSUB-S ESTIMATE OF THE OPTIMUM GRG25520 C GRG25530 C 4. ARGUMENTS {FCNS} THROUGH {INFORM} - THESE ARE OUTPUT ARGUMENTS GRG25540 C SEE BELOW FOR DESCRIPTIONS. GRG25550 C GRG25560 C 5. Z - THIS IS AN INPUT ARGUMENT, THE WORK ARRAY USED BY GRG2. GRG25570 C IT MUST BE DIMENSIONED IN THE USER-S CALLING PROGRAM, AND {NCORGRG25580 C MUST BE SET TO IT-S DIMENSION THERE. IF THE DIMENSION IS NOT GRG25590 C LARGE ENOUGH, AN ERROR MESSAGE WILL BE PRINTED, TELLING YOU GRG25600 C HOW MUCH CORE IS NEEDED. GRG25610 C GRG25620 C ++++++++++++++++++++++++++++++++++ GRG25630 C + INPUT VARIABLES AND PARAMETERS + GRG25640 C ++++++++++++++++++++++++++++++++++ GRG25650 C GRG25660 C GRG25670 C -DEFAUL(1<=I<=19) GRG25680 C .NE. 1.0 - USE PARAMETER VALUES ASSIGNED BY USER GRG25690 C .EQ. 1.0 - USE DEFAULT PARAMETERS VALUES GRG25700 C GRG25710 C GRG25720 C INPUT PROGRAM PARAMETERS TO BE PROVIDED IF DEFAUL(I) .NE. 1.0 GRG25730 C ------------------------------------------------------------- GRG25740 C GRG25750 C (I)-(INPUT VARIABLE)--(INTERNAL GRG2 VARIABLE)--(DEFAULT VALUE)--(GRG25760 C GRG25770 C 1 FPNEWT--EPNEWT---1.0E-04--- A CONSTRAINT IS ASSUMED TO BE GRG25780 C BINDING IF IT IS WITHIN THIS EPSILON GRG25790 C OF ONE OF ITS BOUNDS. GRG25800 C 2 FPINIT--EPINIT---1.0E-04--- IF IT IS DESIRED TO RUN THE GRG25810 C PROBLEM WITH {EPNEWT} INITIALLY SET FAIRLY GRG25820 C LARGE AND THEN TIGHTENED AT THE END OF THE GRG25830 C OPTIMIZATION THEN THIS IS ACCOMPLISHED BY GRG25840 C ASSIGNING {EPINIT} THE INITIAL TOLERANCE GRG25850 C AND {EPNEWT} THE FINAL ONE. GRG25860 C 3 FPSTOP--EPSTOP---1.0E-04--- IF THE FRACTIONAL CHANGE IN THE GRG25870 C OBJECTIVE IS LESS THAN {EPSTOP} FOR {NSTOP} GRG25880 C CONSECUTIVE ITERATIONS, THE PROGRAM WILL GRG25890 C STOP. THE PROGRAM WILL ALSO STOP IF KUHN-TUCKER GRG25900 C OPTIMALITY CONDITIONS ARE SATISFIED TO WITHIN GRG25910 C {EPSTOP}. GRG25920 C 4 FPSPIV--EPSPIV---10.0E-3--- IF, IN CONSTRUCTING THE BASIS GRG25930 C INVERSE, THE ABSOLUTE VALUE OF A PROSPECTIVE GRG25940 C PIVOT ELEMENT IS LESS THAN {EPSPIV}, THE GRG25950 C PIVOT WILL BE REJECTED AND ANOTHER PIVOT GRG25960 C ELEMENT WILL BE SOUGHT. GRG25970 C 5 PPH1EP--PH1EPS--- 0.0 --- IF NONZERO, THE PHASE 1 OBJECTIVE GRG25980 C IS AUGMENTED BY A MULTIPLE OF THE TRUE GRG25990 C OBJECTIVE. THE MULTIPLE IS SELECTED SO THAT, GRG26000 C AT THE INITIAL POINT, THE RATIO OF THE TRUE GRG26010 C OBJECTIVE AND SUM OF THE INFEASIBILITIES IS GRG26020 C {PH1EPS}. GRG26030 C 6 NNSTOP--NSTOP --- 3 --- IF THE FRACTIONAL CHANGE IN THE GRG26040 C OBJECTIVE IS LESS THAN {EPSTOP} FOR {NSTOP} GRG26050 C CONSECUTIVE ITERATIONS, THE PROGRAM WILL GRG26060 C STOP. GRG26070 C 7 IITLIM--ITLIM --- 10 --- IF SUBROUTINE NEWTON TAKES GRG26080 C {ITLIM} ITERATIONS WITHOUT CONVERGING GRG26090 C SATISFACTORILY, THE ITERATIONS ARE STOPPED GRG26100 C AND CORRECTIVE ACTION IS TAKEN. GRG26110 C 8 LLMSER--LIMSER---10,000 --- IF THE NUMBER OF COMPLETED ONE GRG26120 C DIMENSIONAL SEARCHES EQUALS {LIMSER}, GRG26130 C OPTIMIZATION WILL TERMINATE. GRG26140 C 9 IIPR --IPR --- 0 - SUPPRESS ALL OUTPUT PRINTING EXCEPT GRG26150 C INITIAL AND FINAL REPORTS. GRG26160 C --- 1 - PRINT ONE LINE OF OUTPUT FOR EACH ONE GRG26170 C DIMENSIONAL SEARCH. GRG26180 C --- 2 - PROVIDE MORE DETAILED INFORMATION ON GRG26190 C THE PROGRESS OF EACH ONE DIMENSIONAL GRG26200 C SEARCH. GRG26210 C --- 3 - EXPAND THE OUTPUT TO INCLUDE THE PROBLEM GRG26220 C FUNCTION VALUES AND VARIABLE VALUES AT GRG26230 C EACH ITERATION AS WELL AS THE SEPARATION GRG26240 C OF CONSTRAINTS INTO NONBINDING AND GRG26250 C BINDING AND VARIABLES INTO BASIC, GRG26260 C SUPERBASIC AND NONBASIC. GRG26270 C --- 4 - AT EACH ITERATION THE REDUCED GRADIENT, GRG26280 C THE SEARCH DIRECTION AND THE TANGENT GRG26290 C VECTOR ARE PRINTED. GRG26300 C --- 5 - PROVIDES DETAILS OF THE BASIS INVERSION GRG26310 C PROCESS INCLUDING THE INITIAL BASIS AND GRG26320 C ITS INVERSE. ALSO DISPLAYS THE VARIABLE GRG26330 C VALUES AND CONSTRAINT ERRORS FOR EACH GRG26340 C NEWTON ITERATION. GRG26350 C --- 6 - THIS IS THE MAXIMUM LEVEL OF PRINT GRG26360 C AVAILABLE AND INCLUDES ALL OF THE ABOVE GRG26370 C ALONG WITH DETAILED PROGRESS OF THE GRG26380 C BASIS CONSTRUCTION PHASE, INCLUDING GRG26390 C THE BASIS INVERSE AT EACH PIVOT. GRG26400 C 10 IIPN# --IPN# --- 0 --- IF IIPN# IS GREATER THAN ZERO THENGRG26410 C 11 WILL BE SET TO # AFTER IIPN# ITERATGRG26420 C 12 GRG26430 C 13 IIPER --IPER --- 0 --- IF IIPER IS GREATER THAN ZERO THENGRG26440 C FOR EVERY IIPER-TH ITERATION, PRINT GRG26450 C USING THE CURRENT VALUE OF {IPR} GRG26460 C OTHERWISE USE IPR=1 . GRG26470 C 14 IIDUMP--IDUMP --- 0 --- IF IIDUMP IS GREATER THAN ZERO THEGRG26480 C AFTER IIDUMP ITERATIONS, PROVIDE AN GRG26490 C OUTPUT DUMP ON OUTPUT UNIT 7 AND GRG26500 C TERMINATE COMPUTATION. GRG26510 C GRG26520 C 15 IIQUAD--IQUAD---- 0 - METHOD FOR INITIAL ESTIMATES OF BASIC GRG26530 C VARIABLES FOR EACH ONE DIMENSIONAL GRG26540 C SEARCH GRG26550 C --- 0 - TANGENT VECTOR AND LINEAR EXTRAPOLATION GRG26560 C WILL BE USED. GRG26570 C --- 1 - QUADRATIC EXTRAPOLATION WILL BE USED. GRG26580 C GRG26590 C 16 LDERIV--KDERIV--- 0 - METHOD FOR OBTAINING PARTIAL DERIVATIVE GRG26600 C --- 0 - FORWARD DIFFERENCE APPROXIMATION GRG26610 C --- 1 - CENTRAL DIFFERENCE APPROXIMATION GRG26620 C --- 2 - USER SUPPLIED SUBROUTINE {PARSH} IS USED GRG26630 C GRG26640 C 17 MMODCG--MODCG --- 0 - {MODCG} AND {MAXHES} (SEE BELOW) CONTROLGRG26650 C USE OF A CONJUGATE GRADIENT ( CG ) GRG26660 C METHOD. IF THE NUMBER OF SUPERBASIC GRG26670 C VARIABLES EXCEEDS {MAXHES}, THE CG GRG26680 C METHOD INDICATED BY {MODCG} IS USED. GRG26690 C DEFAULT VALUE OF MODCG=1 . TO USE A GRG26700 C CG METHOD AT EACH ITERATION, SET GRG26710 C MAXHES=0 . GRG26720 C --- 1 - USES FLETCHER-REEVES FORMULA. GRG26730 C --- 2 - USES POLAK-RIBIERE FORMULA. GRG26740 C --- 3 - USES PERRY'S FORMULA. GRG26750 C --- 4 - USES 1 STEP VERSION OF DFP. GRG26760 C --- 5 - USES 1 STEP VERSION OF BFS. GRG26770 C GRG26780 C 18 RAMCON AND RAMVAR--NAMCON AND NAMVAR--BLANKS GRG26790 C REAL ARRAYS OF DIMENSION NFUN AND NNVARS RESPECTIVELGRG26800 C FOR ENTERING NAMES OF FUNCTIONS AND VARIABLES. OBJEGRG26810 C AND CONSTRAINT FUNCTION NAMES GO IN {RAMCON}, VARIABGRG26820 C NAMES GO IN {RAMVAR}. GRG26830 C GRG26840 C 19 {NO GRGSUB VARIABLE}--MAXIM--FALSE GRG26850 C IF DEFAUL(19)=1.0, OBJECTIVE WILL BE MINIMIZED GRG26860 C IF NOT EQUAL 1.0, OBJECTIVE WILL BE MAXIMIZED GRG26870 C GRG26880 C GRG26890 C OTHER INPUT VARIABLES --- THESE HAVE NO DEFAULT VALUES, SO GRG26900 C +++++++++++++++++++++ VALUES MUST BE PROVIDED BY THE USER GRG26910 C GRG26920 C LOGICALS GRG26930 C ======== GRG26940 C GRG26950 C -INPRNT FALSE: DO NOT PRINT ANY ECHO BACK OF INPUT DATA GRG26960 C TRUE: PRINT INPUT DATA GRG26970 C GRG26980 C -OTPRNT FALSE: DO NOT PRINT ANY FINAL RESULTS GRG26990 C TRUE: PRINT FINAL RESULTS GRG27000 C GRG27010 C GRG27020 C SCALARS GRG27030 C ======= GRG27040 C GRG27050 C (INPUT VARIABLE)--(GRG2 INTERNAL VARIABLE)--(MEANING) GRG27060 C GRG27070 C NCORE --NCORE -- DIMENSION OF THE {Z} ARRAY GRG27080 C NNVARS--NVARS -- NUMBER OF VARIABLES GRG27090 C NFUN --NROWS -- NUMBER OF FUNCTIONS INCLUDING OBJECTIVE GRG27100 C MAXBAS--MAXB -- UPPER LIMIT ON NUMBER OF BINDING GRG27110 C CONSTRAINTS - USE {NFUN} IF UNSURE OF SMALLER LIMGRG27120 C MAXHES--MAXR -- MAXIMUM ALLOWABLE SIZE OF APPROXIMATE GRG27130 C HESSIAN - USE {NVARS} IF YOU WANT A QUASI-NEWTON GRG27140 C TO BE USED AT EVERY ITERATION (FASTEST METHOD IF GRG27150 C NOT TOO MANY VARIABLES) GRG27160 C NNOBJ --NOBJ -- INDEX OF COMPONENT OF VECTOR {G} IN GRG27170 C SUBROUTINE GCOMP CORRESPONDING TO GRG27180 C OBJECTIVE FUNCTION GRG27190 C GRG27200 C ARRAYS GRG27210 C ====== GRG27220 C GRG27230 C BLVAR --ALB -- REAL ARRAY CONTAINING LOWER BOUNDS OF VARIABLES. GRG27240 C MUST HAVE DIMENSION EQUAL TO {NNVARS}. IF GRG27250 C A VARIABLE XX(I) HAS NO LOWER BOUND, SET BLVAR(I)GRG27260 C TO -1.0E31 GRG27270 C GRG27280 C BUVAR --UB -- REAL ARRAY CONTAINING UPPER BOUNDS OF VARIABLES. GRG27290 C MUST HAVE DIMENSION EQUAL TO VALUE OF {NNVARS}. GRG27300 C IF XX(I) HAS NO UPPER BOUND, SET BUVAR(I) TO GRG27310 C 1.0E31 GRG27320 C GRG27330 C BLCON --ALB -- REAL ARRAY CONTAINING LOWER BOUNDS OF ALL FUNCTIOGRG27340 C DEFINED IN {GCOMP}. MUST HAVE DIMENSION EQUAL TO GRG27350 C VALUE OF {NFUN}. IF A FUNCTION G(I) HAS NO LOWER GRG27360 C BOUND, SET BLCON(I) TO -1.0E31 GRG27370 C GRG27380 C BUCON --UB -- REAL ARRAY CONTAINING UPPER BOUNDS OF ALL FUNCTIOGRG27390 C DEFINED IN {GCOMP}. MUST HAVE DIMENSION EQUAL TO GRG27400 C VALUE OF {NFUN}. IF A FUNCTION G(I) HAS NO UPPER GRG27410 C BOUND, SET BUCON(I) TO 1.0E31 GRG27420 C GRG27430 C GRG27440 C NOTE 1: IT DOES NOT MATTER WHAT YOU USE FOR THE BOUNDS OF GRG27450 C THE OBJECTIVE FUNCTION IN {BUCON} AND {BLCON}, BUT GRG27460 C SOMETHING MUST BE THERE GRG27470 C GRG27480 C NOTE 2: IF YOU WISH TO FIX A VARIABLE AT A CERTAIN VALUE AND GRG27490 C HAVE GRGSUB LEAVE IT UNCHANGED, SET ITS ENTRIES IN BLVAR GRG27500 C AND BUVAR TO THAT VALUE GRG27510 C GRG27520 C NOTE 3: IF G(I) IS AN EQUALITY CONSTRAINT, EQUAL TO, SAY, B, SET GRG27530 C BLCON(I)=BUCON(I)=B GRG27540 C GRG27550 C NOTE 4: IF A CONSTRAINT G(I) IS TO BE IGNORED IN THE CURRENT CALL GRG27560 C TO GRGSUB, SET BLCON(I) TO -1.0E31 AND BUCON(I) TO 1.0E31 GRG27570 C GRG27580 C XX --X -- ARRAY CONTAINING INITIAL VALUES OF GRG27590 C VARIABLES. MUST HAVE DIMENSION EQUAL TO VALUE GRG27600 C OF {NNVARS}. GRG27610 C GRG27620 C GRG27630 C +++++++++++++++++++++++++++++++++++ GRG27640 C + OUTPUT VARIABLES AND PARAMETERS + GRG27650 C +++++++++++++++++++++++++++++++++++ GRG27660 C GRG27670 C XX -- REAL ARRAY OF DIMENSION EQUAL TO VALUE OF {NNVARS}. GRG27680 C XX(I) CONTAINS FINAL VALUE OF X(I), WHERE X IS ARRAY GRG27690 C OF VARIABLES IN GCOMP. GRG27700 C GRG27710 C FCNS -- REAL ARRAY OF DIMENSION EQUAL TO VALUE OF {NFUN}. GRG27720 C FCNS(I) CONTAINS FINAL VALUE OF G(I) WHERE G IS ARRAY GRG27730 C OF FUNCTIONS IN GCOMP. GRG27740 C GRG27750 C INBIND -- INTEGER ARRAY OF DIMENSION EQUAL TO VALUE OF NFUN. THE FGRG27760 C NBIND POSITIONS OF INBIND CONTAIN THE INDICES OF THOSE GRG27770 C CONSTRAINTS (COMPONENTS OF THE G VECTOR) WHICH EQUAL EITGRG27780 C THEIR LOWER OR UPPER BOUNDS AT TERMINATION. GRG27790 C GRG27800 C RMULTS -- REAL ARRAY OF DIMENSION NFUN. THE FIRST NBIND POSITIONS GRG27810 C RMULTS CONTAIN THE LAGRANGE MULTIPLIERS OF THE BINDING GRG27820 C CONSTRAINTS, IN THE SAME ORDER AS THE INDICES IN INBIND.GRG27830 C GRG27840 C NONBAS -- INTEGER ARRAY OF DIMENSION EQUAL TO VALUE OF {NNVARS}. GRG27850 C ITS FIRST {NNONB} POSITIONS CONTAIN THE INDICES OF THOSEGRG27860 C COMPONENTS OF XX WHICH ARE NOT BASIC (I.E. EITHER GRG27870 C SUPERBASIC OR NONBASIC) AT TERMINATION. THE REMAINING GRG27880 C POSITIONS CONTAIN NO USEFUL INFORMATION. GRG27890 C GRG27900 C REDGR -- REAL ARRAY OF SAME DIMENSION AS NONBAS. ITS FIRST {NNONBGRG27910 C POSITIONS CONTAIN REDUCED GRADIENTS OF THE VARIABLES WHOGRG27920 C INDICES ARE IN NONBAS, ORDERED IN THE SAME WAY AS NONBASGRG27930 C GRG27940 C NBIND -- INTEGER SCALAR. NUMBER OF BINDING CONSTRAINTS. SEE DESCRGRG27950 C OF INBIND AND RMULTS ABOVE. GRG27960 C GRG27970 C NNONB -- INTEGER SCALAR. SEE NONBAS AND REDGR EXPLNANATION ABOVE GRG27980 C GRG27990 C GRG28000 C TERMINATION MESSAGES GRG28010 C ++++++++++++++++++++ GRG28020 C GRG28030 C GRG28040 C INFORM - 0 - KUHN-TUCKER CONDITIONS SATISFIED GRG28050 C - 1 - FRACTIONAL CHANGE IN OBJECTIVE LESS THAN GRG28060 C {EPSTOP} FOR {NSTOP} CONSECUTIVE ITERATION GRG28070 C - 2 - ALL REMEDIES HAVE FAILED TO FIND A BETTER GRG28080 C POINT GRG28090 C - 3 - NUMBER OF COMPLETED ONE DIMENSIONAL SEARCHES GRG28100 C EQUAL TO {LIMSER} GRG28110 C - 4 - SOLUTION UNBOUNDED GRG28120 C - 5 - FEASIBLE POINT NOT FOUND GRG28130 C GRG28140 IMPLICIT REAL*8(A-H,O-Z),INTEGER*4 (I-N) GRG28150 INTEGER*4 NCORE,NNVARS,NFUN,MAXBAS,MAXHES GRG28160 INTEGER*4 M,N,MP1,NPMP1,NBMAX,NNBMAX,NPNBMX,MPNBMX,NRTOT GRG28170 LOGICAL MAXIM,INPRNT,OTPRNT GRG28180 DIMENSION BLVAR(NNVARS),BUVAR(NNVARS),BLCON(NFUN),BUCON(NFUN) GRG28190 DIMENSION XX(NNVARS),FCNS(NFUN),RMULTS(MAXBAS) GRG28200 DIMENSION RAMCON(NFUN),RAMVAR(NNVARS),INBIND(MAXBAS),Z(NCORE) GRG28210 DIMENSION NONBAS(NNVARS),REDGR(NNVARS) GRG28220 * COMMON /INOUT/ TITLE(19) GRG28230 * CHENGED ON 18TH FEB 1989 J.L.ILLES COMMON/DIMEN/M,N,MP1,NPMP1,NBMAX,NNBMAX,NPNBMX,MPNBMX,NRTOT GRG28240 COMMON/GOBK/NVARS,NROWS,MAXR,MAXB GRG28250 COMMON/DYNAM1/KX,KG,KALB,KUB,KICAND,KISTAT,KIFIX GRG28260 COMMON/DYNAM2/KU,KGRADF,KINBC,KIBC,KIBV,KINBV,KIUB GRG28270 COMMON/DYNAM3/KR,KV,KD,KGBEST,KXBEST,KXB1,KXB2,KXB3 GRG28280 COMMON/DYNAM4/KDBND,KCNORM,KXSTAT,KGG,KRR,KY,KGRADP GRG28290 COMMON/DYNAM5/KROWB,KCOLB,KBINV,KGRAD,KICOLS,KINORM GRG28300 COMMON /DYNAM6/ KX0,KG0,KCON,KVAR,KINBVP GRG28310 COMMON /INITBK/ INIT,LASTCL GRG28320 COMMON/NINTBK/NB,NNBC,NOBJ,NINF,NSUPER,IPR3,NCAND,IPR GRG28330 COMMON/REV/IREST,IPER,IDUMP GRG28340 COMMON/MAXBK/MAXIM GRG28350 COMMON/INFBK/INFO GRG28360 DIMENSION DEFAUL(19) GRG28370 * CHANGE MADE ON 18 FEB 1989 BY J.L.ILLES * DIMENSION TTITLE(19) GRG28380 CHARACTER*(*) TITLE CALL INITLZ GRG28390 C GRG28400 C VALIDITY CHECK FOR VARIABLES GRG28410 C GRG28420 IF (NNVARS.GE.1) GO TO 20 GRG28430 WRITE (6,10) NNVARS GRG28440 10 FORMAT ( 28H0FATAL ERROR - NNVARS LT 1 (,I5, 1H)) GRG28450 GO TO 570 GRG28460 20 IF (NFUN.GE.1) GO TO 40 GRG28470 WRITE (6,30) NFUN GRG28480 30 FORMAT ( 26H0FATAL ERROR - NFUN LT 1 (,I5, 1H)) GRG28490 GO TO 570 GRG28500 40 IF (MAXBAS.GE.1) GO TO 60 GRG28510 WRITE (6,50) MAXBAS GRG28520 50 FORMAT ( 28H0FATAL ERROR - MAXBAS LT 1 (,I5, 1H)) GRG28530 GO TO 570 GRG28540 60 IF (MAXHES.GE.0) GO TO 80 GRG28550 WRITE (6,70) MAXHES GRG28560 70 FORMAT ( 28H0FATAL ERROR - MAXHES LT 0 (,I5, 1H)) GRG28570 GO TO 570 GRG28580 80 IF (1.LE.NNOBJ.AND.NNOBJ.LE.NFUN) GO TO 100 GRG28590 WRITE (6,90) NNOBJ GRG28600 90 FORMAT ( 38H0FATAL ERROR - NNOBJ LT 1 OR GT NFUN (,I5, 1H)) GRG28610 GO TO 570 GRG28620 100 DO 120 I=1,NNVARS GRG28630 IF (BUVAR(I).GE.BLVAR(I)) GO TO 120 GRG28640 WRITE (6,110) I,BUVAR(I),BLVAR(I) GRG28650 110 FORMAT ( 35H0FATAL ERROR - BUVAR(I) LT BLVAR(I),/, 5H I = ,I5, 12GRG28660 1H BUVAR(I) = ,E15.8, 12H BLVAR(I) = ,E15.8) GRG28670 GO TO 570 GRG28680 120 CONTINUE GRG28690 DO 140 I=1,NFUN GRG28700 IF (BUCON(I).GE.BLCON(I).OR.I.EQ.NOBJ) GO TO 140 GRG28710 WRITE (6,130) I,BUCON(I),BLCON(I) GRG28720 130 FORMAT ( 35H0FATAL ERROR - BUCON(I) LT BLCON(I),/, 5H I = ,I5, 12GRG28730 1H BUCON(I) = ,E15.8, 12H BLVAR(I) = ,E15.8) GRG28740 GO TO 570 GRG28750 140 CONTINUE GRG28760 IF (DEFAUL(1).EQ.1.0) GO TO 160 GRG28770 IF (FPNEWT.GT.0.0) GO TO 160 GRG28780 WRITE (6,150) FPNEWT GRG28790 150 FORMAT ( 28H0FATAL ERROR - FPNEWT LE 0 (,E15.8, 1H)) GRG28800 GO TO 570 GRG28810 160 IF (DEFAUL(2).EQ.1.0) GO TO 180 GRG28820 IF (FPINIT.GE.0.0) GO TO 180 GRG28830 WRITE (6,170) FPINIT GRG28840 170 FORMAT ( 28H0FATAL ERROR - FPINIT LT 0 (,E15.8, 1H)) GRG28850 GO TO 570 GRG28860 180 IF (DEFAUL(3).EQ.1.0) GO TO 200 GRG28870 IF (FPSTOP.GT.0.0) GO TO 200 GRG28880 WRITE (6,190) FPSTOP GRG28890 190 FORMAT ( 28H0FATAL ERROR - FPSTOP LE 0 (,E15.8, 1H)) GRG28900 GO TO 570 GRG28910 200 IF (DEFAUL(4).EQ.1.0) GO TO 220 GRG28920 IF (FPSPIV.GT.0.0) GO TO 220 GRG28930 WRITE (6,210) FPSPIV GRG28940 210 FORMAT ( 28H0FATAL ERROR - FPSPIV LE 0 (,E15.8, 1H)) GRG28950 GO TO 570 GRG28960 220 IF (DEFAUL(5).EQ.1.0) GO TO 240 GRG28970 IF (PPH1EP.GE.0.0) GO TO 240 GRG28980 WRITE (6,230) PPH1EP GRG28990 230 FORMAT ( 28H0FATAL ERROR - PPH1EP LT 0 (,E15.8, 1H)) GRG29000 GO TO 570 GRG29010 240 IF (DEFAUL(6).EQ.1.0) GO TO 260 GRG29020 IF (NNSTOP.GE.1) GO TO 260 GRG29030 WRITE (6,250) NNSTOP GRG29040 250 FORMAT ( 28H0FATAL ERROR - NNSTOP LT 1 (,I5, 1H)) GRG29050 GO TO 570 GRG29060 260 IF (DEFAUL(7).EQ.1.0) GO TO 280 GRG29070 IF (IITLIM.GE.1) GO TO 280 GRG29080 WRITE (6,270) IITLIM GRG29090 270 FORMAT ( 28H0FATAL ERROR - IITLIM LT 1 (,I5, 1H)) GRG29100 GO TO 570 GRG29110 280 IF (DEFAUL(8).EQ.1.0) GO TO 300 GRG29120 IF (LLMSER.GE.1) GO TO 300 GRG29130 WRITE (6,290) LLMSER GRG29140 290 FORMAT ( 28H0FATAL ERROR - LLMSER LT 1 (,I5, 1H)) GRG29150 GO TO 570 GRG29160 300 IF (DEFAUL(9).EQ.1.0) GO TO 320 GRG29170 IF (0.LE.IIPR.AND.IIPR.LE.6) GO TO 320 GRG29180 WRITE (6,310) IIPR GRG29190 310 FORMAT ( 34H0FATAL ERROR - IIPR LT 0 OR GT 6 (,I5, 1H)) GRG29200 GO TO 570 GRG29210 320 IF (DEFAUL(10).EQ.1.0) GO TO 340 GRG29220 340 IF (DEFAUL(11).EQ.1.0) GO TO 360 GRG29230 IF (IIPN5.GE.0) GO TO 360 GRG29240 WRITE (6,350) IIPN5 GRG29250 350 FORMAT ( 27H0FATAL ERROR - IIPN5 LT 0 (,I5, 1H)) GRG29260 GO TO 570 GRG29270 360 IF (DEFAUL(12).EQ.1.0) GO TO 380 GRG29280 IF (IIPN6.GE.0) GO TO 380 GRG29290 WRITE (6,370) IIPN6 GRG29300 370 FORMAT ( 27H0FATAL ERROR - IIPN6 LT 0 (,I5, 1H)) GRG29310 GO TO 570 GRG29320 380 IF (DEFAUL(13).EQ.1.0) GO TO 400 GRG29330 IF (IIPER.GE.0) GO TO 400 GRG29340 WRITE (6,390) IIPER GRG29350 390 FORMAT ( 27H0FATAL ERROR - IIPER LT 0 (,I5, 1H)) GRG29360 GO TO 570 GRG29370 400 IF (DEFAUL(14).EQ.1.0) GO TO 420 GRG29380 IF (IIDUMP.GE.0) GO TO 420 GRG29390 WRITE (6,410) IIDUMP GRG29400 410 FORMAT ( 28H0FATAL ERROR - IIDUMP LT 0 (,I5, 1H)) GRG29410 GO TO 570 GRG29420 420 IF (DEFAUL(15).EQ.1.0) GO TO 440 GRG29430 IF (IIQUAD.EQ.0.OR.IIQUAD.EQ.1) GO TO 440 GRG29440 WRITE (6,430) IIQUAD GRG29450 430 FORMAT ( 33H0FATAL ERROR - IIQUAD NE 0 OR 1 (,I5, 1H)) GRG29460 GO TO 570 GRG29470 440 IF (DEFAUL(16).EQ.1.0) GO TO 460 GRG29480 IF (LDERIV.EQ.0.OR.LDERIV.EQ.1.OR.LDERIV.EQ.2) GO TO 460 GRG29490 WRITE (6,450) LDERIV GRG29500 450 FORMAT ( 38H0FATAL ERROR - LDERIV NE 0 OR 1 OR 2 (,I5, 1H)) GRG29510 GO TO 570 GRG29520 460 IF (DEFAUL(17).EQ.1.0) GO TO 480 GRG29530 IF (MMODCG.GE.1.AND.MMODCG.LE.5) GO TO 480 GRG29540 WRITE (6,470) MMODCG GRG29550 470 FORMAT ( 36H0FATAL ERROR - MMODCG GT 5 OR LT 1 (,I5, 1H)) GRG29560 GO TO 570 GRG29570 480 CONTINUE GRG29580 * COMMENTED OUT ON 18TH FEB 1989 BY J.L.ILLES * DO 490 I=1,19 GRG29590 * 490 TITLE(I)=TTITLE(I) GRG29600 NVARS=NNVARS GRG29610 NROWS=NFUN GRG29620 MAXR=MAXHES GRG29630 MAXB=MAXBAS GRG29640 * BUG CORRECTION J.L. ILLES 15 FEB 1989 IF(DEFAUL(13).EQ.1.0)THEN 15021989 IPER=0 15021989 ELSE 15021989 IPER=IIPER GRG29650 ENDIF 15021989 IF(DEFAUL(14).EQ.1.0)THEN 15021989 IDUMP=0 15021989 ELSE 15021989 IDUMP=IIDUMP GRG29660 ENDIF 15021989 * END OF BUG CORRECTION 15 FEB 1989 MAXIM=.TRUE. GRG29670 IF (DEFAUL(19).EQ.1.0) MAXIM=.FALSE. GRG29680 CALL SETUP (NCORE) GRG29690 INIT=1 GRG29700 NOBJ=NNOBJ GRG29710 CALL SETDAT (NNVARS,NFUN,BLVAR,BUVAR,BLCON,BUCON,XX,DEFAUL,FPNEWT,GRG29720 1FPINIT,FPSTOP,FPSPIV,PPH1EP,NNSTOP,IITLIM,LLMSER,IIPR,IIPN4,IIPN5,GRG29730 2IIPN6,IIPER,IIDUMP,IIQUAD,LDERIV,MMODCG,RAMCON,RAMVAR,Z(KX),Z(KALBGRG29740 3),Z(KUB),Z(KISTAT),Z(KIFIX),Z(KCON),Z(KVAR),Z(KX0),Z,NCORE,INPRNT,GRG29750 4MAXHES) GRG29760 IF (INPRNT) GO TO 500 GRG29770 ITIPR3=IPR3 GRG29780 IPR3=-2 GRG29790 500 CONTINUE GRG29800 CALL TABLIN (Z(KX),Z(KALB),Z(KUB),Z(KISTAT),Z(KIFIX),Z(KCON),Z(KVAGRG29810 1R),Z(KGBEST),Z(KG),Z(KX0),Z(KG0) ) GRG29820 IF (.NOT.INPRNT) IPR3=ITIPR3 GRG29830 CALL REPORT (Z(KG),Z(KX),MP1,N,Z(KCON),Z(KVAR),Z(KX0)) GRG29840 INIT=0 GRG29850 CALL GRGITN (Z(KBINV),Z(KGRAD),Z(KR),Z(KALB),Z(KUB),Z(KX),Z(KGRADFGRG29860 1),Z(KG),Z(KV),Z(KD),Z(KU),Z(KGBEST),Z(KXBEST),Z(KINBV),Z(KIUB),Z(KGRG29870 2INBC),Z(KROWB),Z(KCOLB),Z(KIBC),Z(KIBV),Z(KISTAT),Z(KXSTAT),Z(KIFIGRG29880 3X),Z(KXB1),Z(KXB2),Z(KXB3),Z(KGRADP),Z(KDBND),Z(KCNORM),Z(KGG),Z(KGRG29890 4RR),Z(KICOLS),Z(KINORM),Z(KY),Z(KINBVP),Z(KX0),Z,NCORE,Z(KICAND) )GRG29900 IF (.NOT.OTPRNT) GO TO 510 GRG29910 CALL OUTRES (Z(KG),Z(KX),Z(KINBV),Z(KIBV),Z(KALB),Z(KIUB),Z(KUB),ZGRG29920 1(KIBC),Z(KU),Z(KINBC),Z(KGRADF),Z(KISTAT),Z(KGG),Z(KCON),Z(KVAR),ZGRG29930 2(KIFIX),Z(KGRADP),Z(KX0),Z(KG0),Z(KGBEST),Z(KD), GRG29940 3 Z(KDBND),Z(KICOLS) ) GRG29950 CALL REPORT(Z(KG),Z(KX),MP1,N,Z(KCON),Z(KVAR),Z(KX0) ) GRG29960 510 CONTINUE GRG29970 C GRG29980 C SET OUTPUT ARGUMENTS TO FINAL VALUES FROM Z ARRAY GRG29990 C GRG30000 DO 520 I=1,NNVARS GRG30010 XX(I)=Z(I) GRG30020 520 CONTINUE GRG30030 J=0 GRG30040 IEND=KALB-1 GRG30050 DO 530 I=KG,IEND GRG30060 J=J+1 GRG30070 FCNS(J)=Z(I) GRG30080 530 CONTINUE GRG30090 DO 540 I=1,NB GRG30100 J=KU+I-1 GRG30110 RMULTS(I)=Z(J) GRG30120 IF (MAXIM) RMULTS(I)=-RMULTS(I) GRG30130 J=KIBC+I-1 GRG30140 INBIND(I)=IGTSUB(Z(KIBC),I) GRG30150 540 CONTINUE GRG30160 DO 550 I=1,N GRG30170 NONBAS(I)=0 GRG30180 REDGR(I)=0.0 GRG30190 550 CONTINUE GRG30200 J=0 GRG30210 DO 560 I=1,N GRG30220 NINDEX=IGTSUB(Z(KINBV),I) GRG30230 IF (NINDEX.GT.NVARS) GO TO 560 GRG30240 J=J+1 GRG30250 NONBAS(J)=NINDEX GRG30260 L=KGRADF+I-1 GRG30270 REDGR(J)=Z(L) GRG30280 IF (MAXIM) REDGR(J)=-REDGR(J) GRG30290 560 CONTINUE GRG30300 NNONB=J GRG30310 NBIND=NB GRG30320 INFORM=INFO GRG30330 RETURN GRG30340 570 CONTINUE GRG30350 STOP GRG30360 C GRG30370 C END OF GRGSUB GRG30380 C GRG30390 END GRG30400 INTEGER*4 FUNCTION IGTSUB(IA,INDX) IMPLICIT REAL*8(A-H,O-Z),INTEGER*4 (I-N) DIMENSION IA(1) GRG30420 IGTSUB = IA(INDX) GRG30430 RETURN GRG30440 C GRG30450 END GRG30460 SUBROUTINE SETDAT(NNVARS,NFUN,BLVAR,BUVAR,BLCON,BUCON,XX, GRG30470 1 DEFAUL,FPNEWT,FPINIT,FPSTOP,FPSPIV,PPH1EP,NNSTOP,IITLIM, GRG30480 2 LLMSER,IIPR,IIPN4,IIPN5,IIPN6,IIPER,IIDUMP,IIQUAD,LDERIV, GRG30490 3 MMODCG,RAMCON,RAMVAR,X,ALB,UB,ISTAT,IFIX,CON,VAR,X0,Z, GRG30500 4 NCORE,INPRNT,MAXHES) GRG30510 IMPLICIT REAL*8(A-H,O-Z),INTEGER*4 (I-N) LOGICAL MAXIM,INPRNT GRG30530 INTEGER*4 NCORE,NNVARS,NFUN,MAXBAS,MAXHES GRG30540 INTEGER*4 M,N,MP1,NPMP1,NBMAX,NNBMAX,NPNBMX,MPNBMX,NRTOT,LASTZ GRG30550 DIMENSION BLVAR(NNVARS),BUVAR(NNVARS),BLCON(NFUN),BUCON(NFUN) GRG30560 DIMENSION RAMCON(NFUN),RAMVAR(NNVARS),XX(NNVARS) GRG30570 DIMENSION Z(NCORE) GRG30580 DIMENSION DEFAUL(19) GRG30590 COMMON /DIMEN/ M,N,MP1,NPMP1,NBMAX,NNBMAX,NPNBMX,MPNBMX,NRTOT GRG30600 DIMENSION CON(1),VAR(1),X0(1) GRG30610 DIMENSION X(1),ALB(1),UB(1) GRG30620 DIMENSION ISTAT(1),IFIX(1) GRG30630 COMMON/NINTBK/NB,NNBC,NOBJ,NINF,NSUPER,IPR3,NCAND,IPR GRG30640 COMMON /TOLS/ EPS,PLINFY,PLZERO,TOLX,TOLZ GRG30650 COMMON /LIMITS/ EPBOUN,EPNEWT,EPSPIV,ITLIM GRG30660 COMMON/MNGRG/EPSTOP,LIMSER,NSTOP,IERR,IPN4,IPN5,IPN6 GRG30670 COMMON /QUADBK/ A1,A2,A3,ICON,IQUAD GRG30680 * COMMENTED OUT ON 18TH FEB 1989 BY J.L.ILLES * COMMON /INOUT/ TITLE(19) GRG30690 COMMON /PARDAT/ KDERIV GRG30700 COMMON /MISC/ MAXR,NSEAR,JP,LV,JQQ GRG30710 COMMON /GOBK/ NVARS,NROWS,MAXRR,MAXB GRG30720 COMMON /CGBK/ MODCG GRG30730 COMMON /SETIN/ LASTZ GRG30740 COMMON/REV/IREST,IPER,IDUMP GRG30750 COMMON/PH1BK/PHMULT,PH1EPS,INITPH GRG30760 COMMON/INGRG/EPINIT GRG30770 COMMON/MAXBK/MAXIM GRG30780 DATA BLANK/8H / GRG30790 IREST=0 GRG30800 MAXB=NBMAX GRG30810 IF (.NOT.INPRNT) GO TO 10 GRG30820 WRITE (6,200) NVARS,NROWS,MAXRR,MAXB GRG30830 WRITE (6,280) LASTZ GRG30840 10 CONTINUE GRG30850 C GRG30860 C INITIALIZE BOUNDS ET AL. TO DEFAULT VALUES GRG30870 C GRG30880 DO 20 I=1,N GRG30890 IFIX(I)=0 GRG30900 X(I)=0. GRG30910 ALB(I)=-PLINFY GRG30920 UB(I)=PLINFY GRG30930 20 CONTINUE GRG30940 C GRG30950 C DEFAULT CONSTRAINT STATUS IS INEQUALITY GREATER THAN 0 GRG30960 C GRG30970 DO 30 I=1,MP1 GRG30980 ISTAT(I)=2 GRG30990 ALB(N+I)=0. GRG31000 UB(N+I)=PLINFY GRG31010 30 CONTINUE GRG31020 C GRG31030 C CHECK DEFAULT PROGRAM PARAMETERS GRG31040 C GRG31050 EPBOUN=1.0E-4 GRG31060 MODCG=1 GRG31070 EPNEWT=1.0E-4 GRG31080 EPSTOP=1.0E-4 GRG31090 EPSPIV=0.001 GRG31100 EPINIT=0.0 GRG31110 PH1EPS=0. GRG31120 NSTOP=3 GRG31130 ITLIM=10 GRG31140 LIMSER=10000 GRG31150 IPR=0 GRG31160 IPN5=0 GRG31170 IPN4=0 GRG31180 IPN6=0 GRG31190 IDUMP=0 GRG31200 IPER=0 GRG31210 IQUAD=0 GRG31220 KDERIV=0 GRG31230 MAXR=MAXRR GRG31240 IF (DEFAUL(17).NE.1.0) MODCG=MMODCG GRG31250 IF (DEFAUL(1).NE.1.0) EPNEWT=FPNEWT GRG31260 IF (DEFAUL(3).NE.1.0) EPSTOP=FPSTOP GRG31270 IF (DEFAUL(4).NE.1.0) EPSPIV=FPSPIV GRG31280 IF (DEFAUL(2).NE.1.0) EPINIT=FPINIT GRG31290 IF (DEFAUL(5).NE.1.0) PH1EPS=PPH1EP GRG31300 IF (DEFAUL(6).NE.1.0) NSTOP=NNSTOP GRG31310 IF (DEFAUL(7).NE.1.0) ITLIM=IITLIM GRG31320 IF (DEFAUL(8).NE.1.0) LIMSER=LLMSER GRG31330 IF (DEFAUL(9).NE.1.0) IPR=IIPR GRG31340 IF (DEFAUL(10).NE.1.0) IPN4=IIPN4 GRG31350 IF (DEFAUL(11).NE.1.0) IPN5=IIPN5 GRG31360 IF (DEFAUL(12).NE.1.0) IPN6=IIPN6 GRG31370 IF (DEFAUL(14).NE.1.0) IDUMP=IIDUMP GRG31380 IF (DEFAUL(13).NE.1.0) IPER=IIPER GRG31390 IF (DEFAUL(15).NE.1.0) IQUAD=IIQUAD GRG31400 IF (DEFAUL(16).NE.1.0) KDERIV=LDERIV GRG31410 IPR3=IPR-1 GRG31420 C GRG31430 C ASSIGN BOUNDS OF VARIABLES GRG31440 C GRG31450 DO 40 I=1,N GRG31460 ALB(I)=BLVAR(I) GRG31470 UB(I)=BUVAR(I) GRG31480 IFIX(I)=0 GRG31490 IF (ALB(I).EQ.UB(I)) IFIX(I)=1 GRG31500 40 CONTINUE GRG31510 C GRG31520 C ASSIGN BOUNDS OF CONSTRAINTS GRG31530 C GRG31540 DO 50 I=1,MP1 GRG31550 IF (I.EQ.NOBJ) GO TO 50 GRG31560 ALB(N+I)=BLCON(I) GRG31570 UB(N+I)=BUCON(I) GRG31580 ISTAT(I)=2 GRG31590 IF (ALB(N+I).EQ.-PLINFY.AND.UB(N+I).EQ.PLINFY) ISTAT(I)=0 GRG31600 IF (ALB(N+I).EQ.UB(N+I)) ISTAT(I)=1 GRG31610 50 CONTINUE GRG31620 C GRG31630 C SET MAXR=0, IF CONJUGATE GRADIENT METHOD IS USED GRG31640 C GRG31650 IF (MAXHES.EQ.0) MAXR=0 GRG31660 C GRG31670 C ASSIGN INITIAL VARIABLE VALUES GRG31680 C GRG31690 DO 60 I=1,N GRG31700 60 X(I)=XX(I) GRG31710 IF (INPRNT) WRITE (6,190) (X(I),I=1,N) GRG31720 C GRG31730 C CHECK NAMES OF VARIABLES AND FUNTIONS GRG31740 C GRG31750 * BUG J/L/ ILLES 15 FEB 1989 * IF (DEFAUL(18).EQ.1.0) GO TO 90 GRG31760 IF(DEFAUL(18).NE.1.0)GOTO 90 15021989 DO 70 I=1,N GRG31770 70 VAR(I)=BLANK GRG31780 DO 80 I=1,MP1 GRG31790 80 CON(I)=BLANK GRG31800 GO TO 120 GRG31810 90 CONTINUE GRG31820 DO 100 I=1,N GRG31830 100 VAR(I)=RAMVAR(I) GRG31840 DO 110 I=1,MP1 GRG31850 110 CON(I)=RAMCON(I) GRG31860 120 CONTINUE GRG31870 C GRG31880 C CHECK TO SEE THAT VARIABLES ARE WITHIN BOUNDS GRG31890 C GRG31900 DO 140 I=1,N GRG31910 X0(I)=X(I) GRG31920 IF ((X(I).GE.ALB(I)).AND.(X(I).LE.UB(I))) GO TO 140 GRG31930 IF (X(I).GT.UB(I)) GO TO 130 GRG31940 WRITE (6,230) I,X(I),ALB(I) GRG31950 X(I)=ALB(I) GRG31960 GO TO 140 GRG31970 130 WRITE (6,240) I,X(I),UB(I) GRG31980 X(I)=UB(I) GRG31990 140 CONTINUE GRG32000 ISTAT(NOBJ)=0 GRG32010 ALB(N+NOBJ)=-PLINFY GRG32020 UB(N+NOBJ)=PLINFY GRG32030 IF (EPINIT.EQ.0.0) EPINIT=EPNEWT GRG32040 IF (.NOT.INPRNT) GO TO 150 GRG32050 WRITE (6,170) EPNEWT,EPINIT,EPSTOP,EPSPIV,PH1EPS GRG32060 WRITE (6,210) NSTOP,ITLIM,LIMSER GRG32070 WRITE (6,220) IPR,IPN4,IPN5,IPN6,IPER,IDUMP GRG32080 IF (IQUAD.EQ.1) WRITE (6,160) GRG32090 IF (IQUAD.EQ.0) WRITE (6,180) GRG32100 IF (KDERIV.EQ.0) WRITE (6,270) GRG32110 IF (KDERIV.EQ.1) WRITE (6,260) GRG32120 IF (KDERIV.EQ.2) WRITE (6,250) GRG32130 IF (MAXIM) WRITE (6,290) GRG32140 IF (.NOT.MAXIM) WRITE (6,300) GRG32150 WRITE (6,310) MAXR GRG32160 150 CONTINUE GRG32170 160 FORMAT (80H0QUADRATIC EXTRAPOLATION FOR INITIAL ESTIMATES OF BA GRG32180 1 VARIABLES WILL BE USED. ) GRG32190 170 FORMAT (9H0EPNEWT =,E12.4,2X,8HEPINIT =,E12.4,2X,8HEPSTOP =,E12.4,GRG32200 12X,7HEPPIV =,E12.4,2X,8HPH1EPS =,E12.5) GRG32210 180 FORMAT (71H0TANGENT VECTORS WILL BE USED FOR INITIAL ESTIMATES GRG32220 1BASIC VARIABLES ) GRG32230 190 FORMAT (1X,8(E15.7)) GRG32240 200 FORMAT (24H0NUMBER OF VARIABLES IS ,I5/24H0NUMBER OF FUNCTIONS IS GRG32250 1,I5/42H0SPACE RESERVED FOR HESSIAN HAS DIMENSION ,I5/33H0LIMIT ON GRG32260 2BINDING CONSTRAINTS IS ,I5) GRG32270 210 FORMAT (8H0NSTOP =,I5,2X,7HITLIM =,I7,2X,8HLIMSER =,I10) GRG32280 220 FORMAT (6H0IPR =,I5,2X,5HPN4 =,I5,2X,5HPN5 =,I5,2X,5HPN6 =,I5,2X,5GRG32290 1HPER =,I5,2X,6HDUMP =,I5) GRG32300 230 FORMAT (17H FOR SUBSCRIPT = ,I5,27H INITIAL VARIABLE VALUE OF ,E15GRG32310 1.8,30H WAS CHANGED TO LOWER BOUND = ,E15.8) GRG32320 240 FORMAT (17H FOR SUBSCRIPT = ,I5,27H INITIAL VARIABLE VALUE OF ,E15GRG32330 1.8,30H WAS CHANGED TO UPPER BOUND = ,E15.8) GRG32340 250 FORMAT (47H0THE USER'S OWN PARSH SUBROUTINE WILL BE USED. ) GRG32350 260 FORMAT (68H0THE FINITE DIFFERENCE PARSH USING CENTRAL DIFFERENC GRG32360 1WILL BE USED ) GRG32370 270 FORMAT (68H0THE FINITE DIFFERENCE PARSH USING FORWARD DIFFERENC GRG32380 1WILL BE USED ) GRG32390 280 FORMAT (29H0ACTUAL LENGTH OF Z ARRAY IS ,I6) GRG32400 290 FORMAT (39H0OBJECTIVE FUNCTION WILL BE MAXIMIZED. ) GRG32410 300 FORMAT (39H0OBJECTIVE FUNCTION WILL BE MINIMIZED. ) GRG32420 310 FORMAT (21H0LIMIT ON HESSIAN IS ,I5) GRG32430 RETURN GRG32440 C GRG32450 C END OF SETDAT GRG32460 C GRG32470 END GRG32480