Télécharger trsmtk.eso

Retour à la liste

Numérotation des lignes :

trsmtk
  1. C TRSMTK SOURCE PV 20/09/26 21:20:07 10724
  2. SUBROUTINE TRSMTK(EMTK,SMTK)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C***********************************************************************
  6. C NOM : TRSMTK
  7. C DESCRIPTION : Transposition d'une matrice (type MATRIK)
  8. C
  9. C
  10. C LANGAGE : ESOPE
  11. C AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  12. C mél : gounand@semt2.smts.cea.fr
  13. C***********************************************************************
  14. C APPELES :
  15. C APPELES (E/S) : LIROBJ
  16. C APPELES (BLAS) :
  17. C APPELES (CALCUL) :
  18. C APPELE PAR :
  19. C***********************************************************************
  20. C SYNTAXE GIBIANE :
  21. C ENTREES : EMTK
  22. C ENTREES/SORTIES : -
  23. C SORTIES : SMTK
  24. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  25. C***********************************************************************
  26. C VERSION : v1, 04/07/2002, version initiale
  27. C HISTORIQUE : v1, 04/07/2002, création
  28. C HISTORIQUE :
  29. C HISTORIQUE :
  30. C***********************************************************************
  31. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  32. C en cas de modification de ce sous-programme afin de faciliter
  33. C la maintenance !
  34. C***********************************************************************
  35.  
  36. -INC PPARAM
  37. -INC CCOPTIO
  38. INTEGER NRIGE,NMATRI,NKID,NKMT,NBSOUS,NBME,NBEL,NP,MP
  39. POINTEUR EMTK.MATRIK
  40. POINTEUR SMTK.MATRIK
  41. POINTEUR EIMAT.IMATRI
  42. POINTEUR SIMAT.IMATRI
  43. POINTEUR EIZAF.IZAFM
  44. POINTEUR SIZAF.IZAFM
  45. *
  46. INTEGER IRETOU
  47. INTEGER IRIGE,JMATRI,IBSOUS,IBME,IBEL,INP,IMP
  48. INTEGER NBELE,NPE,MPE
  49. *
  50. * Executable statements
  51. *
  52. *
  53. * Initialisation du chapeau Matrik résultat et mise à zéro
  54. * de toute information de préconditionnement.
  55. *
  56. SEGACT EMTK
  57. NRIGE=EMTK.IRIGEL(/1)
  58. NMATRI=EMTK.IRIGEL(/2)
  59. NKID=EMTK.KIDMAT(/1)
  60. NKMT=EMTK.KKMMT(/1)
  61. SEGINI,SMTK
  62. DO JMATRI=1,NMATRI
  63. * On échange les supports primaux et duaux
  64. SMTK.IRIGEL(1,JMATRI)=EMTK.IRIGEL(2,JMATRI)
  65. SMTK.IRIGEL(2,JMATRI)=EMTK.IRIGEL(1,JMATRI)
  66. DO IRIGE=3,NRIGE
  67. SMTK.IRIGEL(IRIGE,JMATRI)=EMTK.IRIGEL(IRIGE,JMATRI)
  68. ENDDO
  69. * Pour supprimer les cas particuliers foireux
  70. SMTK.IRIGEL(7,JMATRI)=3
  71. ENDDO
  72. *
  73. * Duplication des segments IMATRI et changement des noms
  74. * d'inconnues
  75. *
  76. DO JMATRI=1,NMATRI
  77. EIMAT=EMTK.IRIGEL(4,JMATRI)
  78. SEGACT,EIMAT
  79. SEGINI,SIMAT=EIMAT
  80. SMTK.IRIGEL(4,JMATRI)=SIMAT
  81. NBSOUS=EIMAT.LIZAFM(/1)
  82. NBME =EIMAT.LIZAFM(/2)
  83. DO IBME=1,NBME
  84. SIMAT.LISPRI(IBME)=EIMAT.LISDUA(IBME)
  85. SIMAT.LISDUA(IBME)=EIMAT.LISPRI(IBME)
  86. DO IBSOUS=1,NBSOUS
  87. EIZAF=EIMAT.LIZAFM(IBSOUS,IBME)
  88. SEGACT,EIZAF
  89. NBELE=EIZAF.AM(/1)
  90. NPE =EIZAF.AM(/2)
  91. MPE =EIZAF.AM(/3)
  92. NBEL = NBELE
  93. NP = MPE
  94. MP=NPE
  95. SEGINI,SIZAF
  96. SIMAT.LIZAFM(IBSOUS,IBME)=SIZAF
  97. DO IMP=1,MP
  98. DO INP=1,NP
  99. DO IBEL=1,NBEL
  100. SIZAF.AM(IBEL,INP,IMP)=EIZAF.AM(IBEL,IMP,INP)
  101. ENDDO
  102. ENDDO
  103. ENDDO
  104. SEGDES SIZAF
  105. SEGDES EIZAF
  106. ENDDO
  107. ENDDO
  108. SEGDES SIMAT
  109. SEGDES EIMAT
  110. ENDDO
  111. SEGDES SMTK
  112. SEGDES EMTK
  113. *
  114. * Normal termination
  115. *
  116. RETURN
  117. *
  118. * Format handling
  119. *
  120. *
  121. * End of subroutine TRSMTK
  122. *
  123. END
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  

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