Télécharger inlmap.eso

Retour à la liste

Numérotation des lignes :

  1. C INLMAP SOURCE CHAT 05/01/13 00:38:26 5004
  2. SUBROUTINE INLMAP(ICDCDB,LMPCDB,LMDCDB,
  3. $ LMACDB,
  4. $ IMPR,IRET)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. C***********************************************************************
  8. C NOM : INLMAP
  9. C DESCRIPTION : Initialisation de la matrice produit.
  10. C
  11. C
  12. C LANGAGE : ESOPE
  13. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  14. C mél : gounand@semt2.smts.cea.fr
  15. C***********************************************************************
  16. C APPELES : -
  17. C APPELE PAR : PROLIS
  18. C***********************************************************************
  19. C ENTREES : ICDCDB, LMPCDB, LMDCDB
  20. C SORTIES : LMACDB
  21. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  22. C***********************************************************************
  23. C VERSION : v1, 10/02/2000, version initiale
  24. C HISTORIQUE : v1, 10/02/2000, création
  25. C HISTORIQUE :
  26. C HISTORIQUE :
  27. C***********************************************************************
  28. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  29. C en cas de modification de ce sous-programme afin de faciliter
  30. C la maintenance !
  31. C***********************************************************************
  32.  
  33. -INC PPARAM
  34. -INC CCOPTIO
  35. * Includes persos
  36. * Segment LSTIND (liste séquentielle indexée)
  37. SEGMENT LSTIND
  38. INTEGER IDX(NBM+1)
  39. INTEGER IVAL(NBTVAL)
  40. ENDSEGMENT
  41. POINTEUR ICDCDB.LSTIND
  42. POINTEUR LMPCDB.LSTIND
  43. POINTEUR LMDCDB.LSTIND
  44. SEGMENT LSRIND
  45. INTEGER IDXX(NBM+1)
  46. REAL*8 XVAL(NBTVAL)
  47. ENDSEGMENT
  48. SEGMENT LLI
  49. POINTEUR LISLI(NBME).LSRIND
  50. ENDSEGMENT
  51. INTEGER NBM,NBTVAL,NBME
  52. POINTEUR LMACDB.LLI
  53. POINTEUR SLMCDB.LSRIND
  54. POINTEUR SLMPIX.LSRIND
  55. *
  56. INTEGER IMPR,IRET
  57. *
  58. INTEGER IBME,ILCDB
  59. INTEGER NCPL,NLCDB
  60. INTEGER NUVP,NUVD,NUVPD
  61. *
  62. * Executable statements
  63. *
  64. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans inlmap.eso'
  65. * - nombre d'inconnues :
  66. SEGACT ICDCDB
  67. NCPL=ICDCDB.IVAL(/1)
  68. NBME=NCPL
  69. SEGINI LMACDB
  70. SEGACT LMPCDB
  71. SEGACT LMDCDB
  72. NLCDB=LMPCDB.IDX(/1)-1
  73. NBM=NLCDB
  74. NBTVAL=0
  75. SEGINI SLMPIX
  76. DO 1 ILCDB=1,NLCDB
  77. NUVP=LMPCDB.IDX(ILCDB+1)-LMPCDB.IDX(ILCDB)
  78. NUVD=LMDCDB.IDX(ILCDB+1)-LMDCDB.IDX(ILCDB)
  79. NUVPD=NUVP*NUVD
  80. SLMPIX.IDXX(ILCDB+1)=NUVPD
  81. 1 CONTINUE
  82. * SLMPIX.IDXX est transformé en liste d'indexation
  83. SLMPIX.IDXX(1)=1
  84. DO 3 ILCDB=1,NLCDB
  85. SLMPIX.IDXX(ILCDB+1)=SLMPIX.IDXX(ILCDB+1)+SLMPIX.IDXX(ILCDB)
  86. 3 CONTINUE
  87. * Initialisation des segments de LMACDB
  88. DO 5 IBME=1,NBME
  89. NBM=NLCDB
  90. NBTVAL=SLMPIX.IDXX(NLCDB+1)-1
  91. SEGINI SLMCDB
  92. DO 52 ILCDB=1,NLCDB+1
  93. SLMCDB.IDXX(ILCDB)=SLMPIX.IDXX(ILCDB)
  94. 52 CONTINUE
  95. SEGDES SLMCDB
  96. LMACDB.LISLI(IBME)=SLMCDB
  97. 5 CONTINUE
  98. SEGSUP SLMPIX
  99. SEGDES LMDCDB
  100. SEGDES LMPCDB
  101. SEGDES LMACDB
  102. SEGDES ICDCDB
  103. *
  104. * Normal termination
  105. *
  106. IRET=0
  107. RETURN
  108. *
  109. * Format handling
  110. *
  111. *
  112. * Error handling
  113. *
  114. 9999 CONTINUE
  115. IRET=1
  116. WRITE(IOIMP,*) 'An error was detected in subroutine inlmap'
  117. RETURN
  118. *
  119. * End of subroutine INLMAP
  120. *
  121. END
  122.  
  123.  
  124.  
  125.  

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