Télécharger rempl6.eso

Retour à la liste

Numérotation des lignes :

rempl6
  1. C REMPL6 SOURCE FD218221 26/09/21 21:15:18 12650
  2. SUBROUTINE REMPL6 (IPOINT,IEME,IOBJE,IPLISE,XREE,IPOS)
  3. ************************************************************************
  4. *
  5. * R E M P L 6
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * REMPLACER LE I-EME ELEMENT D'UN OBJET DE TYPE "LISTOBJE".
  12. *
  13. *
  14. * PARAMETRES: (E)=ENTREE (S)=SORTIE
  15. * -----------
  16. *
  17. * IPOINT ENTIER (E) POINTEUR DE L'OBJET DE TYPE "LISTOBJE"
  18. * IEME ENTIER (E) NUMERO D'ORDRE DE L'ELEMENT A REMPLACER
  19. * DANS L'OBJET DE TYPE "LISTOBJE"
  20. * IOBJE ENTIER (E) POINTEUR DE L'OBJET REMPLACANT
  21. * IPLISE ENTIER (E) POINTEUR VERS UN "LISTOBJE" DE REMPLACANTS
  22. * XREE FLOTTANT (E) FLOTTANT REMPLACANT
  23. * SERA UTILISE DANS LE CAS D'UN LISTOBJE DE
  24. * FLOTTANT ET SI IOBJE=IPLISE=0
  25. * IPOS ENTIER (E) SI NEGATIF, IEME EST UN POINTEUR "LISTENTI"
  26. *
  27. * SOUS-PROGRAMMES APPELES:
  28. * ------------------------
  29. *
  30. * ERREUR
  31. *
  32. * AUTEUR, DATE DE CREATION:
  33. * -------------------------
  34. *
  35. * PASCAL MANIGOT 5 DECEMBRE 1984
  36. *
  37. * LANGAGE:
  38. * --------
  39. *
  40. * ESOPE + FORTRAN77
  41. *
  42. ************************************************************************
  43. *
  44. IMPLICIT INTEGER(I-N)
  45.  
  46. -INC PPARAM
  47. -INC CCOPTIO
  48. -INC SMLENTI
  49. -INC SMLOBJE
  50. *
  51. REAL*8 XREE
  52.  
  53. MLOBJE=IPOINT
  54. SEGACT,MLOBJE*MOD
  55. *
  56. * Y a-t-il plusieurs remplacements a faire ?
  57. NBRMPL=1
  58. IF (IPOS.LT.0) THEN
  59. MLENT1=IEME
  60. SEGACT,MLENT1
  61. NBRMPL=MLENT1.LECT(/1)
  62. * Y a-t-il des valeurs de remplacement distinctes ?
  63. IF (IPLISE.NE.0) THEN
  64. MLOBJ1=IPLISE
  65. SEGACT,MLOBJ1
  66. IF (MLOBJ1.TYPOBJ.NE.TYPOBJ) THEN
  67. MOTERR(1:8)=TYPOBJ
  68. CALL ERREUR(1156)
  69. RETURN
  70. ENDIF
  71. ENDIF
  72. ENDIF
  73. *
  74. * Mise a jour du LISTOBJE
  75. DO II=1,NBRMPL
  76. IF (IPOS.LT.0) IEME=MLENT1.LECT(II)
  77. * Cas des LISTOBJE de FLOTTANT
  78. IF (TYPOBJ.EQ.'FLOTTANT') THEN
  79. IF (IPLISE.NE.0) XREE=MLOBJ1.RLIREE(II)
  80. IF (0.LT.IEME.AND.IEME.LE.RLIREE(/1)) THEN
  81. RLIREE(IEME)=XREE
  82. ELSE
  83. INTERR(1)=IEME
  84. CALL ERREUR(36)
  85. ENDIF
  86. * Cas des autres LISTOBJE
  87. ELSE
  88. IF (IPLISE.NE.0) IOBJE=MLOBJ1.LISOBJ(II)
  89. IF (0.LT.IEME.AND.IEME.LE.LISOBJ(/1)) THEN
  90. LISOBJ(IEME)=IOBJE
  91. ELSE
  92. INTERR(1)=IEME
  93. CALL ERREUR(36)
  94. ENDIF
  95. ENDIF
  96. ENDDO
  97. *
  98. SEGDES,MLOBJE
  99. IF (IPOS.LT.0) SEGDES,MLENT1
  100. IF (IPLISE.NE.0) SEGDES,MLOBJ1
  101. *
  102. END
  103.  
  104.  

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