Télécharger ecimat.eso

Retour à la liste

Numérotation des lignes :

ecimat
  1. C ECIMAT SOURCE PV 20/09/26 21:16:32 10724
  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 PPARAM
  44. -INC CCOPTIO
  45. * Variable d'état du segment IMATRK
  46. INTEGER IMAETA
  47. *
  48. * Executable statements
  49. *
  50. IF (IMATRI.EQ.0) THEN
  51. WRITE(IOIMP,*) 'Nil pointer transmitted to ecimat'
  52. GOTO 9999
  53. ENDIF
  54. CALL OOOETA(IMATRI,IMAETA,IMOD)
  55. IF (IMAETA.NE.1) SEGACT IMATRI
  56. WRITE(IOIMP,2001) 'Segment IMATRI de pointeur ',IMATRI
  57. *
  58. NBME=LIZAFM(/2)
  59. NBSOUS=LIZAFM(/1)
  60. WRITE(IOIMP,2003) 'NBME =',NBME,'(nb groupe mat. élém.)'
  61. WRITE(IOIMP,2003) 'NBSOUS=',NBSOUS,'(nb sous-obj.)'
  62. WRITE(IOIMP,2004) 'KSPGP=',KSPGP,'KSPGD=',KSPGD
  63. WRITE(IOIMP,1999) 'Liste inconnues primales et duales'
  64. WRITE(IOIMP,2999) 'LISPRI(NBME)=',(LISPRI(N),N=1,NBME)
  65. WRITE(IOIMP,2999) 'LISDUA(NBME)=',(LISDUA(N),N=1,NBME)
  66. WRITE(IOIMP,1999) 'Matrices élémentaires non assemblées'
  67. WRITE(IOIMP,1999) 'Tableau LIZAFM(NBSOUS,NBME)'
  68. DO 4 J=1,NBME
  69. DO 5 K=1,NBSOUS
  70. IZAFM=LIZAFM(K,J)
  71. WRITE(IOIMP,2007) 'LIZAFM(',K,',',J,')=',IZAFM,
  72. $ 'pointeur IZAFM'
  73. IF ((NIVIMP.GT.2).AND.(IZAFM.NE.0)) THEN
  74. * Affichage des IZAFM
  75. SEGACT IZAFM
  76. NBEL=AM(/1)
  77. NP=AM(/2)
  78. MP=AM(/3)
  79. WRITE(IOIMP,2008) 'NBEL=',NBEL,'(nb élém)'
  80. WRITE(IOIMP,2009) 'NP =',NP,'MP =',MP,
  81. $ '(nb points)'
  82. DO 6 L=1,NBEL
  83. WRITE(IOIMP,2010) 'Matrice pour l''élément',L
  84. DO 7 N=1,NP
  85. * Affichage des AM
  86. WRITE(IOIMP,2011) (AM(L,N,M),M=1,MP)
  87. 7 CONTINUE
  88. 6 CONTINUE
  89. SEGDES IZAFM
  90. ENDIF
  91. WRITE(IOIMP,1998) 'End segment IZAFM'
  92. WRITE(IOIMP,1998) '---'
  93. 5 CONTINUE
  94. 4 CONTINUE
  95. IF (IMAETA.NE.1) SEGDES IMATRI
  96. *
  97. * Normal termination
  98. *
  99. RETURN
  100. *
  101. * Format handling
  102. *
  103. 1998 FORMAT (2X,A)
  104. 1999 FORMAT (A)
  105. 2001 FORMAT (A,1X,I6)
  106. 2003 FORMAT (2X,A,I2,1X,A)
  107. 2004 FORMAT (2X,A,I6,4X,A,I6)
  108. 2007 FORMAT (2X,A,I2,A,I2,A,I6,2X,A)
  109. 2008 FORMAT (4X,A,I6,1X,A)
  110. 2009 FORMAT (4X,A,I6,2X,A,I6,1X,A)
  111. 2010 FORMAT (6X,A,1X,I6)
  112. 2011 FORMAT (4(1X,1PE18.10))
  113. 2999 FORMAT (2X,A,100(1X,A8))
  114. *
  115. * Error handling
  116. *
  117. 9999 CONTINUE
  118. WRITE(IOIMP,*) 'An error was detected in subroutine ecimat'
  119. RETURN
  120. *
  121. * End of subroutine ECIMAT
  122. *
  123. END
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  

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