C ORDON1 SOURCE CHAT 05/01/13 02:05:56 5004 SUBROUTINE ORDON1 (IPLIST,CROISS,ABSOLU) ************************************************************************ * * O R D O N 1 * ----------- * * FONCTION: * --------- * * RANGER EN ORDRE CROISSANT OU DECROISSANT UN 'LISTREEL'. * * MODE D'APPEL: * ------------- * * CALL ORDON1 (IPLIST,CROISS,ABSOLU) * * PARAMETRES: (E)=ENTREE (S)=SORTIE * ----------- * * IPLIST ENTIER (E) POINTEUR SUR LA LISTE A ORDONNER. * (S) MEME POINTEUR, LISTE REORDONNEE. * CROISS LOGIQUE (E) INDIQUE PAR "VRAI" OU "FAUX" SI ON ORDONNE * CROISSANT OU NON. * ABSOLU LOGIQUE (E) INDIQUE PAR "VRAI" OU "FAUX" SI ON ORDONNE * EN CONSIDERANT LES VALEURS ABSOLUES OU LES * VRAIES VALEURS. * * SOUS-PROGRAMMES APPELES: * ------------------------ * * ORDO01, ORDO11. * * AUTEUR, DATE DE CREATION: * ------------------------- * * PASCAL MANIGOT 19 MARS 1985 * * OPTION "ABSOLU" AJOUTEE LE 23 AVRIL 1985 (P. MANIGOT) * * LANGAGE: * -------- * * ESOPE + FORTRAN77 * ************************************************************************ * IMPLICIT INTEGER(I-N) -INC SMLREEL -INC CCOPTIO -INC TMCOLAC * LOGICAL CROISS,ABSOLU * MLREEL = IPLIST SEGACT,MLREEL LLIST = PROG(/1) IF (LLIST .LE. 1) THEN SEGDES,MLREEL RETURN END IF * IF (ABSOLU) THEN CALL ORDO11 (PROG(1),LLIST,CROISS) ELSE CALL ORDO01 (PROG(1),LLIST,CROISS) END IF * SEGDES,MLREEL * IF(IPSAUV.NE.0) THEN ICOLAC = IPSAUV SEGACT ICOLAC ILISSE=ILISSG SEGACT ILISSE*MOD CALL TYPFIL('LISTREEL',ICO) ITLACC = KCOLA(ICO) SEGACT ITLACC*MOD CALL AJOUN0(ITLACC,MLREEL,ILISSE,1) SEGDES ICOLAC,ILISSE ENDIF END