Télécharger histog.eso

Retour à la liste

Numérotation des lignes :

  1. C HISTOG SOURCE CB215821 19/07/30 21:16:50 10273
  2. SUBROUTINE HISTOG
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5.  
  6. C----------------------------------------------------------------------C
  7. C C
  8. C SUBROUTINE DE L'OPERATEUR "HIST" : C
  9. C C
  10. C----------------------------------------------------------------------C
  11. C
  12. C SYNTAXE 1 :
  13. C
  14. C LENT1 LENT2 = HIST LVAL1 LCLAS1 (LVAL2 LCLAS2 ( ... )) ...
  15. C ... ('CLAS' 'OCCU') ;
  16. C OBJET :
  17. C
  18. C Etant donne :
  19. C - les N evenements definis par les m-uplets {X1 X2 ... Xm}
  20. C fournis sous la forme de m LISTREELS : LVAL1, ... LVALm
  21. C - les classes correspondantes LCLAS1 (de dime N1+1), ...
  22. C LCLASm (de dime Nm+1) de type LISTREEL egalement,
  23. C L'operateur 'HIST' renvoie le LISTENTI correspondant :
  24. C - a la classe de chaque evenement (option 'CLAS') --> LENT1
  25. C - au nombre d'occurences des evenements dans chacune des
  26. C classes (option 'OCCU') --> LENT2
  27. C Par defaut (aucune option), on renvoie les 2 LISTENTI.
  28. C
  29. C REMARQUE :
  30. C
  31. C On numerote de maniere globale les classes de telle sorte que
  32. C la k^eme classe (numero global) renvoie aux classes k1, k2 ...
  33. C avec : k = k1 + N1*(k2-1) + N1*N2*(k3-1) + ...
  34. C
  35. C EXEMPLE :
  36. C
  37. C Soit la suite de 4 evenements :
  38. C {0.2 4} {0.1 14} {0.5 10} {0.4 1}
  39. C definie par :
  40. C x1 = prog 0.2 0.1 1.1 0.5 0.4 ;
  41. C x2 = prog 4.0 14.0 9.0 10.0 1.0 ;
  42. C et les classes associees :
  43. C y1 = prog 0. 0.5 1. ;
  44. C y2 = prog 0. 5. 10. 15. 20.;
  45. C
  46. C la numerotation globale des classes est :
  47. C 0 0.5 1.0
  48. C 0 +-------+-------+----->y1
  49. C | 1 | 2 |
  50. C 5 +-------+-------+
  51. C | 3 | 4 |
  52. C 10 +-------+-------+
  53. C | 5 | 6 |
  54. C 15 +-------+-------+
  55. C | 7 | 8 |
  56. C 20 +-------+-------+
  57. C |
  58. C y2 v
  59. C
  60. C lclass loccu = HIST x1 y1 x2 y2 'CLAS' 'OCCU';
  61. C --> lclass contient la suite de 5 entiers :
  62. C 1 5 6 1
  63. C --> loccu contient la suite de 8 entiers :
  64. C 2 0 0 0 1 1 0 0
  65. C
  66. C----------------------------------------------------------------------C
  67. C C
  68. C SYNTAXE 2 : C
  69. C C
  70. C EV2 = HIST (COUL) MOD1 CHAM1 (ABS) LRE1 |(MOT1 )| ; C
  71. C |(LMOT1)| C
  72. C C
  73. C OBJET : C
  74. C L'OPERATEUR 'HIST' RENVOIE UNE EVOLUTION DE TYPE HISTOGRAMME C
  75. C REPRESENTANT LA DENSITE DE DISTRIBUTION DES VALEURS D'UN C
  76. C MCHAML SUR UN MAILLAGE. C
  77. C C
  78. C PRINCIPE : C
  79. C C
  80. C LES INTERVALLES D'ECHANTILLONNAGE DE LA DENSITE DE DISTRIBUTION C
  81. C SONT FOURNIS PAR LE 'LISTREEL' LRE1. DANS LE CAS OU CES INTERVAL-C
  82. C LES NE SONT CONSTANTS, ON REALISE UN HACHAGE EN INTERVALLES REGU-C
  83. C -LIERS DE TAILLE INFERIEURE AU + PETIT INTERVALLE DE LRE1. POUR C
  84. C CHAQUE INTERVALLE, ON MESURE LA LONGUEUR, LA SURFACE OU LE VOLU- C
  85. C -ME DU MAILLAGE ASSOCIE AUX POINTS SUPPORTS DU CHAMP DONT LA VA- C
  86. C -LEUR EST DANS L'INTERVALLE. CETTE MESURE EST DONNEE PAR LE PRO- C
  87. C -DUIT DU POIDS DE GAUSS DU POINT CONSIDERE AVCE LA VALEUR DU JA- C
  88. C -COBIEN EN CE POINT. C
  89. C C
  90. C REMARQUE : C
  91. C C
  92. C UN CHAMP EXPRIME AU NOEUDS EST INTERPOLE AUX POINTS SUPPORTS DES C
  93. C RIGIDITES. POUR LES AUTRES POINTS SUPPORTS, C'EST LE JACOBIEN C
  94. C QUI EST INTERPOLE AUX POINT SUPPORTS DU CHAMP. C
  95. C C
  96. C DESCRIPTION DES VARIABLES D'INTERET DU PROGRAMME : C
  97. C C
  98. C IPMOD1 : POINTEUR SUR MMODEL C
  99. C IPCHE1 : POINTEUR SUR CHAM1 C
  100. C MLREE1 : LISTREEL DES INTERVALLES DE MESURE C
  101. C MLREE2 : ORDONNEES DE LA DENSITE DE DISTRIBUTION C
  102. C LMOT1 : LISTMOTS CONTENANT LE OU LES NOMS DES COMPOSANTES DE C
  103. C CHAM1 A TRAITER C
  104. C N1 : NOMBRE D'INTERVALLES DE MLREE1 C
  105. C X1,X2 : BORNES INF ET SUP DES INTERVALLES D'ECHANTILLONNAGE C
  106. C XPASH : PAS DU HACHAGE C
  107. C NH : NOMBRE D'INTERVALLES DU HACHAGE C
  108. C XINDIC : SEGMENT CONTENANT LES RELATIONS ENTRE LES INTERVALLES C
  109. C DE MLREE1 ET DU HACHAGE
  110. C IPCHE2 : POINTEUR SUR MCHAML DU JACOBIEN ASSOCIE AU MAILLAGE. C
  111. C OBTENU PAR APPEL A JACOPO C
  112. C TZC1 : TABLEAU D'ENTIER, DE DIMENSION LE NOMBRE DE SOUS-ZONE C
  113. C DE CHAM1 x NOMBRE DE COMPOSANTES A TRAITER. CONTIENT C
  114. C LES POINTEURS SUR LES LISTREELS RELATIFS AUX DISTRI- C
  115. C -BUTIONS POUR CHAQUE SOUS-ZONE ET CHAQUE COMPOSANTE C
  116. C NCP2 : NOMBRE DE COMPOSANTES EFFECTIVEMENT TRAITEES C
  117. C LMOT2 : LISTMOTS, NOMS DES COMPOSANTES EFFECTIVEMENT TRAITEES C
  118. C CERTAINS NOMS DE COMPOSANTES SPECIFIES DANS LISMOT1 C
  119. C PEUVENT NE PAS EXISTER DANS CHAM1 C
  120. C MLENT1 : LISTE D'ENTIER DONNANT LES CORRESPONDANCES ENTRE LA C
  121. C Ie COMPOSANTE DU CHAMP ET LA Je COMPOSANTE A TRAITER C
  122. C MLNORM : LISTREEL : MESURE DE LA SOUS-ZONE ASSOCIEE A LA Je C
  123. C COMPOSANTE A TRAITER C
  124. C C
  125. C----------------------------------------------------------------------C
  126. -INC CCOPTIO
  127. -INC CCGEOME
  128. -INC SMELEME
  129. -INC SMCHAML
  130. -INC SMMODEL
  131. -INC SMLMOTS
  132. -INC SMLENTI
  133. -INC SMLREEL
  134. -INC SMEVOLL
  135. -INC SMINTE
  136. C C
  137. C---------------------------- DECLARATIONS ----------------------------C
  138. C C
  139. CHARACTER*4 MCOMP,MCOMPJ,MOTCLE(1)
  140. MOTCLE(1)='ABS '
  141. C C
  142. SEGMENT XINDIC
  143. INTEGER IIND1(IND1,2)
  144. REAL*8 XIND1(IND1)
  145. ENDSEGMENT
  146. SEGMENT TZC
  147. INTEGER ITZC1(NZ,NC)
  148. ENDSEGMENT
  149. C
  150. POINTEUR MLNORM.MLREEL
  151.  
  152. C=======================================================================
  153. C SYNTAXE 2 PAR DEFAUT
  154. C=======================================================================
  155. C C
  156. C----------------------- ACQUISITION DES ENTREES ----------------------C
  157. C C
  158. C LECTURE OPTIONNELLE DE LA COULEUR :
  159. CALL LIRMOT(NCOUL,NBCOUL,ICOUL,0)
  160. IF (ICOUL.EQ.0) ICOUL=IDCOUL+1
  161. ICOUL=ICOUL-1
  162. C C
  163. C LECTURE DU MODELE (OBLIGATOIRE pour la syntaxe 2):
  164. MOTERR(1:8)=' MODELE '
  165. CALL MESLIR(-137)
  166. CALL LIROBJ('MMODEL ',IPMOD1,0,IRET)
  167. IF(IERR.NE.0) RETURN
  168. IF(IRET.EQ.0) GOTO 100
  169. c ==> PAS DE MODELE, ON TENTE LA SYNTAXE 1
  170.  
  171. CALL ACTOBJ('MMODEL ',IPMOD1,1)
  172. C C
  173. C LECTURE OBLIGATOIRE DU CHAMP :
  174. MOTERR(1:8)=' MCHAML '
  175. CALL MESLIR(-137)
  176. CALL LIROBJ('MCHAML',IPCHE1,1,IRET)
  177. CALL ACTOBJ('MCHAML',IPCHE1,1)
  178. IF (IERR.NE.0) RETURN
  179. C REDUCTION IPCHE1 SUR IPMOD1
  180. CALL REDUAF(IPCHE1,IPMOD1,IPCHE2,0,IRET,KERRE)
  181. IF (IRET.NE.1) THEN
  182. CALL ERREUR(KERRE)
  183. RETURN
  184. ENDIF
  185. IPCHE1=IPCHE2
  186. C VERIFICATION QUE LES SOUS-ZONES ONT TOUTES MEME SUPPORT
  187. CALL QUESUP(IPMOD1,IPCHE1,0,0,IRET,ISUP1)
  188. IF (ISUP1.EQ.9999) THEN
  189. CALL ERREUR(560)
  190. RETURN
  191. ENDIF
  192. C C
  193. C LECTURE OPTIONNELLE DU MOT-CLE "ABS" :
  194. CALL LIRMOT(MOTCLE,1,IABS,0)
  195. C C
  196. C LECTURE OBLIGATOIRE DU LISTREEL (MLREE1 = INTERVALLES DE MESURE) :
  197. MOTERR(1:8)='LISTREEL'
  198. CALL MESLIR(-137)
  199. CALL LIROBJ('LISTREEL',MLREE1,1,IRET)
  200. IF (IERR.NE.0) RETURN
  201. SEGACT,MLREE1
  202. N1=MLREE1.PROG(/1)
  203. IF (N1.LE.1) THEN
  204. CALL ERREUR(249)
  205. RETURN
  206. ENDIF
  207. X1=MLREE1.PROG(1)
  208. X2=MLREE1.PROG(2)
  209. IF (X1.GE.X2) THEN
  210. CALL ERREUR(249)
  211. RETURN
  212. ENDIF
  213. C CONSTRUCTION D'UN HACHAGE DANS LE CAS OU LONG. INTERV. PAS CONST.:
  214. C 1. RECHERCHE DU + PETIT PAS DANS LISTREEL FOURNI (XPAS)
  215. JG=N1-1
  216. SEGINI,MLREE3
  217. XPAS=X2-X1
  218. MLREE3.PROG(1)=XPAS
  219. DO IH=3,N1
  220. X1=X2
  221. X2=MLREE1.PROG(IH)
  222. XPASI=X2-X1
  223. MLREE3.PROG(IH-1)=XPASI
  224. IF (XPAS.GT.XPASI) XPAS=XPASI
  225. ENDDO
  226. IF (XPAS.LE.0.) THEN
  227. CALL ERREUR(249)
  228. RETURN
  229. ENDIF
  230. C 2. CONSTRUCTION DU HACHAGE (INTERVALLES REGULIERS DE TAILLE
  231. C INFERIEURE AU + PETIT INTERVALLE DE MLREE1)
  232. C XINDIC PERMET D'ASSOCIER LES INTERVALLES DE MLREE1 AU HACHAGE :
  233. C IIND1(I,1)=0 : Ie INTERV. HACHAGE A CHEVAL SUR 2 INTERV. MLREE1
  234. C IIND1(I,1)=1 : Ie INTERV. HACHAGE STRICT. DANS 1 INTERV. MLREE1
  235. C IIND1(I,2)=K : Ie INTERV. HACHAGE ASSOCIE A Ke INTERV. MLREE1
  236. C XIND1(I)= BORNE DES 2 INTERV. MLREE1 DANS Ie INTERV. HACHAGE
  237. C (CAS OU IIND1(I,1)=0)
  238. X1=MLREE1.PROG(1)
  239. NH=INT((X2-X1)/XPAS)+1
  240. IND1=NH
  241. SEGINI,XINDIC
  242. IREF=1
  243. IIND1(1,1)=1
  244. IIND1(1,2)=IREF
  245. XPASH=(X2-X1)/FLOAT(NH)
  246. XREH=X1+XPASH
  247. DO IIND=2,NH
  248. XREF=MLREE1.PROG(IREF+1)
  249. XREH=XREH+XPASH
  250. IIND1(IIND,2)=IREF
  251. XIND1(IIND)=XREF
  252. IF(XREH.GT.XREF) THEN
  253. IIND1(IIND,1)=0
  254. IREF=IREF+1
  255. IF (IREF.GT.N1) THEN
  256. c write(6,*) 'IREF > N1 !!'
  257. RETURN
  258. ENDIF
  259. ELSE
  260. IIND1(IIND,1)=1
  261. ENDIF
  262. ENDDO
  263. C C
  264. C LECTURE OPTIONNELLE DU(DES) NOM(S) DE LA COMPOSANTE A TRAITER :
  265. NCP1=0
  266. C DONNEE D'UN MOT ?
  267. CALL LIRCHA(MCOMP,0,IMOT)
  268. IF (IMOT.NE.0) THEN
  269. NCP1=1
  270. JGM=NCP1
  271. JGN=IMOT
  272. SEGINI,MLMOT1
  273. MLMOT1.MOTS(1)=MCOMP(1:IMOT)
  274. ELSE
  275. C SINON, DONNEE D'UN LISTMOTS ?
  276. CALL LIROBJ('LISTMOTS',MLMOT1,0,IRET)
  277. IF (IRET.NE.0) THEN
  278. SEGACT,MLMOT1
  279. NCP1=MLMOT1.MOTS(/2)
  280. ELSE
  281. C SINON, TOUTES LES COMPOSANTES DU CHAMP EN ENTREE :
  282. C (ATTENTION : IL FAUT PARCOURIR TOUTES LES SOUS-ZONES...)
  283. IMOT=1
  284. MCHEL1=IPCHE1
  285. NZ1=MCHEL1.ICHAML(/1)
  286. MCHAM1=MCHEL1.ICHAML(1)
  287. C INITIALISATION MLMOTS SUR 1ERE SOUS-ZONE :
  288. JGN=MCHAM1.NOMCHE(/1)
  289. JGM=MCHAM1.NOMCHE(/2)
  290. SEGINI,MLMOT1
  291. NCP1=JGM
  292. DO I=1,NCP1
  293. MLMOT1.MOTS(I)=MCHAM1.NOMCHE(I)
  294. ENDDO
  295. C VERIF. NOMS COMPOSANTES SUR LES AUTRES SOUS-ZONES
  296. DO I=2,NZ1
  297. MCHAM1=MCHEL1.ICHAML(I)
  298. DO J=1,MCHAM1.NOMCHE(/2)
  299. MCOMPJ=MCHAM1.NOMCHE(J)
  300. CALL PLACE(MLMOT1.MOTS,NCP1,IPLA,MCOMPJ)
  301. IF (IPLA.EQ.0) THEN
  302. JGM=NCP1+1
  303. SEGADJ,MLMOT1
  304. NCP1=NCP1+1
  305. MLMOT1.MOTS(NCP1)=MCOMPJ
  306. ENDIF
  307. ENDDO
  308. ENDDO
  309. ENDIF
  310. ENDIF
  311. C C
  312. C----------------------------- TRAITEMENT -----------------------------C
  313. C C
  314. C JACOBIEN ASSOCIE AU MODELE :
  315. C CALCUL DU JACOBIEN :
  316. CALL JACOPO(IPMOD1,IPCHE2,IRET)
  317. IF (IRET.EQ.0) RETURN
  318. MMODEL=IPMOD1
  319. IMODEL=KMODEL(1)
  320. C
  321. C AJUSTEMENT DES POINTS SUPPORTS :
  322. C ISUP1 = VALEUR INDICATEUR POINTS SUPPORTS IPCHE1
  323. C ISUP2 = VALEUR INDICATEUR POINTS SUPPORTS IPCHE2 (JACOBIEN)
  324. IF (ISUP1.EQ.1) THEN
  325. CALL CHASUP(IPMOD1,IPCHE1,IPCHE3,IRET,5)
  326. IF (IRET.NE.0) THEN
  327. CALL ERREUR(IRET)
  328. RETURN
  329. ENDIF
  330. IPCHE1=IPCHE3
  331. ELSEIF (ISUP1.NE.5) THEN
  332. CALL CHASUP(IPMOD1,IPCHE2,IPCHE3,IRET,ISUP1)
  333. IF (IRET.NE.0) THEN
  334. CALL ERREUR(IRET)
  335. RETURN
  336. ENDIF
  337. IPCHE2=IPCHE3
  338. ENDIF
  339. C
  340. C ECHANTILLONNAGE :
  341. NCP2=0
  342. MCHEL1=IPCHE1
  343. MCHEL2=IPCHE2
  344. NZ1=MCHEL1.ICHAML(/1)
  345. NZ=NZ1
  346. NC=NCP1
  347. SEGINI,TZC
  348. JGN=MLMOT1.MOTS(/1)
  349. JGM=NCP1
  350. SEGINI,MLMOT2
  351. JG=NCP1
  352. SEGINI,MLNORM
  353. SEGINI,MLENT1
  354. DO I=1,NZ1
  355. MCHAM1=MCHEL1.ICHAML(I)
  356. IPT1=MCHEL1.IMACHE(I)
  357. ICOMP=MCHAM1.NOMCHE(/2)
  358. MINTE2=MCHEL2.INFCHE(I,4)
  359. MCHAM2=MCHEL2.ICHAML(I)
  360. MELVA2=MCHAM2.IELVAL(1)
  361. DO J=1,ICOMP
  362. MCOMPJ=MCHAM1.NOMCHE(J)
  363. CALL PLACE(MLMOT1.MOTS,NCP1,IPLA,MCOMPJ)
  364. IF (IPLA.NE.0) THEN
  365. IF (MCHAM1.TYPCHE(J).NE.'REAL*8') THEN
  366. MOTERR(1:4)='HIST'
  367. MOTERR(5:8)=MCOMPJ(1:4)
  368. CALL ERREUR(335)
  369. RETURN
  370. ENDIF
  371. JREF=IPLA
  372. IPLA=0
  373. IF (NCP2.NE.0) CALL PLACE(MLMOT2.MOTS,NCP2,IPLA,MCOMPJ)
  374. IF (IPLA.EQ.0) THEN
  375. NCP2=NCP2+1
  376. MLMOT2.MOTS(NCP2)=MCOMPJ
  377. MLENT1.LECT(JREF)=NCP2
  378. ENDIF
  379. JG=N1
  380. SEGINI,MLREE2
  381. ITZC1(I,JREF)=MLREE2
  382. MELVA1=MCHAM1.IELVAL(J)
  383. NP1=MELVA1.VELCHE(/1)
  384. NE1=MELVA1.VELCHE(/2)
  385. NP2=MELVA2.VELCHE(/1)
  386. NE2=MELVA2.VELCHE(/2)
  387. DO K=1,IPT1.NUM(/2)
  388. DO L=1,MINTE2.POIGAU(/1)
  389. VIJKL2=MINTE2.POIGAU(L)*
  390. & (ABS(MELVA2.VELCHE(MIN(NP2,L),MIN(NE2,K))))
  391. XIJKL1=MELVA1.VELCHE(MIN(NP1,L),MIN(NE1,K))
  392. IF (IABS.EQ.1) XIJKL1=ABS(XIJKL1)
  393. NIJKL1=INT((XIJKL1-X1)/XPASH)+1
  394. IF (NIJKL1.GE.1.AND.NIJKL1.LE.NH.AND.XIJKL1.GE.X1) THEN
  395. IIJKL1=IIND1(NIJKL1,2)
  396. IF (IIND1(NIJKL1,1).EQ.1) THEN
  397. XIJKL2=VIJKL2/MLREE3.PROG(IIJKL1)
  398. MLREE2.PROG(IIJKL1)=MLREE2.PROG(IIJKL1)+XIJKL2
  399. ELSE
  400. IF (XIJKL1.LT.XIND1(NIJKL1)) THEN
  401. XIJKL2=VIJKL2/MLREE3.PROG(IIJKL1)
  402. MLREE2.PROG(IIJKL1)=MLREE2.PROG(IIJKL1)+XIJKL2
  403. ELSE
  404. XIJKL2=VIJKL2/MLREE3.PROG(IIJKL1+1)
  405. MLREE2.PROG(IIJKL1+1)=MLREE2.PROG(IIJKL1+1)+XIJKL2
  406. ENDIF
  407. ENDIF
  408. ENDIF
  409. MLNORM.PROG(JREF)=MLNORM.PROG(JREF)+VIJKL2
  410. ENDDO
  411. ENDDO
  412. ENDIF
  413. ENDDO
  414. ENDDO
  415. C
  416. C VERIFICATION NOMBRE DE COMPOSANTES EFFECTIVEMENT TRAITEES
  417. c write(6,*) 'NCP2 =',NCP2
  418. IF (NCP2.EQ.0) THEN
  419. IF (IMOT.NE.0) THEN
  420. MOTERR(1:4)=MLMOT1.MOTS(1)
  421. MOTERR(5:8)=' '
  422. CALL ERREUR(77)
  423. RETURN
  424. ELSE
  425. CALL ERREUR(26)
  426. RETURN
  427. ENDIF
  428. ENDIF
  429. IF (NCP2.LT.NCP1) THEN
  430. JGN=MLMOT2.MOTS(/1)
  431. JGM=NCP2
  432. SEGADJ,MLMOT2
  433. ENDIF
  434. SEGSUP,MLREE3
  435. C
  436. C------------------------------- SORTIE -------------------------------C
  437. C C
  438. C CONSTRUCTION DE L'EVOLUTION :
  439. C SOMMATION DES ORDONNEES SUR CHAQUE SOUS-ZONE,
  440. C COMPOSANTE PAR COMPOSANTE :
  441. N=NCP2
  442. SEGINI,MEVOLL
  443. ITYEVO='REEL'
  444. IEVTEX=' '
  445. DO I=1,NCP1
  446. ICP=MLENT1.LECT(I)
  447. IF (ICP.NE.0) THEN
  448. MLREE2=ITZC1(1,I)
  449. C SOMME SUR LES SOUS-ZONES :
  450. DO J=2,ITZC1(/1)
  451. MLREE3=ITZC1(J,I)
  452. IF (MLREE2.EQ.0) THEN
  453. MLREE2=MLREE3
  454. ELSE
  455. IF (MLREE3.NE.0) THEN
  456. CALL ADLISR(MLREE2,MLREE3,IRET,1)
  457. IF (IRET.EQ.0) RETURN
  458. MLREE2=IRET
  459. ENDIF
  460. ENDIF
  461. ENDDO
  462. C DIVISION DES ORDONNEES PAR XNORM => DENSITE DE DISTRIB.
  463. XNORM=MLNORM.PROG(I)
  464. CALL MUFLIR(MLREE2,XNORM,IRET,-1)
  465. SEGINI,KEVOLL
  466. IPROGX=MLREE1
  467. IPROGY=IRET
  468. TYPX='LISTREEL'
  469. TYPY='LISTREEL'
  470. C COURBE DE TYPE "HIST" POUR TRAITEMENT DANS DESSIN :
  471. NUMEVX=ICOUL
  472. NUMEVY='HIST'
  473. NOMEVX=MLMOT2.MOTS(ICP)
  474. NOMEVY=' '
  475. MEVOLL.IEVOLL(ICP)=KEVOLL
  476. ENDIF
  477. ENDDO
  478. C C
  479. C SORTIE :
  480. CALL ACTOBJ('EVOLUTIO',MEVOLL,1)
  481. CALL ECROBJ('EVOLUTIO',MEVOLL)
  482. C C
  483. C UN PEU DE MENAGE :
  484. IF (IMOT.NE.0) THEN
  485. SEGSUP,MLMOT1
  486. ENDIF
  487. SEGSUP,MLMOT2,TZC,XINDIC,MLNORM,MLENT1
  488.  
  489. RETURN
  490.  
  491.  
  492. C=======================================================================
  493. C SYNTAXE 1 : --> HISTO1
  494. C=======================================================================
  495. 100 CONTINUE
  496. CALL HISTO1
  497. END
  498.  
  499.  
  500.  

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