]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/mathlib/gen/divon/bufopt.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / mathlib / gen / divon / bufopt.F
CommitLineData
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