Download extipd.eso

Back to the list

   1 : C EXTIPD    SOURCE    MAGN      09/07/30    21:16:58     6458           
   2 :       SUBROUTINE EXTIPD
   3 :       IMPLICIT REAL*8 (A-H,O-Z)
   4 :       IMPLICIT INTEGER (I-N)
   5 : C***********************************************************************
   6 : C NOM         : EXTIPD
   7 : C DESCRIPTION : Extrait les noms d'inconnues primales ou duales
   8 : C               d'un MATRIK, on réduit à CH*4 pour des raisons
   9 : C               de compatibilité
  10 : C     
  11 : C     
  12 : C LANGAGE     : ESOPE
  13 : C AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  14 : C               mél : gounand@semt2.smts.cea.fr
  15 : C***********************************************************************
  16 : C APPELES          :
  17 : C APPELES (E/S)    :
  18 : C APPELES (BLAS)   :
  19 : C APPELES (CALCUL) :
  20 : C APPELE PAR       :
  21 : C***********************************************************************
  22 : C SYNTAXE GIBIANE    :
  23 : C    LMOT1  = 'KOPS'  'EXTRINPR'  MATRIK1  ;
  24 : C    LMOT1  = 'KOPS'  'EXTRINDU'  MATRIK1  ;
  25 : C ENTREES            :
  26 : C ENTREES/SORTIES    :
  27 : C SORTIES            :
  28 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  29 : C***********************************************************************
  30 : C VERSION    : v1, 10/05/2006, version initiale
  31 : C HISTORIQUE : v1, 10/05/2006, création
  32 : C HISTORIQUE :
  33 : C HISTORIQUE :
  34 : C***********************************************************************
  35 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  36 : C en cas de modification de ce sous-programme afin de faciliter
  37 : C la maintenance !
  38 : C***********************************************************************
  39 : -INC CCOPTIO
  40 : -INC SMMATRIK
  41 : -INC SMLMOTS
  42 :       POINTEUR LINC.MLMOTS
  43 :       POINTEUR LINC2.MLMOTS
  44 : *     
  45 :       INTEGER IMPR,IRET
  46 : *     
  47 : * Executable statements
  48 : *     
  49 :       IMPR=0
  50 :       IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans extipd.eso' 
  50 :       CALL LIROBJ('MATRIK  ',MATRIK,1,IRETOU)
  51 :       IF (IERR.NE.0) RETURN
  52 : * D'abord les primales puis les duales
  53 : * On renverse l'ordre car ecrobj écrit sur une pile
  54 :       DO IPRIDU=2,1,-1
  55 : *     
  56 : * Dim max de LINC
  57 : *     
  58 :          JGM=0
  59 :          SEGACT MATRIK
  60 :          NMAT=IRIGEL(/2)
  61 :          DO IMAT=1,NMAT
  62 :             IMATRI=IRIGEL(4,IMAT)
  63 :             SEGACT IMATRI
  64 :             JGM=JGM+LIZAFM(/2)
  65 :          ENDDO
  66 : *     
  67 : * Remplissage de LINC
  68 : *     
  69 :          JGN=4
  70 :          IGM=0
  71 :          SEGINI LINC
  72 :          DO IMAT=1,NMAT
  73 :             IMATRI=IRIGEL(4,IMAT)
  74 :             NBME=LIZAFM(/2)
  75 :             DO IBME=1,NBME
  76 :                IGM=IGM+1
  77 :                IF (IPRIDU.EQ.1) THEN
  78 :                   LINC.MOTS(IGM)=LISPRI(IBME)
  79 :                ELSEIF (IPRIDU.EQ.2) THEN
  80 :                   LINC.MOTS(IGM)=LISDUA(IBME)
  81 :                ELSE
  82 :                   GOTO 9999
  83 :                ENDIF
  84 :             ENDDO
  85 :             SEGDES IMATRI
  86 :          ENDDO
  87 :          SEGDES MATRIK
  88 : *     
  89 : * Enlever les doublons dans LINC
  90 : *     
  91 :          SEGINI,LINC2=LINC
  91 :          CALL CUNIQ(LINC2.MOTS,LINC2.MOTS(/1),LINC2.MOTS(/2),
  92 :      $        LINC.MOTS,NIUNIQ,
  93 :      $        IMPR,IRET)
  94 :          IF (IRET.NE.0) GOTO 9999
  95 :          JGN=4
  96 :          JGM=NIUNIQ
  97 :          SEGADJ,LINC
  98 :          SEGSUP LINC2
  99 :          SEGDES LINC
  99 :          CALL ECROBJ('LISTMOTS',LINC)
 100 :       ENDDO
 101 : *     
 102 : * Normal termination
 103 : *     
 104 : *      IRET=0
 105 :       RETURN
 106 : *     
 107 : * Format handling
 108 : *     
 109 : *     
 110 : * Error handling
 111 : *     
 112 :  9999 CONTINUE
 113 : *      IRET=1
 114 :       WRITE(IOIMP,*) 'An error was detected in subroutine extipd'
 114 :       CALL ERREUR(5)
 115 :       RETURN
 116 : *     
 117 : * End of subroutine EXTIPD
 118 : *     
 119 :       END
 120 : 
 121 :  
 122 :  

© Cast3M 2003 - All rights reserved.
Disclaimer