* SUBROUTINE PF1F01 ALL SYSTEMS 97/12/01 C PORTABILITY : ALL SYSTEMS C 97/12/01 LU : ORIGINAL VERSION * * PURPOSE : * COMPUTATION OF THE VALUE AND THE GRADIENT OF THE OBJECTIVE FUNCTION. * * PARAMETERS: * II NF NUMBER OF VARIABLES. * RI X(NF) VECTOR OF VARIABLES. * RI GF(NF) GRADIENT OF THE MODEL FUNCTION. * RO G(NF) GRADIENT OF THE OBJECTIVE FUNCTION. * RI FF VALUE OF THE MODEL FUNCTION. * RO F VALUE OF THE OBJECTIVE FUNCTION. * II KD DEGREE OF REQUIRED DERIVATIVES. * II LD DEGREE OF PREVIOUSLY COMPUTED DERIVATIVES. * II IEXT TYPE OF EXTREMUM. IEXT=0-MINIMUM. IEXT=1-MAXIMUM. * * SUBPROGRAMS USED : * S MXVCOP COPYING OF A VECTOR. * S MXVNEG COPYING OF A VECTOR WITH CHANGE OF THE SIGN. * SUBROUTINE PF1F01(NF,X,GF,G,FF,F,KD,LD,IEXT,POBJ,PDOBJ) DOUBLE PRECISION F,FF INTEGER IEXT,KD,LD,NF DOUBLE PRECISION GF(*),G(*),X(*) INTEGER NADD,NDEC,NFG,NFH,NFV,NIT,NREM,NRES EXTERNAL POBJ,PDOBJ COMMON /STAT/NRES,NDEC,NREM,NADD,NIT,NFV,NFG,NFH IF (KD.LE.LD) RETURN IF (LD.GE.0) GO TO 10 NFV = NFV + 1 CALL POBJ(NF,X,FF) IF (IEXT.LE.0) THEN F = FF ELSE F = -FF END IF 10 IF (KD.LT.1) GO TO 20 IF (LD.GE.1) GO TO 20 NFG = NFG + 1 CALL PDOBJ(NF,X,GF) IF (IEXT.GT.0) THEN CALL MXVNEG(NF,GF,G) END IF 20 LD = KD RETURN END