dcogau
C DCOGAU SOURCE GOUNAND 21/06/02 21:15:45 11022 $ JDCOFG, $ IMPR,IRET) IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : DCOGAU C PROJET : Noyau linéaire NLIN C DESCRIPTION : Calcul du coefficient aux points de Gauss d'un élément C de référence pour chaque élément réel. C Le coefficient peut être scalaire, vectoriel ou C tensoriel. Les fonctions d'interpolation seront les C mêmes pour chaque composante du vecteur ou chaque C coefficient des matrices. C Les valeurs nodales devront être exprimées par rapport C aux coordonnées de l'espace de référence (par exemple, C s'il y a des dérivées, elles devront être exprimées par C rapport à ksi, eta...) C Si les valeurs sont des variables généralisées, il n'y C a peut-être rien à faire. (?) C 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 : PRCHVA (impression d'un segment de type MCHEVA) C DCOGA1 (calcul de JDCOFG (fortran 77)) C APPELE PAR : NLIN C*********************************************************************** C ENTREES : C ENTREES/SORTIES : - C SORTIES : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v3.1, 30/07/04, possiblité de travailler C dans l'espace de référence C VERSION : v1, 26/08/03, version initiale C HISTORIQUE : v1, 26/08/03, 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 SMCHAEL INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM POINTEUR JCOEFF.MCHEVA POINTEUR JDCOFG.MCHEVA * Valeurs des fns d'interpolation du coeff. aux points de Gauss POINTEUR JDFFPG.MCHEVA * INTEGER IMPR,IRET * INTEGER NDLIG,NDCOL,N2DLIG,N2DCOL,NDNOEU,NLDF,NLCO INTEGER NDDL,IESREL,NBPOGO,NBELEM * * Executable statements * IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dcogau' * IESREL=IDIM SEGACT JDFFPG NDLIG=JDFFPG.WELCHE(/1) NDCOL=JDFFPG.WELCHE(/2) N2DLIG=JDFFPG.WELCHE(/3) IESP=JDFFPG.WELCHE(/4) NDNOEU=JDFFPG.WELCHE(/5) NLDF =JDFFPG.WELCHE(/6) * Correction pour l'option 'EREF', les gradients sont alors * dans l'espace de référence * IF (NDLIG.NE.1.OR.N2DLIG.NE.1.OR.N2DCOL.NE.IESREL) THEN IF (NDLIG.NE.1.OR.N2DLIG.NE.1) THEN WRITE(IOIMP,*) 'Erreur dims JDFFPG' GOTO 9999 ENDIF NDDL=NDCOL NBPOGO=NDNOEU * NBELEM=NDELM SEGACT JCOEFF NDLIG=JCOEFF.WELCHE(/1) NDCOL=JCOEFF.WELCHE(/2) N2DLIG=JCOEFF.WELCHE(/3) N2DCOL=JCOEFF.WELCHE(/4) NDNOEU=JCOEFF.WELCHE(/5) NLCO =JCOEFF.WELCHE(/6) IF (NDLIG.NE.1.OR.N2DLIG.NE.1.OR.N2DCOL.NE.1.OR.NDNOEU.NE.1) THEN * $ .OR.NDELM.NE.NBELEM) THEN WRITE(IOIMP,*) 'Erreur dims JCOEFF' GOTO 9999 ENDIF NBELEM=MAX(NLDF,NLCO) IF (NLDF.NE.1.AND.NLDF.NE.NBELEM) THEN WRITE(IOIMP,*) 'Erreur nb. elem. JDFFPG' GOTO 9999 ENDIF IF (NLCO.NE.1.AND.NLCO.NE.NBELEM) THEN WRITE(IOIMP,*) 'Erreur nb. elem. JCOEFF' GOTO 9999 ENDIF * * Initialisations... * NBLIG=1 NBCOL=1 N2LIG=1 N2COL=IESP NBPOI=NBPOGO NBELM=NBELEM SEGINI JDCOFG * * On effectue le calcul du coefficient aux points de Gauss * $ JCOEFF.WELCHE,JDFFPG.WELCHE, $ JDCOFG.WELCHE, $ IMPR,IRET) IF (IRET.NE.0) GOTO 9999 SEGDES JDCOFG SEGDES JCOEFF SEGDES JDFFPG IF (IMPR.GT.3) THEN WRITE(IOIMP,*) 'On a créé', $ ' JDCOFG(élément , poi.gauss ,', $ ' dim.esp.rel ,1,1,1)' IF (IRET.NE.0) GOTO 9999 ENDIF * * Normal termination * IRET=0 RETURN * * Format handling * * * Error handling * 9999 CONTINUE IRET=1 WRITE(IOIMP,*) 'An error was detected in subroutine dcogau' RETURN * * End of subroutine DCOGAU * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales