Download dcogau.eso

Back to the list

   1 : C DCOGAU    SOURCE    GOUNAND   07/07/05    21:15:19     5784           
   2 :       SUBROUTINE DCOGAU(JCOEFF,JDFFPG,
   3 :      $     JDCOFG,
   4 :      $     IMPR,IRET)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)
   6 :       IMPLICIT INTEGER (I-N)
   7 : C***********************************************************************
   8 : C NOM         : DCOGAU
   9 : C PROJET      : Noyau linéaire NLIN
  10 : C DESCRIPTION : Calcul du coefficient aux points de Gauss d'un élément
  11 : C               de référence pour chaque élément réel.
  12 : C               Le coefficient peut être scalaire, vectoriel ou 
  13 : C               tensoriel. Les fonctions d'interpolation seront les
  14 : C               mêmes pour chaque composante du vecteur ou chaque
  15 : C               coefficient des matrices. 
  16 : C               Les valeurs nodales devront être exprimées par rapport
  17 : C               aux coordonnées de l'espace de référence (par exemple,
  18 : C               s'il y a des dérivées, elles devront être exprimées par
  19 : C               rapport à ksi, eta...) 
  20 : C               Si les valeurs sont des variables généralisées, il n'y
  21 : C               a peut-être rien à faire. (?)
  22 : C
  23 : C
  24 : C LANGAGE     : ESOPE
  25 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  26 : C               mél : gounand@semt2.smts.cea.fr
  27 : C***********************************************************************
  28 : C APPELES          : PRCHVA (impression d'un segment de type MCHEVA)
  29 : C                    DCOGA1  (calcul de JDCOFG (fortran 77))
  30 : C APPELE PAR       : NLIN
  31 : C***********************************************************************
  32 : C ENTREES            :
  33 : C ENTREES/SORTIES    : -
  34 : C SORTIES            :
  35 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  36 : C***********************************************************************
  37 : C VERSION    : v3.1, 30/07/04, possiblité de travailler 
  38 : C                              dans l'espace de référence
  39 : C VERSION    : v1, 26/08/03, version initiale
  40 : C HISTORIQUE : v1, 26/08/03, création
  41 : C HISTORIQUE :
  42 : C HISTORIQUE :
  43 : C***********************************************************************
  44 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  45 : C en cas de modification de ce sous-programme afin de faciliter
  46 : C la maintenance !
  47 : C***********************************************************************
  48 : -INC CCOPTIO
  49 : CBEGININCLUDE SMCHAEL
  50 :       SEGMENT MCHAEL
  51 :       POINTEUR IMACHE(N1).MELEME
  52 :       POINTEUR ICHEVA(N1).MCHEVA
  53 :       ENDSEGMENT
  54 :       SEGMENT MCHEVA
  55 :       REAL*8 VELCHE(NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM)
  56 :       ENDSEGMENT
  57 :       SEGMENT LCHEVA
  58 :       POINTEUR LISCHE(NBCHE).MCHEVA
  59 :       ENDSEGMENT
  60 : CENDINCLUDE SMCHAEL
  61 :       INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM
  62 :       POINTEUR JCOEFF.MCHEVA
  63 :       POINTEUR JDCOFG.MCHEVA
  64 : * Valeurs des fns d'interpolation du coeff. aux points de Gauss
  65 :       POINTEUR JDFFPG.MCHEVA
  66 : *
  67 :       INTEGER IMPR,IRET
  68 : *
  69 :       INTEGER NDLIG,NDCOL,N2DLIG,N2DCOL,NDNOEU,NLDF,NLCO
  70 :       INTEGER NDDL,IESREL,NBPOGO,NBELEM
  71 : *     
  72 : * Executable statements
  73 : *
  74 :       IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dcogau'
  75 : *      IESREL=IDIM
  76 :       SEGACT JDFFPG
  77 :       NDLIG=JDFFPG.VELCHE(/1)
  78 :       NDCOL=JDFFPG.VELCHE(/2)
  79 :       N2DLIG=JDFFPG.VELCHE(/3)
  80 :       IESP=JDFFPG.VELCHE(/4)
  81 :       NDNOEU=JDFFPG.VELCHE(/5)
  82 :       NLDF  =JDFFPG.VELCHE(/6)
  83 : * Correction pour l'option 'EREF', les gradients sont alors 
  84 : * dans l'espace de référence
  85 : *      IF (NDLIG.NE.1.OR.N2DLIG.NE.1.OR.N2DCOL.NE.IESREL) THEN
  86 :       IF (NDLIG.NE.1.OR.N2DLIG.NE.1) THEN
  87 :          WRITE(IOIMP,*) 'Erreur dims JDFFPG'
  88 :          GOTO 9999
  89 :       ENDIF
  90 :       NDDL=NDCOL
  91 :       NBPOGO=NDNOEU
  92 : *      NBELEM=NDELM
  93 :       SEGACT JCOEFF
  94 :       NDLIG=JCOEFF.VELCHE(/1)
  95 :       NDCOL=JCOEFF.VELCHE(/2)
  96 :       N2DLIG=JCOEFF.VELCHE(/3)
  97 :       N2DCOL=JCOEFF.VELCHE(/4)
  98 :       NDNOEU=JCOEFF.VELCHE(/5)
  99 :       NLCO  =JCOEFF.VELCHE(/6)
 100 :       IF (NDLIG.NE.1.OR.N2DLIG.NE.1.OR.N2DCOL.NE.1.OR.NDNOEU.NE.1) THEN
 101 : *     $     .OR.NDELM.NE.NBELEM) THEN
 102 :          WRITE(IOIMP,*) 'Erreur dims JCOEFF'
 103 :          GOTO 9999
 104 :       ENDIF
 105 :       NBELEM=MAX(NLDF,NLCO)
 106 :       IF (NLDF.NE.1.AND.NLDF.NE.NBELEM) THEN
 107 :          WRITE(IOIMP,*) 'Erreur nb. elem. JDFFPG'
 108 :          GOTO 9999
 109 :       ENDIF
 110 :       IF (NLCO.NE.1.AND.NLCO.NE.NBELEM) THEN
 111 :          WRITE(IOIMP,*) 'Erreur nb. elem. JCOEFF'
 112 :          GOTO 9999
 113 :       ENDIF
 114 : *      
 115 : * Initialisations...
 116 : *
 117 :       NBLIG=1
 118 :       NBCOL=1
 119 :       N2LIG=1
 120 :       N2COL=IESP
 121 :       NBPOI=NBPOGO
 122 :       NBELM=NBELEM
 123 :       SEGINI JDCOFG
 124 : *
 125 : * On effectue le calcul du coefficient aux points de Gauss
 126 : *
 126 :       CALL DCOGA1(NDDL,IESP,NBPOGO,NLDF,NLCO,NBELEM,
 127 :      $     JCOEFF.VELCHE,JDFFPG.VELCHE,
 128 :      $     JDCOFG.VELCHE,
 129 :      $     IMPR,IRET)
 130 :       IF (IRET.NE.0) GOTO 9999
 131 :       SEGDES JDCOFG
 132 :       SEGDES JCOEFF
 133 :       SEGDES JDFFPG
 134 :       IF (IMPR.GT.3) THEN
 135 :          WRITE(IOIMP,*) 'On a créé',
 136 :      $        ' JDCOFG(élément , poi.gauss ,',
 137 :      $        ' dim.esp.rel ,1,1,1)'
 137 :          CALL PRCHVA(JDCOFG,IMPR,IRET)
 138 :          IF (IRET.NE.0) GOTO 9999
 139 :       ENDIF
 140 : *
 141 : * Normal termination
 142 : *
 143 :       IRET=0
 144 :       RETURN
 145 : *
 146 : * Format handling
 147 : *
 148 : *
 149 : * Error handling
 150 : *
 151 :  9999 CONTINUE
 152 :       IRET=1
 153 :       WRITE(IOIMP,*) 'An error was detected in subroutine dcogau'
 154 :       RETURN
 155 : *
 156 : * End of subroutine DCOGAU
 157 : *
 158 :       END
 159 : 
 160 :  
 161 :  

© Cast3M 2003 - All rights reserved.
Disclaimer