gbapco
C GBAPCO SOURCE GOUNAND 21/06/02 21:16:00 11022 $ BAPOLY, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : GBAPCO C DESCRIPTION : Génère une base polynômiale complète de dimension NDIM C et de degré NDEG. C cf. Dhatt et Touzot p.45 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 : - C APPELE PAR : INELSE, INELTR, INELQU, INELTE, INELPR, INELCU C*********************************************************************** C ENTREES : NDIM, NDEG C ENTREES/SORTIES : - C SORTIES : BAPOLY C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 09/05/2000, version initiale C HISTORIQUE : v1, 09/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 NBPOLY POINTEUR BAPOLY.POLYNS INTEGER NBMON,NDIML POINTEUR MYPOLY.POLYNO * INTEGER NDIM,NDEG INTEGER IMPR,IRET * INTEGER IDEG,IEXP,IEXP2 REAL*8 UN PARAMETER(UN=1.D0) * * Executable statements * IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans gbapco.eso' NBPOLY=0 SEGINI BAPOLY IF (NDIM.EQ.1) THEN DO 1 IDEG=0,NDEG NDIML=NDIM NBMON=1 SEGINI MYPOLY MYPOLY.COEMON(1)=UN MYPOLY.EXPMON(1,1)=IDEG SEGDES MYPOLY BAPOLY.LIPOLY(**)=MYPOLY 1 CONTINUE ELSEIF (NDIM.EQ.2) THEN DO 3 IDEG=0,NDEG DO 32 IEXP=IDEG,0,-1 NDIML=NDIM NBMON=1 SEGINI MYPOLY MYPOLY.COEMON(1)=UN MYPOLY.EXPMON(1,1)=IEXP MYPOLY.EXPMON(2,1)=IDEG-IEXP SEGDES MYPOLY BAPOLY.LIPOLY(**)=MYPOLY 32 CONTINUE 3 CONTINUE ELSEIF (NDIM.EQ.3) THEN DO 5 IDEG=0,NDEG DO 52 IEXP=IDEG,0,-1 DO 522 IEXP2=IDEG-IEXP,0,-1 NDIML=NDIM NBMON=1 SEGINI MYPOLY MYPOLY.COEMON(1)=UN MYPOLY.EXPMON(1,1)=IEXP MYPOLY.EXPMON(2,1)=IEXP2 MYPOLY.EXPMON(3,1)=IDEG-(IEXP+IEXP2) SEGDES MYPOLY BAPOLY.LIPOLY(**)=MYPOLY 522 CONTINUE 52 CONTINUE 5 CONTINUE ELSE WRITE(IOIMP,*) 'Je ne sais pas générer une base poly.', $ 'complète pour des dimensions sup. à 3.' GOTO 9999 ENDIF SEGDES BAPOLY * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine gbapco' RETURN * * End of subroutine GBAPCO * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales