Télécharger infmat.eso

Retour à la liste

Numérotation des lignes :

infmat
  1. C INFMAT SOURCE GOUNAND 25/04/30 21:15:07 12258
  2. SUBROUTINE INFMAT(AMORS,AISA,IMPR,IRET)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. C***********************************************************************
  6. C NOM : INFMAT
  7. C DESCRIPTION : Affiche des informations sur une matrice Morse.
  8. C
  9. C
  10. C
  11. C LANGAGE : ESOPE
  12. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  13. C mél : gounand@semt2.smts.cea.fr
  14. C***********************************************************************
  15. C APPELE PAR : KRES2
  16. C***********************************************************************
  17. C ENTREES : AMORS, AISA
  18. C ENTREES/SORTIES : -
  19. C SORTIES : -
  20. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  21. C***********************************************************************
  22. C VERSION : v1.1, 22/03/2000, version initiale
  23. C HISTORIQUE : v1.1, 22/03/2000,
  24. C Donne plus d'informations (maxi largeur de bande, profil supérieur et
  25. C inférieur).
  26. C HISTORIQUE : v1, 17/01/2000, création
  27. C HISTORIQUE :
  28. C HISTORIQUE :
  29. C***********************************************************************
  30. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  31. C en cas de modification de ce sous-programme afin de faciliter
  32. C la maintenance !
  33. C***********************************************************************
  34.  
  35. -INC PPARAM
  36. -INC CCOPTIO
  37. POINTEUR AMORS.PMORS
  38. POINTEUR AMORS2.PMORS
  39. POINTEUR AISA.IZA
  40. INTEGER NTT,NJA
  41. INTEGER NBVA
  42. POINTEUR PMWRK.PMORS
  43. POINTEUR IZAWRK.IZA
  44. *
  45. INTEGER IMPR,IRET
  46. *
  47. INTEGER IMAXI,IMAXS,IPROFS,IMIN,ITT
  48. INTEGER J,JSTRT,JSTOP
  49. INTEGER NBDDL,NBSTO
  50. INTEGER IPROFI
  51. LOGICAL LSPKIT
  52. *
  53. * Executable statements
  54. *
  55. IF (IMPR.GT.0) THEN
  56. LSPKIT=.FALSE.
  57. *SPSKIT LSPKIT=.TRUE.
  58. * Les calculs à effectuer
  59. IF (IMPR.GT.1) THEN
  60. SEGACT AMORS
  61. NBDDL=AMORS.IA(/1)-1
  62. NBSTO=AMORS.JA(/1)
  63. WRITE(IOIMP,*) 'Matrice Morse : nb.ddl=',NBDDL,
  64. $ ' ; nb.termesstockés=',NBSTO
  65. CALL PROFI2(AMORS,IPROFI,0,IRET)
  66. IF (IMPR.GT.2)THEN
  67. WRITE(IOIMP,*) 'Profil (tri. inf.) = ',IPROFI
  68. ELSEIF (IMPR.GT.3) THEN
  69. SEGACT AMORS
  70. NTT=AMORS.IA(/1)-1
  71. IPROFI=0
  72. IMAXI=0
  73. DO 9 ITT=1,NTT
  74. IPROFI=IPROFI+(ITT-AMORS.JA(AMORS.IA(ITT)))
  75. IMAXI=MAX(IMAXI,ITT-AMORS.JA(AMORS.IA(ITT)))
  76. 9 CONTINUE
  77. WRITE(IOIMP,*) 'Profil (tri. inf.) = ',IPROFI
  78. WRITE(IOIMP,*) 'Max. larg. bande = ',IMAXI
  79. CALL MAKPMT(AMORS,
  80. $ AMORS2,
  81. $ IMPR,IRET)
  82. IF (IRET.NE.0) GOTO 9999
  83. IPROFS=0
  84. IMAXS=0
  85. SEGACT AMORS2
  86. NTT=AMORS2.IA(/1)-1
  87. DO 91 ITT=1,NTT
  88. JSTRT=AMORS2.IA(ITT)
  89. JSTOP=AMORS2.IA(ITT+1)-1
  90. IMIN=AMORS2.JA(JSTRT)
  91. DO 912 J=JSTRT+1,JSTOP
  92. IMIN=MIN(IMIN,AMORS2.JA(J))
  93. 912 CONTINUE
  94. IMIN=ITT-IMIN
  95. IPROFS=IPROFS+IMIN
  96. IMAXS=MAX(IMAXS,IMIN)
  97. 91 CONTINUE
  98. SEGSUP AMORS2
  99. WRITE(IOIMP,*) 'Profil (tri. sup.) = ',IPROFS
  100. WRITE(IOIMP,*) 'Max larg. bande = ',IMAXS
  101. WRITE(IOIMP,*) 'Total = ',IPROFS+IPROFI+ITT
  102. ENDIF
  103. ENDIF
  104. IF (LSPKIT) THEN
  105. SEGACT AMORS
  106. SEGACT AISA
  107. NTT=AMORS.IA(/1)-1
  108. NBVA=AISA.A(/1)
  109. NJA=MAX(2*NTT+1,NBVA)
  110. SEGINI PMWRK
  111. SEGINI IZAWRK
  112. *SPSKIT CALL DINF13(NTT,IOIMP,AISA.A,AMORS.JA,AMORS.IA,.TRUE.,
  113. *SPSKIT $ ' Matrice qui tue '//
  114. *SPSKIT $ ' ',
  115. *SPSKIT $ 'MAT ',' N ',IZAWRK.A,PMWRK.JA,PMWRK.IA)
  116. SEGSUP IZAWRK
  117. SEGSUP PMWRK
  118. ENDIF
  119. ENDIF
  120. *
  121. * Normal termination
  122. *
  123. IRET=0
  124. RETURN
  125. *
  126. * Format handling
  127. *
  128. *
  129. * Error handling
  130. *
  131. 9999 CONTINUE
  132. IRET=1
  133. WRITE(IOIMP,*) 'An error was detected in subroutine infmat'
  134. RETURN
  135. *
  136. * End of subroutine infmat
  137. *
  138. END
  139.  
  140.  

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