gpofbu
C GPOFBU SOURCE GOUNAND 21/06/02 21:16:18 11022 $ MYBPOL, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : GPOFBU C DESCRIPTION : Génère les polynômes bulle pour les faces d'un simplex C de dimension NDIM (il y en a NDIM+1) et les ajoute à une C liste de polynômes. C C C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : ISET C APPELE PAR : INELTE C*********************************************************************** C ENTREES : NDIM C ENTREES/SORTIES : MYBPOL C SORTIES : - C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 10/05/2000, version initiale C HISTORIQUE : v1, 10/05/2000, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS de compléter les commentaires C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC TNLIN *-INC SPOLYNO INTEGER NBMON,NDIML POINTEUR MYBPOL.POLYNS POINTEUR POBUL.POLYNO * INTEGER NDIM INTEGER IMPR,IRET * REAL*8 UN PARAMETER(UN=1.D0) INTEGER JDIM,IMON * * Executable statements * IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans gpofbu.eso' SEGACT MYBPOL*MOD * On génère le polynôme : x_1.x_2...x_n NDIML=NDIM NBMON=1 SEGINI POBUL POBUL.COEMON(1)=1 SEGDES POBUL MYBPOL.LIPOLY(**)=POBUL * On génère les polynômes du type : * ((x_1.x_2...x_n)/x_i) (1-x_1...-x_n) DO 1 JDIM=1,NDIM NDIML=NDIM NBMON=NDIM+1 SEGINI POBUL * On initialise les monômes à x_1.x_2...x_n * On divise par x_i DO 12 IMON=1,NBMON POBUL.EXPMON(JDIM,IMON)= $ POBUL.EXPMON(JDIM,IMON)-1 12 CONTINUE * On ajuste les coeff. et les monômes POBUL.COEMON(1)=UN DO 14 IMON=2,NDIM+1 POBUL.COEMON(IMON)=-UN POBUL.EXPMON(IMON-1,IMON)= $ POBUL.EXPMON(IMON-1,IMON)+1 14 CONTINUE SEGDES POBUL MYBPOL.LIPOLY(**)=POBUL 1 CONTINUE SEGDES MYBPOL * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine gpofbu' RETURN * * End of subroutine GPOFBU * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales