Télécharger prgpsk.eso

Retour à la liste

Numérotation des lignes :

prgpsk
  1. C PRGPSK SOURCE CHAT 05/01/13 02:26:27 5004
  2. SUBROUTINE PRGPSK(ADJAC,OPTPRO,
  3. $ NEWNUM,
  4. $ IMPR,IRET)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. C***********************************************************************
  8. C NOM : PRGPSK
  9. C DESCRIPTION : Renumérotation d'un graphe symétrique par la méthode de
  10. C Gibbs-King ou de Gibbs-Poole-Stockmeyer.
  11. C Prépare la renumérotation par la méthode de
  12. C 1) Gibbs-King si OPTPRO = .TRUE. (réduction du profile)
  13. C 1) Gibbs-Poole-Stockmeyer
  14. C si OPTPRO = .FALSE. (bandwidth reduction)
  15. C
  16. C LANGAGE : ESOPE
  17. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/TTMF)
  18. C mél : gounand@semt2.smts.cea.fr
  19. C BIBLIO : @Article{,
  20. C author = {S. W. Sloan},
  21. C title = {A Fortran Program for Profile and Wavefront Reduction},
  22. C journal = {International Journal for Numerical Methods in Engineering},
  23. C year = {1989},
  24. C volume = {28},
  25. C pages = {2651-2679}
  26. C}
  27. C
  28. C***********************************************************************
  29. C APPELES : GPSKCA, PROFI1
  30. C APPELE PAR : RENUME
  31. C***********************************************************************
  32. C ENTREES : ADJAC, OPTPRO
  33. C SORTIES : NEWNUM
  34. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  35. C***********************************************************************
  36. C VERSION : v1, 10/11/99, version initiale
  37. C HISTORIQUE : v1, 10/11/99, création
  38. C HISTORIQUE :
  39. C HISTORIQUE :
  40. C***********************************************************************
  41. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  42. C en cas de modification de ce sous-programme afin de faciliter
  43. C la maintenance !
  44. C***********************************************************************
  45.  
  46. -INC PPARAM
  47. -INC CCOPTIO
  48. -INC SMLENTI
  49. INTEGER JG
  50. POINTEUR IWORK.MLENTI
  51. POINTEUR NEWNUM.MLENTI
  52. POINTEUR DEGREE.MLENTI
  53. *
  54. * Segment LSTIND (liste séquentielle indexée)
  55. *
  56. SEGMENT LSTIND
  57. INTEGER IDX(NBM+1)
  58. INTEGER IVAL(NBTVAL)
  59. ENDSEGMENT
  60. *
  61. * LISTE SEQUENTIELLE INDEXEE D'ENTIERS
  62. *
  63. * NBM : NOMBRE DE MULTIPLETS
  64. * NBTVAL : NOMBRE TOTAL DE VALEURS
  65. * IDX(I) : INDICE DE LA PREMIERE VALEUR DU IEME
  66. * MULTIPLET DANS LE TABLEAU IVAL
  67. * IVAL(IDX(I) -> IDX(I+1)-1) : VALEURS DU IEME MULTIPLET
  68. *
  69. *-INC SLSTIND
  70. POINTEUR ADJAC.LSTIND
  71. INTEGER IMPR,IRET
  72. *
  73. INTEGER ITOTPO
  74. INTEGER NTOTPO
  75. LOGICAL OPTPRO
  76. INTEGER WRKLEN,BANDWD,PROFI,ERROR,SPACE
  77. *
  78. * Executable statements
  79. *
  80. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans prgpsk'
  81. SEGACT ADJAC
  82. NTOTPO=ADJAC.IDX(/1)-1
  83. JG=NTOTPO
  84. SEGINI DEGREE
  85. DO 1 ITOTPO=1,NTOTPO
  86. DEGREE.LECT(ITOTPO)=ADJAC.IDX(ITOTPO+1)
  87. $ -ADJAC.IDX(ITOTPO)
  88. 1 CONTINUE
  89. JG=NTOTPO
  90. SEGINI NEWNUM
  91. DO 3 ITOTPO=1,NTOTPO
  92. NEWNUM.LECT(ITOTPO)=ITOTPO
  93. 3 CONTINUE
  94. WRKLEN=(6*NTOTPO)+3
  95. JG=WRKLEN
  96. SEGINI IWORK
  97. CALL GPSKCA(NTOTPO,DEGREE.LECT,ADJAC.IDX,ADJAC.IVAL,OPTPRO,WRKLEN,
  98. $ NEWNUM.LECT,
  99. $ IWORK.LECT,
  100. $ BANDWD,PROFI,
  101. $ ERROR,SPACE)
  102. IF (ERROR.NE.0) THEN
  103. WRITE(IOIMP,*) 'ERROR=',ERROR, 'in GPSKCA'
  104. GOTO 9999
  105. ENDIF
  106. SEGSUP IWORK
  107. SEGSUP DEGREE
  108. SEGDES NEWNUM
  109. SEGDES ADJAC
  110. IF (IMPR.GT.3) THEN
  111. WRITE(IOIMP,*) 'BANDWD = ',BANDWD
  112. WRITE(IOIMP,*) 'PROFI = ',PROFI
  113. ENDIF
  114. *
  115. * Normal termination
  116. *
  117. IRET=0
  118. RETURN
  119. *
  120. * Format handling
  121. *
  122. *
  123. * Error handling
  124. *
  125. 9999 CONTINUE
  126. IRET=1
  127. WRITE(IOIMP,*) 'An error was detected in subroutine prgpsk'
  128. RETURN
  129. *
  130. * End of subroutine PRGPSK
  131. *
  132. END
  133.  
  134.  
  135.  
  136.  
  137.  

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