Télécharger fluma2.eso

Retour à la liste

Numérotation des lignes :

  1. C FLUMA2 SOURCE CB215821 19/08/20 21:17:47 10287
  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. ENDIF
  93. *
  94. * ON RECUPERE LES CARACTERISTIQUES D'INTEGRATION DES FACES
  95. *
  96. MINTE=IPINTE
  97. SEGACT,MINTE
  98. NBPGAU=POIGAU(/1)
  99. *
  100. * ON RECUPERE UN DES MAILLAGES ELEMENTAIRES DE L'ENVELOPPE
  101. *
  102. MELEME=IPGEOM
  103. SEGACT,MELEME
  104. NBPTEL=NUM(/1)
  105. NEL=NUM(/2)
  106. *
  107. * MELVAL QUI CONTIENDRA LES FLUX NODAUX EQUIVALENTS
  108. *
  109. N1PTEL=NBPTEL
  110. N1EL=NEL
  111. N2PTEL=0
  112. N2EL=0
  113. SEGINI,MELVAL
  114. IPFLEQ=MELVAL
  115. SEGINI,MMAT1
  116. *
  117. * CAS D'UN FLUX INCLINE PAR RAPPORT A LA NORMALE A LA FACE
  118. *
  119. COSDIR=O1
  120. IF ((NUMPOI.NE.-1).AND.(NUMPOI.NE.1)) THEN
  121. *
  122. * ON RECUPERE LES COORDONNEES DU VECTEUR DIRECTION
  123. *
  124. CALL EXCOO1(NUMPOI,XDIR,YDIR,ZDIR,DENS)
  125. *
  126. * ON PROJETTE LA DIRECTION DANS LE PLAN (OX|OY)
  127. *
  128. DNORME=SQRT(XDIR**2+YDIR**2)
  129. IF (DNORME.LT.XPETIT) THEN
  130. *
  131. * ERREUR DANS LA DONNEE DE LA DIRECTION DU FLUX
  132. *
  133. CALL ERREUR(417)
  134. RETURN
  135. ENDIF
  136. XDIRNO=XDIR/DNORME
  137. YDIRNO=YDIR/DNORME
  138. COSDIR=O2
  139. ENDIF
  140. *
  141. * BOUCLE SUR LES ELEMENTS
  142. *
  143. DO 10 IEL=1,NEL
  144. *
  145. * ON CHERCHE LES COORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL
  146. *
  147. CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,IEL,XE)
  148.  
  149. *
  150. * BOUCLES SUR LES POINTS DE GAUSS
  151. *
  152. DO 40 IGAU=1,NBPGAU
  153. AXIS=O1
  154. *
  155. * CONTRIBUTION DE LA FACE AU POINT DE GAUSS
  156. *
  157. DLX=XZERO
  158. DLY=XZERO
  159. DO 30 INOE=1,NBPTEL
  160. DLX=DLX+SHPTOT(2,INOE,IGAU)*XE(1,INOE)
  161. DLY=DLY+SHPTOT(2,INOE,IGAU)*XE(2,INOE)
  162. 30 CONTINUE
  163. * END DO
  164. FACE=SQRT(DLX**2+DLY**2)
  165. *
  166. * SI ON A UN FLUX INCLINE,CALCUL DU COSINUS DIRECTEUR
  167. DIRNOR=COSDIR
  168. IF ((COSDIR.NE.O1).AND.(NUMPOI.NE.1)) THEN
  169. DIRNOR=ABS(YDIRNO*(DLX/FACE)-XDIRNO*(DLY/FACE))
  170. ENDIF
  171. IF (IFOMOD.EQ.0) THEN
  172. *
  173. * CAS DES ELEMENTS AXISYMETRIQUES
  174. *
  175. DO 41 NP=1,NBPTEL
  176. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  177. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  178. SHP(3,NP)=SHPTOT(3,NP,IGAU)
  179. 41 CONTINUE
  180. * END DO
  181. CALL DISTRR(XE,SHP,NBPTEL,RR)
  182. AXIS=O2*XPI*RR
  183. ENDIF
  184. IEMIN = MIN(IEL,NEL1)
  185. IGMN = MIN(IGAU,NBPTE1)
  186.  
  187. IF (NUMPOI.EQ.1) THEN
  188. C on oriente la vraie normale suivant la pseudo
  189. S1 = MELVA3.VELCHE(IGMN,IEMIN)
  190. S2 = MELVA4.VELCHE(IGMN,IEMIN)
  191. amul = 1.D0
  192. ps = -S1*dly+S2*dlx
  193. if(ps.lt.0) amul = -1.D0
  194. dlx= dlx*amul
  195. dly= dly*amul
  196. T1 = POIGAU(IGAU)*(MELVA2.VELCHE(IGMN,IEMIN)*DLX
  197. 1 -MELVA1.VELCHE(IGMN,IEMIN)*DLY)*AXIS
  198.  
  199. ELSE
  200. T1 =POIGAU(IGAU)*AXIS*DIRNOR*FACE*
  201. 1 MELVA1.VELCHE(IGMN,IEMIN)
  202. ENDIF
  203. DO 50 J=1,NBPTEL
  204. VELCHE(J,IEL) = VELCHE(J,IEL) + SHPTOT(1,J,IGAU)*T1
  205. 50 CONTINUE
  206.  
  207. * END DO
  208. 40 CONTINUE
  209. * END DO
  210.  
  211. * END DO
  212. 10 CONTINUE
  213. * END DO
  214. SEGSUP,MMAT1
  215. IF(NUMPOI.EQ.1) THEN
  216. ENDIF
  217.  
  218. END
  219.  
  220.  
  221.  

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