Télécharger relr11.eso

Retour à la liste

Numérotation des lignes :

relr11
  1. C RELR11 SOURCE PV 20/03/30 21:23:55 10567
  2. SUBROUTINE RELR11(MLIN,
  3. $ KJSPGP,KJSPGD,
  4. $ IMPR,IRET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : RELR11
  9. C DESCRIPTION : Assemblage d'un rigidité
  10. C Construction de :
  11. C - l'ensemble des points sur lesquels il y a au moins une inconnue
  12. C primale : KJSPGP
  13. C - l'ensemble des points sur lesquels il y a au moins une inconnue
  14. C duale : KJSPGD
  15. C
  16. C
  17. C
  18. C LANGAGE : ESOPE
  19. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  20. C mél : gounand@semt2.smts.cea.fr
  21. C***********************************************************************
  22. C APPELES :
  23. C APPELES (E/S) :
  24. C APPELES (BLAS) :
  25. C APPELES (CALCUL) :
  26. C APPELE PAR : RELR10
  27. C***********************************************************************
  28. C SYNTAXE GIBIANE :
  29. C ENTREES :
  30. C ENTREES/SORTIES :
  31. C SORTIES :
  32. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  33. C***********************************************************************
  34. C VERSION : v1, 26/06/2003, version initiale
  35. C HISTORIQUE : v1, 26/06/2003, création
  36. C HISTORIQUE :
  37. C HISTORIQUE :
  38. C***********************************************************************
  39. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  40. C en cas de modification de ce sous-programme afin de faciliter
  41. C la maintenance !
  42. C***********************************************************************
  43.  
  44. -INC PPARAM
  45. -INC CCOPTIO
  46. -INC SMCOORD
  47. -INC SMRIGID
  48. POINTEUR MLIN.MRIGID
  49. POINTEUR DES.DESCR
  50. -INC SMELEME
  51. POINTEUR MEL.MELEME
  52. -INC SMLENTI
  53. POINTEUR KJSPGP.MLENTI
  54. POINTEUR KLSPGP.MLENTI
  55. POINTEUR KJSPGD.MLENTI
  56. POINTEUR KLSPGD.MLENTI
  57. *
  58. INTEGER IMPR,IRET
  59. *
  60. * Executable statements
  61. *
  62. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans relr11.eso'
  63. *
  64. SEGACT MLIN
  65. NRIG=MLIN.IRIGEL(/2)
  66. *
  67. * Primale
  68. *
  69. JG=nbpts
  70. SEGINI KLSPGP
  71. * degré et fin de la liste chaînée
  72. LDG=0
  73. LAST=-1
  74. DO IRIG=1,NRIG
  75. MEL=MLIN.IRIGEL(1,IRIG)
  76. SEGACT MEL
  77. NEL=MEL.NUM(/2)
  78. DES=MLIN.IRIGEL(3,IRIG)
  79. SEGACT DES
  80. NDDL=DES.NOELEP(/1)
  81. DO IEL=1,NEL
  82. DO IDDL=1,NDDL
  83. NUMNO=MEL.NUM(DES.NOELEP(IDDL),IEL)
  84. IF (KLSPGP.LECT(NUMNO).EQ.0) THEN
  85. LDG=LDG+1
  86. KLSPGP.LECT(NUMNO)=LAST
  87. LAST=NUMNO
  88. ENDIF
  89. ENDDO
  90. ENDDO
  91. SEGDES DES
  92. SEGDES MEL
  93. ENDDO
  94. * transfert de la liste chainee dans KJSPGP
  95. JG=LDG
  96. SEGINI KJSPGP
  97. DO IDG=1,LDG
  98. IPREC=KLSPGP.LECT(LAST)
  99. KJSPGP.LECT(IDG)=LAST
  100. LAST=IPREC
  101. ENDDO
  102. SEGSUP KLSPGP
  103. SEGDES KJSPGP
  104. *
  105. * Duale (copie conforme du dessus)
  106. *
  107. JG=nbpts
  108. SEGINI KLSPGD
  109. * degré et fin de la liste chaînée
  110. LDG=0
  111. LAST=-1
  112. DO IRIG=1,NRIG
  113. MEL=MLIN.IRIGEL(1,IRIG)
  114. SEGACT MEL
  115. NEL=MEL.NUM(/2)
  116. DES=MLIN.IRIGEL(3,IRIG)
  117. SEGACT DES
  118. NDDL=DES.NOELED(/1)
  119. DO IEL=1,NEL
  120. DO IDDL=1,NDDL
  121. NUMNO=MEL.NUM(DES.NOELED(IDDL),IEL)
  122. IF (KLSPGD.LECT(NUMNO).EQ.0) THEN
  123. LDG=LDG+1
  124. KLSPGD.LECT(NUMNO)=LAST
  125. LAST=NUMNO
  126. ENDIF
  127. ENDDO
  128. ENDDO
  129. SEGDES DES
  130. SEGDES MEL
  131. ENDDO
  132. * transfert de la liste chainee dans KJSPGD
  133. JG=LDG
  134. SEGINI KJSPGD
  135. DO IDG=1,LDG
  136. IPREC=KLSPGD.LECT(LAST)
  137. KJSPGD.LECT(IDG)=LAST
  138. LAST=IPREC
  139. ENDDO
  140. SEGSUP KLSPGD
  141. SEGDES KJSPGD
  142. SEGDES MLIN
  143. *
  144. * Normal termination
  145. *
  146. IRET=0
  147. RETURN
  148. *
  149. * Format handling
  150. *
  151. *
  152. * Error handling
  153. *
  154. 9999 CONTINUE
  155. IRET=1
  156. WRITE(IOIMP,*) 'An error was detected in subroutine relr11'
  157. RETURN
  158. *
  159. * End of subroutine RELR11
  160. *
  161. END
  162.  
  163.  
  164.  
  165.  

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