Télécharger mrem1.eso

Retour à la liste

Numérotation des lignes :

mrem1
  1. C MREM1 SOURCE CB215821 20/11/25 13:34:32 10792
  2. SUBROUTINE MREM1(mchpoi,ri1,ri2,ri3,ri4,ichp6,mchpo1,iret)
  3. * remontee des LX sur les points supports des multiplicateurs
  4. * dans le cas des resolution avexc matrices de dependances
  5. * ri2 rigidite complete avant condensation
  6. * ri1 rigidite de dependance brute
  7. IMPLICIT INTEGER(I-N)
  8. IMPLICIT REAL*8(A-H,O-Z)
  9. -INC SMRIGID
  10.  
  11. -INC PPARAM
  12. -INC CCOPTIO
  13. -INC SMCHPOI
  14. -INC SMCOORD
  15. -INC SMELEME
  16. segment LXOK(nbpts)
  17. * fabrication du bon ri2 : ri2 + les conditions de ri4 dont les LX
  18. * sont dans ri3
  19. segini lxok
  20. mrigid=ri3
  21. segact mrigid
  22. do 10 irig=1,irigel(/2)
  23. meleme=irigel(1,irig)
  24. segact meleme
  25. if (itypel.ne.22) call erreur(5)
  26. descr=irigel(3,irig)
  27. segact descr
  28. do 20 j=1,num(/2)
  29. lxok(num(1,j))=1
  30. 20 continue
  31. segdes meleme
  32. 10 continue
  33. segini,ri5=ri4
  34. mrigid=ri5
  35. do 100 irig=1,irigel(/2)
  36. ipt1=irigel(1,irig)
  37. xmatr1=irigel(4,irig)
  38. segini,meleme=ipt1
  39. segini,xmatri=xmatr1
  40. if (itypel.ne.22) call erreur(5)
  41. jj=0
  42. do 110 j=1,num(/2)
  43. if (lxok(num(1,j)).eq.0) num(1,j)=0
  44. if (num(1,j).ne.0) then
  45. jj=jj+1
  46. do 120 in=1,num(/1)
  47. num(in,jj)=num(in,j)
  48. 120 continue
  49. do io=1,re(/2)
  50. do iu=1,re(/1)
  51. re(iu,io,jj)=re(iu,io,j)
  52. enddo
  53. enddo
  54. * imattt(jj)=imattt(j)
  55. endif
  56. 110 continue
  57. nbnn=num(/1)
  58. nbelem=jj
  59. nbsous=0
  60. nbref=0
  61. segadj meleme
  62. irigel(1,irig)=meleme
  63. nelrig=jj
  64. nligrp=re(/2)
  65. nligrd=re(/1)
  66. segadj xmatri
  67. irigel(4,irig)=xmatri
  68. 100 continue
  69. segsup lxok
  70. call fusrig(ri2,mrigid,iret)
  71. ri2=iret
  72. C remontee sur les ddl condenses
  73. call depen3(ri1,ri6)
  74. call mucpri(mchpoi,ri6,ichp3)
  75. * write (6,*) 'mchpoi dans mrem1 '
  76. * call ecchpo(mchpoi)
  77. *
  78. * on peut tuer ri6
  79. *
  80. segact ri6
  81. do 55 i=1,ri6.irigel(/2)
  82. ipt4=ri6.irigel(1,i)
  83. segsup ipt4
  84. des1=ri6.irigel(3,i)
  85. segsup des1
  86. xmatr6=ri6.irigel(4,i)
  87. * segact imatr6
  88. * do 56 j=1,imatr6.imattt(/1)
  89. * xmatr6=imatr6.imattt(j)
  90. * segsup xmatr6
  91. * 56 continue
  92. segsup xmatr6
  93. 55 continue
  94. call adchpo(mchpoi,ichp3,ichp2,1.D0,1.D0)
  95. call adchpo(ichp2,mchpo1,iret,1.D0,1D0)
  96. mchpo1=iret
  97. call mucpri(mchpo1,ri2 ,ichp5)
  98. call adchpo(ichp5,ichp6,IRET,1D0,-1D0)
  99. call remplx(ri1,iret,ichp7)
  100. mchpoi=mchpo1
  101. * les champs de points qui sortent sont de nature diffuse
  102. SEGACT MCHPOI
  103. NAT = MAX(1,JATTRI(/1))
  104. NSOUPO=IPCHP(/1)
  105. SEGADJ MCHPOI
  106. JATTRI(1)=1
  107. SEGDES MCHPOI
  108. * write (6,*) 'mchpo1 dans mrem1 '
  109. * call ecchpo(mchpo1)
  110. * write (6,*) 'ichp7 dans mrem1 '
  111. * call ecchpo(ichp7)
  112. call fuchpo(mchpo1,ichp7,iret)
  113. mchpoi=iret
  114. * les champs de points qui sortent sont de nature diffuse
  115. SEGACT MCHPOI
  116. NAT = MAX(1,JATTRI(/1))
  117. NSOUPO=IPCHP(/1)
  118. SEGADJ MCHPOI
  119. JATTRI(1)=1
  120. SEGDES MCHPOI
  121. return
  122. end
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  

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