Télécharger xxsour.eso

Retour à la liste

Numérotation des lignes :

xxsour
  1. C XXSOUR SOURCE CB215821 20/11/25 13:43:37 10792
  2. SUBROUTINE XXSOUR(KPOIND,NOMD4,MCHPO1,XPG,MELEME,MELEMD,SPGD,
  3. & MCHEL4,INEFMD)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. C***********************************************************************
  7. C
  8. C SYNTAXE :
  9. C
  10. C / /
  11. C On calcule | W S do = | Ma NbSb do
  12. C / /
  13. C EN 2D
  14. C elements SEG2 -> Flux
  15. C elements TRI3 -> Source volumique
  16. C elements QUA4 -> Source volumique
  17. C EN 3D
  18. C elements SEG2 -> Pas de sens !!
  19. C elements TRI3 -> Flux
  20. C elements QUA4 -> Flux
  21. C elements CUB8 -> Source volumique
  22. C elements PRI6 -> Source volumique
  23. C elements TET4 -> Source volumique
  24. C
  25. C***********************************************************************
  26.  
  27.  
  28. -INC PPARAM
  29. -INC CCOPTIO
  30. -INC CCREEL
  31. -INC CCGEOME
  32. -INC SMCHAML
  33. -INC SMCOORD
  34. -INC SMLENTI
  35. -INC SMELEME
  36. POINTEUR MELEMD.MELEME,SPGD.MELEME
  37. -INC SMCHPOI
  38. -INC SIZFFB
  39. POINTEUR IZF1.IZFFM,IZH2.IZHR,IZW.IZFFM,IZWH.IZHR
  40. SEGMENT SAJT
  41. REAL*8 AJT(IDIM,IDIM,NPG),RF1(NP,MP,IDIM),SM1(NP,IDIM)
  42. REAL*8 TN1(NP,IDIM),TN2(NP,IDIM)
  43. ENDSEGMENT
  44.  
  45. -INC SMLMOTS
  46. CHARACTER*8 TYPE,NOM0,TYPC,MTERR
  47. CHARACTER*4 NOMD4
  48. LOGICAL XPG
  49. C*****************************************************************************
  50. CXXSOUR
  51. C write(6,*)' Debut XXSOUR'
  52.  
  53. C*****************************************************************************
  54. C OPTIONS
  55. C KFORM = 0 -> SI 1 -> EF 2 -> VF 3 -> EFMC
  56. C IDCEN = 0->rien 1-> CENTREE 2-> SUPGDC 3-> SUPG 4-> TVISQUEU 5-> CNG
  57. C KPOIN = 0->SOMMET 1-> FACE 2-> CENTRE 3-> CENTREP0 4-> CENTREP1 5-> MSOMMET
  58. C E/ MMODEL : Pointeur de la table contenant l'information cherchée
  59. C /S IPOINT : Pointeur sur la table DOMAINE
  60. C /S INEFMD : Type formulation INEFMD=1 LINE,=2 MACRO,=3 QUADRATIQUE
  61. C INEFMD=4 LINB
  62.  
  63.  
  64. IF(XPG)THEN
  65. CALL ARRET(0)
  66. ENDIF
  67.  
  68. c IK3=0
  69. IAXI=0
  70. IF(IFOMOD.EQ.0)IAXI=2
  71. DEUPI=1.D0
  72. IF(IAXI.NE.0)DEUPI=2.D0*XPI
  73.  
  74. CALL LICHTM(MCHPO1,MPOVA1,TYPC,IGEOM)
  75. NC=MPOVA1.VPOCHA(/2)
  76. CALL KRIPAD(SPGD,MLENTI)
  77.  
  78. SEGACT MELEME
  79. SEGACT MCHEL4
  80.  
  81. NKD=0
  82. DO 101 L=1,MAX(1,LISOUS(/1))
  83. SEGACT MELEMD
  84. IPT1=MELEME
  85. IPT2=MELEMD
  86. IF(LISOUS(/1).NE.0)IPT1=LISOUS(L)
  87. SEGACT IPT1
  88. IF(MELEMD.LISOUS(/1).NE.0)THEN
  89. IPT2=MELEMD.LISOUS(L)
  90. NKD=0
  91. ENDIF
  92. SEGACT IPT2
  93. MP=IPT2.NUM(/1)
  94.  
  95. C-----------------------------------------------------------------------
  96. IF(KPOIND.NE.2)THEN
  97. IF(INEFMD.EQ.3)THEN
  98. IF(KPOIND.EQ.3)NOM0=NOMS(IPT1.ITYPEL)//'PRP0'
  99. IF(KPOIND.EQ.4)NOM0=NOMS(IPT1.ITYPEL)//'PRP1'
  100. IF(KPOIND.EQ.5)NOM0=NOMS(IPT1.ITYPEL)//'PFP1'
  101. ELSEIF(INEFMD.EQ.2)THEN
  102. IF(KPOIND.EQ.3)NOM0=NOMS(IPT1.ITYPEL)//'MCP0'
  103. IF(KPOIND.EQ.4)NOM0=NOMS(IPT1.ITYPEL)//'MCP1'
  104. IF(KPOIND.EQ.5)NOM0=NOMS(IPT1.ITYPEL)//'MCF1'
  105. ELSEIF(INEFMD.EQ.1)THEN
  106. IF(KPOIND.EQ.5)NOM0=NOMS(IPT1.ITYPEL)//'P1P1'
  107. ELSEIF(INEFMD.EQ.4)THEN
  108. NOM0=NOMS(IPT1.ITYPEL)//' '
  109. ENDIF
  110. ENDIF
  111.  
  112. IF(KPOIND.EQ.2)THEN
  113. NOM0 = NOMS(IPT1.ITYPEL)//NOMD4
  114. ENDIF
  115.  
  116. IF(KPOIND.EQ.0)THEN
  117. NOM0 = NOMS(IPT1.ITYPEL)
  118. NOM0 = NOMS(IPT1.ITYPEL)//NOMD4
  119. ENDIF
  120. C-----------------------------------------------------------------------
  121. c write(6,*)' XXSOUR 1er KALPBG NOM0=',NOM0,IPT1
  122. CALL KALPBG(NOM0,'FONFORM ',IZFFM)
  123. IF(IZFFM.EQ.0)RETURN
  124. SEGACT IZFFM*MOD
  125. IZHR=KZHR(1)
  126. SEGACT IZHR*MOD
  127. IZF1 = KTP(1)
  128. IZH2 = KZHR(2)
  129. IZW = IZF1
  130. IF(KPOIND.EQ.0)IZW=IZFFM
  131. SEGACT IZW*MOD
  132. IF(MP.NE.IZW.FN(/1))THEN
  133. c write(6,*)' Gross problem XXSOUR '
  134. c write(6,*)' NOM0=',NOM0 ,' NOMD4=',NOMD4
  135. c write(6,*)' MP=',MP,' KPOIND.=',KPOIND,' IZW.FN(/1)='
  136. c & ,IZW.FN(/1)
  137. ENDIF
  138.  
  139. NES=GR(/1)
  140. NPG=GR(/3)
  141. NP = IPT1.NUM(/1)
  142. NBEL=IPT1.NUM(/2)
  143.  
  144. SEGINI SAJT
  145. MCHAM4=MCHEL4.ICHAML(L)
  146. SEGACT MCHAM4
  147.  
  148. MELVA4=MCHAM4.IELVAL(1)
  149. SEGACT MELVA4
  150. N1PTEL=MELVA4.VELCHE(/1)
  151. N1EL=MELVA4.VELCHE(/2)
  152. c write(6,*)' N1PTEL=',N1PTEL,'N1EL=',N1EL
  153. IF(N1EL.EQ.1)THEN
  154. IK4=1
  155. ELSEIF(N1EL.EQ.NBEL)THEN
  156. IK4=0
  157. ENDIF
  158. c write(6,*)' AVANT 108 NC=',NC,' NBEL=',NBEL,MP,NP,NC
  159. c write(6,*)' AVANT 108 IK4=',IK4,'N1PTEL=',N1PTEL,'N1EL=',N1EL
  160.  
  161. c write(6,*)' '
  162. c write(6,*)' XXSOUR ---------------------------------------'
  163. c nche1=MELVA4.VELCHE(/1)
  164. c nche2=MELVA4.VELCHE(/2)
  165. c write(6,*)' MELVA4=',MELVA4
  166. c write(6,*)' MCHEL4=',MCHEL4,' nche1=',nche1,' nche2=',nche2
  167. c write(6,*)' NC=',NC,' MP=',MP,' NP=',NP,' NPG=',NPG
  168. c write(6,*)' IDIM=',IDIM,' NBEL=',nbel
  169. c write(6,*)' XXSOUR ---------------------------------------'
  170. c write(6,*)' '
  171.  
  172. DO 108 KE=1,NBEL
  173.  
  174. NKD=NKD+1
  175. c NK1=KE + IK1*(1 - KE)
  176. c NK2=KE + IK2*(1 - KE)
  177. c NK3=KE + IK3*(1 - KE)
  178. NK4=KE + IK4*(1 - KE)
  179.  
  180. DO I=1,NP
  181. J=IPT1.NUM(I,KE)
  182. DO N=1,IDIM
  183. XYZ(N,I)=XCOOR((J-1)*(IDIM+1)+N)
  184. ENDDO
  185. ENDDO
  186.  
  187. CALL CALJBR(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,
  188. * IDIM,NP,NPG,IAXI,AIRE,AJ,SGN)
  189.  
  190. CALL INITD(SM1,(MP*IDIM),0.D0)
  191.  
  192. C=======================================================================
  193.  
  194. C:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  195. C...... Source
  196. DO 710 I=1,MP
  197. U4=0.D0
  198. C1=1.D0
  199. DO 717 N=1,NC
  200. DO 715 LG=1,NPG
  201. WT=IZW.FN(I,LG)
  202. c IF(XPG)THEN
  203. c WT=MELVA3.VELCHE((IDIM+I-1)*NPG+LG,NK3)+IZW.FN(I,LG)
  204. c ENDIF
  205. C4=MELVA4.VELCHE((N-1)*NPG+LG,NK4)
  206.  
  207. U4=U4+WT*PGSQ(LG)*C4*DEUPI*RPG(LG)
  208. 715 CONTINUE
  209. SM1(I,N)=SM1(I,N)+ U4
  210. 717 CONTINUE
  211. 710 CONTINUE
  212. C...... Source Fin
  213. C=======================================================================
  214.  
  215.  
  216. C>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  217. C ...... Chargement Second membre
  218. DO 911 I=1,MP
  219. I1=LECT(IPT2.NUM(I,KE))
  220. DO 910 N=1,NC
  221. MPOVA1.VPOCHA(I1,N)=MPOVA1.VPOCHA(I1,N)+SM1(I,N)
  222. 910 CONTINUE
  223. 911 CONTINUE
  224. C<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  225.  
  226. 108 CONTINUE
  227.  
  228. SEGDES IPT1,IPT2
  229. SEGSUP MCHAM4,MELVA4
  230.  
  231. SEGSUP IZFFM,IZHR,IZF1,IZH2
  232. SEGSUP SAJT
  233.  
  234. 101 CONTINUE
  235. SEGDES MPOVA1
  236. SEGSUP MLENTI
  237. SEGSUP MCHEL4
  238.  
  239.  
  240. c write(6,*)' FIN XXSOUR'
  241. RETURN
  242. 1002 FORMAT(10(1X,1PE11.4))
  243. 1001 FORMAT(10(1X,I7))
  244. END
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  

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