Télécharger valpo2.eso

Retour à la liste

Numérotation des lignes :

valpo2
  1. C VALPO2 SOURCE GOUNAND 08/11/07 21:15:04 6194
  2. SUBROUTINE VALPO2(NDIML,
  3. $ XCONO1,NBMON,COEMON,
  4. $ EXPMON,
  5. $ ORDER1,
  6. $ VALEUR)
  7. IMPLICIT INTEGER(I-N)
  8. IMPLICIT REAL*8 (A-H,O-Z)
  9. C***********************************************************************
  10. C NOM : VALPO2 (Idem VALPOL mais precable)
  11. C PROJET : Noyau lineaire NLIN
  12. C DESCRIPTION : Calcule la valeur d'un polynome de R^{ndiml} ou la
  13. C valeur d'une de ses derivees en un point de R^{ndiml}.
  14. C NDIML : dimension de l'espace
  15. C NBMONO : nombre de monomes du polynome
  16. C XCONO1 : coordonnees du point
  17. C COEMON : coefficient d'un monome
  18. C EXPMON : exposants du monome
  19. C ORDER1 : ordre de derivation par rapport a
  20. C chacune des coordonnees
  21. C
  22. C LANGAGE : Fortran 77 (sauf pour les E/S)
  23. C AUTEUR : Stephane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  24. C mel : gounand@semt2.smts.cea.fr
  25. C***********************************************************************
  26. C APPELES : -
  27. C APPELE PAR : SHAPEQ
  28. C***********************************************************************
  29. C ENTREES : NDIML, NBMONO, XCONO1, COEMON, EXPMON, ORDER1
  30. C ENTREES/SORTIES : -
  31. C SORTIES : VALEUR
  32. C CODE RETOUR (IRET) : = 0 si tout s'est bien passe
  33. C***********************************************************************
  34. C VERSION : v1, 03/05/06, version initiale
  35. C HISTORIQUE : v1, 03/05/06, creation
  36. C HISTORIQUE :
  37. C HISTORIQUE :
  38. C***********************************************************************
  39. C Priere de PRENDRE LE TEMPS de completer les commentaires
  40. C en cas de modification de ce sous-programme afin de faciliter
  41. C la maintenance !
  42. C***********************************************************************
  43. INTEGER NDIML
  44. REAL*8 XCONO1(NDIML)
  45. INTEGER NBMON
  46. REAL*8 COEMON(NBMON)
  47. INTEGER EXPMON(NDIML,NBMON)
  48. INTEGER ORDER1(NDIML)
  49. REAL*8 VALEUR
  50. *
  51. INTEGER IMPR,IRET
  52. *
  53. INTEGER IMONO,INDIML,IFACT
  54. INTEGER NEXPKS,NDERKS
  55. REAL*8 VALMON,VAMOEL
  56. *
  57. * Executable statements
  58. *
  59. *
  60. * Calcul de la valeur au point de coordonnees XCONO1 de la
  61. * derivee definie par ORDER1 du monome definie par EXPMON
  62. *
  63. VALEUR=0.D0
  64. DO IMON=1,NBMON
  65. * VALMON=1.D0
  66. VALMON=COEMON(IMON)
  67. * WRITE(IOIMP,*) 'VALMON=',VALMON
  68. DO 12 INDIML=1,NDIML
  69. NEXPKS=EXPMON(INDIML,IMON)
  70. NDERKS=ORDER1(INDIML)
  71. *
  72. * d/dx^m (x^n) = 0 si m>n
  73. * = n!/(n-m)! x^(n-m) si m<=n
  74. * ou n! = factorielle de n et en choisissant
  75. * 0! = 1
  76. IF (NDERKS.GT.NEXPKS) THEN
  77. VAMOEL=0.D0
  78. ELSEIF (NDERKS.EQ.NEXPKS) THEN
  79. VAMOEL=1.D0
  80. DO 222 IFACT=1,NEXPKS
  81. VAMOEL=VAMOEL*IFACT
  82. 222 CONTINUE
  83. ELSE
  84. VAMOEL=1.D0
  85. DO 122 IFACT=(NEXPKS-NDERKS+1),NEXPKS,1
  86. VAMOEL=VAMOEL*IFACT
  87. 122 CONTINUE
  88. VAMOEL=VAMOEL*(XCONO1(INDIML)**(NEXPKS-NDERKS))
  89. ENDIF
  90. VALMON=VALMON*VAMOEL
  91. 12 CONTINUE
  92. VALEUR=VALEUR+VALMON
  93. ENDDO
  94. * WRITE(6,*) 'VALEUR=',VALEUR
  95. *
  96. * Normal termination
  97. *
  98. IRET=0
  99. RETURN
  100. *
  101. * End of subroutine VALPO2
  102. *
  103. END
  104.  
  105.  

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