Télécharger gpobul.eso

Retour à la liste

Numérotation des lignes :

  1. C GPOBUL SOURCE GOUNAND 05/12/21 21:28:22 5281
  2. SUBROUTINE GPOBUL(NDIM,
  3. $ MYBPOL,
  4. $ IMPR,IRET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : GPOBUL
  9. C DESCRIPTION : Génère le polynôme bulle pour un simplex de dimension
  10. C NDIM et l'ajoute dans une liste de polynômes.
  11. C
  12. C LANGAGE : ESOPE
  13. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  14. C mél : gounand@semt2.smts.cea.fr
  15. C***********************************************************************
  16. C APPELES : ISET
  17. C APPELE PAR : INELTR, INELTE
  18. C***********************************************************************
  19. C ENTREES : NDIM
  20. C ENTREES/SORTIES : MYBPOL
  21. C SORTIES : -
  22. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  23. C***********************************************************************
  24. C VERSION : v1, 10/05/2000, version initiale
  25. C HISTORIQUE : v1, 10/05/2000, création
  26. C HISTORIQUE :
  27. C HISTORIQUE :
  28. C***********************************************************************
  29. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  30. C en cas de modification de ce sous-programme afin de faciliter
  31. C la maintenance !
  32. C***********************************************************************
  33.  
  34. -INC PPARAM
  35. -INC CCOPTIO
  36. CBEGININCLUDE SPOLYNO
  37. SEGMENT POLYNO
  38. REAL*8 COEMON(NBMON)
  39. INTEGER EXPMON(NDIML,NBMON)
  40. ENDSEGMENT
  41. SEGMENT POLYNS
  42. POINTEUR LIPOLY(NBPOLY).POLYNO
  43. ENDSEGMENT
  44. CENDINCLUDE SPOLYNO
  45. INTEGER NBMON,NDIML
  46. POINTEUR MYBPOL.POLYNS
  47. POINTEUR POBUL.POLYNO
  48. *
  49. INTEGER NDIM
  50. INTEGER IMPR,IRET
  51. *
  52. REAL*8 UN
  53. PARAMETER(UN=1.D0)
  54. INTEGER IMON
  55. *
  56. * Executable statements
  57. *
  58. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans gpobul.eso'
  59. * On génère un polynôme du type :
  60. * x_1.x_2...x_n (1-x_1...-x_n)
  61. NDIML=NDIM
  62. NBMON=NDIM+1
  63. SEGINI POBUL
  64. * On initialise les monômes à x_1.x_2...x_n
  65. CALL ISET(POBUL.EXPMON,1,NDIML*NBMON)
  66. * On ajuste les coeff. et les monômes
  67. POBUL.COEMON(1)=UN
  68. DO 1 IMON=2,NDIM+1
  69. POBUL.COEMON(IMON)=-UN
  70. POBUL.EXPMON(IMON-1,IMON)=
  71. $ POBUL.EXPMON(IMON-1,IMON)+1
  72. 1 CONTINUE
  73. SEGDES POBUL
  74. SEGACT MYBPOL*MOD
  75. MYBPOL.LIPOLY(**)=POBUL
  76. SEGDES MYBPOL
  77. *
  78. * Normal termination
  79. *
  80. IRET=0
  81. RETURN
  82. *
  83. * Format handling
  84. *
  85. *
  86. * Error handling
  87. *
  88. 9999 CONTINUE
  89. IRET=1
  90. WRITE(IOIMP,*) 'An error was detected in subroutine gpobul'
  91. RETURN
  92. *
  93. * End of subroutine GPOBUL
  94. *
  95. END
  96.  
  97.  
  98.  
  99.  

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