]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/04/01 15:03:26 mclareni | |
6 | * Mathlib gen | |
7 | * | |
8 | * | |
9 | #include "gen/pilot.h" | |
10 | SUBROUTINE GRDCMP (N,NCOMP,INDEX,X,FVAL,DELTA,XHI,XTEMP,GRAD) | |
11 | INTEGER N, NCOMP | |
12 | INTEGER INDEX(NCOMP) | |
13 | DOUBLE PRECISION FVAL, DELTA | |
14 | DOUBLE PRECISION X(N), XHI(N), XTEMP(N), GRAD(NCOMP) | |
15 | INTEGER I, II | |
16 | DOUBLE PRECISION DELX, DFUN, FDIF, FTEMP | |
17 | CMM INTEGER IABS | |
18 | IF(NCOMP.LE.0) RETURN | |
19 | DO 10 I=1,N | |
20 | XTEMP(I)=X(I) | |
21 | 10 CONTINUE | |
22 | DO 20 I=1,NCOMP | |
23 | DELX=DELTA | |
24 | II=ABS(INDEX(I)) | |
25 | IF((X(II)+DELTA).GT.XHI(II)) DELX=-DELTA | |
26 | XTEMP(II)=X(II)+DELX | |
27 | FTEMP=DFUN(N,XTEMP) | |
28 | XTEMP(II)=X(II) | |
29 | FDIF=(FTEMP-FVAL)/DELX | |
30 | GRAD(I)=FDIF | |
31 | 20 CONTINUE | |
32 | RETURN | |
33 | END |