1 : C GCRESY SOURCE GOUNAND 05/12/21 21:25:56 5281 2 : SUBROUTINE GCRESY(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 : GCRESY 8 : C PROJET : Noyau linéaire NLIN 9 : C DESCRIPTION : Si on a un point (x1,x2,..,xn), on ajoute les points 10 : C (+-x1,+-x2,...+-xn) dans une méthode d'intégration type 11 : C Gauss (PGCOUR). 12 : C Il y en a 2^n et ils sont distincts si aucun des xi 13 : C n'est nul. 14 : C Domaine de type [ Fully symmetric region ] 15 : C i.e. segment, carré et cube pour nous. 16 : C Générateur de type [ Rectangular symmetry ]. 17 : C 18 : C LANGAGE : ESOPE 19 : C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF) 20 : C mél : gounand@semt2.smts.cea.fr 21 : C*********************************************************************** 22 : C APPELES : - 23 : C APPELE PAR : INGAQU, INGACU 24 : C*********************************************************************** 25 : C ENTREES : DIMSRF, XCOR, POIDS 26 : C ENTREES/SORTIES : PGCOUR (actif en *MOD), NOPG 27 : C SORTIES : MYPGS 28 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 29 : C*********************************************************************** 30 : C VERSION : v1, 20/10/99, version initiale 31 : C HISTORIQUE : v1, 20/10/99, création 32 : C HISTORIQUE : 33 : C HISTORIQUE : 34 : C*********************************************************************** 35 : C Prière de PRENDRE LE TEMPS de compléter les commentaires 36 : C en cas de modification de ce sous-programme afin de faciliter 37 : C la maintenance ! 38 : C*********************************************************************** 39 : -INC CCOPTIO 40 : CBEGININCLUDE SPOGAU 41 : SEGMENT POGAU 42 : CHARACTER*(LNNPG) NOMPG 43 : CHARACTER*(LNTPG) TYPMPG 44 : CHARACTER*(LNFPG) FORLPG 45 : INTEGER NORDPG 46 : REAL*8 XCOPG(NDLPG,NBPG) 47 : REAL*8 XPOPG(NBPG) 48 : ENDSEGMENT 49 : SEGMENT POGAUS 50 : POINTEUR LISPG(0).POGAU 51 : ENDSEGMENT 52 : CENDINCLUDE SPOGAU 53 : POINTEUR PGCOUR.POGAU 54 : * 55 : INTEGER NOPG,DIMSRF 56 : REAL*8 XCOR(DIMSRF) 57 : REAL*8 POIDS 58 : INTEGER IMPR,IRET 59 : * 60 : INTEGER ICOOR,ITOT 61 : INTEGER ICOEFI,NTOT 62 : * 63 : * Executable statements 64 : * 65 : IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans gcresy' 66 : NTOT=2**DIMSRF 67 : DO 1 ITOT=1,NTOT 68 : NOPG=NOPG+1 69 : DO 3 ICOOR=1,DIMSRF 70 : * Formule magique ! 71 : ICOEFI=(-1)**((ITOT-1)/(2**(ICOOR-1))) 72 : PGCOUR.XCOPG(ICOOR,NOPG)=DBLE(ICOEFI)*XCOR(ICOOR) 73 : 3 CONTINUE 74 : PGCOUR.XPOPG(NOPG)=POIDS 75 : 1 CONTINUE 76 : * 77 : * Normal termination 78 : * 79 : IRET=0 80 : RETURN 81 : * 82 : * Format handling 83 : * 84 : * 85 : * Error handling 86 : * 87 : 9999 CONTINUE 88 : IRET=1 89 : WRITE(IOIMP,*) 'An error was detected in subroutine gcresy' 90 : RETURN 91 : * 92 : * End of subroutine GCRESY 93 : * 94 : END 95 : 96 : 97 :
© Cast3M 2003 - All rights reserved.
Disclaimer