Télécharger ecimat.eso

Retour à la liste

Numérotation des lignes :

  1. C ECIMAT SOURCE PV 16/11/17 21:59:14 9180
  2. SUBROUTINE ECIMAT(IMATRI,NIVIMP)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C***********************************************************************
  6. C NOM : ECIMAT
  7. C DESCRIPTION : Impression d'un segment de type IMATRI.
  8. C Ce segment contient des groupes de
  9. C matrices élémentaires non assemblées.
  10. C cf. include SMMATRIK
  11. C
  12. C LANGAGE : ESOPE
  13. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/TTMF)
  14. C mél : gounand@semt2.smts.cea.fr
  15. C***********************************************************************
  16. C APPELES : -
  17. C***********************************************************************
  18. C ENTREES : IMATRI, NIVIMP
  19. C ENTREES/SORTIES : -
  20. C SORTIES : -
  21. C CODE RETOUR (IRET) : -
  22. C IMATRI : segment de type IMATRI (include SMMATRIK)
  23. C NIVIMP : niveau d'impression. Suivant sa valeur, on obtient :
  24. C Convention (probablement non totalement respectée) :
  25. C ---------- 0 : presque rien (numéro de pointeur)
  26. C 1 : affichage du chapeau IMATRI
  27. C 2 : affichage des données concernant les objets
  28. C pointés par IMATRI (s'il y en a)
  29. C 3 : affichage du contenu des objets vectoriels
  30. C 4 : affichage du contenu des objets matriciels
  31. C On ne change pas l'état (actif ou inactif) du segment IMATRI.
  32. C***********************************************************************
  33. C VERSION : v1, 01/04/98, version initiale
  34. C HISTORIQUE : v1, 01/04/98, création
  35. C HISTORIQUE : 29/10/98, modif. l'état du segment reste inchangé
  36. C en sortie
  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. -INC CCOPTIO
  44. * Variable d'état du segment IMATRK
  45. INTEGER IMAETA
  46. *
  47. * Executable statements
  48. *
  49. IF (IMATRI.EQ.0) THEN
  50. WRITE(IOIMP,*) 'Nil pointer transmitted to ecimat'
  51. GOTO 9999
  52. ENDIF
  53. CALL OOOETA(IMATRI,IMAETA)
  54. IF (IMAETA.NE.1) SEGACT IMATRI
  55. WRITE(IOIMP,2001) 'Segment IMATRI de pointeur ',IMATRI
  56. *
  57. NBME=LIZAFM(/2)
  58. NBSOUS=LIZAFM(/1)
  59. WRITE(IOIMP,2003) 'NBME =',NBME,'(nb groupe mat. élém.)'
  60. WRITE(IOIMP,2003) 'NBSOUS=',NBSOUS,'(nb sous-obj.)'
  61. WRITE(IOIMP,2004) 'KSPGP=',KSPGP,'KSPGD=',KSPGD
  62. WRITE(IOIMP,1999) 'Liste inconnues primales et duales'
  63. WRITE(IOIMP,2999) 'LISPRI(NBME)=',(LISPRI(N),N=1,NBME)
  64. WRITE(IOIMP,2999) 'LISDUA(NBME)=',(LISDUA(N),N=1,NBME)
  65. WRITE(IOIMP,1999) 'Matrices élémentaires non assemblées'
  66. WRITE(IOIMP,1999) 'Tableau LIZAFM(NBSOUS,NBME)'
  67. DO 4 J=1,NBME
  68. DO 5 K=1,NBSOUS
  69. IZAFM=LIZAFM(K,J)
  70. WRITE(IOIMP,2007) 'LIZAFM(',K,',',J,')=',IZAFM,
  71. $ 'pointeur IZAFM'
  72. IF ((NIVIMP.GT.2).AND.(IZAFM.NE.0)) THEN
  73. * Affichage des IZAFM
  74. SEGACT IZAFM
  75. NBEL=AM(/1)
  76. NP=AM(/2)
  77. MP=AM(/3)
  78. WRITE(IOIMP,2008) 'NBEL=',NBEL,'(nb élém)'
  79. WRITE(IOIMP,2009) 'NP =',NP,'MP =',MP,
  80. $ '(nb points)'
  81. DO 6 L=1,NBEL
  82. WRITE(IOIMP,2010) 'Matrice pour l''élément',L
  83. DO 7 N=1,NP
  84. * Affichage des AM
  85. WRITE(IOIMP,2011) (AM(L,N,M),M=1,MP)
  86. 7 CONTINUE
  87. 6 CONTINUE
  88. SEGDES IZAFM
  89. ENDIF
  90. WRITE(IOIMP,1998) 'End segment IZAFM'
  91. WRITE(IOIMP,1998) '---'
  92. 5 CONTINUE
  93. 4 CONTINUE
  94. IF (IMAETA.NE.1) SEGDES IMATRI
  95. *
  96. * Normal termination
  97. *
  98. RETURN
  99. *
  100. * Format handling
  101. *
  102. 1998 FORMAT (2X,A)
  103. 1999 FORMAT (A)
  104. 2001 FORMAT (A,1X,I6)
  105. 2003 FORMAT (2X,A,I2,1X,A)
  106. 2004 FORMAT (2X,A,I6,4X,A,I6)
  107. 2007 FORMAT (2X,A,I2,A,I2,A,I6,2X,A)
  108. 2008 FORMAT (4X,A,I6,1X,A)
  109. 2009 FORMAT (4X,A,I6,2X,A,I6,1X,A)
  110. 2010 FORMAT (6X,A,1X,I6)
  111. 2011 FORMAT (4(1X,1PE18.10))
  112. 2999 FORMAT (2X,A,100(1X,A8))
  113. *
  114. * Error handling
  115. *
  116. 9999 CONTINUE
  117. WRITE(IOIMP,*) 'An error was detected in subroutine ecimat'
  118. RETURN
  119. *
  120. * End of subroutine ECIMAT
  121. *
  122. END
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  

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