Télécharger fluma1.eso

Retour à la liste

Numérotation des lignes :

  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
  90. CALL EXCOO1(NUMPOI,XDIR,YDIR,ZDIR,DENS)
  91. DNORME=ABS(XDIR)
  92. IF (DNORME.LT.XPETIT) THEN
  93. CALL ERREUR(417)
  94. RETURN
  95. ENDIF
  96. XDIR=XDIR/DNORME
  97. ENDIF
  98.  
  99. C= BOUCLE SUR LES ELEMENTS
  100. DO IEL=1,NEL
  101.  
  102. * ON CHERCHE LES COORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL
  103. CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,IEL,XE)
  104.  
  105. C= Cas des elements AXISymetriques et SPHEriques
  106. IF (IFOUR.GE.12.AND.IFOUR.LE.14) THEN
  107. Volu=X2Pi*XE(1,1)
  108. ELSE IF (IFOUR.EQ.15) THEN
  109. RR=XE(1,1)
  110. Volu=X4Pi*RR*RR
  111. ELSE
  112. Volu=1.
  113. ENDIF
  114. IEMIN=MIN(IEL,NEL1)
  115. C on oriente la vraie normale suivant la pseudo
  116. IF (NUMPOI.EQ.1) THEN
  117. S1=MELVA2.VELCHE(1,IEMIN)
  118. XDIR=S1/ABS(S1)
  119. ENDIF
  120. VELCHE(1,IEL)=VELCHE(1,IEL)+Volu*XDIR*MELVA1.VELCHE(1,IEMIN)
  121. ENDDO
  122.  
  123. SEGSUP,MMAT1
  124. SEGDES,MELEME,MELVA1,MINTE
  125. SEGDES,MELVAL
  126. IF (NUMPOI.EQ.1) SEGDES,MELVA2
  127.  
  128. RETURN
  129. END
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales