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