ingacu
C INGACU SOURCE GOUNAND 21/06/02 21:16:37 11022 IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : INGACU C PROJET : Noyau linéaire NLIN C DESCRIPTION : Remplit le segment des méthodes d'intégration C avec des méthodes d'intégration numérique de cubature C type Gauss pour le cube (ordre 1 à 5). C C REFERENCES : Le site de Cools (avec 32 chiffres sign.) C (essentiellement Stroud et al.) dont on reprend la C nomenclature... C LANGAGE : ESOPE C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) C mél : gounand@semt2.smts.cea.fr C*********************************************************************** C APPELES : INIPG, GCSINO, GCFS2, GCRESY C APPELE PAR : INPGS C*********************************************************************** C ENTREES : - C ENTREES/SORTIES : MYPGS (actif en *MOD) C SORTIES : - C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 11/05/00, version initiale C HISTORIQUE : v1, 11/05/00, 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 POINTEUR PGCOUR.POGAU * INTEGER IMPR,IRET integer PGPRO1,PGPRO2 * INTEGER DIMSRF PARAMETER(DIMSRF=3) REAL*8 XCOR(DIMSRF) * * Générateurs pour la cubature de degré 1 à 1 point : GAC3-1-1 : * - [ Fully symmetric ] REAL*8 X1D1,Y1D1,Z1D1,P1D1 PARAMETER (X1D1=0.D0) PARAMETER (Y1D1=0.D0) PARAMETER (Z1D1=0.D0) PARAMETER (P1D1=8.D0) * * Générateurs pour la cubature de degré 3 à 6 points : GAC3-3-6A : * - [ Fully symmetric ] REAL*8 X1D3,Y1D3,Z1D3,P1D3 PARAMETER (X1D3=1.D0) PARAMETER (Y1D3=0.D0) PARAMETER (Z1D3=0.D0) PARAMETER (P1D3=4.D0/3.D0) * * Générateurs pour la cubature de degré 5 à 14 points : GAC3-5-14 : * - [ Fully symmetric ] REAL*8 X1D5,Y1D5,Z1D5,P1D5 PARAMETER (X1D5=0.795822425754221463264548820476135D0) PARAMETER (Y1D5=0.D0) PARAMETER (Z1D5=0.D0) PARAMETER (P1D5=0.886426592797783933518005540166204D0) * - [ Fully symmetric ] REAL*8 X2D5,Y2D5,Z2D5,P2D5 PARAMETER (X2D5=0.758786910639328146269034278112267D0) PARAMETER (Y2D5=0.758786910639328146269034278112267D0) PARAMETER (Z2D5=0.758786910639328146269034278112267D0) PARAMETER (P2D5=0.335180055401662049861495844875346D0) * INTEGER NOPG * * Executable statements * IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans ingacu' * * Méthode de nom : NCC3-1-8 * Sur un cube : cubature d'ordre 1 à 8 points * espace de référence de dimension 3 * * In INIPG : SEGINI PGCOUR $ 1,8,3, $ PGCOUR, $ 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 SEGDES PGCOUR MYPGS.LISPG(**)=PGCOUR * * Méthode de nom : NCC3-3-27 * Sur un cube : cubature d'ordre 3 à 27 points * espace de référence de dimension 3 * * In INIPG : SEGINI PGCOUR $ 3,27,3, $ PGCOUR, $ 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 SEGDES PGCOUR MYPGS.LISPG(**)=PGCOUR * * Méthode de nom : GAC3-1-1 * Sur un cube : cubature d'ordre 1 à 1 point * espace de référence de dimension 3 * * In INIPG : SEGINI PGCOUR $ 1,1,3, $ PGCOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 NOPG=0 XCOR(1)=X1D1 XCOR(2)=Y1D1 XCOR(3)=Z1D1 IF (IRET.NE.0) GOTO 9999 SEGDES PGCOUR MYPGS.LISPG(**)=PGCOUR * * Méthode de nom : GAC3-3-6A * Sur un cube : cubature d'ordre 3 à 6 points * espace de référence de dimension 3 * * In INIPG : SEGINI PGCOUR $ 3,6,3, $ PGCOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 NOPG=0 XCOR(1)=X1D3 XCOR(2)=Y1D3 XCOR(3)=Z1D3 IF (IRET.NE.0) GOTO 9999 SEGDES PGCOUR MYPGS.LISPG(**)=PGCOUR * * Méthode de nom : GPC3-3-8 * Sur un cube : méthode gauss-produit d'ordre 3 à 8 points * espace de référence de dimension 3 * * In INIPG : SEGINI PGCOUR $ 3,8,3, $ PGCOUR, $ 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 SEGDES PGCOUR MYPGS.LISPG(**)=PGCOUR * * Méthode de nom : GAC3-5-14 * Sur un cube : cubature d'ordre 5 à 14 points * espace de référence de dimension 3 * * In INIPG : SEGINI PGCOUR $ 5,14,3, $ PGCOUR, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 NOPG=0 XCOR(1)=X1D5 XCOR(2)=Y1D5 XCOR(3)=Z1D5 IF (IRET.NE.0) GOTO 9999 XCOR(1)=X2D5 XCOR(2)=Y2D5 XCOR(3)=Z2D5 IF (IRET.NE.0) GOTO 9999 SEGDES PGCOUR MYPGS.LISPG(**)=PGCOUR * * Méthode de nom : GPC3-5-27 * Sur un cube : méthode gauss-produit d'ordre 5 à 27 points * espace de référence de dimension 3 * * In INIPG : SEGINI PGCOUR $ 5,27,3, $ PGCOUR, $ 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 SEGDES PGCOUR MYPGS.LISPG(**)=PGCOUR * * Méthode de nom : GPC3-7-64 * Sur un cube : méthode gauss-produit d'ordre 7 à 64 points * espace de référence de dimension 3 * * In INIPG : SEGINI PGCOUR $ 7,64,3, $ PGCOUR, $ 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 SEGDES PGCOUR MYPGS.LISPG(**)=PGCOUR * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine ingacu' RETURN * * End of subroutine INGACU * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales