fluma1
C FLUMA1 SOURCE FANDEUR 22/01/12 21:15:01 11264 C======================================================================= C= F L U M A 1 = C= ----------- = C= = C= Fonction : = C= ---------- = C= Calcul des flux nodaux equivalents dans le cas UNDIMENSIONNEL = C= = C= Parametres : (E)=Entree (S)=Sortie = C= ------------ = C= IPFLOD (E) Pointeur sur le segment MELVAL des FLUX NODAUX = C= IPGEOM (E) Pointeur sur un objet MAILLAGE elementaire = C= IPINTE (E) Pointeur sur un segment MINTE contenant les = C= caracteristiques d'integration = C= NUMPOI (E) Indique la direction du flux dans le repere global = C= = -1 lorsque le flux est normal a la face = C= = 1 pour la syntaxe 3 (flux d un vecteur) = C= IPFLEQ (S) Pointeur sur un segment MELVAL contenant les = C= flux nodaux equivalents = C======================================================================= IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCREEL -INC SMCHAML -INC SMELEME -INC SMINTE -INC SMCOORD SEGMENT MMAT1 REAL*8 XE(3,NBPTEL),SHP(6,NBPTEL) ENDSEGMENT PARAMETER (XUn=1.D0) C= Quelques constantes (2.Pi et 4.Pi) PARAMETER (X2Pi=6.283185307179586476925286766559D0) PARAMETER (X4Pi=12.566370614359172953850573533118D0) IPFLEQ = 0 C ON RECUPERE LES VALEURS NODALES DU FLUX IF (NUMPOI.NE.1) THEN MELVA1=IPFLOD NBPTE1=MELVA1.VELCHE(/1) NEL1 =MELVA1.VELCHE(/2) ELSE MCHAM1=IPFLOD MELVA1=MCHAM1.IELVAL(1) MELVA2=MCHAM1.IELVAL(2) NBPTE1=MELVA1.VELCHE(/1) NEL1 =MELVA1.VELCHE(/2) ENDIF * ON RECUPERE LES CARACTERISTIQUES D'INTEGRATION DES FACES MINTE =IPINTE NBPGAU=POIGAU(/1) * ON RECUPERE UN DES MAILLAGES ELEMENTAIRES DE L'ENVELOPPE MELEME=IPGEOM NBPTEL=NUM(/1) NEL =NUM(/2) C*OF IF ((NBPGAU.NE.1).OR.(NBPTEL.NE.1)) THEN C*OF WRITE(6,*) 'ERREUR FATALE : FLUMA1' C*OF RETURN C*OF ENDIF * MELVAL QUI CONTIENDRA LES FLUX NODAUX EQUIVALENTS N1PTEL=NBPTEL N1EL =NEL N2PTEL=0 N2EL =0 SEGINI,MELVAL * Segment de travail local SEGINI,MMAT1 C= ON RECUPERE LES COORDONNEES DU VECTEUR DIRECTION C= ERREUR SI LA DONNEE DE LA DIRECTION DU FLUX EST NULLE XDIR=XUn IF ((NUMPOI.NE.-1).AND.(NUMPOI.NE.1)) THEN IF (ABS(XDIR).LT.XPETIT) THEN RETURN ENDIF XDIR=SIGN(XUn,XDIR) ENDIF C= BOUCLE SUR LES ELEMENTS DO IEL=1,NEL * ON CHERCHE LES COORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL C= Cas des elements AXISymetriques et SPHEriques IF (IFOUR.GE.12.AND.IFOUR.LE.14) THEN Volu=X2Pi*XE(1,1) ELSE IF (IFOUR.EQ.15) THEN RR=XE(1,1) Volu=X4Pi*RR*RR ELSE Volu=XUn ENDIF IEMIN=MIN(IEL,NEL1) C on oriente la vraie normale suivant la pseudo IF (NUMPOI.EQ.1) THEN S1=MELVA2.VELCHE(1,IEMIN) IF (ABS(S1).LT.XPETIT) THEN RETURN ENDIF XDIR=SIGN(XUn,S1) ENDIF VELCHE(1,IEL)=VELCHE(1,IEL)+Volu*XDIR*MELVA1.VELCHE(1,IEMIN) ENDDO SEGSUP,MMAT1 IPFLEQ=MELVAL c RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales