Télécharger fluma2.eso

Retour à la liste

Numérotation des lignes :

  1. C FLUMA2 SOURCE PV 09/03/12 21:22:50 6325
  2. SUBROUTINE FLUMA2(IPFLOD,IPGEOM,IPINTE,NUMPOI,IPFLEQ)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. ************************************************************************
  6. *
  7. * F L U M A 2
  8. * -----------
  9. *
  10. * FONCTION:
  11. * ---------
  12. * CALCUL DES FLUX NODAUX EQUIVALENTS
  13. * MODE BIDIMENSIONNEL OU MODE AXISYMETRIQUE
  14. *
  15. * MODULES UTILISES:
  16. * -----------------
  17. *
  18. -INC CCOPTIO
  19. -INC CCREEL
  20. -INC SMCHAML
  21. -INC SMELEME
  22. -INC SMINTE
  23. -INC SMCOORD
  24. *
  25. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  26. * -----------
  27. *
  28. * IPFLOD (E) POINTEUR SUR UN SEGMENT MELVAL CONTENANT LES
  29. * FLUX NODAUX
  30. * IPGEOM (E) POINTEUR SUR UN OBJET MAILLAGE ELEMENTAIRE
  31. * DE L'ENVELOPPE
  32. * IPINTE (E) POINTEUR SUR UN SEGMENT MINTE CONTENANT LES
  33. * CARACTERISTIQUES D'INTEGRATION DES FACES
  34. * +IDIM (E) VOIR CCOPTIO
  35. * +XZERO (E) VOIR CCREEL
  36. * +XPETIT (E) VOIR CCREEL
  37. * +XPI (E) VOIR CCREEL
  38. * NUMPOI (E) REFERENCE LA DIRECTION DU FLUX DANS LE REPERE GLOBAL
  39. * = -1 LORSQUE LE FLUX EST NORMAL A LA FACE
  40. * MIS A 1 POUR LA SYNTAXE 3 (FLUX D UN VECTEUR)
  41. * IPFLEQ (S) POINTEUR SUR UN SEGMENT MELVAL CONTENANT LES
  42. * FLUX NODAUX EQUIVALENTS
  43. *
  44. INTEGER NUMPOI
  45. *
  46. * VARIABLES:
  47. * ----------
  48. *
  49. * XE(3,NBPTEL) = CORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL
  50. * FACE = FACE DE L'ELEMENT
  51. * COSDIR = COSINUS DIRECTEUR DE L'INCLINAISON DU FLUX
  52. *
  53. SEGMENT,MMAT1
  54. REAL*8 XE(3,NBPTEL),SHP(6,NBPTEL)
  55. ENDSEGMENT
  56. *
  57. * CONSTANTES:
  58. * -----------
  59. *
  60. PARAMETER ( O1=1.D0 )
  61. PARAMETER ( O2=2.D0 )
  62. *
  63. * AUTEUR, DATE DE CREATION:
  64. * -------------------------
  65. *
  66. * DENIS ROBERT,LE 2 FEVRIER 1988.
  67. *
  68. * LANGAGE:
  69. * --------
  70. *
  71. * ESOPE + FORTRAN77
  72. *
  73. ************************************************************************
  74. *
  75. * ON RECUPERE LES VALEURS NODALES DU FLUX
  76. *
  77. IF(NUMPOI.NE.1) THEN
  78. MELVA1=IPFLOD
  79. SEGACT,MELVA1
  80. NBPTE1=MELVA1.VELCHE(/1)
  81. NEL1=MELVA1.VELCHE(/2)
  82. ELSE
  83. MCHAM1=IPFLOD
  84. SEGACT,MCHAM1
  85. MELVA1=MCHAM1.IELVAL(1)
  86. MELVA2=MCHAM1.IELVAL(2)
  87. MELVA3=MCHAM1.IELVAL(3)
  88. MELVA4=MCHAM1.IELVAL(4)
  89. SEGACT MELVA1,MELVA2,MELVA3,MELVA4
  90. NBPTE1 = MELVA1.VELCHE(/1)
  91. NEL1 = MELVA1.VELCHE(/2)
  92. SEGDES MCHAM1
  93. ENDIF
  94. *
  95. * ON RECUPERE LES CARACTERISTIQUES D'INTEGRATION DES FACES
  96. *
  97. MINTE=IPINTE
  98. SEGACT,MINTE
  99. NBPGAU=POIGAU(/1)
  100. *
  101. * ON RECUPERE UN DES MAILLAGES ELEMENTAIRES DE L'ENVELOPPE
  102. *
  103. MELEME=IPGEOM
  104. SEGACT,MELEME
  105. NBPTEL=NUM(/1)
  106. NEL=NUM(/2)
  107. *
  108. * MELVAL QUI CONTIENDRA LES FLUX NODAUX EQUIVALENTS
  109. *
  110. N1PTEL=NBPTEL
  111. N1EL=NEL
  112. N2PTEL=0
  113. N2EL=0
  114. SEGINI,MELVAL
  115. IPFLEQ=MELVAL
  116. SEGINI,MMAT1
  117. *
  118. * CAS D'UN FLUX INCLINE PAR RAPPORT A LA NORMALE A LA FACE
  119. *
  120. COSDIR=O1
  121. IF ((NUMPOI.NE.-1).AND.(NUMPOI.NE.1)) THEN
  122. *
  123. * ON RECUPERE LES COORDONNEES DU VECTEUR DIRECTION
  124. *
  125. CALL EXCOO1(NUMPOI,XDIR,YDIR,ZDIR,DENS)
  126. *
  127. * ON PROJETTE LA DIRECTION DANS LE PLAN (OX|OY)
  128. *
  129. DNORME=SQRT(XDIR**2+YDIR**2)
  130. IF (DNORME.LT.XPETIT) THEN
  131. *
  132. * ERREUR DANS LA DONNEE DE LA DIRECTION DU FLUX
  133. *
  134. CALL ERREUR(417)
  135. RETURN
  136. ENDIF
  137. XDIRNO=XDIR/DNORME
  138. YDIRNO=YDIR/DNORME
  139. COSDIR=O2
  140. ENDIF
  141. *
  142. * BOUCLE SUR LES ELEMENTS
  143. *
  144. DO 10 IEL=1,NEL
  145. *
  146. * ON CHERCHE LES COORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL
  147. *
  148. CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,IEL,XE)
  149.  
  150. *
  151. * BOUCLES SUR LES POINTS DE GAUSS
  152. *
  153. DO 40 IGAU=1,NBPGAU
  154. AXIS=O1
  155. *
  156. * CONTRIBUTION DE LA FACE AU POINT DE GAUSS
  157. *
  158. DLX=XZERO
  159. DLY=XZERO
  160. DO 30 INOE=1,NBPTEL
  161. DLX=DLX+SHPTOT(2,INOE,IGAU)*XE(1,INOE)
  162. DLY=DLY+SHPTOT(2,INOE,IGAU)*XE(2,INOE)
  163. 30 CONTINUE
  164. * END DO
  165. FACE=SQRT(DLX**2+DLY**2)
  166. *
  167. * SI ON A UN FLUX INCLINE,CALCUL DU COSINUS DIRECTEUR
  168. DIRNOR=COSDIR
  169. IF ((COSDIR.NE.O1).AND.(NUMPOI.NE.1)) THEN
  170. DIRNOR=ABS(YDIRNO*(DLX/FACE)-XDIRNO*(DLY/FACE))
  171. ENDIF
  172. IF (IFOMOD.EQ.0) THEN
  173. *
  174. * CAS DES ELEMENTS AXISYMETRIQUES
  175. *
  176. DO 41 NP=1,NBPTEL
  177. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  178. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  179. SHP(3,NP)=SHPTOT(3,NP,IGAU)
  180. 41 CONTINUE
  181. * END DO
  182. CALL DISTRR(XE,SHP,NBPTEL,RR)
  183. AXIS=O2*XPI*RR
  184. ENDIF
  185. IEMIN = MIN(IEL,NEL1)
  186. IGMN = MIN(IGAU,NBPTE1)
  187.  
  188. IF (NUMPOI.EQ.1) THEN
  189. C on oriente la vraie normale suivant la pseudo
  190. S1 = MELVA3.VELCHE(IGMN,IEMIN)
  191. S2 = MELVA4.VELCHE(IGMN,IEMIN)
  192. amu, = 1.D0
  193. ps = -S1*dly+S2*dlx
  194. if(ps.lt.0) amul = -1.D0
  195. dlx= dlx*amul
  196. dly= dly*amul
  197. T1 = POIGAU(IGAU)*(MELVA2.VELCHE(IGMN,IEMIN)*DLX
  198. 1 -MELVA1.VELCHE(IGMN,IEMIN)*DLY)*AXIS
  199.  
  200. ELSE
  201. T1 =POIGAU(IGAU)*AXIS*DIRNOR*FACE*
  202. 1 MELVA1.VELCHE(IGMN,IEMIN)
  203. ENDIF
  204. DO 50 J=1,NBPTEL
  205. VELCHE(J,IEL) = VELCHE(J,IEL) + SHPTOT(1,J,IGAU)*T1
  206. 50 CONTINUE
  207.  
  208. * END DO
  209. 40 CONTINUE
  210. * END DO
  211.  
  212. * END DO
  213. 10 CONTINUE
  214. * END DO
  215. SEGSUP,MMAT1
  216. SEGDES,MELEME,MELVA1,MINTE
  217. SEGDES,MELVAL
  218. IF(NUMPOI.EQ.1) THEN
  219. SEGDES MELVA2,MELVA3,MELVA4
  220. ENDIF
  221. *
  222. END
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  

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