1 : C GCFS2 SOURCE GOUNAND 05/12/21 21:24:27 5281 2 : SUBROUTINE GCFS2(PGCOUR,NOPG,DIMSRF,XCOR,POIDS, 3 : $ IMPR,IRET) 4 : IMPLICIT REAL*8 (A-H,O-Z) 5 : IMPLICIT INTEGER (I-N) 6 : C*********************************************************************** 7 : C NOM : GCFS2 8 : C PROJET : Noyau linéaire NLIN 9 : C DESCRIPTION : Rajoute des points à une méthode d'intégration type 10 : C Gauss (PGCOUR). 11 : C Domaine de type [ Fully symmetric region ] 12 : C i.e. segment, carré et cube pour nous. 13 : C Générateur de type [ Fully symmetric ]. 14 : C Rule structure of index 2 i.e. 15 : C XCOR=(a,0,...,0) 16 : C 17 : C le nombre de points générés est 2*DIMSRF : 18 : C (a,0,...,0), (-a,0,...,0) 19 : C (0,a,...,0), (0,-a,...,0) et les autres permutations 20 : C 21 : C LANGAGE : ESOPE 22 : C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) 23 : C mél : gounand@semt2.smts.cea.fr 24 : C*********************************************************************** 25 : C APPELES : - 26 : C APPELE PAR : INGACU 27 : C*********************************************************************** 28 : C ENTREES : DIMSRF, XCOR, POIDS 29 : C ENTREES/SORTIES : PGCOUR (actif en *MOD), NOPG 30 : C SORTIES : MYPGS 31 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 32 : C*********************************************************************** 33 : C VERSION : v1, 20/10/99, version initiale 34 : C HISTORIQUE : v1, 20/10/99, création 35 : C HISTORIQUE : 36 : C HISTORIQUE : 37 : C*********************************************************************** 38 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 39 : C en cas de modification de ce sous-programme afin de faciliter 40 : C la maintenance ! 41 : C*********************************************************************** 42 : -INC CCOPTIO 43 : CBEGININCLUDE SPOGAU 44 : SEGMENT POGAU 45 : CHARACTER*(LNNPG) NOMPG 46 : CHARACTER*(LNTPG) TYPMPG 47 : CHARACTER*(LNFPG) FORLPG 48 : INTEGER NORDPG 49 : REAL*8 XCOPG(NDLPG,NBPG) 50 : REAL*8 XPOPG(NBPG) 51 : ENDSEGMENT 52 : SEGMENT POGAUS 53 : POINTEUR LISPG(0).POGAU 54 : ENDSEGMENT 55 : CENDINCLUDE SPOGAU 56 : POINTEUR PGCOUR.POGAU 57 : * 58 : INTEGER NOPG,DIMSRF 59 : REAL*8 XCOR(DIMSRF) 60 : REAL*8 POIDS 61 : INTEGER IMPR,IRET 62 : * 63 : INTEGER IPERM,ISIGN,ICOOP 64 : * 65 : * Executable statements 66 : * 67 : IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans gcfs2' 68 : * 69 : * Boucle sur les permutations 70 : DO 1 IPERM=1,DIMSRF 71 : * Boucle sur le signe 72 : DO 12 ISIGN=1,2 73 : NOPG=NOPG+1 74 : * Boucle sur les coordonnées du point 75 : DO 122 ICOOP=1,DIMSRF 76 : IF (ICOOP.EQ.IPERM) THEN 77 : PGCOUR.XCOPG(ICOOP,NOPG)= 78 : $ DBLE((-1)**ISIGN) 79 : $ *XCOR(1) 80 : ELSE 81 : PGCOUR.XCOPG(ICOOP,NOPG)=0.D0 82 : ENDIF 83 : 122 CONTINUE 84 : PGCOUR.XPOPG(NOPG)=POIDS 85 : 12 CONTINUE 86 : 1 CONTINUE 87 : * 88 : * Normal termination 89 : * 90 : IRET=0 91 : RETURN 92 : * 93 : * Format handling 94 : * 95 : * 96 : * Error handling 97 : * 98 : 9999 CONTINUE 99 : IRET=1 100 : WRITE(IOIMP,*) 'An error was detected in subroutine gcfs2' 101 : RETURN 102 : * 103 : * End of subroutine GCFS2 104 : * 105 : END 106 : 107 : 108 :
© Cast3M 2003 - All rights reserved.
Disclaimer