concheck
C CONCHECK SOURCE FD218221 26/10/07 21:15:05 12662 SUBROUTINE CONCHECK(M,EPSIMIN,F0APP,F0NEW,FAPP,FNEW,BCONS) C ---------------------------------------------------------------------- C Ce code est une adaptation en FORTRAN/ESOPE de l'algorithme de la GC-MMA C (Methode des Asymptotes Mobiles Globalement Convergente) propose initialement C en langage Matlab par K. Svarberg (sources : https://www.smoptit.se/) C ---------------------------------------------------------------------- C Cette subroutine verifie si les approximations du sous probleme convexe C sont conservatives. C C On compare les valeurs approchees (par le sous problem) des fonctions C objectif et contraintes avec les valeurs mises a jour. C C Entrees : C --------- C M = Nombre de contraintes C EPSIMIN = Petit nombre positif ajoute aux valeurs approximees C F0APP = Scalaire valeur approximee de la fonction objectif C F0NEW = Scalaire valeur mise a jour de la fonction objectif C FAPP = Vecteur (M) valeurs approximees des fonctions contraintes C FNEW = Vecteur (M) valeurs mises a jour des fonctions contraintes C C Sorties : C --------- C BCONS = Booleen, vrai si probleme conservatif, faux sinon C ---------------------------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C Arguments REAL*8 FAPP(M),FNEW(M) LOGICAL BCONS C Comparaison des valeurs BCONS=.TRUE. IF (F0NEW.GT.(F0APP+EPSIMIN)) THEN BCONS=.FALSE. RETURN ENDIF DO 10 J=1,M IF (FNEW(J).GT.(FAPP(J)+EPSIMIN)) THEN BCONS=.FALSE. RETURN ENDIF 10 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales