Télécharger evmanu.eso

Retour à la liste

Numérotation des lignes :

evmanu
  1. C EVMANU SOURCE OF166741 25/02/20 21:16:21 12165
  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. c Style, marque et taille par defaut (voir SMEVOLL.INC)
  73. LSTYL1 = 1
  74. MMARQ1 = 0
  75. KTAIL1 = 3
  76. 1 CONTINUE
  77. IOPT1=0
  78. CALL LIRMOT(MOOPT1,4,IOPT1,0)
  79. IF (IOPT1.EQ.1) THEN
  80. CALL LIRCHA(MTIT1,1,IRETOU)
  81. IF(IERR.NE.0) RETURN
  82. ITIT1=1
  83. GOTO 1
  84. ELSEIF (IOPT1.EQ.2) THEN
  85. CALL LIRENT(ISTYL1,0,IRETOU)
  86. IF (IRETOU.EQ.1) THEN
  87. ISTYL1 = MAX(ISTYL1,0)
  88. ISTYL1 = MOD(ISTYL1,NBSTY)
  89. IF (ISTYL1.EQ.0) ISTYL1 = NBSTY
  90. LSTYL1 = ISTYL1
  91. ELSE
  92. CALL LIRMOT(MOSTYL,NBSTY,LSTYL1,1)
  93. IF(IERR.NE.0) RETURN
  94. ENDIF
  95. GOTO 1
  96. ELSEIF (IOPT1.EQ.3) THEN
  97. CALL LIRENT(IMARQ1,0,IRETOU)
  98. IF (IRETOU.EQ.1) THEN
  99. IMARQ1 = MAX(IMARQ1,0)
  100. IMARQ1 = MOD(IMARQ1,NBMAR)
  101. IF (IMARQ1.EQ.0) IMARQ1 = NBMAR
  102. MMARQ1 = IMARQ1
  103. ELSE
  104. CALL LIRMOT(MOMARQ,NBMAR,MMARQ1,1)
  105. IF(IERR.NE.0) RETURN
  106. ENDIF
  107. GOTO 1
  108. ELSEIF (IOPT1.EQ.4) THEN
  109. CALL LIRENT(ITAIL1,0,IRETOU)
  110. IF (IRETOU.EQ.1) THEN
  111. ITAIL1 = MAX(ITAIL1,1)
  112. ITAIL1 = MOD(ITAIL1-1,NBTAI)+1
  113. KTAIL1 = ITAIL1
  114. ELSE
  115. CALL LIRMOT(MOTAIL,NBTAI,KTAIL1,1)
  116. IF(IERR.NE.0) RETURN
  117. ENDIF
  118. IF (KTAIL1.EQ.0) KTAIL1 = 3
  119. GOTO 1
  120. ENDIF
  121. C write(6,*) 'evmanu:MTIT1,LSTYL1,MMARQ1,KTAIL1',
  122. C & MTIT1,LSTYL1,MMARQ1,KTAIL1
  123. C
  124. C LECTURE DES TITRES ET LISTREELS DE L'ABSCISSE + ORDONNEE
  125. DO 20 J=1,2
  126.  
  127. C *** TITRE ABSCISSES / ORDONNEES SOUS FORME DE MOT
  128. MOTITR=' '
  129. CALL LIRCHA(MOTITR,0,IRETOU)
  130. IF(IRETOU.EQ.0) GOTO 12
  131. IF(J.EQ.1) NOMEVX=MOTITR
  132. IF(J.EQ.2) NOMEVY=MOTITR
  133.  
  134. C *** LECTURE DE LA LISTREEL (ou autre...)
  135. 12 CONTINUE
  136. CALL QUETYP (TYPi,1,IRETOU)
  137. IF (IRETOU .EQ. 0 .OR. (.NOT. ( Typi .EQ. 'LISTREEL'
  138. & .OR. Typi .EQ. 'LISTMOTS'
  139. & .OR. Typi .EQ. 'LISTENTI'))) THEN
  140. MOTERR(1 :8 ) = 'LISTREEL'
  141. MOTERR(9 :16) = 'LISTMOTS'
  142. MOTERR(17:24) = 'LISTENTI'
  143. CALL ERREUR(471)
  144. GOTO 1000
  145. ENDIF
  146.  
  147. CALL LIROBJ(Typi,MOT(J),0,IRET)
  148. IF( J.EQ.1) TYPX=Typi
  149. IF( J.EQ.2) TYPY=Typi
  150. 20 CONTINUE
  151. C
  152. IF (TYPX.EQ.'LISTREEL') THEN
  153. MLREEL=MOT(1)
  154. SEGACT MLREEL
  155. LX = PROG(/1)
  156. ELSEIF(TYPX.EQ.'LISTMOTS') THEN
  157. MLMOTS=MOT(1)
  158. SEGACT MLMOTS
  159. LX= MOTS(/2)
  160. ELSEIF(TYPX.EQ.'LISTENTI') THEN
  161. MLENTI=MOT(1)
  162. SEGACT MLENTI
  163. LX=LECT(/1)
  164. ENDIF
  165.  
  166. IF (TYPY.EQ.'LISTREEL') THEN
  167. MLREEL=MOT(2)
  168. SEGACT MLREEL
  169. LY = PROG(/1)
  170. IF (IPLAC .EQ. 0) MTYP ='REEL'
  171. ELSEIF(TYPY.EQ.'LISTMOTS') THEN
  172. MLMOTS=MOT(2)
  173. SEGACT MLMOTS
  174. LY= MOTS(/2)
  175. IF (IPLAC .EQ. 0) MTYP ='MOTS'
  176. ELSEIF(TYPY.EQ.'LISTENTI') THEN
  177. MLENTI=MOT(2)
  178. SEGACT MLENTI
  179. LY=LECT(/1)
  180. IF (IPLAC .EQ. 0) MTYP ='ENTI'
  181. ENDIF
  182.  
  183. IF(LX.NE.LY) THEN
  184. CALL ERREUR(263)
  185. C LES 2 PROGRESSIONS DOIVENT ETRE DE MEME LONGUEUR
  186. GOTO 1000
  187. ENDIF
  188.  
  189. C CREATION DE L'EVOLUTION AVEC 1 SEULE SOUS EVOLUTION
  190. N=1
  191. SEGINI MEVOLL
  192. IPVO=MEVOLL
  193. TI(1:72)=TITREE
  194. IEVTEX=TI
  195. ITYEVO='REEL'
  196. c KEVTEX=TI
  197. IF(ITIT1.EQ.0) MTIT1=NOMEVY
  198. KEVTEX=MTIT1
  199. LSTYL = LSTYL1
  200. MMARQ = MMARQ1
  201. KTAIL = KTAIL1
  202. IEVOLL(1)=KEVOLL
  203. IPROGX=MOT(1)
  204. IPROGY=MOT(2)
  205. NUMEVX=ICOUL
  206. NUMEVY=MTYP
  207. CALL ACTOBJ('EVOLUTIO',IPVO,1)
  208. CALL ECROBJ('EVOLUTIO',IPVO)
  209. RETURN
  210.  
  211. 1000 CONTINUE
  212. SEGSUP KEVOLL
  213. RETURN
  214. END
  215.  
  216.  
  217.  

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