Télécharger crevlc.eso

Retour à la liste

Numérotation des lignes :

crevlc
  1. C CREVLC SOURCE CB215821 22/08/22 21:15:02 11429
  2. SUBROUTINE CREVLC(ILREE1,ILCHP1,IMAIL1,ILMOT1,ILMOT2,TITR1,IEVOL1)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. ************************************************************************
  6. * NOM : CREVLC
  7. * DESCRIPTION : Cree un objet EVOLUTION a partir d'un LISTCHPO, un
  8. * MAILLAGE et un LISTMOTS pour les ordonnees et d'un
  9. * LISTREEL pour les abscisses
  10. ************************************************************************
  11. * APPELE PAR : evresu.eso ; evreco.eso
  12. ************************************************************************
  13. * ENTREES : ILREE1 = pointeur vers le LISTREEL des abscisses
  14. * ILCHP1 = pointeur vers le LISTCHPO des ordonnees
  15. * IMAIL1 = pointeur vers le MELEME de POI1
  16. * ILMOT1 = pointeur vers le LISTMOTS des composantes
  17. * (0 si non specifie)
  18. * ILMOT2 = pointeur vers le LISTMOTS des couleurs des courbes
  19. * TITR1 = titre de l'ensemble des courbes
  20. * SORTIES : IEVOL1 = pointeur vers l'objet EVOLUTIO
  21. ************************************************************************
  22.  
  23. -INC PPARAM
  24. -INC CCOPTIO
  25. -INC SMEVOLL
  26. -INC SMELEME
  27. -INC SMLENTI
  28. -INC SMLREEL
  29. -INC SMLMOTS
  30. -INC SMLCHPO
  31. *
  32. POINTEUR LCOUL.MLENTI
  33. POINTEUR LCOMP.MLMOTS
  34. POINTEUR LNOMS.MLMOTS
  35. *
  36. CHARACTER*(LOCOMP) MOCMP1
  37. CHARACTER*8 CHA8
  38. CHARACTER*10 CH10
  39. CHARACTER*16 CH16
  40. CHARACTER*72 TITR1,FMT1
  41. *
  42. *
  43. * ======================
  44. * LISTREEL DES ABSCISSES
  45. * ======================
  46. *
  47. MLREEL=ILREE1
  48. SEGACT,MLREEL
  49. NT=PROG(/1)
  50. *
  51. *
  52. * ======================
  53. * LISTCHPO DES ORDONNEES
  54. * ======================
  55. *
  56. MLCHPO=ILCHP1
  57. SEGACT,MLCHPO
  58. IF (ICHPOI(/1).NE.NT) THEN
  59. CALL ERREUR(212)
  60. RETURN
  61. ENDIF
  62. *
  63. *
  64. * =========
  65. * GEOMETRIE
  66. * =========
  67. *
  68. MELEME=IMAIL1
  69. SEGACT,MELEME
  70. IF (LISOUS(/1).NE.0.OR.ITYPEL.NE.1) CALL CHANGE(MELEME,1)
  71. SEGACT,MELEME
  72. NPO=NUM(/2)
  73. IF (NPO.EQ.0) THEN
  74. MOTERR(1:8)='MAILLAGE'
  75. CALL ERREUR(1027)
  76. RETURN
  77. ENDIF
  78. *
  79. *
  80. * ========================
  81. * LISTE DES NOMS DE POINTS
  82. * ========================
  83. *
  84. JGM=NPO
  85. JGN=16
  86. SEGINI,LNOMS
  87. DO I=1,NPO
  88. IPO1=NUM(1,I)
  89. CALL SKNAME(IPO1,CHA8,IRETOU,1)
  90. *
  91. * ON A TROUVE UN NOM DANS LA LISTE DES OBJETS NOMMES
  92. IF (IRETOU.NE.0) THEN
  93. LNOMS.MOTS(I)=CHA8
  94. *
  95. * SINON, CREATION D'UN NOM PAR DEFAUT
  96. ELSE
  97. WRITE(CH10,FMT='(I10)') IPO1
  98. CALL LIMCHA(CH10,I1,I2)
  99. WRITE(CH16,FMT='("POINT#",A)') CH10(I1:I2)
  100. LNOMS.MOTS(I)=CH16
  101. ENDIF
  102. ENDDO
  103. *
  104. *
  105. * =====================
  106. * LISTE DES COMPOSANTES
  107. * =====================
  108. *
  109. LCOMP=ILMOT1
  110. IF (LCOMP.NE.0) THEN
  111. SEGACT,LCOMP
  112. NCO=LCOMP.MOTS(/2)
  113. ELSE
  114. NCO=1
  115. ENDIF
  116. *
  117. *
  118. * ==================
  119. * LISTE DES COULEURS
  120. * ==================
  121. *
  122. LCOUL=ILMOT2
  123. SEGACT,LCOUL
  124. NCLR=LCOUL.LECT(/1)
  125. *
  126. * ON COMPLETE SI BESOIN LA LISTE DES COULEURS
  127. NEV=NCO*NPO
  128. IF (NEV.GT.NCLR) THEN
  129. JG=NEV
  130. SEGADJ,LCOUL
  131. DO K=NCLR+1,NEV
  132. LCOUL.LECT(K)=LCOUL.LECT(K-NCLR)
  133. ENDDO
  134. ENDIF
  135. *
  136. *
  137. * ====================
  138. * CREATION DES COURBES
  139. * ====================
  140. *
  141. N=NEV
  142. SEGINI,MEVOLL
  143. IEVOL1=MEVOLL
  144. ITYEVO='REEL'
  145. IEVTEX=TITR1
  146. DO INO=1,NPO
  147. SEGACT,MELEME
  148. IPO1=NUM(1,INO)
  149. *
  150. CALL EXTR24(ILCHP1,LCOMP,IPO1,ILREE2)
  151. MLREE2=ILREE2
  152. SEGACT,MLREE2
  153. IF (MLREE2.PROG(/1)/NCO.NE.NT) THEN
  154. MOTERR(1:8)='CREVLC'
  155. CALL ERREUR(1039)
  156. RETURN
  157. ENDIF
  158. *
  159. DO ICO=1,NCO
  160. *
  161. IF (NCO.EQ.1) THEN
  162. ILREEY=ILREE2
  163. ELSE
  164. JG=NT
  165. SEGINI,MLREE3
  166. ILREEY=MLREE3
  167. IT1=(ICO-1)*NT
  168. DO IT=1,NT
  169. MLREE3.PROG(IT)=MLREE2.PROG(IT1+IT)
  170. ENDDO
  171. ENDIF
  172. *
  173. IEV=(INO-1)*NCO+ICO
  174. SEGINI,KEVOLL
  175. IEVOLL(IEV)=KEVOLL
  176. TYPX='LISTREEL'
  177. TYPY='LISTREEL'
  178. IPROGX=ILREE1
  179. IPROGY=ILREEY
  180. NUMEVX=LCOUL.LECT(IEV)
  181. NUMEVY='REEL'
  182. NOMEVX='TEMPS'
  183. if (lcomp.ne.0) then
  184. MOCMP1=LCOMP.MOTS(ICO)
  185. NOMEVY = MOCMP1
  186. endif
  187. IF (NCO.EQ.1) THEN
  188. KEVTEX=LNOMS.MOTS(INO)
  189. ELSE
  190. CH16=LNOMS.MOTS(INO)
  191. CALL LENCHA(CH16,LN)
  192. FMT1='(A," COMP. ",' // FMCOMP(2:4)
  193. WRITE(KEVTEX,FMT=FMT1) CH16(1:LN),MOCMP1
  194. ENDIF
  195. ENDDO
  196. *
  197. IF (NCO.NE.1) SEGSUP,MLREE2
  198. *
  199. ENDDO
  200. SEGSUP,LNOMS
  201. *
  202. RETURN
  203. *
  204. END
  205. *
  206. *
  207.  
  208.  
  209.  
  210.  

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