Télécharger trcur.eso

Retour à la liste

Numérotation des lignes :

trcur
  1. C TRCUR SOURCE CB215821 21/06/10 21:16:00 11029
  2. SUBROUTINE TRCUR(IPO1,IPO2)
  3. *=============================================================
  4. *
  5. * ECRIT SUR LE DESSIN UNE SERIE DE NOMS DE NOEUDS
  6. *
  7. *=============================================================
  8. * Modifications :
  9. *
  10. * 95/02/07 Loca
  11. * passer les legendes x et y de 12 à 20 caractères:
  12. * SEGMENT AXE disparait et est appelé en include: -INC TMAXE.
  13. *
  14. * 05 sept. 2007 Maugis
  15. * Maintien du segment AXE actif en modification
  16. *
  17. *=============================================================
  18. *
  19. * Entrée :
  20. *
  21. * IPO1 : POINTEUR SUR UN AXE (ACTIF)
  22. * IPO2 : POINTEUR SUR UNE EVOL
  23. *
  24. *=============================================================
  25.  
  26. IMPLICIT LOGICAL (Z)
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8 (A-H,O-S,U-Y)
  29. -INC SMEVOLL
  30. -INC SMLREEL
  31. -INC SMLENTI
  32. -INC SMLMOTS
  33. -INC TMAXE
  34. REAL TXX,TYY,HMIN,X,Y
  35. CHARACTER*30 BUFFER
  36. DIMENSION TX(2),TY(2)
  37. *
  38. AXE = IPO1
  39. *PM SEGACT AXE
  40. HMIN = .2
  41. KEVOLL= IPO2
  42.  
  43. *bp,2020 : ajout de la couleur
  44. NLOCAB=NUMEVX
  45. CALL CHCOUL(NLOCAB)
  46.  
  47. IF (TYPX.EQ.'LISTMOTS' .AND. TYPY.EQ.'LISTREEL') THEN
  48. * Le long de l'axe gauche des ordonnées
  49. * La première liste contient les noms, la 2e les ordonnées
  50. TDELTA=ABS(XSUP-XINF)/40
  51. MLREEL=IPROGY
  52. MLMOTS=IPROGX
  53. DO 1 I=1,PROG(/1)
  54. YY=PROG(I)
  55. IF (ZLOGY) YY=LOG10(YY)
  56. IF ((YY.LT.YINF).OR.(YY.GT.YSUP)) GOTO 1
  57. * TRACE MARQUEUR (TRIL)
  58. X=XINF+TDELTA
  59. Y=YY
  60. IPTR=AXE
  61. c CALL DMARQ (IPTR,X,Y,7,1,1D0,.FALSE.,0)
  62. CALL DMARQ (IPTR,X,Y,7,1D0,.FALSE.,0)
  63. * CALL CHCOUL(Nlocab)
  64. * AFFICHE NOM DU NOEUD
  65. BUFFER = MOTS(I)
  66. TXX = XINF+TDELTA*2
  67. TYY = YY
  68. CALL TRLABL(TXX,TYY,0.,BUFFER,30,HMIN)
  69. 1 CONTINUE
  70.  
  71. ELSEIF(TYPY.EQ.'LISTMOTS' .AND. TYPX.EQ.'LISTREEL')THEN
  72. * Le long de l'axe bas des abscisses
  73. * La première liste contient les abscisses, la 2e les noms
  74. TDELTA=ABS(YSUP-YINF)/45
  75. MLREEL=IPROGX
  76. MLMOTS=IPROGY
  77. DO 2 I=1,PROG(/1)
  78. XX=PROG(I)
  79. IF (ZLOGX) XX=LOG10(XX)
  80. IF ((XX.LT.XINF).OR.(XX.GT.XSUP)) GOTO 2
  81. * TRACE MARQUEUR (TRID)
  82. X=XX
  83. Y=YINF+TDELTA
  84. IPTR=AXE
  85. c CALL DMARQ (IPTR,X,Y,7,1,1D0,.FALSE.,0)
  86. CALL DMARQ (IPTR,X,Y,7,1D0,.FALSE.,0)
  87. * CALL CHCOUL(Nlocab)
  88. * AFFICHE NOM DU NOEUD
  89. BUFFER=MOTS(I)
  90. TXX=XX
  91. TYY=YINF+TDELTA*2
  92. CALL TRLABL(TXX,TYY,0.,BUFFER,30,HMIN)
  93. 2 CONTINUE
  94.  
  95. ELSEIF (TYPX.EQ.'LISTMOTS' .AND. TYPY.EQ.'LISTENTI') THEN
  96. * Le long de l'axe gauche des ordonnées
  97. * La première liste contient les noms, la 2e les ordonnées
  98. TDELTA=ABS(XSUP-XINF)/40
  99. MLENTI=IPROGY
  100. MLMOTS=IPROGX
  101. DO 3 I=1,LECT(/1)
  102. YY=REAL(LECT(I))
  103. IF (ZLOGY) YY=LOG10(YY)
  104. IF ((YY.LT.YINF).OR.(YY.GT.YSUP)) GOTO 3
  105. * TRACE MARQUEUR (TRIL)
  106. X=XINF+TDELTA
  107. Y=YY
  108. IPTR=AXE
  109. c CALL DMARQ (IPTR,X,Y,7,1,1D0,.FALSE.,0)
  110. CALL DMARQ (IPTR,X,Y,7,1D0,.FALSE.,0)
  111. * CALL CHCOUL(Nlocab)
  112. * AFFICHE NOM DU NOEUD
  113. BUFFER = MOTS(I)
  114. TXX = XINF+TDELTA*2
  115. TYY = YY
  116. CALL TRLABL(TXX,TYY,0.,BUFFER,30,HMIN)
  117. 3 CONTINUE
  118.  
  119. ELSEIF(TYPY.EQ.'LISTMOTS' .AND. TYPX.EQ.'LISTENTI')THEN
  120. * Le long de l'axe bas des abscisses
  121. * La première liste contient les abscisses, la 2e les noms
  122. TDELTA=ABS(YSUP-YINF)/45
  123. MLENTI=IPROGX
  124. MLMOTS=IPROGY
  125. DO 4 I=1,LECT(/1)
  126. XX=REAL(LECT(I))
  127. IF (ZLOGX) XX=LOG10(XX)
  128. IF ((XX.LT.XINF).OR.(XX.GT.XSUP)) GOTO 4
  129. * TRACE MARQUEUR (TRID)
  130. X=XX
  131. Y=YINF+TDELTA
  132. IPTR=AXE
  133. c CALL DMARQ (IPTR,X,Y,7,1,1D0,.FALSE.,0)
  134. CALL DMARQ (IPTR,X,Y,7,1D0,.FALSE.,0)
  135. * CALL CHCOUL(Nlocab)
  136. * AFFICHE NOM DU NOEUD
  137. BUFFER=MOTS(I)
  138. TXX=XX
  139. TYY=YINF+TDELTA*2
  140. CALL TRLABL(TXX,TYY,0.,BUFFER,30,HMIN)
  141. 4 CONTINUE
  142.  
  143. ELSE
  144. CALL ERREUR(5)
  145. RETURN
  146. ENDIF
  147.  
  148. RETURN
  149. END
  150.  
  151.  

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