Download fluma1.eso

Back to the list

   1 : C FLUMA1    SOURCE    PV        09/03/12    21:22:49     6325           
   2 : 
   3 : C=======================================================================
   4 : C=                            F L U M A 1                              =
   5 : C=                            -----------                              =
   6 : C=                                                                     =
   7 : C=  Fonction :                                                         =
   8 : C=  ----------                                                         =
   9 : C=   Calcul des flux nodaux equivalents dans le cas UNDIMENSIONNEL     =
  10 : C=                                                                     =
  11 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  12 : C=  ------------                                                       =
  13 : C=   IPFLOD   (E)   Pointeur sur le segment MELVAL des FLUX NODAUX     =
  14 : C=   IPGEOM   (E)   Pointeur sur un objet MAILLAGE elementaire         =
  15 : C=   IPINTE   (E)   Pointeur sur un segment MINTE contenant les        =
  16 : C=                  caracteristiques d'integration                     =
  17 : C=   NUMPOI   (E)   Indique la direction du flux dans le repere global =
  18 : C=                  = -1 lorsque le flux est normal a la face          =
  19 : C=                  = 1  pour la syntaxe 3 (flux d un vecteur)         =
  20 : C=   IPFLEQ   (S)   Pointeur sur un segment MELVAL contenant les       =
  21 : C=                  flux nodaux equivalents                            =
  22 : C=======================================================================
  23 : 
  24 :       SUBROUTINE FLUMA1 (IPFLOD,IPGEOM,IPINTE,NUMPOI,IPFLEQ)
  25 : 
  26 :       IMPLICIT INTEGER(I-N)
  27 :       IMPLICIT REAL*8 (A-H,O-Z)
  28 : 
  29 : -INC CCOPTIO
  30 : -INC CCREEL
  31 : -INC SMCHAML
  32 : -INC SMELEME
  33 : -INC SMINTE
  34 : -INC SMCOORD
  35 : 
  36 :       SEGMENT MMAT1
  37 :         REAL*8 XE(3,NBPTEL),SHP(6,NBPTEL)
  38 :       ENDSEGMENT
  39 : 
  40 : C= Quelques constantes (2.Pi et 4.Pi)
  41 :       PARAMETER (X2Pi=6.283185307179586476925286766559D0)
  42 :       PARAMETER (X4Pi=12.566370614359172953850573533118D0)
  43 : 
  44 : C ON RECUPERE LES VALEURS NODALES DU FLUX
  45 :       IF (NUMPOI.NE.1) THEN
  46 :         MELVA1=IPFLOD
  47 :         SEGACT,MELVA1
  48 :         NBPTE1=MELVA1.VELCHE(/1)
  49 :         NEL1=MELVA1.VELCHE(/2)
  50 :       ELSE
  51 :         MCHAM1=IPFLOD
  52 :         SEGACT,MCHAM1
  53 :         MELVA1=MCHAM1.IELVAL(1)
  54 :         MELVA2=MCHAM1.IELVAL(2)
  55 :         SEGACT,MELVA1,MELVA2
  56 :         NBPTE1=MELVA1.VELCHE(/1)
  57 :         NEL1=MELVA1.VELCHE(/2)
  58 :         SEGDES,MCHAM1
  59 :       ENDIF
  60 : 
  61 : * ON RECUPERE LES CARACTERISTIQUES D'INTEGRATION DES FACES
  62 :       MINTE=IPINTE
  63 :       SEGACT,MINTE
  64 :       NBPGAU=POIGAU(/1)
  65 : 
  66 : * ON RECUPERE UN DES MAILLAGES ELEMENTAIRES DE L'ENVELOPPE
  67 :       MELEME=IPGEOM
  68 :       SEGACT,MELEME
  69 :       NBPTEL=NUM(/1)
  70 :       NEL=NUM(/2)
  71 : 
  72 : C*OF  IF ((NBPGAU.NE.1).OR.(NBPTEL.NE.1)) THEN
  73 : C*OF    WRITE(6,*) 'ERREUR FATALE : FLUMA1'
  74 : C*OF    RETURN
  75 : C*OF  ENDIF
  76 : 
  77 : * MELVAL QUI CONTIENDRA LES FLUX NODAUX EQUIVALENTS
  78 :       N1PTEL=NBPTEL
  79 :       N1EL=NEL
  80 :       N2PTEL=0
  81 :       N2EL=0
  82 :       SEGINI,MELVAL
  83 :       IPFLEQ=MELVAL
  84 :       SEGINI,MMAT1
  85 : 
  86 : C= ON RECUPERE LES COORDONNEES DU VECTEUR DIRECTION
  87 : C= ERREUR SI LA DONNEE DE LA DIRECTION DU FLUX EST NULLE
  88 :       XDIR=1.
  89 :       IF ((NUMPOI.NE.-1).AND.(NUMPOI.NE.1)) THEN
  89 :         CALL EXCOO1(NUMPOI,XDIR,YDIR,ZDIR,DENS)
  90 :         DNORME=ABS(XDIR)
  91 :         IF (DNORME.LT.XPETIT) THEN
  91 :           CALL ERREUR(417)
  92 :           RETURN
  93 :         ENDIF
  94 :         XDIR=XDIR/DNORME
  95 :       ENDIF
  96 : 
  97 : C= BOUCLE SUR LES ELEMENTS
  98 :       DO IEL=1,NEL
  99 : 
 100 : *  ON CHERCHE LES COORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL
 100 :         CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,IEL,XE)
 101 : 
 102 : C= Cas des elements AXISymetriques et SPHEriques
 103 :         IF (IFOUR.GE.12.AND.IFOUR.LE.14) THEN
 104 :           Volu=X2Pi*XE(1,1)
 105 :         ELSE IF (IFOUR.EQ.15) THEN
 106 :           RR=XE(1,1)
 107 :           Volu=X4Pi*RR*RR
 108 :         ELSE
 109 :           Volu=1.
 110 :         ENDIF
 111 :         IEMIN=MIN(IEL,NEL1)
 112 : C  on oriente la vraie normale suivant la pseudo
 113 :         IF (NUMPOI.EQ.1) THEN
 114 :           S1=MELVA2.VELCHE(1,IEMIN)
 115 :           XDIR=S1/ABS(S1)
 116 :         ENDIF
 117 :         VELCHE(1,IEL)=VELCHE(1,IEL)+Volu*XDIR*MELVA1.VELCHE(1,IEMIN)
 118 :       ENDDO
 119 : 
 120 :       SEGSUP,MMAT1
 121 :       SEGDES,MELEME,MELVA1,MINTE
 122 :       SEGDES,MELVAL
 123 :       IF (NUMPOI.EQ.1) SEGDES,MELVA2
 124 : 
 125 :       RETURN
 126 :       END
 127 : 
 128 :  
 129 :  
 130 :  
 131 :  

© Cast3M 2003 - All rights reserved.
Disclaimer