Download mcompa.eso

Back to the list

   1 : C MCOMPA    SOURCE    MAGN      09/07/30    21:19:15     6458           
   2 :       SUBROUTINE MCOMPA(MATELE,MATASS,
   3 :      $     LCOMPA,
   4 :      $     IMPR,IRET)
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT REAL*8 (A-H,O-Z)
   7 : C***********************************************************************
   8 : C NOM         : MCOMPA
   9 : C PROJET      : Noyau linéaire NLIN
  10 : C DESCRIPTION : On vérifie que MATELE et MATASS ont la même
  11 : C               structure (matrices élémentaires portant
  12 : C               sur les mêmes inconnues). Seuls les valeurs des
  13 : C               matrices élémentaires doivent être différentes.
  14 : C     
  15 : C LANGAGE     : ESOPE
  16 : C AUTEUR      : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  17 : C               mél : gounand@semt2.smts.cea.fr
  18 : C***********************************************************************
  19 : C APPELES          : -
  20 : C APPELE PAR       : KRES2
  21 : C***********************************************************************
  22 : C ENTREES            : MATELE, MATASS
  23 : C SORTIES            : LCOMPA
  24 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  25 : C***********************************************************************
  26 : C VERSION    : v1, 17/12/99, nouvelle version initiale
  27 : C HISTORIQUE : v1, 17/12/99, création
  28 : C HISTORIQUE :
  29 : C HISTORIQUE :
  30 : C***********************************************************************
  31 : C Prière de PRENDRE LE TEMPS de compléter les commentaires
  32 : C en cas de modification de ce sous-programme afin de faciliter
  33 : C la maintenance !
  34 : C***********************************************************************
  35 : -INC CCOPTIO
  36 : -INC SMMATRIK
  37 :       POINTEUR MATELE.MATRIK
  38 :       POINTEUR MATASS.MATRIK
  39 :       POINTEUR IMATEL.IMATRI
  40 :       POINTEUR IMATAS.IMATRI
  41 : *
  42 :       INTEGER IMPR,IRET
  43 : *
  44 :       LOGICAL LCOMPA
  45 :       INTEGER IMATE,ITOTIN
  46 :       INTEGER NMATE,NTOTIN
  47 :       INTEGER NBMASS,NBMELE
  48 :       INTEGER NMATAS,NMATEL
  49 : *     
  50 : * Executable statements
  51 : *     
  52 :       IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans mcompa'
  53 :       LCOMPA=.TRUE.
  54 : *
  55 : * Quelques tests
  56 : *
  57 :       SEGACT MATASS
  58 :       SEGACT MATELE
  59 :       NMATAS=MATASS.IRIGEL(/2)
  60 :       NMATEL=MATELE.IRIGEL(/2)
  61 :       LCOMPA=LCOMPA.AND.(NMATAS.EQ.NMATEL)
  62 :       IF (LCOMPA) THEN
  63 :          NMATE=NMATAS
  64 :          DO 1 IMATE=1,NMATE
  65 :             LCOMPA=LCOMPA.AND.(MATASS.IRIGEL(7,IMATE).EQ.
  66 :      $           MATELE.IRIGEL(7,IMATE))
  67 :             IMATAS=MATASS.IRIGEL(4,IMATE)
  68 :             IMATEL=MATELE.IRIGEL(4,IMATE)
  69 :             SEGACT IMATAS
  70 :             SEGACT IMATEL
  71 :             NBMASS=IMATAS.LISPRI(/2)
  72 :             NBMELE=IMATEL.LISPRI(/2)
  73 :             LCOMPA=LCOMPA.AND.(NBMASS.EQ.NBMELE)
  74 :             IF (LCOMPA) THEN
  75 :                NTOTIN=NBMASS
  76 :                DO 12 ITOTIN=1,NTOTIN
  77 :                   LCOMPA=LCOMPA.AND.(IMATAS.LISPRI(ITOTIN).EQ.
  78 :      $                 IMATEL.LISPRI(ITOTIN))
  79 :                   LCOMPA=LCOMPA.AND.(IMATAS.LISDUA(ITOTIN).EQ.
  80 :      $                 IMATEL.LISDUA(ITOTIN))
  81 :  12            CONTINUE
  82 :                LCOMPA=LCOMPA.AND.(IMATAS.LIZAFM(/1).EQ.
  83 :      $              IMATEL.LIZAFM(/1))
  84 :             ENDIF
  85 :             SEGDES IMATEL
  86 :             SEGDES IMATAS
  87 :  1       CONTINUE
  88 :       ENDIF
  89 :       SEGDES MATELE
  90 :       SEGDES MATASS
  91 : *     
  92 : * Normal termination
  93 : *     
  94 :       IRET=0
  95 :       RETURN
  96 : *     
  97 : * Format handling
  98 : *     
  99 : *     
 100 : * Error handling
 101 : *     
 102 :  9999 CONTINUE
 103 :       IRET=1
 104 :       WRITE(IOIMP,*) 'An error was detected in subroutine mcompa'
 105 :       RETURN
 106 : *     
 107 : * End of subroutine MCOMPA
 108 : *     
 109 :       END
 110 :  
 111 :  
 112 :  

© Cast3M 2003 - All rights reserved.
Disclaimer