Télécharger prmcp3.eso

Retour à la liste

Numérotation des lignes :

prmcp3
  1. C PRMCP3 SOURCE CB215821 20/11/25 13:37:08 10792
  2. SUBROUTINE PRMCP3(MMATEL,MSOPRI,
  3. $ ICOGLO,ICMPRI,ICMDUA,ICCPRI,
  4. $ IMPR,IRET)
  5.  
  6. IMPLICIT INTEGER(I-N)
  7. IMPLICIT REAL*8 (A-H,O-Z)
  8.  
  9. C***********************************************************************
  10. C NOM : PRMCP3
  11. C DESCRIPTION : Construction du repérage des inconnues.
  12. C
  13. * Repérage global des inconnues : ICOGLO (LISTMOTS)
  14. * Numéros des inconnues primales et duales de la matrice exprimées
  15. * dans ce repérage : ICMPRI, ICMDUA
  16. * Numéros des inconnues du chpoint primal : ICCPRI
  17. C
  18. C
  19. C LANGAGE : ESOPE
  20. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  21. C mél : gounand@semt2.smts.cea.fr
  22. C***********************************************************************
  23. C APPELES : CUNIQ, CREPER
  24. C APPELE PAR : PRMCP2
  25. C***********************************************************************
  26. C ENTREES : MMATEL, MSOPRI
  27. C ENTREES/SORTIES : -
  28. C SORTIES : ICOGLO, ICMPRI, ICMDUA, ICCPRI
  29. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  30. C***********************************************************************
  31. C VERSION : v1, 18/04/2000, version initiale
  32. C HISTORIQUE : v1, 18/04/2000, création
  33. C HISTORIQUE :
  34. C HISTORIQUE :
  35. C***********************************************************************
  36. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  37. C en cas de modification de ce sous-programme afin de faciliter
  38. C la maintenance !
  39. C***********************************************************************
  40.  
  41. -INC PPARAM
  42. -INC CCOPTIO
  43. POINTEUR MMATEL.IMATRI
  44. -INC SMCHPOI
  45. POINTEUR MSOPRI.MSOUPO
  46. -INC SMLMOTS
  47. INTEGER JGM,JGN
  48. POINTEUR ICOGLO.MLMOTS
  49. POINTEUR ICCPR2.MLMOTS
  50. POINTEUR GPINCS.MLMOTS
  51. -INC SMLENTI
  52. INTEGER JG
  53. POINTEUR ICMPRI.MLENTI
  54. POINTEUR ICMDUA.MLENTI
  55. POINTEUR ICCPRI.MLENTI
  56. *
  57. INTEGER IMPR,IRET
  58. *
  59. INTEGER IBMC,IBMM,IINC
  60. INTEGER NBMC,NBMM
  61. INTEGER NIUNIQ
  62. *
  63. * Executable statements
  64. *
  65. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans prmcp3.eso'
  66. SEGACT MMATEL
  67. SEGACT MSOPRI
  68. NBMM=MMATEL.LISPRI(/2)
  69. NBMC=MSOPRI.NOCOMP(/2)
  70. JGN=LOCOMP
  71. JGM=NBMC
  72. SEGINI ICCPR2
  73. DO 1 IBMC=1,NBMC
  74. ICCPR2.MOTS(IBMC)=MSOPRI.NOCOMP(IBMC)//' '
  75. 1 CONTINUE
  76. JGN=LOCOMP
  77. JGM=(2*NBMM)+NBMC
  78. SEGINI GPINCS
  79. IINC=0
  80. DO 2 IBMM=1,NBMM
  81. IINC=IINC+1
  82. GPINCS.MOTS(IINC)=MMATEL.LISPRI(IBMM)
  83. 2 CONTINUE
  84. DO 4 IBMM=1,NBMM
  85. IINC=IINC+1
  86. GPINCS.MOTS(IINC)=MMATEL.LISDUA(IBMM)
  87. 4 CONTINUE
  88. DO 6 IBMC=1,NBMC
  89. IINC=IINC+1
  90. GPINCS.MOTS(IINC)=ICCPR2.MOTS(IBMC)
  91. 6 CONTINUE
  92. * Elimination des doublons dans les noms
  93. JGN=LOCOMP
  94. JGM=IINC
  95. SEGINI ICOGLO
  96. CALL CUNIQ(GPINCS.MOTS,LOCOMP,IINC,
  97. $ ICOGLO.MOTS,NIUNIQ,
  98. $ IMPR,IRET)
  99. IF (IRET.NE.0) GOTO 9999
  100. JGN=LOCOMP
  101. JGM=NIUNIQ
  102. SEGADJ,ICOGLO
  103. SEGSUP GPINCS
  104. * Noms des inconnues primales et duales de MMATEL et du chpo. primal
  105. * dans le repérage défini par ICOGLO : ICMPRI, ICMDUA et ICCPRI
  106. JG=NBMM
  107. SEGINI ICMPRI
  108. CALL CREPER(LOCOMP,NBMM,NIUNIQ,
  109. $ MMATEL.LISPRI,ICOGLO.MOTS,
  110. $ ICMPRI.LECT,
  111. $ IMPR,IRET)
  112. IF (IRET.NE.0) GOTO 9999
  113. SEGDES ICMPRI
  114. JG=NBMM
  115. SEGINI ICMDUA
  116. CALL CREPER(LOCOMP,NBMM,NIUNIQ,
  117. $ MMATEL.LISDUA,ICOGLO.MOTS,
  118. $ ICMDUA.LECT,
  119. $ IMPR,IRET)
  120. IF (IRET.NE.0) GOTO 9999
  121. SEGDES ICMDUA
  122. JG=NBMC
  123. SEGINI ICCPRI
  124. CALL CREPER(LOCOMP,NBMC,NIUNIQ,
  125. $ ICCPR2.MOTS,ICOGLO.MOTS,
  126. $ ICCPRI.LECT,
  127. $ IMPR,IRET)
  128. IF (IRET.NE.0) GOTO 9999
  129. SEGDES ICCPRI
  130. SEGDES ICOGLO
  131. SEGSUP ICCPR2
  132. SEGDES MMATEL
  133. *
  134. * Normal termination
  135. *
  136. IRET=0
  137. RETURN
  138. *
  139. * Format handling
  140. *
  141. *
  142. * Error handling
  143. *
  144. 9999 CONTINUE
  145. IRET=1
  146. WRITE(IOIMP,*) 'An error was detected in subroutine prmcp3'
  147. RETURN
  148. *
  149. * End of subroutine PRMCP3
  150. *
  151. END
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  

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