]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:03:25 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | SUBROUTINE BUFOPT (N,RXMIN,RXMAX,RXLOW,RXHI,RFMIN,RFMAX,RFLOBD,RFU | |
11 | 1PBD,W,LENW,IW,LENIW,NFCNT,IRESLT) | |
12 | INTEGER N, LENW, LENIW, NFCNT, IRESLT | |
13 | INTEGER IW(LENIW) | |
14 | REAL RXMIN(N), RXMAX(N), RXLOW(N), RXHI(N), RFMIN, RFMAX, | |
15 | 1 RFLOBD, RFUPBD | |
16 | DOUBLE PRECISION W(LENW) | |
17 | INTEGER I, IPRINT, IXHI, IXLOW, IXMAX, JAHESS, JGACTV, JGFREE, | |
18 | 1 JGNEW, JIACTV, JIFREE, JPFREE, JX, JXHI, JXLOW, JXMAX, | |
19 | 2 JXMIN, JXTEMP, MAXFUN | |
20 | REAL RFDIF, SNGL | |
21 | DOUBLE PRECISION ALFMAX, DELTA, ETA, FLOBD, FMAX, FMIN, | |
22 | 1 FTOL, FUPBD, GTOL | |
23 | JXMIN=1 | |
24 | JXMAX=JXMIN+N | |
25 | JXLOW=JXMAX+N | |
26 | JXHI=JXLOW+N | |
27 | DO 10 I=1,N | |
28 | W(I)=DBLE(RXMIN(I)) | |
29 | IXMAX=JXMAX-1+I | |
30 | W(IXMAX)=DBLE(RXMAX(I)) | |
31 | IXLOW=JXLOW-1+I | |
32 | W(IXLOW)=DBLE(RXLOW(I)) | |
33 | IXHI=JXHI-1+I | |
34 | W(IXHI)=DBLE(RXHI(I)) | |
35 | 10 CONTINUE | |
36 | FMAX=DBLE(RFMAX) | |
37 | FMIN=DBLE(RFMIN) | |
38 | FLOBD=DBLE(RFLOBD) | |
39 | FUPBD=DBLE(RFUPBD) | |
40 | CALL SETTOL(N,FTOL,GTOL,DELTA,ETA,ALFMAX,MAXFUN,IPRINT) | |
41 | IF(IPRINT.LT.0) GOTO 20 | |
42 | WRITE(6,70) (RXLOW(I),I=1,N) | |
43 | WRITE(6,80) (RXHI(I),I=1,N) | |
44 | 20 JX=JXHI+N | |
45 | JXTEMP=JX+N | |
46 | JGFREE=JXTEMP+N | |
47 | JPFREE=JGFREE+N | |
48 | JGACTV=JPFREE+N | |
49 | JGNEW=JGACTV+N | |
50 | JAHESS=JGNEW+N | |
51 | JIFREE=1 | |
52 | JIACTV=JIFREE+N | |
53 | CALL BNDOPT(N,W(JXMIN),W(JXMAX),W(JXLOW),W(JXHI),FMIN,FMAX,FLOBD, | |
54 | 1FUPBD,W(JX),W(JXTEMP),W(JGFREE),W(JPFREE),W(JGACTV),W(JGNEW),W(JAH | |
55 | 2ESS),DELTA,FTOL,GTOL,ETA,ALFMAX,MAXFUN,NFCNT,IW(JIFREE),IW(JIACTV) | |
56 | 3,IPRINT,IRESLT) | |
57 | DO 30 I=1,N | |
58 | RXMIN(I)=SNGL(W(I)) | |
59 | IXMAX=N+I | |
60 | RXMAX(I)=SNGL(W(IXMAX)) | |
61 | 30 CONTINUE | |
62 | RFMIN=SNGL(FMIN) | |
63 | RFMAX=SNGL(FMAX) | |
64 | RFDIF=RFMAX-RFMIN | |
65 | IF(IPRINT.LT.0) RETURN | |
66 | WRITE(6,40) RFDIF,RFMAX,RFMIN,NFCNT | |
67 | WRITE(6,50) (RXMIN(I),I=1,N) | |
68 | WRITE(6,60) (RXMAX(I),I=1,N) | |
69 | RETURN | |
70 | 40 FORMAT('0 END OF OPTIMIZATION -- FDIF =', 1PE15.5, 4X, | |
71 | 1 'FMAX =',1PE15.5,4X,'FMIN =',1PE15.5,4X,'NFCNT =',I7) | |
72 | 50 FORMAT(' XMIN',5(1PE15.5)) | |
73 | 60 FORMAT(' XMAX',5(1PE15.5)) | |
74 | 70 FORMAT(' LOWER BOUNDS',5(1PE15.5)) | |
75 | 80 FORMAT(' UPPER BOUNDS',5(1PE15.5)) | |
76 | END |