infpgs
C INFPGS SOURCE GOUNAND 21/06/02 21:16:35 11022 IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : INFPGS C PROJET : Noyau linéaire NLIN C DESCRIPTION : Initialise le segment contenant les informations sur C l'ensemble des familles de méthodes d'intégration 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 : INIFPG, FILFPG, PRFPG (initialisations, impression) C APPELE PAR : PRNLI2 C*********************************************************************** C ENTREES : * MYPGS (type POGAUS) : segment de description C des méthodes d'intégration. C ENTREES/SORTIES : - C SORTIES : * MYFPGS (type FAPGS) : segment de description C des familles de méthodes d'intégration. C TRAVAIL : * FACOUR (type FAPG) : famille courante. C * NBDFA (type ENTIER) : nombre total de familles C de méthodes d'intégration. C * INBDFA (type ENTIER) : indice de boucle sur les C familles de méthodes d'intégration. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 16/07/02, version initiale C HISTORIQUE : v1, 16/07/02, 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 SPOGAU POINTEUR MYPGS.POGAUS *-INC SFAPG POINTEUR MYFPGS.FAPGS POINTEUR FACOUR.FAPG * INTEGER IMPR,IRET * INTEGER NBDFA,INBDFA LOGICAL LAXI * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans infpgs' SEGINI MYFPGS LAXI=(IFOUR.EQ.0) * * Famille de nom : GAM1 Gauss pour la masse (éléments linéaires) * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (LAXI) THEN IF (IRET.NE.0) GOTO 9999 ELSE IF (IRET.NE.0) GOTO 9999 ENDIF IF (LAXI) THEN IF (IRET.NE.0) GOTO 9999 ELSE IF (IRET.NE.0) GOTO 9999 ENDIF IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAM2 Gauss pour la masse (éléments quadratiques) * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (LAXI) THEN ELSE ENDIF IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (LAXI) THEN IF (IRET.NE.0) GOTO 9999 ELSE IF (IRET.NE.0) GOTO 9999 ENDIF IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAR1 Gauss pour la rigidité (éléments linéaires) * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAR2 Gauss pour la rigidité (éléments quadratiques) * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (LAXI) THEN ELSE ENDIF IF (IRET.NE.0) GOTO 9999 IF (LAXI) THEN IF (IRET.NE.0) GOTO 9999 ELSE IF (IRET.NE.0) GOTO 9999 ENDIF IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : NC1 Newton-Cotes * Méthodes d'intégration d'ordre au moins 1 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : NC3 Newton-Cotes * Méthodes d'intégration d'ordre au moins 3 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 * Pas vraiment du Newton-Cotes, mais je ne sais pas quoi mettre IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAU1 * Méthodes d'intégration d'ordre au moins 1 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAU2 * Méthodes d'intégration d'ordre au moins 2 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAU3 * Méthodes d'intégration d'ordre au moins 3 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAU4 * Méthodes d'intégration d'ordre au moins 4 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAU5 * Méthodes d'intégration d'ordre au moins 5 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAU6 * Méthodes d'intégration d'ordre au moins 6 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAU7 * Méthodes d'intégration d'ordre au moins 7 * 6 éléments : segment, triangle, carré, tétraèdre, prisme, cube * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAP3 * Méthodes d'intégration produit d'ordre au moins 3 * 3 éléments : segment, triangle, carré * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAP5 * Méthodes d'intégration produit d'ordre au moins 5 * 3 éléments : segment, triangle, carré * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Famille de nom : GAP7 * Méthodes d'intégration produit d'ordre au moins 7 * 4 éléments : segment, triangle, carré, tétraèdre * * In INIFPG : SEGINI FACOUR $ FACOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 IF (IRET.NE.0) GOTO 9999 SEGDES FACOUR MYFPGS.LISFPG(**)=FACOUR * * Impression finale * NBDFA=MYFPGS.LISFPG(/1) IF (IMPR.GT.1) THEN *! WRITE(IOIMP,*) 'Nom, QUAF, Meth. integ' DO 3 INBDFA=1,NBDFA WRITE(IOIMP,*) 'Famille de méthodes d''intégration ',INBDFA FACOUR=MYFPGS.LISFPG(INBDFA) IF (IRET.NE.0) GOTO 9999 3 CONTINUE ENDIF SEGDES MYFPGS * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine infpgs' RETURN * * End of subroutine INFPGS * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales