1 : C GTRO3I SOURCE GOUNAND 05/12/21 21:29:16 5281 2 : SUBROUTINE GTRO3I(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 : GTRO3I 8 : C PROJET : Noyau linéaire NLIN 9 : C DESCRIPTION : Rajoute un point (x1, x2, ..., xn) et ses n-1 images 10 : C par permutation cyclique (x2, ... , xn, x1), etc. 11 : C dans une méthode d'intégration type Gauss (PGCOUR). 12 : C Domaine de type [ Simplex ] 13 : C i.e. triangle et tétrahèdre pour nous 14 : C Générateur de type [ Ro3 invariant ]. 15 : C 16 : C XCOR=xi sont les coordonnées barycentriques... 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 : INGATR, INGATE 24 : C*********************************************************************** 25 : C ENTREES : DIMSRF, XCOR, POIDS 26 : C ENTREES/SORTIES : PGCOUR (actif en *MOD), NOPG 27 : C SORTIES : - 28 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé 29 : C*********************************************************************** 30 : C VERSION : v1, 21/10/99, version initiale 31 : C HISTORIQUE : v1, 21/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+1) 57 : REAL*8 POIDS 58 : INTEGER IMPR,IRET 59 : * 60 : INTEGER ICOOR ,ITOT 61 : INTEGER NOCOOR,NTOT 62 : * 63 : * Executable statements 64 : * 65 : IF (IMPR.GT.6) WRITE(IOIMP,*) 'Entrée dans gtro3i' 66 : * 67 : * On ajoute le point 68 : NTOT=DIMSRF+1 69 : DO 1 ITOT=1,NTOT 70 : NOPG=NOPG+1 71 : DO 12 ICOOR=1,DIMSRF 72 : NOCOOR=MOD((ICOOR+ITOT-1),NTOT)+1 73 : PGCOUR.XCOPG(ICOOR,NOPG)=XCOR(NOCOOR) 74 : 12 CONTINUE 75 : PGCOUR.XPOPG(NOPG)=POIDS 76 : 1 CONTINUE 77 : * 78 : * Normal termination 79 : * 80 : IRET=0 81 : RETURN 82 : * 83 : * Format handling 84 : * 85 : * 86 : * Error handling 87 : * 88 : 9999 CONTINUE 89 : IRET=1 90 : WRITE(IOIMP,*) 'An error was detected in subroutine gtro3i' 91 : RETURN 92 : * 93 : * End of subroutine GTRO3I 94 : * 95 : END 96 : 97 : 98 :
© Cast3M 2003 - All rights reserved.
Disclaimer