Télécharger fluma2.eso

Retour à la liste

Numérotation des lignes :

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

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