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