Download gpobul.eso

Back to the list

   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 : -INC CCOPTIO
  34 : CBEGININCLUDE SPOLYNO
  35 :       SEGMENT POLYNO
  36 :       REAL*8  COEMON(NBMON)
  37 :       INTEGER EXPMON(NDIML,NBMON)
  38 :       ENDSEGMENT 
  39 :       SEGMENT POLYNS
  40 :       POINTEUR LIPOLY(NBPOLY).POLYNO
  41 :       ENDSEGMENT
  42 : CENDINCLUDE SPOLYNO
  43 :       INTEGER NBMON,NDIML
  44 :       POINTEUR MYBPOL.POLYNS
  45 :       POINTEUR POBUL.POLYNO
  46 : *
  47 :       INTEGER NDIM
  48 :       INTEGER IMPR,IRET
  49 : *
  50 :       REAL*8 UN
  51 :       PARAMETER(UN=1.D0)
  52 :       INTEGER IMON
  53 : *     
  54 : * Executable statements
  55 : *
  56 :       IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans gpobul.eso' 
  57 : * On génère un polynôme du type :
  58 : * x_1.x_2...x_n (1-x_1...-x_n)
  59 :       NDIML=NDIM
  60 :       NBMON=NDIM+1
  61 :       SEGINI POBUL
  62 : * On initialise les monômes à x_1.x_2...x_n
  62 :       CALL ISET(POBUL.EXPMON,1,NDIML*NBMON)
  63 : * On ajuste les coeff. et les monômes
  64 :       POBUL.COEMON(1)=UN
  65 :       DO 1 IMON=2,NDIM+1
  66 :          POBUL.COEMON(IMON)=-UN
  67 :          POBUL.EXPMON(IMON-1,IMON)=
  68 :      $        POBUL.EXPMON(IMON-1,IMON)+1
  69 :  1    CONTINUE
  70 :       SEGDES POBUL
  71 :       SEGACT MYBPOL*MOD
  72 :       MYBPOL.LIPOLY(**)=POBUL
  73 :       SEGDES MYBPOL
  74 : *
  75 : * Normal termination
  76 : *
  77 :       IRET=0
  78 :       RETURN
  79 : *
  80 : * Format handling
  81 : *
  82 : *
  83 : * Error handling
  84 : *
  85 :  9999 CONTINUE
  86 :       IRET=1
  87 :       WRITE(IOIMP,*) 'An error was detected in subroutine gpobul'
  88 :       RETURN
  89 : *
  90 : * End of subroutine GPOBUL
  91 : *
  92 :       END
  93 : 
  94 :  
  95 :  

© Cast3M 2003 - All rights reserved.
Disclaimer