Télécharger histog.eso

Retour à la liste

Numérotation des lignes :

  1. C HISTOG SOURCE BP208322 16/11/18 21:17:32 9177
  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. C C
  171. C LECTURE OBLIGATOIRE DU CHAMP :
  172. MOTERR(1:8)=' MCHAML '
  173. CALL MESLIR(-137)
  174. CALL LIROBJ('MCHAML',IPCHE1,1,IRET)
  175. IF (IERR.NE.0) RETURN
  176. C REDUCTION IPCHE1 SUR IPMOD1
  177. CALL REDUAF(IPCHE1,IPMOD1,IPCHE2,0,IRET,KERRE)
  178. IF (IRET.NE.1) THEN
  179. CALL ERREUR(KERRE)
  180. RETURN
  181. ENDIF
  182. IPCHE1=IPCHE2
  183. C VERIFICATION QUE LES SOUS-ZONES ONT TOUTES MEME SUPPORT
  184. CALL QUESUP(IPMOD1,IPCHE1,0,0,IRET,ISUP1)
  185. IF (ISUP1.EQ.9999) THEN
  186. CALL ERREUR(560)
  187. RETURN
  188. ENDIF
  189. C C
  190. C LECTURE OPTIONNELLE DU MOT-CLE "ABS" :
  191. CALL LIRMOT(MOTCLE,1,IABS,0)
  192. C C
  193. C LECTURE OBLIGATOIRE DU LISTREEL (MLREE1 = INTERVALLES DE MESURE) :
  194. MOTERR(1:8)='LISTREEL'
  195. CALL MESLIR(-137)
  196. CALL LIROBJ('LISTREEL',MLREE1,1,IRET)
  197. IF (IERR.NE.0) RETURN
  198. SEGACT,MLREE1
  199. N1=MLREE1.PROG(/1)
  200. IF (N1.LE.1) THEN
  201. CALL ERREUR(249)
  202. RETURN
  203. ENDIF
  204. X1=MLREE1.PROG(1)
  205. X2=MLREE1.PROG(2)
  206. IF (X1.GE.X2) THEN
  207. CALL ERREUR(249)
  208. RETURN
  209. ENDIF
  210. C CONSTRUCTION D'UN HACHAGE DANS LE CAS OU LONG. INTERV. PAS CONST.:
  211. C 1. RECHERCHE DU + PETIT PAS DANS LISTREEL FOURNI (XPAS)
  212. JG=N1-1
  213. SEGINI,MLREE3
  214. XPAS=X2-X1
  215. MLREE3.PROG(1)=XPAS
  216. DO IH=3,N1
  217. X1=X2
  218. X2=MLREE1.PROG(IH)
  219. XPASI=X2-X1
  220. MLREE3.PROG(IH-1)=XPASI
  221. IF (XPAS.GT.XPASI) XPAS=XPASI
  222. ENDDO
  223. IF (XPAS.LE.0.) THEN
  224. CALL ERREUR(249)
  225. RETURN
  226. ENDIF
  227. C 2. CONSTRUCTION DU HACHAGE (INTERVALLES REGULIERS DE TAILLE
  228. C INFERIEURE AU + PETIT INTERVALLE DE MLREE1)
  229. C XINDIC PERMET D'ASSOCIER LES INTERVALLES DE MLREE1 AU HACHAGE :
  230. C IIND1(I,1)=0 : Ie INTERV. HACHAGE A CHEVAL SUR 2 INTERV. MLREE1
  231. C IIND1(I,1)=1 : Ie INTERV. HACHAGE STRICT. DANS 1 INTERV. MLREE1
  232. C IIND1(I,2)=K : Ie INTERV. HACHAGE ASSOCIE A Ke INTERV. MLREE1
  233. C XIND1(I)= BORNE DES 2 INTERV. MLREE1 DANS Ie INTERV. HACHAGE
  234. C (CAS OU IIND1(I,1)=0)
  235. X1=MLREE1.PROG(1)
  236. NH=INT((X2-X1)/XPAS)+1
  237. IND1=NH
  238. SEGINI,XINDIC
  239. IREF=1
  240. IIND1(1,1)=1
  241. IIND1(1,2)=IREF
  242. XPASH=(X2-X1)/FLOAT(NH)
  243. XREH=X1+XPASH
  244. DO IIND=2,NH
  245. XREF=MLREE1.PROG(IREF+1)
  246. XREH=XREH+XPASH
  247. IIND1(IIND,2)=IREF
  248. XIND1(IIND)=XREF
  249. IF(XREH.GT.XREF) THEN
  250. IIND1(IIND,1)=0
  251. IREF=IREF+1
  252. IF (IREF.GT.N1) THEN
  253. c write(6,*) 'IREF > N1 !!'
  254. RETURN
  255. ENDIF
  256. ELSE
  257. IIND1(IIND,1)=1
  258. ENDIF
  259. ENDDO
  260. C C
  261. C LECTURE OPTIONNELLE DU(DES) NOM(S) DE LA COMPOSANTE A TRAITER :
  262. NCP1=0
  263. C DONNEE D'UN MOT ?
  264. CALL LIRCHA(MCOMP,0,IMOT)
  265. IF (IMOT.NE.0) THEN
  266. NCP1=1
  267. JGM=NCP1
  268. JGN=IMOT
  269. SEGINI,MLMOT1
  270. MLMOT1.MOTS(1)=MCOMP(1:IMOT)
  271. ELSE
  272. C SINON, DONNEE D'UN LISTMOTS ?
  273. CALL LIROBJ('LISTMOTS',MLMOT1,0,IRET)
  274. IF (IRET.NE.0) THEN
  275. SEGACT,MLMOT1
  276. NCP1=MLMOT1.MOTS(/2)
  277. ELSE
  278. C SINON, TOUTES LES COMPOSANTES DU CHAMP EN ENTREE :
  279. C (ATTENTION : IL FAUT PARCOURIR TOUTES LES SOUS-ZONES...)
  280. IMOT=1
  281. MCHEL1=IPCHE1
  282. SEGACT,MCHEL1
  283. NZ1=MCHEL1.ICHAML(/1)
  284. MCHAM1=MCHEL1.ICHAML(1)
  285. SEGACT,MCHAM1
  286. C INITIALISATION MLMOTS SUR 1ERE SOUS-ZONE :
  287. JGN=MCHAM1.NOMCHE(/1)
  288. JGM=MCHAM1.NOMCHE(/2)
  289. SEGINI,MLMOT1
  290. NCP1=JGM
  291. DO I=1,NCP1
  292. MLMOT1.MOTS(I)=MCHAM1.NOMCHE(I)
  293. ENDDO
  294. SEGDES,MCHAM1
  295. C VERIF. NOMS COMPOSANTES SUR LES AUTRES SOUS-ZONES
  296. DO I=2,NZ1
  297. MCHAM1=MCHEL1.ICHAML(I)
  298. SEGACT,MCHAM1
  299. DO J=1,MCHAM1.NOMCHE(/2)
  300. MCOMPJ=MCHAM1.NOMCHE(J)
  301. CALL PLACE(MLMOT1.MOTS,NCP1,IPLA,MCOMPJ)
  302. IF (IPLA.EQ.0) THEN
  303. JGM=NCP1+1
  304. SEGADJ,MLMOT1
  305. NCP1=NCP1+1
  306. MLMOT1.MOTS(NCP1)=MCOMPJ
  307. ENDIF
  308. ENDDO
  309. SEGDES,MCHAM1
  310. ENDDO
  311. SEGDES,MCHEL1
  312. ENDIF
  313. ENDIF
  314. C C
  315. C----------------------------- TRAITEMENT -----------------------------C
  316. C C
  317. C JACOBIEN ASSOCIE AU MODELE :
  318. C CALCUL DU JACOBIEN :
  319. CALL JACOPO(IPMOD1,IPCHE2,IRET)
  320. IF (IRET.EQ.0) RETURN
  321. MMODEL=IPMOD1
  322. SEGACT,MMODEL
  323. IMODEL=KMODEL(1)
  324. SEGACT,IMODEL
  325. C
  326. C AJUSTEMENT DES POINTS SUPPORTS :
  327. C ISUP1 = VALEUR INDICATEUR POINTS SUPPORTS IPCHE1
  328. C ISUP2 = VALEUR INDICATEUR POINTS SUPPORTS IPCHE2 (JACOBIEN)
  329. IF (ISUP1.EQ.1) THEN
  330. CALL CHASUP(IPMOD1,IPCHE1,IPCHE3,IRET,5)
  331. IF (IRET.NE.0) THEN
  332. CALL ERREUR(IRET)
  333. RETURN
  334. ENDIF
  335. IPCHE1=IPCHE3
  336. ELSEIF (ISUP1.NE.5) THEN
  337. CALL CHASUP(IPMOD1,IPCHE2,IPCHE3,IRET,ISUP1)
  338. IF (IRET.NE.0) THEN
  339. CALL ERREUR(IRET)
  340. RETURN
  341. ENDIF
  342. IPCHE2=IPCHE3
  343. ENDIF
  344. C
  345. C ECHANTILLONNAGE :
  346. NCP2=0
  347. MCHEL1=IPCHE1
  348. MCHEL2=IPCHE2
  349. SEGACT,MCHEL1,MCHEL2
  350. NZ1=MCHEL1.ICHAML(/1)
  351. NZ=NZ1
  352. NC=NCP1
  353. SEGINI,TZC
  354. JGN=MLMOT1.MOTS(/1)
  355. JGM=NCP1
  356. SEGINI,MLMOT2
  357. JG=NCP1
  358. SEGINI,MLNORM
  359. SEGINI,MLENT1
  360. DO I=1,NZ1
  361. MCHAM1=MCHEL1.ICHAML(I)
  362. SEGACT,MCHAM1
  363. IPT1=MCHEL1.IMACHE(I)
  364. SEGACT,IPT1
  365. ICOMP=MCHAM1.NOMCHE(/2)
  366. MINTE2=MCHEL2.INFCHE(I,4)
  367. SEGACT,MINTE2
  368. MCHAM2=MCHEL2.ICHAML(I)
  369. SEGACT,MCHAM2
  370. MELVA2=MCHAM2.IELVAL(1)
  371. SEGACT,MELVA2
  372. DO J=1,ICOMP
  373. MCOMPJ=MCHAM1.NOMCHE(J)
  374. CALL PLACE(MLMOT1.MOTS,NCP1,IPLA,MCOMPJ)
  375. IF (IPLA.NE.0) THEN
  376. IF (MCHAM1.TYPCHE(J).NE.'REAL*8') THEN
  377. MOTERR(1:4)='HIST'
  378. MOTERR(5:8)=MCOMPJ(1:4)
  379. CALL ERREUR(335)
  380. RETURN
  381. ENDIF
  382. JREF=IPLA
  383. IPLA=0
  384. IF (NCP2.NE.0) CALL PLACE(MLMOT2.MOTS,NCP2,IPLA,MCOMPJ)
  385. IF (IPLA.EQ.0) THEN
  386. NCP2=NCP2+1
  387. MLMOT2.MOTS(NCP2)=MCOMPJ
  388. MLENT1.LECT(JREF)=NCP2
  389. ENDIF
  390. JG=N1
  391. SEGINI,MLREE2
  392. ITZC1(I,JREF)=MLREE2
  393. MELVA1=MCHAM1.IELVAL(J)
  394. SEGACT,MELVA1
  395. NP1=MELVA1.VELCHE(/1)
  396. NE1=MELVA1.VELCHE(/2)
  397. NP2=MELVA2.VELCHE(/1)
  398. NE2=MELVA2.VELCHE(/2)
  399. DO K=1,IPT1.NUM(/2)
  400. DO L=1,MINTE2.POIGAU(/1)
  401. VIJKL2=MINTE2.POIGAU(L)*
  402. & (ABS(MELVA2.VELCHE(MIN(NP2,L),MIN(NE2,K))))
  403. XIJKL1=MELVA1.VELCHE(MIN(NP1,L),MIN(NE1,K))
  404. IF (IABS.EQ.1) XIJKL1=ABS(XIJKL1)
  405. NIJKL1=INT((XIJKL1-X1)/XPASH)+1
  406. IF (NIJKL1.GE.1.AND.NIJKL1.LE.NH.AND.XIJKL1.GE.X1) THEN
  407. IIJKL1=IIND1(NIJKL1,2)
  408. IF (IIND1(NIJKL1,1).EQ.1) THEN
  409. XIJKL2=VIJKL2/MLREE3.PROG(IIJKL1)
  410. MLREE2.PROG(IIJKL1)=MLREE2.PROG(IIJKL1)+XIJKL2
  411. ELSE
  412. IF (XIJKL1.LT.XIND1(NIJKL1)) THEN
  413. XIJKL2=VIJKL2/MLREE3.PROG(IIJKL1)
  414. MLREE2.PROG(IIJKL1)=MLREE2.PROG(IIJKL1)+XIJKL2
  415. ELSE
  416. XIJKL2=VIJKL2/MLREE3.PROG(IIJKL1+1)
  417. MLREE2.PROG(IIJKL1+1)=MLREE2.PROG(IIJKL1+1)+XIJKL2
  418. ENDIF
  419. ENDIF
  420. ENDIF
  421. MLNORM.PROG(JREF)=MLNORM.PROG(JREF)+VIJKL2
  422. ENDDO
  423. ENDDO
  424. SEGDES,MELVA1,MLREE2
  425. ENDIF
  426. ENDDO
  427. SEGDES,MINTE2,MCHAM1,IPT1,MCHAM2,MELVA2
  428. ENDDO
  429. SEGDES,MCHEL1,MCHEL2
  430. C
  431. C VERIFICATION NOMBRE DE COMPOSANTES EFFECTIVEMENT TRAITEES
  432. c write(6,*) 'NCP2 =',NCP2
  433. IF (NCP2.EQ.0) THEN
  434. IF (IMOT.NE.0) THEN
  435. MOTERR(1:4)=MLMOT1.MOTS(1)
  436. MOTERR(5:8)=' '
  437. CALL ERREUR(77)
  438. RETURN
  439. ELSE
  440. CALL ERREUR(26)
  441. RETURN
  442. ENDIF
  443. ENDIF
  444. IF (NCP2.LT.NCP1) THEN
  445. JGN=MLMOT2.MOTS(/1)
  446. JGM=NCP2
  447. SEGADJ,MLMOT2
  448. ENDIF
  449. SEGSUP,MLREE3
  450. C
  451. C------------------------------- SORTIE -------------------------------C
  452. C C
  453. C CONSTRUCTION DE L'EVOLUTION :
  454. C SOMMATION DES ORDONNEES SUR CHAQUE SOUS-ZONE,
  455. C COMPOSANTE PAR COMPOSANTE :
  456. N=NCP2
  457. SEGINI,MEVOLL
  458. ITYEVO='REEL'
  459. IEVTEX=' '
  460. DO I=1,NCP1
  461. ICP=MLENT1.LECT(I)
  462. IF (ICP.NE.0) THEN
  463. MLREE2=ITZC1(1,I)
  464. C SOMME SUR LES SOUS-ZONES :
  465. DO J=2,ITZC1(/1)
  466. MLREE3=ITZC1(J,I)
  467. IF (MLREE2.EQ.0) THEN
  468. MLREE2=MLREE3
  469. ELSE
  470. IF (MLREE3.NE.0) THEN
  471. CALL ADLISR(MLREE2,MLREE3,IRET,1)
  472. IF (IRET.EQ.0) RETURN
  473. MLREE2=IRET
  474. ENDIF
  475. ENDIF
  476. ENDDO
  477. C DIVISION DES ORDONNEES PAR XNORM => DENSITE DE DISTRIB.
  478. XNORM=MLNORM.PROG(I)
  479. CALL MUFLIR(MLREE2,XNORM,IRET,-1)
  480. SEGINI,KEVOLL
  481. IPROGX=MLREE1
  482. IPROGY=IRET
  483. TYPX='LISTREEL'
  484. TYPY='LISTREEL'
  485. C COURBE DE TYPE "HIST" POUR TRAITEMENT DANS DESSIN :
  486. NUMEVX=ICOUL
  487. NUMEVY='HIST'
  488. NOMEVX=MLMOT2.MOTS(ICP)
  489. NOMEVY=' '
  490. SEGDES,KEVOLL
  491. MEVOLL.IEVOLL(ICP)=KEVOLL
  492. ENDIF
  493. ENDDO
  494. SEGDES,MEVOLL,MLREE1
  495. C C
  496. C SORTIE :
  497. CALL ECROBJ('EVOLUTIO',MEVOLL)
  498. C C
  499. C UN PEU DE MENAGE :
  500. IF (IMOT.NE.0) THEN
  501. SEGSUP,MLMOT1
  502. ELSE
  503. SEGDES,MLMOT1
  504. ENDIF
  505. SEGSUP,MLMOT2,TZC,XINDIC,MLNORM,MLENT1
  506.  
  507. RETURN
  508.  
  509.  
  510. C=======================================================================
  511. C SYNTAXE 1 : --> HISTO1
  512. C=======================================================================
  513. 100 CONTINUE
  514. CALL HISTO1
  515. RETURN
  516.  
  517.  
  518. RETURN
  519. END
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  

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