Télécharger prmcp4.eso

Retour à la liste

Numérotation des lignes :

prmcp4
  1. C PRMCP4 SOURCE OF166741 24/12/13 21:17:18 12097
  2. SUBROUTINE PRMCP4(ICMPRI,ICCPRI,NIUNIQ,
  3. $ ICOPRI,
  4. $ IMPR,IRET)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. C***********************************************************************
  8. C NOM : PRMCP4
  9. C DESCRIPTION : Construction de la liste des inconnues communes à la
  10. C matrice et au chpoint.
  11. C
  12. * Construction de ICOPRI (LISTENTI), liste des inconnues
  13. * appartenant à la fois à ICMPRI et ICCPRI
  14. C
  15. C
  16. C LANGAGE : ESOPE
  17. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  18. C mél : gounand@semt2.smts.cea.fr
  19. C***********************************************************************
  20. C APPELES : -
  21. C APPELE PAR : PRMCP2
  22. C***********************************************************************
  23. C ENTREES : ICMPRI, ICCPRI, NIUNIQ
  24. C ENTREES/SORTIES : -
  25. C SORTIES : ICOPRI
  26. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  27. C***********************************************************************
  28. C VERSION : v1, 18/04/2000, version initiale
  29. C HISTORIQUE : v1, 18/04/2000, création
  30. C HISTORIQUE :
  31. C HISTORIQUE :
  32. C***********************************************************************
  33. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  34. C en cas de modification de ce sous-programme afin de faciliter
  35. C la maintenance !
  36. C***********************************************************************
  37.  
  38. -INC PPARAM
  39. -INC CCOPTIO
  40. C
  41. -INC SMLENTI
  42. INTEGER JG
  43. POINTEUR ICMPRI.MLENTI
  44. POINTEUR ICCPRI.MLENTI
  45. POINTEUR ICOPRI.MLENTI
  46. POINTEUR MLEWRK.MLENTI
  47. POINTEUR KRPRI.MLENTI
  48. POINTEUR MLQUNF.MLENTI
  49. * Liste de MLENTI
  50. INTEGER NBMLEN
  51. SEGMENT MLENTS
  52. POINTEUR LISMLE(NBMLEN).MLENTI
  53. ENDSEGMENT
  54. POINTEUR GPMLES.MLENTS
  55. *
  56. INTEGER IMPR,IRET
  57. *
  58. INTEGER IBMLEN,IGWRK,IIUNIQ
  59. INTEGER NGWRK,NIUNIQ
  60. INTEGER NUPRI,NBPRI
  61. *
  62. * Executable statements
  63. *
  64. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans prmcp4.eso'
  65. * Initialisation de la liste de MLENTI (ici, il y en a deux)
  66. NBMLEN=2
  67. SEGINI GPMLES
  68. GPMLES.LISMLE(1)=ICMPRI
  69. GPMLES.LISMLE(2)=ICCPRI
  70. * NIUNIQ est la dimension de l'espace des noms d'inconnues
  71. JG=NIUNIQ
  72. SEGINI KRPRI
  73. SEGINI MLQUNF
  74. DO 2 IBMLEN=1,NBMLEN
  75. MLEWRK=GPMLES.LISMLE(IBMLEN)
  76. SEGACT MLEWRK
  77. NGWRK=MLEWRK.LECT(/1)
  78. *
  79. ******** En general, ICMPRI peux contenir le meme nom
  80. * d'inconnue plusieurs fois.
  81. * Mais on doit conter sa contribution que une seule
  82. * fois!
  83. * C'est pur ça qu'on utilize le segment MEQUNF.LECT
  84. *
  85. DO 22 IGWRK=1,NGWRK
  86. NUPRI=MLEWRK.LECT(IGWRK)
  87. IF(MLQUNF.LECT(NUPRI) .EQ. 0)THEN
  88. MLQUNF.LECT(NUPRI) = 1
  89. KRPRI.LECT(NUPRI)=KRPRI.LECT(NUPRI)+1
  90. ENDIF
  91. 22 CONTINUE
  92. SEGDES MLEWRK
  93. DO IIUNIQ=1,NIUNIQ,1
  94. MLQUNF.LECT(IIUNIQ) = 0
  95. ENDDO
  96. 2 CONTINUE
  97. SEGSUP GPMLES
  98. JG=0
  99. SEGINI ICOPRI
  100. DO 3 IIUNIQ=1,NIUNIQ
  101. NBPRI=KRPRI.LECT(IIUNIQ)
  102. IF (NBPRI.EQ.NBMLEN) THEN
  103. ICOPRI.LECT(**)=IIUNIQ
  104. ENDIF
  105. 3 CONTINUE
  106. SEGDES ICOPRI
  107. SEGSUP KRPRI
  108. SEGSUP MLQUNF
  109. *
  110. * Normal termination
  111. *
  112. IRET=0
  113. RETURN
  114. *
  115. * Format handling
  116. *
  117. *
  118. * Error handling
  119. *
  120. 9999 CONTINUE
  121. IRET=1
  122. WRITE(IOIMP,*) 'An error was detected in subroutine prmcp4'
  123. RETURN
  124. *
  125. * End of subroutine PRMCP4
  126. *
  127. END
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  

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