Download gdflim1.procedur

Back to the list

   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