Télécharger kopidk.eso

Retour à la liste

Numérotation des lignes :

kopidk
  1. C KOPIDK SOURCE PV 20/09/26 21:18:07 10724
  2. SUBROUTINE KOPIDK(IGEOM,LPRIM,MATRIK)
  3. C
  4. C************************************************************************
  5. C
  6. C PROJET : CASTEM 2000
  7. C
  8. C NOM : KOPIDK
  9. C
  10. C DESCRIPTION : Cette subroutine cree la matrice identité
  11. C sous la forme des objets elementaires de type
  12. C MATRIK
  13. C
  14. C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
  15. C
  16. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  17. C
  18. C************************************************************************
  19. C
  20. C
  21. C APPELES (Outils) :
  22. C
  23. C APPELES (Calcul) :
  24. C
  25. C
  26. C************************************************************************
  27. C
  28. C PHRASE D'APPELLE GIBIANE
  29. C
  30. C MAT1 = 'KOPS' 'MATIDE' LMOT1 GEO1 'MATRIK' ;
  31. C
  32. C ENTREES : LMOT1 : objet de type LISTMOTS des variables primales (et
  33. C duales)
  34. C
  35. C GEO1 : objet de type MAILLAGE, des variables primales
  36. C (et duales)
  37. C
  38. C SORTIES: MAT1 : objet de type MATRIK, qui contient la matrice
  39. C identité
  40. C
  41. C************************************************************************
  42. C
  43. C HISTORIQUE (Anomalies et modifications éventuelles)
  44. C
  45. C HISTORIQUE : Cree le 23-8-2000
  46. C
  47. C************************************************************************
  48. C
  49. C**** Les includes
  50. C
  51. IMPLICIT REAL*8 (A-H,O-Z)
  52. IMPLICIT INTEGER(I-N)
  53.  
  54. -INC PPARAM
  55. -INC CCOPTIO
  56. -INC SMLMOTS
  57. -INC SMELEME
  58. C
  59. C
  60. C**** On controle que le MELEME soit de type POI1
  61. C Si non changer
  62. C
  63. MELEME = IGEOM
  64. SEGACT MELEME
  65. NBSOUS = MELEME.LISOUS(/1)
  66. NTYP = MELEME.ITYPEL
  67. C
  68. IF ((NBSOUS.NE.0).OR.(NTYP.NE.1)) THEN
  69. * In CHANGE : SEGINI MELEME
  70. CALL CHANGE(MELEME,1)
  71. IPT1 = IGEOM
  72. SEGDES IPT1
  73. IF (IERR.NE.0) GOTO 9999
  74. ENDIF
  75. C
  76. NRIGE = 7
  77. NMATRI = 1
  78. NKID = 9
  79. NKMT = 7
  80. C
  81. SEGINI MATRIK
  82. C
  83. C**** Pointeurs sur les maillages primale et duale
  84. C
  85. MATRIK.IRIGEL(1,1)=MELEME
  86. MATRIK.IRIGEL(2,1)=MELEME
  87. C
  88. C**** La matrice est diagonale.
  89. C
  90. MATRIK.IRIGEL(7,1)=5
  91. C
  92. C**** MATRIK.IRIGEL(4,1) contient le pointeur sur IMATRI
  93. C
  94. MLMOTS = LPRIM
  95. SEGACT MLMOTS
  96. NBME = MLMOTS.MOTS(/2)
  97. NBSOUS = 1
  98. SEGINI IMATRI
  99. MATRIK.IRIGEL(4,1) = IMATRI
  100. SEGDES MATRIK
  101. DO ICON = 1, NBME, 1
  102. IMATRI.LISPRI(ICON) = MLMOTS.MOTS(ICON)
  103. IMATRI.LISDUA(ICON) = MLMOTS.MOTS(ICON)
  104. ENDDO
  105. SEGDES MLMOTS
  106. C
  107. C**** On rempli la matrice identité
  108. C
  109. NBEL = MELEME.NUM(/2)
  110. NP = 1
  111. MP = 1
  112. DO ICON = 1, NBME , 1
  113. SEGINI IZAFM
  114. DO IELEM = 1, NBEL, 1
  115. IMATRI.LIZAFM(1,ICON) = IZAFM
  116. IZAFM.AM(IELEM,1,1) = 1.0D0
  117. ENDDO
  118. SEGDES IZAFM
  119. ENDDO
  120. C
  121. SEGDES IMATRI
  122. SEGDES MELEME
  123. C
  124. 9999 RETURN
  125. END
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  

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