Télécharger evmanu.eso

Retour à la liste

Numérotation des lignes :

evmanu
  1. C EVMANU SOURCE SP204843 24/09/27 21:15:08 12017
  2. SUBROUTINE EVMANU(ICOUL)
  3. C=======================================================================
  4. C OPTION MANU DE L'OPERATEUR EVOL
  5. C
  6. C POUR RENTRER A LA MAIN UN OBJET DE TYPE EVOLUTION
  7. C (IL N Y AURA QU UNE SEULE EVOLUTION)
  8. C SYNTAXE :
  9. C
  10. C EV1= EVOL (COUL) MANU ('TYPE' MTYP) ('LEGE' MTIT1)
  11. C ('CHAINE CARAC') PRGX ('CHAINE CARAC') PRGY ;
  12. C
  13. C
  14. C COUL : COULEUR DE LA COURBE (FACULTATIVE)
  15. C MOTXI : OBJET DE TYPE MOT
  16. C PRGX : LISTE DE REELS (ABSCISSES)
  17. C MOTYI : OBJET DE TYPE MOT
  18. C PRGY : LISTE DE REELS (ORDONNEES)
  19. C
  20. C CREATION : 01/10/86, GUILBAUD
  21. C MODIFS : 2015-05-07 BP, ajout du titre de la LEGEnde
  22. C
  23. C======================================================================
  24. IMPLICIT INTEGER(I-N)
  25.  
  26. -INC PPARAM
  27. -INC CCOPTIO
  28. -INC SMEVOLL
  29. -INC SMLREEL
  30. -INC SMLMOTS
  31. -INC SMLENTI
  32. C
  33. PARAMETER (NBOPT=4,NBSTY=7,NBMAR=13,NBTAI=5)
  34. C
  35. CHARACTER*72 TI,MTIT1
  36. CHARACTER*12 MOTITR
  37. CHARACTER*8 ITBLAN,TYPi
  38. CHARACTER*4 MTYP,LMOT(1)
  39. CHARACTER*4 MOOPT1(NBOPT),MOSTYL(NBSTY),MOMARQ(NBMAR),
  40. & MOTAIL(NBTAI)
  41. DIMENSION MOT(2)
  42. C
  43. DATA LMOT/'TYPE'/
  44. DATA MOOPT1/'LEGE','STYL','MARQ','TAIL'/
  45. DATA MOSTYL/'LIGN','TIRR','TIRC','TIRL','TIRM','POIN','NOLI'/
  46. DATA MOMARQ/'CROI','PLUS','MOIN','BARR','ETOI','CARR',
  47. & 'LOSA','ROND','TRID','TRIU','TRIL','TRIR',
  48. & 'NOMA'/
  49. DATA MOTAIL/'XS','S','M','L','XL'/
  50. C
  51. C CREATION DE LA SOUS-EVOLUTION
  52. SEGINI KEVOLL
  53. NOMEVX=' '
  54. NOMEVY=' '
  55. TYPX='LISTREEL'
  56. TYPY='LISTREEL'
  57. C
  58. C LECTURE OPTIONNELLE DU TYPE DE LA COURBE
  59. C (NUMEVY = MTYP = {REEL, MODU, PHAS, PREE, PIMA ...} ) :
  60. IPLAC=0
  61. IMOT=0
  62. CALL LIRMOT(LMOT,1,IPLAC,0)
  63. IF (IPLAC.EQ.1) THEN
  64. CALL LIRCHA(MTYP,1,IMOT)
  65. IF (IMOT.EQ.0) RETURN
  66. ENDIF
  67.  
  68. C LECTURE OPTIONNELLE DU TITRE DE LA SOUS EVOLUTION DE LA COURBE (LEGE)
  69. C OU DES SPECIFICATIONS DE TRACE DES COURBES :
  70. MTIT1=' '
  71. ITIT1=0
  72. LSTYL1 = 1
  73. MMARQ1 = 0
  74. KTAIL1 = 3
  75. 1 CONTINUE
  76. IOPT1=0
  77. CALL LIRMOT(MOOPT1,4,IOPT1,0)
  78. IF (IOPT1.EQ.1) THEN
  79. CALL LIRCHA(MTIT1,1,IRETOU)
  80. IF(IERR.NE.0) RETURN
  81. ITIT1=1
  82. GOTO 1
  83. ELSEIF (IOPT1.EQ.2) THEN
  84. CALL LIRENT(ISTYL1,0,IRETOU)
  85. IF (IRETOU.EQ.1) THEN
  86. ISTYL1 = MAX(ISTYL1,0)
  87. ISTYL1 = MOD(ISTYL1,NBSTY)
  88. IF (ISTYL1.EQ.0) ISTYL1 = NBSTY
  89. LSTYL1 = ISTYL1
  90. ELSE
  91. CALL LIRMOT(MOSTYL,NBSTY,LSTYL1,1)
  92. IF(IERR.NE.0) RETURN
  93. ENDIF
  94. GOTO 1
  95. ELSEIF (IOPT1.EQ.3) THEN
  96. CALL LIRENT(IMARQ1,0,IRETOU)
  97. IF (IRETOU.EQ.1) THEN
  98. IMARQ1 = MAX(IMARQ1,0)
  99. IMARQ1 = MOD(IMARQ1,NBMAR)
  100. IF (IMARQ1.EQ.0) IMARQ1 = NBMAR
  101. MMARQ1 = IMARQ1
  102. ELSE
  103. CALL LIRMOT(MOMARQ,NBMAR,MMARQ1,1)
  104. IF(IERR.NE.0) RETURN
  105. ENDIF
  106. GOTO 1
  107. ELSEIF (IOPT1.EQ.4) THEN
  108. CALL LIRENT(ITAIL1,0,IRETOU)
  109. IF (IRETOU.EQ.1) THEN
  110. ITAIL1 = MAX(ITAIL1,1)
  111. ITAIL1 = MOD(ITAIL1-1,NBTAI)+1
  112. KTAIL1 = ITAIL1
  113. ELSE
  114. CALL LIRMOT(MOTAIL,NBTAI,KTAIL1,1)
  115. IF(IERR.NE.0) RETURN
  116. ENDIF
  117. IF (KTAIL1.EQ.0) KTAIL1 = 3
  118. GOTO 1
  119. ENDIF
  120. C write(6,*) 'evmanu:MTIT1,LSTYL1,MMARQ1,KTAIL1',
  121. C & MTIT1,LSTYL1,MMARQ1,KTAIL1
  122. C
  123. C LECTURE DES TITRES ET LISTREELS DE L'ABSCISSE + ORDONNEE
  124. DO 20 J=1,2
  125.  
  126. C *** TITRE ABSCISSES / ORDONNEES SOUS FORME DE MOT
  127. MOTITR=' '
  128. CALL LIRCHA(MOTITR,0,IRETOU)
  129. IF(IRETOU.EQ.0) GOTO 12
  130. IF(J.EQ.1) NOMEVX=MOTITR
  131. IF(J.EQ.2) NOMEVY=MOTITR
  132.  
  133. C *** LECTURE DE LA LISTREEL (ou autre...)
  134. 12 CONTINUE
  135. CALL QUETYP (TYPi,1,IRETOU)
  136. IF (IRETOU .EQ. 0 .OR. (.NOT. ( Typi .EQ. 'LISTREEL'
  137. & .OR. Typi .EQ. 'LISTMOTS'
  138. & .OR. Typi .EQ. 'LISTENTI'))) THEN
  139. MOTERR(1 :8 ) = 'LISTREEL'
  140. MOTERR(9 :16) = 'LISTMOTS'
  141. MOTERR(17:24) = 'LISTENTI'
  142. CALL ERREUR(471)
  143. GOTO 1000
  144. ENDIF
  145.  
  146. CALL LIROBJ(Typi,MOT(J),0,IRET)
  147. IF( J.EQ.1) TYPX=Typi
  148. IF( J.EQ.2) TYPY=Typi
  149. 20 CONTINUE
  150. C
  151. IF (TYPX.EQ.'LISTREEL') THEN
  152. MLREEL=MOT(1)
  153. SEGACT MLREEL
  154. LX = PROG(/1)
  155. ELSEIF(TYPX.EQ.'LISTMOTS') THEN
  156. MLMOTS=MOT(1)
  157. SEGACT MLMOTS
  158. LX= MOTS(/2)
  159. ELSEIF(TYPX.EQ.'LISTENTI') THEN
  160. MLENTI=MOT(1)
  161. SEGACT MLENTI
  162. LX=LECT(/1)
  163. ENDIF
  164.  
  165. IF (TYPY.EQ.'LISTREEL') THEN
  166. MLREEL=MOT(2)
  167. SEGACT MLREEL
  168. LY = PROG(/1)
  169. IF (IPLAC .EQ. 0) MTYP ='REEL'
  170. ELSEIF(TYPY.EQ.'LISTMOTS') THEN
  171. MLMOTS=MOT(2)
  172. SEGACT MLMOTS
  173. LY= MOTS(/2)
  174. IF (IPLAC .EQ. 0) MTYP ='MOTS'
  175. ELSEIF(TYPY.EQ.'LISTENTI') THEN
  176. MLENTI=MOT(2)
  177. SEGACT MLENTI
  178. LY=LECT(/1)
  179. IF (IPLAC .EQ. 0) MTYP ='ENTI'
  180. ENDIF
  181.  
  182. IF(LX.NE.LY) THEN
  183. CALL ERREUR(263)
  184. C LES 2 PROGRESSIONS DOIVENT ETRE DE MEME LONGUEUR
  185. GOTO 1000
  186. ENDIF
  187.  
  188. C CREATION DE L'EVOLUTION AVEC 1 SEULE SOUS EVOLUTION
  189. N=1
  190. SEGINI MEVOLL
  191. IPVO=MEVOLL
  192. TI(1:72)=TITREE
  193. IEVTEX=TI
  194. ITYEVO='REEL'
  195. c KEVTEX=TI
  196. IF(ITIT1.EQ.0) MTIT1=NOMEVY
  197. KEVTEX=MTIT1
  198. LSTYL = LSTYL1
  199. MMARQ = MMARQ1
  200. KTAIL = KTAIL1
  201. IEVOLL(1)=KEVOLL
  202. IPROGX=MOT(1)
  203. IPROGY=MOT(2)
  204. NUMEVX=ICOUL
  205. NUMEVY=MTYP
  206. CALL ACTOBJ('EVOLUTIO',IPVO,1)
  207. CALL ECROBJ('EVOLUTIO',IPVO)
  208. RETURN
  209.  
  210. 1000 CONTINUE
  211. SEGSUP KEVOLL
  212. RETURN
  213. END
  214.  
  215.  
  216.  

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