]>
Commit | Line | Data |
---|---|---|
ef94df36 | 1 | *CMZ : 23/08/93 13.30.10 by Jonathan Butterworth |
2 | *-- Author : | |
3 | SUBROUTINE NOCUT (N,XLOW,XUP,Z,IDSCNT,IDSCRM,PARTN,NFCNT) | |
4 | INTEGER N, IDSCNT, IDSCRM, NFCNT | |
5 | DOUBLE PRECISION PARTN | |
6 | DOUBLE PRECISION XLOW(N), XUP(N), Z(N) | |
7 | INTEGER I, MOD | |
8 | CMM DOUBLE PRECISION DABS, DEVMAX, DFUN, XSAVE, YMID, YLOW, YUP, YDIF | |
9 | DOUBLE PRECISION DEVMAX, DFUN, XSAVE, YMID, YLOW, YUP, YDIF | |
10 | SAVE | |
11 | DEVMAX=0.0D+0 | |
12 | DO 10 I=1,N | |
13 | Z(I)=0.5D+0*(XLOW(I)+XUP(I)) | |
14 | 10 CONTINUE | |
15 | YMID=DFUN(N,Z) | |
16 | DO 30 I=1,N | |
17 | XSAVE=Z(I) | |
18 | Z(I)=XLOW(I) | |
19 | YLOW=DFUN(N,Z) | |
20 | Z(I)=XUP(I) | |
21 | YUP=DFUN(N,Z) | |
22 | YDIF=ABS(YMID-0.5D+0*(YLOW+YUP)) | |
23 | IF(YDIF.LT.DEVMAX) GOTO 20 | |
24 | DEVMAX=YDIF | |
25 | PARTN=XSAVE | |
26 | IDSCRM=I | |
27 | 20 Z(I)=XSAVE | |
28 | 30 CONTINUE | |
29 | NFCNT=NFCNT+2*N+1 | |
30 | IF(DEVMAX.NE.0.0D+0) GOTO 40 | |
31 | IDSCRM=MOD(IDSCNT,N)+1 | |
32 | PARTN=Z(IDSCRM) | |
33 | IDSCNT=IDSCNT+1 | |
34 | RETURN | |
35 | 40 IDSCNT=0 | |
36 | RETURN | |
37 | END |