Télécharger chaco1.eso

Retour à la liste

Numérotation des lignes :

chaco1
  1. C CHACO1 SOURCE CB215821 19/08/20 21:15:30 10287
  2. SUBROUTINE CHACO1(IPSONO,IPSON1,IPSON2,IEP,IPGEOM,IPINTE,IPCHEQ,
  3. . IPCHE1,IPCHE2)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. ************************************************************************
  7. *
  8. * C H A C O 1
  9. * -----------
  10. *
  11. * FONCTION:
  12. * ---------
  13. * CAS DES SOURCES VOLUMIQUES
  14. * COQUES SEGMENT AXISYMETRIQUE ET TRIANGLE
  15. *
  16. * MODULES UTILISES:
  17. * -----------------
  18. *
  19.  
  20. -INC PPARAM
  21. -INC CCOPTIO
  22. -INC CCREEL
  23. -INC SMCHAML
  24. -INC SMELEME
  25. -INC SMINTE
  26. -INC SMCOORD
  27. *
  28. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  29. * -----------
  30. *
  31. * IPSONO (E) POINTEURS SUR DES SEGMENTS MELVAL CONTENANT LES
  32. * IPSON1 SOURCES
  33. * IPSON2
  34. * IEP (E) POINTEUR SUR UN SEGMENT MELVAL COTENANT LES EPAISSEUR
  35. * IPGEOM (E) POINTEUR SUR UN OBJET MAILLAGE ELEMENTAIRE
  36. * IPINTE (E) POINTEUR SUR UN SEGMENT MINTE CONTENANT LES
  37. * CARACTERISTIQUES D'INTEGRATION
  38. * +IDIM (E) VOIR CCOPTIO
  39. * +XPI (E) VOIR CCREEL
  40. * IPCHEQ (S) POINTEURS SUR DES SEGMENTS MELVAL CONTENANT LES
  41. * IPCHE1 CHALEURS NODALES EQUIVALENTES
  42. * IPCHE2
  43. *
  44. * VARIABLES:
  45. * ----------
  46. *
  47. * XE(3,NBPTEL) = COORDONNEES DES ELEMENTS DANS LE REPERE GLOBAL
  48. * SURF = SURFACE ELEMENTAIRE AU POINT DE GAUSS
  49. * A ET S = TABLEAUX DE TRAVAIL
  50. *
  51. REAL*8 S(6)
  52. SEGMENT,MMAT1
  53. REAL*8 XE(3,NBPTEL),A(NBPTEL,NBPTEL),SHP(6,NBPTEL),AA(NBE,NBE)
  54. ENDSEGMENT
  55. *
  56. * CONSTANTES:
  57. * -----------
  58. *
  59. PARAMETER ( O1=1.D0 )
  60. PARAMETER ( O2=2.D0,O30=30.D0,O8=8.D0,O15=15.D0)
  61. *
  62. * AUTEUR, DATE DE CREATION:
  63. * -------------------------
  64. *
  65. * P. DOWLATYARI JUIN 90 ADAPTATION DE CHAMAS
  66. *
  67. * LANGAGE:
  68. * --------
  69. *
  70. * ESOPE + FORTRAN77
  71. *
  72. ************************************************************************
  73. *
  74. * ON RECUPERE LES VALEURS DES SOURCES
  75. *
  76. MELVA1=IPSONO
  77. SEGACT,MELVA1
  78. NBPTE1=MELVA1.VELCHE(/1)
  79. NEL1=MELVA1.VELCHE(/2)
  80. MELVA2=IPSON1
  81. SEGACT,MELVA2
  82. MELVA3=IPSON2
  83. SEGACT,MELVA3
  84. *
  85. * ON RECUPERE LES CARACTERISTIQUES D'INTEGRATION
  86. *
  87. MINTE=IPINTE
  88. SEGACT,MINTE
  89. NBPGAU=POIGAU(/1)
  90. NBNO=SHPTOT(/2)
  91. *
  92. * ON RECUPERE UN DES MAILLAGES ELEMENTAIRES DE L'ENVELOPPE
  93. *
  94. MELEME=IPGEOM
  95. SEGACT,MELEME
  96. NBPTEL=NUM(/1)
  97. NEL=NUM(/2)
  98. *
  99. * INITIALISATION DES MELVALS QUI CONTIENDRA LES CHALEURS EQUIVALENTE
  100. *
  101. N1PTEL=NBPTEL
  102. N1EL=NEL
  103. N2PTEL=0
  104. N2EL=0
  105. NBE=3*NBPTEL
  106. SEGINI,MELVAL
  107. IPCHEQ=MELVAL
  108. SEGINI,MELVA4
  109. IPCHE1=MELVA4
  110. SEGINI,MELVA5
  111. IPCHE2=MELVA5
  112. SEGINI,MMAT1
  113. MELVA6=IEP
  114. SEGACT,MELVA6
  115. *
  116. * BOUCLE SUR LES ELEMENTS
  117. *
  118. DO 10 IEL=1,NEL
  119. *
  120. * ON CHERCHE LES COORDONNEES DES NOEUDS DANS LE REPERE GLOBAL
  121. *
  122. CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,IEL,XE)
  123. *
  124. * BOUCLE SUR LES POINTS DE GAUSS
  125. *
  126. CALL ZERO(A,NBPTEL,NBPTEL)
  127. DO 40 IGAU=1,NBPGAU
  128. AXIS=O1
  129. IF (NBNO.EQ.2) THEN
  130. *
  131. * CALCUL DE LA LONGUEUR ( POUR L'ELEMENT BARRE )
  132. *
  133. DLX=XZERO
  134. DLY=XZERO
  135. DO 400 INOE=1,NBPTEL
  136. DLX=DLX+SHPTOT(2,INOE,IGAU)*XE(1,INOE)
  137. DLY=DLY+SHPTOT(2,INOE,IGAU)*XE(2,INOE)
  138. 400 CONTINUE
  139. * END DO
  140. SURF=SQRT(DLX**2+DLY**2)
  141. ELSE
  142. *
  143. * CALCUL DE LA SURFACE ELEMENTAIRE AU POINT DE GAUSS CONSIDERE
  144. *
  145. SURFX=XZERO
  146. SURFY=XZERO
  147. SURFZ=XZERO
  148. DO 21 I=1,6
  149. S(I)=XZERO
  150. 21 CONTINUE
  151. * END DO
  152. DO 30 INOE=1,NBPTEL
  153. S(1)=S(1)+SHPTOT(2,INOE,IGAU)*XE(2,INOE)
  154. S(2)=S(2)+SHPTOT(3,INOE,IGAU)*XE(3,INOE)
  155. S(3)=S(3)+SHPTOT(3,INOE,IGAU)*XE(2,INOE)
  156. S(4)=S(4)+SHPTOT(2,INOE,IGAU)*XE(3,INOE)
  157. S(5)=S(5)+SHPTOT(3,INOE,IGAU)*XE(1,INOE)
  158. S(6)=S(6)+SHPTOT(2,INOE,IGAU)*XE(1,INOE)
  159. 30 CONTINUE
  160. * END DO
  161. SURFX=S(1)*S(2)-S(3)*S(4)
  162. SURFY=S(4)*S(5)-S(2)*S(6)
  163. SURFZ=S(6)*S(3)-S(5)*S(1)
  164. SURF=SQRT(SURFX**2+SURFY**2+SURFZ**2)
  165. ENDIF
  166. IF (IFOMOD.EQ.0) THEN
  167. *
  168. * CAS DES ELEMENTS AXISYMETRIQUES
  169. *
  170. DO 41 NP=1,NBPTEL
  171. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  172. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  173. SHP(3,NP)=SHPTOT(3,NP,IGAU)
  174. 41 CONTINUE
  175. * END DO
  176. CALL DISTRR(XE,SHP,NBPTEL,RR)
  177. AXIS=XPI*RR*O2
  178. ENDIF
  179. DO 50 INO1=1,NBPTEL
  180. DO 60 INO2=1,NBPTEL
  181. A(INO1,INO2)=A(INO1,INO2)+SHPTOT(1,INO1,IGAU)*
  182. 1 SHPTOT(1,INO2,IGAU)*POIGAU(IGAU)*AXIS*SURF
  183. 60 CONTINUE
  184. * END DO
  185. 50 CONTINUE
  186. * END DO
  187. 40 CONTINUE
  188. * END DO
  189. *
  190. * RECUPERATION DE L'EPAISSEUR
  191. *
  192. EP=0.D0
  193. IEMN=MIN(IEL,MELVA6.VELCHE(/2))
  194. DO 45 INO=1,NBNO
  195. INMN=MIN(INO,MELVA6.VELCHE(/1))
  196. EP=MELVA6.VELCHE(INMN,IEMN)+EP
  197. 45 CONTINUE
  198. EP=EP/NBNO
  199. *
  200. * INTEGRATION ANALYTIQUE SUR EPAISSEUR
  201. *
  202. C1=(O2*EP)/O15
  203. C2=EP/O15
  204. C3=-EP/O30
  205. C4=(O8*EP)/O15
  206. C5=EP/O15
  207. C6=(O2*EP)/O15
  208. *
  209. DO 80 J=1,NBPTEL
  210. DO 80 I=1,NBPTEL
  211. AA(I,J)=C1*A(I,J)
  212. 80 CONTINUE
  213. *
  214. *
  215. DO 90 J=1,NBPTEL
  216. DO 90 I=1,NBPTEL
  217. II=I+NBPTEL
  218. AA(II,J)=C2*A(I,J)
  219. AA(J,II)=AA(II,J)
  220. 90 CONTINUE
  221. *
  222. DO 100 J=1,NBPTEL
  223. DO 100 I=1,NBPTEL
  224. II=I+2*NBPTEL
  225. AA(II,J)=C3*A(I,J)
  226. AA(J,II)=AA(II,J)
  227. 100 CONTINUE
  228. *
  229. DO 110 J=1,NBPTEL
  230. JJ=J+NBPTEL
  231. DO 110 I=1,NBPTEL
  232. II=I+NBPTEL
  233. AA(II,JJ)=C4*A(I,J)
  234. 110 CONTINUE
  235. *
  236. DO 120 J=1,NBPTEL
  237. JJ=J+NBPTEL
  238. DO 120 I=1,NBPTEL
  239. II=I+2*NBPTEL
  240. AA(II,JJ)=C5*A(I,J)
  241. AA(JJ,II)=AA(II,JJ)
  242. 120 CONTINUE
  243. *
  244. DO 130 J=1,NBPTEL
  245. JJ=J+2*NBPTEL
  246. DO 130 I=1,NBPTEL
  247. II=I+2*NBPTEL
  248. AA(II,JJ)=C6*A(I,J)
  249. 130 CONTINUE
  250. *
  251. * (INTEGRAL DE HTH)*VALEURS NODALES DES SOURCES
  252. *
  253. IEMIN=MIN(NEL1,IEL)
  254. DO 70 INO3=1,NBE
  255. DO 70 INO4=1,NBE
  256. IF(INO3.LE.NBPTEL)THEN
  257. IF(INO4.LE.NBPTEL)THEN
  258. INMIN=MIN(NBPTE1,INO4)
  259. VELCHE(INO3,IEL)=VELCHE(INO3,IEL)+MELVA1.VELCHE(INMIN,IEMIN)*
  260. 1 AA(INO4,INO3)
  261. ELSEIF(INO4.GT.NBPTEL.AND.INO4.LE.(2*NBPTEL))THEN
  262. INO5=INO4-NBPTEL
  263. INMIN=MIN(NBPTE1,INO5)
  264. VELCHE(INO3,IEL)=VELCHE(INO3,IEL)+MELVA2.VELCHE(INMIN,IEMIN)*
  265. 1 AA(INO4,INO3)
  266. ELSE
  267. INO5=INO4-2*NBPTEL
  268. INMIN=MIN(NBPTE1,INO5)
  269. VELCHE(INO3,IEL)=VELCHE(INO3,IEL)+MELVA3.VELCHE(INMIN,IEMIN)*
  270. 1 AA(INO4,INO3)
  271. ENDIF
  272. ELSEIF(INO3.GT.NBPTEL.AND.INO3.LE.(2*NBPTEL))THEN
  273. INO6=INO3 - NBPTEL
  274. IF(INO4.LE.NBPTEL)THEN
  275. INMIN=MIN(NBPTE1,INO4)
  276. MELVA4.VELCHE(INO6,IEL)=MELVA4.VELCHE(INO6,IEL)+
  277. 1 MELVA1.VELCHE(INMIN,IEMIN)*AA(INO4,INO3)
  278. ELSEIF(INO4.GT.NBPTEL.AND.INO4.LE.(2*NBPTEL))THEN
  279. INO5=INO4-NBPTEL
  280. INMIN=MIN(NBPTE1,INO5)
  281. MELVA4.VELCHE(INO6,IEL)=MELVA4.VELCHE(INO6,IEL)+
  282. 1 MELVA2.VELCHE(INMIN,IEMIN)*AA(INO4,INO3)
  283. ELSE
  284. INO5=INO4-2*NBPTEL
  285. INMIN=MIN(NBPTE1,INO5)
  286. MELVA4.VELCHE(INO6,IEL)=MELVA4.VELCHE(INO6,IEL)+
  287. 1 MELVA3.VELCHE(INMIN,IEMIN)*AA(INO4,INO3)
  288. ENDIF
  289. ELSE
  290. INO6=INO3 -2*NBPTEL
  291. IF(INO4.LE.NBPTEL)THEN
  292. INMIN=MIN(NBPTE1,INO4)
  293. MELVA5.VELCHE(INO6,IEL)=MELVA5.VELCHE(INO6,IEL)+
  294. 1 MELVA1.VELCHE(INMIN,IEMIN)*AA(INO4,INO3)
  295. ELSEIF(INO4.GT.NBPTEL.AND.INO4.LE.(2*NBPTEL))THEN
  296. INO5=INO4-NBPTEL
  297. INMIN=MIN(NBPTE1,INO5)
  298. MELVA5.VELCHE(INO6,IEL)=MELVA5.VELCHE(INO6,IEL)+
  299. 1 MELVA2.VELCHE(INMIN,IEMIN)*AA(INO4,INO3)
  300. ELSE
  301. INO5=INO4-2*NBPTEL
  302. INMIN=MIN(NBPTE1,INO5)
  303. MELVA5.VELCHE(INO6,IEL)=MELVA5.VELCHE(INO6,IEL)+
  304. 1 MELVA3.VELCHE(INMIN,IEMIN)*AA(INO4,INO3)
  305. ENDIF
  306. ENDIF
  307. 70 CONTINUE
  308. * END DO
  309. 10 CONTINUE
  310. * END DO
  311. *
  312. SEGSUP,MMAT1
  313. END
  314.  
  315.  
  316.  

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