Télécharger depen3.eso

Retour à la liste

Numérotation des lignes :

depen3
  1. C DEPEN3 SOURCE PV090527 26/04/30 21:15:27 12529
  2.  
  3. SUBROUTINE depen3 (iri2,iri1)
  4. c====================================================================
  5. c transformation d une matrice de relations en matrice de dependance
  6. C
  7. c entrees:
  8. c mrigid rigidité [C] de dependance cree par rela
  9. c sorties:
  10. C ri1 matrice de dependence
  11. C
  12. C on conserve dans irigel(8,irig) le pointeur sur la matrice accro
  13. C d origine
  14. C
  15. c====================================================================
  16. IMPLICIT INTEGER(I-N)
  17. IMPLICIT REAL*8(A-H,O-Z)
  18. -INC SMRIGID
  19. -INC SMELEME
  20. -INC SMCOORD
  21.  
  22. -INC PPARAM
  23. -INC CCOPTIO
  24. -INC CCGEOME
  25. -INC CCHAMP
  26. -INC SMLMOTS
  27. C
  28. mrigid=iri2
  29. * write(6,*) ' entree dans depen3'
  30. * call prrigi(mrigid)
  31. SEGACT MRIGID
  32. C
  33. segini , ri1=mrigid
  34. iri1= ri1
  35. ri1.imgeo1=0
  36. ri1.imgeo2=0
  37. nrige = 8
  38. nrigel=irigel(/2)
  39. if( nrige.ne.ri1.irigel(/1)) segadj ri1
  40. idec=1
  41. irigg=0
  42. do 100 irig = 1,irigel(/2)
  43. C rectification des supports geometriques et matrices
  44. meleme = irigel(1,irig)
  45. ** write(6,*) ' depen3 meleme itypel ',meleme,itypel
  46. xmatri = irigel(4,irig)
  47. segact ,meleme ,xmatri
  48. nbnn = num(/1)-idec
  49. if (nbnn.eq.0) then
  50. segdes meleme,xmatri
  51. goto 100
  52. endif
  53. irigg=irigg+1
  54. nbelem=num(/2)
  55. nelrig = nbelem
  56. nbsous=0
  57. nbref=0
  58. segini ,ipt1
  59. rigrel=0
  60. segini,xmatr1=xmatri
  61. * write(6,*) 'depen3 xmatri xmatr1',xmatri,xmatr1
  62. ri1.irigel(1,irigg)=ipt1
  63. ri1.irigel(4,irigg)=xmatr1
  64. ri1.irigel(7,irigg)=2
  65. ri1.coerig(irigg)=1.d0
  66. C on stocke ds irigel de 8 le meleme avec supports de LX
  67. ri1.irigel(8,irigg)=meleme
  68. * superelement
  69. ipt1.itypel=28
  70. descr = irigel(3,irig)
  71. segact descr
  72. nligrp=lisinc(/2)-idec-1
  73. nligrd=2-idec
  74. segini des1
  75. nelrig=nbelem
  76. rigrel=0
  77. * write(6,*) 'nligrp nligrd nelrig rigrel',
  78. * > nligrp,nligrd,nelrig,rigrel
  79. * write(6,*) 'xmatr1.re',xmatr1.re(/1),xmatr1.re(/2),xmatr1.re(/3)
  80. segadj xmatr1
  81. ri1.irigel(3,irigg) = des1
  82. do 110 iel=1,nbelem
  83. * xmatri=imattt(iel)
  84. * segact xmatri
  85. do 111 ip=1,nbnn
  86. ipt1.num(ip,iel)=num(ip+idec,iel)
  87. 111 continue
  88. * segini xmatr1
  89. * imatr1.imattt(iel) = xmatr1
  90. aa= re(1,2,iel)
  91. do 121 ic = 1,nligrp
  92. xmatr1.re(1,ic,iel)=(-re(1,ic+idec+1,iel)/aa)
  93. 121 continue
  94. 120 continue
  95. * segdes xmatri,xmatr1
  96. 110 continue
  97. do 130 il=1,nligrp
  98. des1.lisinc(il)= lisinc(il+idec+1)
  99. des1.noelep(il)= noelep(il+idec+1)-1
  100. 130 continue
  101. des1.lisdua(1)= lisinc(2)
  102. des1.noeled(1)= noelep(2)-1
  103. C write(6,*) ' depen3 irigel(8,irig) ' ,ri1.irigel(8,irig)
  104. segdes ipt1,meleme,xmatr1,descr,des1,xmatri
  105. 100 continue
  106. nrigel=irigg
  107. nrige=ri1.irigel(/1)
  108. segadj ri1
  109. segdes ri1,mrigid
  110. * call prrigi(ri1,1)
  111. RETURN
  112. END
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  

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