1 ************************************************************************
2 * SUBROUTINE PLIPU ALL SYSTEMS 97/01/22
4 * EASY TO USE SUBROUTINE FOR LARGE-SCALE UNCONSTRAINED MINIMIZATION.
7 * II NF NUMBER OF VARIABLES.
8 * RI X(NF) VECTOR OF VARIABLES.
9 * II IPAR(7) INTEGER PAREMETERS:
10 * IPAR(1) MAXIMUM NUMBER OF ITERATIONS.
11 * IPAR(2) MAXIMUM NUMBER OF FUNCTION EVALUATIONS.
12 * IPAR(3) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
13 * IPAR(4) ESTIMATION INDICATOR. IPAR(4)=0-MINIMUM IS NOT
14 * ESTIMATED. IPAR(4)=1-MINIMUM IS ESTIMATED BY THE VALUE
16 * IPAR(5) METHOD USED. IPAR(5)=1-RANK-ONE METHOD.
17 * IPAR(5)=2-RANK-TWO METHOD.
18 * IPAR(6) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
19 * IPAR(7) MAXIMUM NUMBER OF VARIABLE METRIC UPDATES.
20 * RI RPAR(9) REAL PARAMETERS:
21 * RPAR(1) MAXIMUM STEPSIZE.
22 * RPAR(2) TOLERANCE FOR THE CHANGE OF VARIABLES.
23 * RPAR(3) TOLERANCE FOR THE CHANGE OF FUNCTION VALUES.
24 * RPAR(4) TOLERANCE FOR THE FUNCTION FALUE.
25 * RPAR(5) TOLERANCE FOR THE GRADIENT NORM.
26 * RPAR(6) ESTIMATION OF THE MINIMUM FUNCTION VALUE.
27 * RPAR(7) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
28 * RPAR(8) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
29 * RPAR(9) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
30 * RO F VALUE OF THE OBJECTIVE FUNCTION.
31 * RO GMAX MAXIMUM PARTIAL DERIVATIVE.
32 * II IPRNT PRINT SPECIFICATION. IPRNT=0-NO PRINT.
33 * ABS(IPRNT)=1-PRINT OF FINAL RESULTS.
34 * ABS(IPRNT)=2-PRINT OF FINAL RESULTS AND ITERATIONS.
35 * IPRNT>0-BASIC FINAL RESULTS. IPRNT<0-EXTENDED FINAL
37 * IO ITERM VARIABLE THAT INDICATES THE CAUSE OF TERMINATION.
38 * ITERM=1-IF ABS(X-XO) WAS LESS THAN OR EQUAL TO TOLX IN
39 * MTESX (USUALLY TWO) SUBSEQUENT ITERATIONS.
40 * ITERM=2-IF ABS(F-FO) WAS LESS THAN OR EQUAL TO TOLF IN
41 * MTESF (USUALLY TWO) SUBSEQUENT ITERATIONS.
42 * ITERM=3-IF F IS LESS THAN OR EQUAL TO TOLB.
43 * ITERM=4-IF GMAX IS LESS THAN OR EQUAL TO TOLG.
44 * ITERM=6-IF THE TERMINATION CRITERION WAS NOT SATISFIED,
45 * BUT THE SOLUTION OBTAINED IS PROBABLY ACCEPTABLE.
46 * ITERM=11-IF NIT EXCEEDED MIT. ITERM=12-IF NFV EXCEEDED MFV.
47 * ITERM=13-IF NFG EXCEEDED MFG. ITERM<0-IF THE METHOD FAILED.
49 * VARIABLES IN COMMON /STAT/ (STATISTICS) :
50 * IO NRES NUMBER OF RESTARTS.
51 * IO NDEC NUMBER OF MATRIX DECOMPOSITIONS.
52 * IO NIN NUMBER OF INNER ITERATIONS.
53 * IO NIT NUMBER OF ITERATIONS.
54 * IO NFV NUMBER OF FUNCTION EVALUATIONS.
55 * IO NFG NUMBER OF GRADIENT EVALUATIONS.
56 * IO NFH NUMBER OF HESSIAN EVALUATIONS.
59 * S PLIP LIMITED MEMORY SHIFTED VARIABLE METRIC METHOD IN THE
62 * EXTERNAL SUBROUTINES :
63 * SE OBJ COMPUTATION OF THE VALUE OF THE OBJECTIVE FUNCTION.
64 * CALLING SEQUENCE: CALL OBJ(NF,X,FF) WHERE NF IS THE NUMBER
65 * OF VARIABLES, X(NF) IS THE VECTOR OF VARIABLES AND FF IS
66 * THE VALUE OF THE OBJECTIVE FUNCTION.
67 * SE DOBJ COMPUTATION OF THE GRADIENT OF THE OBJECTIVE FUNCTION.
68 * CALLING SEQUENCE: CALL DOBJ(NF,X,GF) WHERE NF IS THE NUMBER
69 * OF VARIABLES, X(NF) IS THE VECTOR OF VARIABLES AND GF(NF)
70 * IS THE GRADIENT OF THE OBJECTIVE FUNCTION.
72 SUBROUTINE PLIPU(NF,X,IPAR,RPAR,F,GMAX,IPRNT,ITERM)
73 INTEGER NF,IPAR(7),IPRNT,ITERM
74 DOUBLE PRECISION X(*),RPAR(9),F,GMAX
75 INTEGER MF,NB,LGF,LS,LXO,LGO,LSO,LXM,LXR,LGR
76 INTEGER NRES,NDEC,NIN,NIT,NFV,NFG,NFH
77 COMMON /STAT/ NRES,NDEC,NIN,NIT,NFV,NFG,NFH
78 DOUBLE PRECISION RA(:)
82 ALLOCATE (RA(5*NF+NF*MF+2*MF))
85 * POINTERS FOR AUXILIARY ARRAYS
95 CALL PLIP(NF,NB,X,IPAR,RA,RA,RA(LGF),RA(LS),RA(LXO),RA(LGO),
96 & RA(LSO),RA(LXM),RA(LXR),RA(LGR),RPAR(1),RPAR(2),RPAR(3),RPAR(4),
97 & RPAR(5),RPAR(6),GMAX,F,IPAR(1),IPAR(2),IPAR(4),IPAR(5),MF,IPRNT,
102 ************************************************************************
103 * SUBROUTINE PLIPS ALL SYSTEMS 97/01/22
105 * EASY TO USE SUBROUTINE FOR LARGE-SCALE BOX CONSTRAINED MINIMIZATION.
108 * II NF NUMBER OF VARIABLES.
109 * RI X(NF) VECTOR OF VARIABLES.
110 * II IX(NF) VECTOR CONTAINING TYPES OF BOUNDS. IX(I)=0-VARIABLE
111 * X(I) IS UNBOUNDED. IX(I)=1-LOWER BOUND XL(I).LE.X(I).
112 * IX(I)=2-UPPER BOUND X(I).LE.XU(I). IX(I)=3-TWO SIDE BOUND
113 * XL(I).LE.X(I).LE.XU(I). IX(I)=5-VARIABLE X(I) IS FIXED.
114 * RI XL(NF) VECTOR CONTAINING LOWER BOUNDS FOR VARIABLES.
115 * RI XU(NF) VECTOR CONTAINING UPPER BOUNDS FOR VARIABLES.
116 * II IPAR(7) INTEGER PAREMETERS:
117 * IPAR(1) MAXIMUM NUMBER OF ITERATIONS.
118 * IPAR(2) MAXIMUM NUMBER OF FUNCTION EVALUATIONS.
119 * IPAR(3) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
120 * IPAR(4) ESTIMATION INDICATOR. IPAR(4)=0-MINIMUM IS NOT
121 * ESTIMATED. IPAR(4)=1-MINIMUM IS ESTIMATED BY THE VALUE
123 * IPAR(5) METHOD USED. IPAR(5)=1-RANK-ONE METHOD.
124 * IPAR(5)=2-RANK-TWO METHOD.
125 * IPAR(6) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
126 * IPAR(7) MAXIMUM NUMBER OF VARIABLE METRIC UPDATES.
127 * RI RPAR(9) REAL PARAMETERS:
128 * RPAR(1) MAXIMUM STEPSIZE.
129 * RPAR(2) TOLERANCE FOR THE CHANGE OF VARIABLES.
130 * RPAR(3) TOLERANCE FOR THE CHANGE OF FUNCTION VALUES.
131 * RPAR(4) TOLERANCE FOR THE FUNCTION FALUE.
132 * RPAR(5) TOLERANCE FOR THE GRADIENT NORM.
133 * RPAR(6) ESTIMATION OF THE MINIMUM FUNCTION VALUE.
134 * RPAR(7) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
135 * RPAR(8) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
136 * RPAR(9) THIS PARAMETER IS NOT USED IN THE SUBROUTINE PLIP.
137 * RO F VALUE OF THE OBJECTIVE FUNCTION.
138 * RO GMAX MAXIMUM PARTIAL DERIVATIVE.
139 * II IPRNT PRINT SPECIFICATION. IPRNT=0-NO PRINT.
140 * ABS(IPRNT)=1-PRINT OF FINAL RESULTS.
141 * ABS(IPRNT)=2-PRINT OF FINAL RESULTS AND ITERATIONS.
142 * IPRNT>0-BASIC FINAL RESULTS. IPRNT<0-EXTENDED FINAL
144 * IO ITERM VARIABLE THAT INDICATES THE CAUSE OF TERMINATION.
145 * ITERM=1-IF ABS(X-XO) WAS LESS THAN OR EQUAL TO TOLX IN
146 * MTESX (USUALLY TWO) SUBSEQUENT ITERATIONS.
147 * ITERM=2-IF ABS(F-FO) WAS LESS THAN OR EQUAL TO TOLF IN
148 * MTESF (USUALLY TWO) SUBSEQUENT ITERATIONS.
149 * ITERM=3-IF F IS LESS THAN OR EQUAL TO TOLB.
150 * ITERM=4-IF GMAX IS LESS THAN OR EQUAL TO TOLG.
151 * ITERM=6-IF THE TERMINATION CRITERION WAS NOT SATISFIED,
152 * BUT THE SOLUTION OBTAINED IS PROBABLY ACCEPTABLE.
153 * ITERM=11-IF NIT EXCEEDED MIT. ITERM=12-IF NFV EXCEEDED MFV.
154 * ITERM=13-IF NFG EXCEEDED MFG. ITERM<0-IF THE METHOD FAILED.
156 * VARIABLES IN COMMON /STAT/ (STATISTICS) :
157 * IO NRES NUMBER OF RESTARTS.
158 * IO NDEC NUMBER OF MATRIX DECOMPOSITIONS.
159 * IO NIN NUMBER OF INNER ITERATIONS.
160 * IO NIT NUMBER OF ITERATIONS.
161 * IO NFV NUMBER OF FUNCTION EVALUATIONS.
162 * IO NFG NUMBER OF GRADIENT EVALUATIONS.
163 * IO NFH NUMBER OF HESSIAN EVALUATIONS.
166 * S PLIP LIMITED MEMORY SHIFTED VARIABLE METRIC METHOD IN THE
169 * EXTERNAL SUBROUTINES :
170 * SE OBJ COMPUTATION OF THE VALUE OF THE OBJECTIVE FUNCTION.
171 * CALLING SEQUENCE: CALL OBJ(NF,X,FF) WHERE NF IS THE NUMBER
172 * OF VARIABLES, X(NF) IS THE VECTOR OF VARIABLES AND FF IS
173 * THE VALUE OF THE OBJECTIVE FUNCTION.
174 * SE DOBJ COMPUTATION OF THE GRADIENT OF THE OBJECTIVE FUNCTION.
175 * CALLING SEQUENCE: CALL DOBJ(NF,X,GF) WHERE NF IS THE NUMBER
176 * OF VARIABLES, X(NF) IS THE VECTOR OF VARIABLES AND GF(NF)
177 * IS THE GRADIENT OF THE OBJECTIVE FUNCTION.
179 SUBROUTINE PLIPS(NF,X,IX,XL,XU,IPAR,RPAR,F,GMAX,IPRNT,ITERM)
180 INTEGER NF,IX(*),IPAR(7),IPRNT,ITERM
181 DOUBLE PRECISION X(*),XL(*),XU(*),RPAR(9),F,GMAX
182 INTEGER MF,NB,LGF,LS,LXO,LGO,LSO,LXM,LXR,LGR
183 INTEGER NRES,NDEC,NIN,NIT,NFV,NFG,NFH
184 COMMON /STAT/ NRES,NDEC,NIN,NIT,NFV,NFG,NFH
185 DOUBLE PRECISION RA(:)
189 ALLOCATE (RA(5*NF+NF*MF+2*MF))
192 * POINTERS FOR AUXILIARY ARRAYS
202 CALL PLIP(NF,NB,X,IX,XL,XU,RA(LGF),RA(LS),RA(LXO),RA(LGO),
203 & RA(LSO),RA(LXM),RA(LXR),RA(LGR),RPAR(1),RPAR(2),RPAR(3),RPAR(4),
204 & RPAR(5),RPAR(6),GMAX,F,IPAR(1),IPAR(2),IPAR(4),IPAR(5),MF,IPRNT,
209 ************************************************************************
210 * SUBROUTINE PLIP ALL SYSTEMS 01/09/22
212 * GENERAL SUBROUTINE FOR LARGE-SCALE BOX CONSTRAINED MINIMIZATION THAT
213 * USE THE SHIFTED LIMITED MEMORY VARIABLE METRIC METHOD BASED ON THE
214 * PRODUCT FORM UPDATES.
217 * II NF NUMBER OF VARIABLES.
218 * II NB CHOICE OF SIMPLE BOUNDS. NB=0-SIMPLE BOUNDS SUPPRESSED.
219 * NB>0-SIMPLE BOUNDS ACCEPTED.
220 * RI X(NF) VECTOR OF VARIABLES.
221 * II IX(NF) VECTOR CONTAINING TYPES OF BOUNDS. IX(I)=0-VARIABLE
222 * X(I) IS UNBOUNDED. IX(I)=1-LOVER BOUND XL(I).LE.X(I).
223 * IX(I)=2-UPPER BOUND X(I).LE.XU(I). IX(I)=3-TWO SIDE BOUND
224 * XL(I).LE.X(I).LE.XU(I). IX(I)=5-VARIABLE X(I) IS FIXED.
225 * RI XL(NF) VECTOR CONTAINING LOWER BOUNDS FOR VARIABLES.
226 * RI XU(NF) VECTOR CONTAINING UPPER BOUNDS FOR VARIABLES.
227 * RA GF(NF) GRADIENT OF THE OBJECTIVE FUNCTION.
228 * RO S(NF) DIRECTION VECTOR.
229 * RU XO(NF) VECTORS OF VARIABLES DIFFERENCE.
230 * RI GO(NF) GRADIENTS DIFFERENCE.
231 * RA SO(NF) AUXILIARY VECTOR.
232 * RA XM(NF*MF) AUXILIARY VECTOR.
233 * RA XR(MF) AUXILIARY VECTOR.
234 * RA GR(MF) AUXILIARY VECTOR.
235 * RI XMAX MAXIMUM STEPSIZE.
236 * RI TOLX TOLERANCE FOR CHANGE OF VARIABLES.
237 * RI TOLF TOLERANCE FOR CHANGE OF FUNCTION VALUES.
238 * RI TOLB TOLERANCE FOR THE FUNCTION VALUE.
239 * RI TOLG TOLERANCE FOR THE GRADIENT NORM.
240 * RI FMIN ESTIMATION OF THE MINIMUM FUNCTION VALUE.
241 * RO GMAX MAXIMUM PARTIAL DERIVATIVE.
242 * RO F VALUE OF THE OBJECTIVE FUNCTION.
243 * II MIT MAXIMUM NUMBER OF ITERATIONS.
244 * II MFV MAXIMUM NUMBER OF FUNCTION EVALUATIONS.
245 * II IEST ESTIMATION INDICATOR. IEST=0-MINIMUM IS NOT ESTIMATED.
246 * IEST=1-MINIMUM IS ESTIMATED BY THE VALUE FMIN.
247 * II MET METHOD USED. MET=1-RANK-ONE METHOD. MET=2-RANK-TWO
249 * II MF NUMBER OF LIMITED MEMORY STEPS.
250 * II IPRNT PRINT SPECIFICATION. IPRNT=0-NO PRINT.
251 * ABS(IPRNT)=1-PRINT OF FINAL RESULTS.
252 * ABS(IPRNT)=2-PRINT OF FINAL RESULTS AND ITERATIONS.
253 * IPRNT>0-BASIC FINAL RESULTS. IPRNT<0-EXTENDED FINAL
255 * IO ITERM VARIABLE THAT INDICATES THE CAUSE OF TERMINATION.
256 * ITERM=1-IF ABS(X-XO) WAS LESS THAN OR EQUAL TO TOLX IN
257 * MTESX (USUALLY TWO) SUBSEQUEBT ITERATIONS.
258 * ITERM=2-IF ABS(F-FO) WAS LESS THAN OR EQUAL TO TOLF IN
259 * MTESF (USUALLY TWO) SUBSEQUEBT ITERATIONS.
260 * ITERM=3-IF F IS LESS THAN OR EQUAL TO TOLB.
261 * ITERM=4-IF GMAX IS LESS THAN OR EQUAL TO TOLG.
262 * ITERM=6-IF THE TERMINATION CRITERION WAS NOT SATISFIED,
263 * BUT THE SOLUTION OBTAINED IS PROBABLY ACCEPTABLE.
264 * ITERM=11-IF NIT EXCEEDED MIT. ITERM=12-IF NFV EXCEEDED MFV.
265 * ITERM=13-IF NFG EXCEEDED MFG. ITERM<0-IF THE METHOD FAILED.
267 * VARIABLES IN COMMON /STAT/ (STATISTICS) :
268 * IO NRES NUMBER OF RESTARTS.
269 * IO NDEC NUMBER OF MATRIX DECOMPOSITION.
270 * IO NIN NUMBER OF INNER ITERATIONS.
271 * IO NIT NUMBER OF ITERATIONS.
272 * IO NFV NUMBER OF FUNCTION EVALUATIONS.
273 * IO NFG NUMBER OF GRADIENT EVALUATIONS.
274 * IO NFH NUMBER OF HESSIAN EVALUATIONS.
277 * S PCBS04 ELIMINATION OF BOX CONSTRAINT VIOLATIONS.
278 * S PS1L01 STEPSIZE SELECTION USING LINE SEARCH.
279 * S PULSP3 SHIFTED VARIABLE METRIC UPDATE.
280 * S PULVP3 SHIFTED LIMITED-MEMORY VARIABLE METRIC UPDATE.
281 * S PYADC0 ADDITION OF A BOX CONSTRAINT.
282 * S PYFUT1 TEST ON TERMINATION.
283 * S PYRMC0 DELETION OF A BOX CONSTRAINT.
284 * S PYTRCD COMPUTATION OF PROJECTED DIFFERENCES FOR THE VARIABLE METRIC
286 * S PYTRCG COMPUTATION OF THE PROJECTED GRADIENT.
287 * S PYTRCS COMPUTATION OF THE PROJECTED DIRECTION VECTOR.
288 * S MXDRMM MULTIPLICATION OF A ROWWISE STORED DENSE RECTANGULAR
289 * MATRIX A BY A VECTOR X.
290 * S MXDCMD MULTIPLICATION OF A COLUMNWISE STORED DENSE RECTANGULAR
291 * MATRIX A BY A VECTOR X AND ADDITION OF THE SCALED VECTOR
293 * S MXUCOP COPYING OF A VECTOR.
294 * S MXUDIR VECTOR AUGMENTED BY THE SCALED VECTOR.
295 * RF MXUDOT DOT PRODUCT OF TWO VECTORS.
296 * S MXUNEG COPYING OF A VECTOR WITH CHANGE OF THE SIGN.
297 * S MXUZER VECTOR ELEMENTS CORRESPONDING TO ACTIVE BOUNDS ARE SET
299 * S MXVCOP COPYING OF A VECTOR.
301 * EXTERNAL SUBROUTINES :
302 * SE OBJ COMPUTATION OF THE VALUE OF THE OBJECTIVE FUNCTION.
303 * CALLING SEQUENCE: CALL OBJ(NF,X,FF) WHERE NF IS THE NUMBER
304 * OF VARIABLES, X(NF) IS THE VECTOR OF VARIABLES AND FF IS
305 * THE VALUE OF THE OBJECTIVE FUNCTION.
306 * SE DOBJ COMPUTATION OF THE GRADIENT OF THE OBJECTIVE FUNCTION.
307 * CALLING SEQUENCE: CALL DOBJ(NF,X,GF) WHERE NF IS THE NUMBER
308 * OF VARIABLES, X(NF) IS THE VECTOR OF VARIABLES AND GF(NF)
309 * IS THE GRADIENT OF THE OBJECTIVE FUNCTION.
312 * HYBRID METHOD WITH SPARSE MARWIL UPDATES FOR SPARSE LEAST SQUARES
315 SUBROUTINE PLIP(NF,NB,X,IX,XL,XU,GF,S,XO,GO,SO,XM,XR,GR,XMAX,
316 & TOLX,TOLF,TOLB,TOLG,FMIN,GMAX,F,MIT,MFV,IEST,MET,MF,IPRNT,ITERM)
317 INTEGER NF,NB,IX(*),MIT,MFV,IEST,MET,MF,IPRNT,ITERM
318 DOUBLE PRECISION X(*),XL(*),XU(*),GF(*),S(*),XO(*),GO(*),SO(*),
319 & XM(*),XR(*),GR(*),XMAX,TOLX,TOLF,TOLG,TOLB,FMIN,GMAX,F
320 INTEGER ITERD,ITERS,ITERH,KD,LD,NTESX,NTESF,MTESX,MTESF,MRED,KIT,
321 & IREST,KBF,MEC,MES,MES1,MES2,MES3,MAXST,ISYS,ITES,INITS,KTERS,
322 & IRES1,IRES2,NRED,INEW,IOLD,I,NN,N,MFG,META,MET3
323 DOUBLE PRECISION R,RO,RP,FO,FP,P,PO,PP,GNORM,SNORM,RMIN,RMAX,
324 & UMAX,FMAX,DMAX,ETA0,ETA9,EPS8,EPS9,ALF1,ALF2,PAR1,PAR2,PAR,TOLD,
326 DOUBLE PRECISION MXUDOT
327 INTEGER NRES,NDEC,NIN,NIT,NFV,NFG,NFH
328 COMMON /STAT/ NRES,NDEC,NIN,NIT,NFV,NFG,NFH
329 IF (ABS(IPRNT).GT.1) WRITE(6,'(1X,''ENTRY TO PLIP :'')')
372 IF (IEST.LE.0) FMIN=-1.0D 60
373 IF (IEST.GT.0) IEST=1
374 IF (XMAX.LE.0.0D 0) XMAX=1.0D 16
375 IF (TOLX.LE.0.0D 0) TOLX=1.0D-16
376 IF (TOLF.LE.0.0D 0) TOLF=1.0D-14
377 IF (TOLG.LE.0.0D 0) TOLG=1.0D-6
378 IF (TOLB.LE.0.0D 0) TOLB=FMIN+1.0D-16
383 IF (MIT.LE.0) MIT=9000
384 IF (MFV.LE.0) MFV=9000
388 KIT=-(IRES1*NF+IRES2)
391 * INITIAL OPERATIONS WITH SIMPLE BOUNDS
395 IF ((IX(I).EQ.3.OR.IX(I).EQ.4) .AND. XU(I).LE.XL(I)) THEN
398 ELSE IF (IX(I).EQ.5 .OR. IX(I).EQ.6) THEN
404 CALL PCBS04(NF,X,IX,XL,XU,EPS9,KBF)
405 CALL PYADC0(NF,N,X,IX,XL,XU,INEW)
407 IF (ITERM.NE.0) GO TO 11190
413 CALL PYTRCG(NF,NF,IX,GF,UMAX,GMAX,KBF,IOLD)
415 & WRITE (6,'(1X,''NIT='',I5,2X,''NFV='',I5,2X,''NFG='',I5,2X,
416 & ''F='', G16.9,2X,''G='',E10.3)') NIT,NFV,NFG,F,GMAX
417 CALL PYFUT1(NF,F,FO,UMAX,GMAX,DMAX,TOLX,TOLF,TOLB,TOLG,KD,
418 & NIT,KIT,MIT,NFV,MFV,NFG,MFG,NTESX,MTESX,NTESF,MTESF,ITES,
419 & IRES1,IRES2,IREST,ITERS,ITERM)
420 IF (ITERM.NE.0) GO TO 11190
421 IF (KBF.GT.0.AND.RMAX.GT.0.0D 0) THEN
422 CALL PYRMC0(NF,N,IX,GF,EPS8,UMAX,GMAX,RMAX,IOLD,IREST)
434 IF (ITERS.LT.0) ITERM=ITERS-5
437 IF (ITERM.NE.0) GO TO 11190
439 * DIRECTION DETERMINATION
441 GNORM=SQRT(MXUDOT(NF,GF,GF,IX,KBF))
445 CALL MXUNEG(NF,GF,S,IX,KBF)
446 CALL MXDRMM(NF,NN,XM,S,GR)
447 CALL MXDCMD(NF,NN,XM,GR,PAR,S,S)
448 CALL MXUZER(NF,S,IX,KBF)
450 SNORM=SQRT(MXUDOT(NF,S,S,IX,KBF))
452 * TEST ON DESCENT DIRECTION AND PREPARATION OF LINE SEARCH
454 IF (KD.GT.0) P=MXUDOT(NF,GF,S,IX,KBF)
459 * TEST ON DESCENT DIRECTION
461 IF (SNORM.LE.0.0D 0) THEN
463 ELSE IF (P+TOLD*GNORM*SNORM.LE.0.0D 0) THEN
467 * UNIFORM DESCENT CRITERION
473 * PREPARATION OF LINE SEARCH
476 RMIN=ALF1*GNORM/SNORM
477 RMAX=MIN(ALF2*GNORM/SNORM,XMAX/SNORM)
480 IF (ITERM.NE.0) GO TO 11190
481 IF (IREST.NE.0) GO TO 11130
482 CALL PYTRCS(NF,X,IX,XO,XL,XU,GF,GO,S,RO,FP,FO,F,PO,P,RMAX,ETA9,
484 IF (RMAX.EQ.0.0D 0) GO TO 11175
486 CALL PS1L01(R,RP,F,FO,FP,P,PO,PP,FMIN,FMAX,RMIN,RMAX,
487 & TOLS,TOLP,PAR1,PAR2,KD,LD,NIT,KIT,NRED,MRED,MAXST,IEST,
488 & INITS,ITERS,KTERS,MES,ISYS)
489 IF (ISYS.EQ.0) GO TO 11174
490 CALL MXUDIR(NF,R,S,XO,X,IX,KBF)
491 CALL PCBS04(NF,X,IX,XL,XU,EPS9,KBF)
496 P=MXUDOT(NF,GF,S,IX,KBF)
504 CALL MXVCOP(NF,GO,GF)
509 CALL MXUNEG(NF,GO,S,IX,KBF)
510 CALL PYTRCD(NF,X,IX,XO,GF,GO,R,F,FO,P,PO,DMAX,KBF,KD,LD,ITERS)
511 CALL MXUCOP(NF,GF,SO,IX,KBF)
513 CALL PULSP3(NF,NN,MF,XM,GR,XO,GO,R,PO,PAR,ITERH,MET3)
515 CALL PULVP3(NF,NN,XM,XR,GR,S,SO,XO,GO,R,PO,PAR,ITERH,MEC,MET3,
519 IF (ITERH.NE.0) IREST=MAX(IREST,1)
520 IF (KBF.GT.0) CALL PYADC0(NF,N,X,IX,XL,XU,INEW)
523 IF (IPRNT.GT.1.OR.IPRNT.LT.0)
524 & WRITE(6,'(1X,''EXIT FROM PLIP :'')')
526 & WRITE (6,'(1X,''NIT='',I5,2X,''NFV='',I5,2X,''NFG='',I5,2X,
527 & ''F='', G16.9,2X,''G='',E10.3,2X,''ITERM='',I3)') NIT,NFV,NFG,
530 & WRITE (6,'(1X,''X='',5(G14.7,1X):/(3X,5(G14.7,1X)))')