Télécharger gdflim1.procedur

Retour à la liste

Numérotation des lignes :

  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.  
  88.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales