Télécharger gpofbu.eso

Retour à la liste

Numérotation des lignes :

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

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