Télécharger depen3.eso

Retour à la liste

Numérotation des lignes :

depen3
  1. C DEPEN3 SOURCE PV 21/01/29 21:15:19 10866
  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. segini,xmatr1=xmatri
  60. ri1.irigel(1,irigg)=ipt1
  61. ri1.irigel(4,irigg)=xmatr1
  62. ri1.irigel(7,irigg)=2
  63. ri1.coerig(irigg)=1.d0
  64. C on stocke ds irigel de 8 le meleme avec supports de LX
  65. ri1.irigel(8,irigg)=meleme
  66. * superelement
  67. ipt1.itypel=28
  68. descr = irigel(3,irig)
  69. segact descr
  70. nligrp=lisinc(/2)-idec-1
  71. nligrd=2-idec
  72. segini des1
  73. nelrig=nbelem
  74. segadj xmatr1
  75. ri1.irigel(3,irigg) = des1
  76. do 110 iel=1,nbelem
  77. * xmatri=imattt(iel)
  78. * segact xmatri
  79. do 111 ip=1,nbnn
  80. ipt1.num(ip,iel)=num(ip+idec,iel)
  81. 111 continue
  82. * segini xmatr1
  83. * imatr1.imattt(iel) = xmatr1
  84. aa= re(1,2,iel)
  85. do 121 ic = 1,nligrp
  86. xmatr1.re(1,ic,iel)=(-re(1,ic+idec+1,iel)/aa)
  87. 121 continue
  88. 120 continue
  89. * segdes xmatri,xmatr1
  90. 110 continue
  91. do 130 il=1,nligrp
  92. des1.lisinc(il)= lisinc(il+idec+1)
  93. des1.noelep(il)= noelep(il+idec+1)-1
  94. 130 continue
  95. des1.lisdua(1)= lisinc(2)
  96. des1.noeled(1)= noelep(2)-1
  97. C write(6,*) ' depen3 irigel(8,irig) ' ,ri1.irigel(8,irig)
  98. segdes ipt1,meleme,xmatr1,descr,des1,xmatri
  99. 100 continue
  100. nrigel=irigg
  101. nrige=ri1.irigel(/1)
  102. segadj ri1
  103. segdes ri1,mrigid
  104. * call prrigi(ri1,1)
  105. RETURN
  106. END
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  

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