Télécharger gbapco.eso

Retour à la liste

Numérotation des lignes :

gbapco
  1. C GBAPCO SOURCE GOUNAND 21/06/02 21:16:00 11022
  2. SUBROUTINE GBAPCO(NDIM,NDEG,
  3. $ BAPOLY,
  4. $ IMPR,IRET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : GBAPCO
  9. C DESCRIPTION : Génère une base polynômiale complète de dimension NDIM
  10. C et de degré NDEG.
  11. C cf. Dhatt et Touzot p.45
  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 : -
  19. C APPELE PAR : INELSE, INELTR, INELQU, INELTE, INELPR, INELCU
  20. C***********************************************************************
  21. C ENTREES : NDIM, NDEG
  22. C ENTREES/SORTIES : -
  23. C SORTIES : BAPOLY
  24. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  25. C***********************************************************************
  26. C VERSION : v1, 09/05/2000, version initiale
  27. C HISTORIQUE : v1, 09/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 NBPOLY
  41. POINTEUR BAPOLY.POLYNS
  42. INTEGER NBMON,NDIML
  43. POINTEUR MYPOLY.POLYNO
  44. *
  45. INTEGER NDIM,NDEG
  46. INTEGER IMPR,IRET
  47. *
  48. INTEGER IDEG,IEXP,IEXP2
  49. REAL*8 UN
  50. PARAMETER(UN=1.D0)
  51. *
  52. * Executable statements
  53. *
  54. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans gbapco.eso'
  55. NBPOLY=0
  56. SEGINI BAPOLY
  57. IF (NDIM.EQ.1) THEN
  58. DO 1 IDEG=0,NDEG
  59. NDIML=NDIM
  60. NBMON=1
  61. SEGINI MYPOLY
  62. MYPOLY.COEMON(1)=UN
  63. MYPOLY.EXPMON(1,1)=IDEG
  64. SEGDES MYPOLY
  65. BAPOLY.LIPOLY(**)=MYPOLY
  66. 1 CONTINUE
  67. ELSEIF (NDIM.EQ.2) THEN
  68. DO 3 IDEG=0,NDEG
  69. DO 32 IEXP=IDEG,0,-1
  70. NDIML=NDIM
  71. NBMON=1
  72. SEGINI MYPOLY
  73. MYPOLY.COEMON(1)=UN
  74. MYPOLY.EXPMON(1,1)=IEXP
  75. MYPOLY.EXPMON(2,1)=IDEG-IEXP
  76. SEGDES MYPOLY
  77. BAPOLY.LIPOLY(**)=MYPOLY
  78. 32 CONTINUE
  79. 3 CONTINUE
  80. ELSEIF (NDIM.EQ.3) THEN
  81. DO 5 IDEG=0,NDEG
  82. DO 52 IEXP=IDEG,0,-1
  83. DO 522 IEXP2=IDEG-IEXP,0,-1
  84. NDIML=NDIM
  85. NBMON=1
  86. SEGINI MYPOLY
  87. MYPOLY.COEMON(1)=UN
  88. MYPOLY.EXPMON(1,1)=IEXP
  89. MYPOLY.EXPMON(2,1)=IEXP2
  90. MYPOLY.EXPMON(3,1)=IDEG-(IEXP+IEXP2)
  91. SEGDES MYPOLY
  92. BAPOLY.LIPOLY(**)=MYPOLY
  93. 522 CONTINUE
  94. 52 CONTINUE
  95. 5 CONTINUE
  96. ELSE
  97. WRITE(IOIMP,*) 'Je ne sais pas générer une base poly.',
  98. $ 'complète pour des dimensions sup. à 3.'
  99. GOTO 9999
  100. ENDIF
  101. SEGDES BAPOLY
  102. *
  103. * Normal termination
  104. *
  105. IRET=0
  106. RETURN
  107. *
  108. * Format handling
  109. *
  110. *
  111. * Error handling
  112. *
  113. 9999 CONTINUE
  114. IRET=1
  115. WRITE(IOIMP,*) 'An error was detected in subroutine gbapco'
  116. RETURN
  117. *
  118. * End of subroutine GBAPCO
  119. *
  120. END
  121.  
  122.  
  123.  
  124.  
  125.  

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