Télécharger evmanu.eso

Retour à la liste

Numérotation des lignes :

evmanu
  1. C EVMANU SOURCE SP204843 25/06/05 21:15:05 12270
  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 CCGEOME
  29. -INC SMEVOLL
  30. -INC SMLREEL
  31. -INC SMLMOTS
  32. -INC SMLENTI
  33. C
  34. PARAMETER (NBOPT=4)
  35. C
  36. CHARACTER*72 TI,MTIT1
  37. CHARACTER*12 MOTITR
  38. CHARACTER*8 ITBLAN,TYPi
  39. CHARACTER*4 MTYP,LMOT(1)
  40. CHARACTER*4 MOOPT1(NBOPT)
  41. DIMENSION MOT(2)
  42. C
  43. DATA LMOT/'TYPE'/
  44. DATA MOOPT1/'LEGE','STYL','MARQ','TAIL'/
  45. C
  46. C CREATION DE LA SOUS-EVOLUTION
  47. SEGINI KEVOLL
  48. NOMEVX=' '
  49. NOMEVY=' '
  50. TYPX='LISTREEL'
  51. TYPY='LISTREEL'
  52. C
  53. C LECTURE OPTIONNELLE DU TYPE DE LA COURBE
  54. C (NUMEVY = MTYP = {REEL, MODU, PHAS, PREE, PIMA ...} ) :
  55. IPLAC=0
  56. IMOT=0
  57. CALL LIRMOT(LMOT,1,IPLAC,0)
  58. IF (IPLAC.EQ.1) THEN
  59. CALL LIRCHA(MTYP,1,IMOT)
  60. IF (IMOT.EQ.0) RETURN
  61. ENDIF
  62.  
  63. C LECTURE OPTIONNELLE DU TITRE DE LA SOUS EVOLUTION DE LA COURBE (LEGE)
  64. C OU DES SPECIFICATIONS DE TRACE DES COURBES :
  65. MTIT1=' '
  66. ITIT1=0
  67. c Style, marque et taille par defaut (voir SMEVOLL.INC)
  68. LSTYL1 = 1
  69. MMARQ1 = 0
  70. KTAIL1 = 3
  71. 1 CONTINUE
  72. IOPT1=0
  73. CALL LIRMOT(MOOPT1,4,IOPT1,0)
  74. IF (IOPT1.EQ.1) THEN
  75. CALL LIRCHA(MTIT1,1,IRETOU)
  76. IF(IERR.NE.0) RETURN
  77. ITIT1=1
  78. GOTO 1
  79. ELSEIF (IOPT1.EQ.2) THEN
  80. CALL LIRENT(ISTYL1,0,IRETOU)
  81. IF (IRETOU.EQ.1) THEN
  82. ISTYL1 = MAX(ISTYL1,0)
  83. ISTYL1 = MOD(ISTYL1,NBSTY)
  84. IF (ISTYL1.EQ.0) ISTYL1 = NBSTY
  85. LSTYL1 = ISTYL1
  86. ELSE
  87. CALL LIRMOT(MOSTYL,NBSTY,LSTYL1,1)
  88. IF(IERR.NE.0) RETURN
  89. ENDIF
  90. GOTO 1
  91. ELSEIF (IOPT1.EQ.3) THEN
  92. CALL LIRENT(IMARQ1,0,IRETOU)
  93. IF (IRETOU.EQ.1) THEN
  94. IMARQ1 = MAX(IMARQ1,0)
  95. IMARQ1 = MOD(IMARQ1,NBMAR)
  96. IF (IMARQ1.EQ.0) IMARQ1 = NBMAR
  97. MMARQ1 = IMARQ1
  98. ELSE
  99. CALL LIRMOT(MOMARQ,NBMAR,MMARQ1,1)
  100. IF(IERR.NE.0) RETURN
  101. ENDIF
  102. GOTO 1
  103. ELSEIF (IOPT1.EQ.4) THEN
  104. CALL LIRENT(ITAIL1,0,IRETOU)
  105. IF (IRETOU.EQ.1) THEN
  106. ITAIL1 = MAX(ITAIL1,1)
  107. ITAIL1 = MOD(ITAIL1-1,NBTAI)+1
  108. KTAIL1 = ITAIL1
  109. ELSE
  110. CALL LIRMOT(MOTAIL,NBTAI,KTAIL1,1)
  111. IF(IERR.NE.0) RETURN
  112. ENDIF
  113. IF (KTAIL1.EQ.0) KTAIL1 = 3
  114. GOTO 1
  115. ENDIF
  116. C write(6,*) 'evmanu:MTIT1,LSTYL1,MMARQ1,KTAIL1',
  117. C & MTIT1,LSTYL1,MMARQ1,KTAIL1
  118. C
  119. C LECTURE DES TITRES ET LISTREELS DE L'ABSCISSE + ORDONNEE
  120. DO 20 J=1,2
  121.  
  122. C *** TITRE ABSCISSES / ORDONNEES SOUS FORME DE MOT
  123. MOTITR=' '
  124. CALL LIRCHA(MOTITR,0,IRETOU)
  125. IF(IRETOU.EQ.0) GOTO 12
  126. IF(J.EQ.1) NOMEVX=MOTITR
  127. IF(J.EQ.2) NOMEVY=MOTITR
  128.  
  129. C *** LECTURE DE LA LISTREEL (ou autre...)
  130. 12 CONTINUE
  131. CALL QUETYP (TYPi,1,IRETOU)
  132. IF (IRETOU .EQ. 0 .OR. (.NOT. ( Typi .EQ. 'LISTREEL'
  133. & .OR. Typi .EQ. 'LISTMOTS'
  134. & .OR. Typi .EQ. 'LISTENTI'))) THEN
  135. MOTERR(1 :8 ) = 'LISTREEL'
  136. MOTERR(9 :16) = 'LISTMOTS'
  137. MOTERR(17:24) = 'LISTENTI'
  138. CALL ERREUR(471)
  139. GOTO 1000
  140. ENDIF
  141.  
  142. CALL LIROBJ(Typi,MOT(J),0,IRET)
  143. IF( J.EQ.1) TYPX=Typi
  144. IF( J.EQ.2) TYPY=Typi
  145. 20 CONTINUE
  146. C
  147. IF (TYPX.EQ.'LISTREEL') THEN
  148. MLREEL=MOT(1)
  149. SEGACT MLREEL
  150. LX = PROG(/1)
  151. ELSEIF(TYPX.EQ.'LISTMOTS') THEN
  152. MLMOTS=MOT(1)
  153. SEGACT MLMOTS
  154. LX= MOTS(/2)
  155. ELSEIF(TYPX.EQ.'LISTENTI') THEN
  156. MLENTI=MOT(1)
  157. SEGACT MLENTI
  158. LX=LECT(/1)
  159. ENDIF
  160.  
  161. IF (TYPY.EQ.'LISTREEL') THEN
  162. MLREEL=MOT(2)
  163. SEGACT MLREEL
  164. LY = PROG(/1)
  165. IF (IPLAC .EQ. 0) MTYP ='REEL'
  166. ELSEIF(TYPY.EQ.'LISTMOTS') THEN
  167. MLMOTS=MOT(2)
  168. SEGACT MLMOTS
  169. LY= MOTS(/2)
  170. IF (IPLAC .EQ. 0) MTYP ='MOTS'
  171. ELSEIF(TYPY.EQ.'LISTENTI') THEN
  172. MLENTI=MOT(2)
  173. SEGACT MLENTI
  174. LY=LECT(/1)
  175. IF (IPLAC .EQ. 0) MTYP ='ENTI'
  176. ENDIF
  177.  
  178. IF(LX.NE.LY) THEN
  179. CALL ERREUR(263)
  180. C LES 2 PROGRESSIONS DOIVENT ETRE DE MEME LONGUEUR
  181. GOTO 1000
  182. ENDIF
  183.  
  184. C CREATION DE L'EVOLUTION AVEC 1 SEULE SOUS EVOLUTION
  185. N=1
  186. SEGINI MEVOLL
  187. IPVO=MEVOLL
  188. TI(1:72)=TITREE
  189. IEVTEX=TI
  190. ITYEVO='REEL'
  191. c KEVTEX=TI
  192. IF(ITIT1.EQ.0) MTIT1=NOMEVY
  193. KEVTEX=MTIT1
  194. LSTYL = LSTYL1
  195. MMARQ = MMARQ1
  196. KTAIL = KTAIL1
  197. IEVOLL(1)=KEVOLL
  198. IPROGX=MOT(1)
  199. IPROGY=MOT(2)
  200. NUMEVX=ICOUL
  201. NUMEVY=MTYP
  202. CALL ACTOBJ('EVOLUTIO',IPVO,1)
  203. CALL ECROBJ('EVOLUTIO',IPVO)
  204. RETURN
  205.  
  206. 1000 CONTINUE
  207. SEGSUP KEVOLL
  208. RETURN
  209. END
  210.  
  211.  
  212.  
  213.  

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