1 : * GDFLIM1 PROCEDUR AM 09/12/07 21:15:36 6578 2 : DEBPROC GDFLIM1 tab1*TABLE; 3 : *----------------------------------------------------------------- 4 : * Calcul des reponses du modele MECA aux pas de calcul du gradient 5 : * Entree : 6 : * - nombre de variables : tab1.nbre_variables 7 : * - vecteur actuel X : tab1.vecx 8 : * - increments sur les axes : tab1.delx 9 : * - indicateur de calcul : tab1.calcul 10 : * - compteur d'appels : tab1.appels 11 : * - parametres modele MECA : tab1.parametres 12 : * Sortie : 13 : * - vecteur des reponses : tab1.valeurs_G 14 : * - indice d'erreur : err1 15 : *----------------------------------------------------------------- 16 : 17 : * Recuperation des entrees 18 : 19 : nva1=tab1.nbre_variables; 20 : vec1=tab1.vecx; 21 : del1=tab1.delx; 22 : cal1=tab1.calcul; 23 : SI (EXISTE tab1.parametres); 24 : para1=tab1.parametres; 25 : FINSI; 26 : 27 : * Controle des entrees 28 : 29 : err1=0; 30 : SI ((DIME vec1) NEG nva1); 31 : MESS 'HASOFER / GDFLIM1 : incoherence DIME vecx / nva'; 32 : err1=1; 33 : QUIT GDFLIM1; 34 : FINSI; 35 : SI ((DIME del1) NEG nva1); 36 : MESS 'HASOFER / GDFLIM1 : incoherence DIME delta_x / nva'; 37 : err1=1; 38 : QUIT GDFLIM1; 39 : FINSI; 40 : SI ((DIME cal1) NEG nva1); 41 : MESS 'HASOFER / GDFLIM1 : incoherence DIME calcul / nva'; 42 : err1=1; 43 : QUIT GDFLIM1; 44 : FINSI; 45 : 46 : * Declarations et initialisations 47 : 48 : valg1=PROG; 49 : tabx1=TABLE; 50 : SI (EXISTE para1); 51 : tabx1.parametres=para1; 52 : FINSI; 53 : n_appel = 0; 54 : 55 : * Calcul des reponses (si calcul demande) 56 : 57 : REPE bouc1 nva1; 58 : 59 : SI (EGA (EXTR &bouc1 cal1) 1); 60 : n_appel = n_appel + 1; 61 : incr1=(EXTR &bouc1 del1); 62 : xi1=(EXTR &bouc1 vec1)+incr1; 63 : REMP vec1 &bouc1 xi1; 64 : 65 : tabx1.variables=vec1; 66 : err1=FLIM1 tabx1; 67 : SI (EGA err1 0); 68 : valg1=valg1 ET (PROG tabx1.valeur_G); 69 : SINON; 70 : QUIT GDFLIM1; 71 : FINSI; 72 : 73 : xi1=(EXTR &bouc1 vec1)-incr1; 74 : REMP vec1 &bouc1 xi1; 75 : SINON; 76 : valg1=valg1 ET (PROG 0.); 77 : n_appel = n_appel + 0; 78 : FINSI; 79 : 80 : FIN bouc1; 81 : 82 : tab1.valeurs_G = valg1; 83 : tab1.appels = n_appel; 84 : 85 : FINPROC err1; 86 : 87 :
© Cast3M 2003 - All rights reserved.
Disclaimer