C KRES15    SOURCE    GOUNAND   25/04/30    21:15:12     12258          
      SUBROUTINE KRES15(KMORS,KIZA)
      IMPLICIT REAL*8 (A-H,O-Z)
      IMPLICIT INTEGER (I-N)
C***********************************************************************
C NOM         : KRES15
C DESCRIPTION : - Ordonnancement des colonnes d'une matrice Morse
C
C
C LANGAGE     : ESOPE
C AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
C               mél : gounand@semt2.smts.cea.fr
C***********************************************************************
C VERSION    : v1, 10/04/2025, version initiale
C HISTORIQUE : v1, 10/04/2025, création
C HISTORIQUE :
C HISTORIQUE :
C***********************************************************************
      REAL*8 XKT,PREC
-INC SMRIGID
-INC SMMATRI

-INC PPARAM
-INC CCOPTIO
-INC SMLENTI
      POINTEUR IWORK.MLENTI
      SEGMENT PMORS
      INTEGER IA (NTT+1)
      INTEGER JA (NJA)
      ENDSEGMENT
      SEGMENT IZA
      REAL*8  A(NBVA)
      ENDSEGMENT
      POINTEUR KMORU.PMORS,KMORUT.PMORS,KMORL.PMORS,KMORS.PMORS
      POINTEUR KIZAU.IZA,KIZAUT.IZA,KIZAL.IZA,KIZA.IZA
*
*      WRITE(IOIMP,*) 'COUCOU KRES15'
*
* Et on ordonne les colonnes si besoin
*  Les colonnes sont-elles ordonnées ?
* Réponse : pas toujours !
      PMORS=KMORS
      IZA=KIZA
      SEGACT PMORS
      SEGACT IZA
      NTT=IA(/1)-1
      DO ITT=1,NTT
         IAD=IA(ITT)
         IAF=IA(ITT+1)-1
         JINI=0
         DO IJA=IAD,IAF
            JCOU=JA(IJA)
            IF (JCOU.LT.JINI) GOTO 30
            JINI=JCOU
         ENDDO
      ENDDO
*      WRITE(IOIMP,*) 'Les colonnes sont ordonnees'
      GOTO 40
*
 30   CONTINUE
*      WRITE(IOIMP,*) 'Les colonnes ne sont pas ordonnees'
      SEGACT PMORS*MOD
      SEGACT IZA*MOD
      NTT=IA(/1)-1
      NJA=JA(/1)
      JG=MAX(NTT+1,2*NJA)
      SEGINI IWORK
      CALL CSORT(IA(/1)-1,A,JA,IA,
     $     IWORK.LECT,.TRUE.)
      SEGSUP IWORK
C      WRITE(IOIMP,*) 'Matrice Morse  ordonnée'
C      CALL ECMORS(PMORS,IZA,4)
 40   CONTINUE
C
      RETURN
      END
 
