1 : C ORDVEC SOURCE CHAT 05/01/13 02:06:17 5004 2 : C ORDVEC SOURCE WP 23/08/94 3 : C SUBROUTINE ORDVEC ( IPLVAL, IPLVEC ) 4 : ************************************************************************ 5 : * 6 : * GRAAMO 7 : * ----------- 8 : * 9 : * FONCTION: 10 : * --------- 11 : * 12 : * -- TRI D'UNE LISTE DE VECTEURS PROPRES. LES VECEURS PROPRES DONT 13 : * LES VALEURS PROPRES ASSOCIEES SONT LES PLUS PETITES EN MODULE 14 : * SONT PLACES EN PREMIER DANS LA LISTE -- 15 : * 16 : * MODE D'APPEL: 17 : * ------------- 18 : * 18 : * CALL ORDVEC ( IPLVAL, IPLVEC ) 19 : * 20 : * PARAMETRES: (E)=ENTREE (S)=SORTIE 21 : * ----------- 22 : * 23 : * IPLVAL ENTIER (E) POINTEUR DE L'OBJET 'LISTREEL' CONTENANT 24 : * LA SUITE DE 'FLOTTANTS' A TRIER 25 : * (S) POINTEUR DE L'OBJET 'LISTREEL' CONTENANT 26 : * LA SUITE DE 'FLOTTANTS' TRIES 27 : * 28 : * IPLVEC ENTIER (E) POINTEUR DE L'OBJET 'LISTCHPO' CONTENANT 29 : * LA SUITE DE 'CHPOINT' ASSOCIE A IPLVAL. 30 : * (S) MEME CHOSE, MAIS TRIEE. 31 : * 32 : * 33 : * MODE DE FONCTIONNEMENT: 34 : * ----------------------- 35 : * 36 : * TRI A BULLES. ( LA LISTE EST PETITE ! ) 37 : * 38 : * AUTEUR, DATE DE CREATION: 39 : * ------------------------- 40 : * 41 : * A.M. JOLIVALT, W. PASILLAS 06 / 07 / 94. ( ESOPE ) 42 : * 43 : *************************************************** 44 : 45 : ****** 46 : * SUBROUTINES: 47 : * SWAP ( ECHANGE DES TERMES DANS LES LISTES ) 48 : * ORDVEC ( TRI A BULLES ) 49 : ****** 50 : ****** 51 : * -- ON EFFECTUE UN TRI A BULLES -- 52 : ****** 53 : SUBROUTINE ORDVEC ( IPLVAL, IPLVEC ) 54 : IMPLICIT INTEGER(I-N) 55 : IMPLICIT REAL*8 (A-H,O-Z) 56 : -INC CCOPTIO 57 : -INC SMLCHPO 58 : -INC SMLREEL 59 : 60 : POINTEUR IPLVAL.MLREEL, IPLVEC.MLCHPO 61 : REAL*8 XVAL1, XVAL2 62 : INTEGER ILDIM, IB100 63 : LOGICAL BSWAP 64 : 65 : SEGACT ,IPLVAL 66 : ILDIM = IPLVAL.PROG(/1) 67 : SEGDES, IPLVAL 68 : 69 : 10 CONTINUE 70 : BSWAP = .FALSE. 71 : DO 100 IB100 = 1, ILDIM - 1 72 : SEGACT ,IPLVAL 73 : XVAL1 = IPLVAL.PROG( IB100 ) 74 : XVAL2 = IPLVAL.PROG( IB100 + 1 ) 75 : SEGDES, IPLVAL 76 : IF ( ABS(XVAL1) .GT. ABS(XVAL2) ) THEN 76 : CALL SWAP( IB100, IPLVAL, IPLVEC ) 77 : IF ( IERR .NE. 0 ) RETURN 78 : BSWAP = .TRUE. 79 : ENDIF 80 : 100 CONTINUE 81 : IF ( BSWAP ) GOTO 10 82 : SEGDES, IPLVAL 83 : 84 : RETURN 85 : END 86 :
© Cast3M 2003 - All rights reserved.
Disclaimer