Download idcomp.eso

Back to the list

   1 : C IDCOMP    SOURCE    GOUNAND   05/10/10    21:15:13     5200           
   2 :       SUBROUTINE IDCOMP(CMOT,MLMOTS)
   3 :       IMPLICIT REAL*8 (A-H,O-Z)
   4 :       IMPLICIT INTEGER (I-N)
   5 : C***********************************************************************
   6 : C NOM         : IDCOMP
   7 : C DESCRIPTION : Renvoie une liste de noms de composantes de l'inconnue
   8 : C               demandée (pour l'instant 'DEPL' et 'FORC')
   9 : C
  10 : C               Cette subroutine est copiée de bloque.eso
  11 : C              
  12 : C
  13 : C
  14 : C LANGAGE     : ESOPE
  15 : C AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  16 : C               mél : gounand@semt2.smts.cea.fr
  17 : C***********************************************************************
  18 : C ENTREES            : CMOT
  19 : C ENTREES/SORTIES    : 
  20 : C SORTIES            : MLMOTS
  21 : C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  22 : C***********************************************************************
  23 : C VERSION    : v1, 07/10/2005, version initiale
  24 : C HISTORIQUE : v1, 07/10/2005, création
  25 : C HISTORIQUE :
  26 : C HISTORIQUE :
  27 : C***********************************************************************
  28 : -INC CCOPTIO
  29 : -INC SMLMOTS
  30 : *
  31 :       CHARACTER*4 MODEPL(6),MODEDU(6)
  32 :       CHARACTER*4 MODE1D(2),MOFO1D(2)
  33 :       CHARACTER*4 CMOT
  34 : *
  35 :       DATA MODEPL / 'UX  ','UY  ','UZ  ','UR  ','UZ  ','UT  ' /
  36 :       DATA MODEDU / 'FX  ','FY  ','FZ  ','FR  ','FZ  ','FT  ' /
  37 : C Tableaux MODE1D et MOFO1D sont utilises pour certains modes 1D
  38 :       DATA MODE1D / 'UX  ','UZ  ' /
  39 :       DATA MOFO1D / 'FX  ','FZ  ' /
  40 : *     
  41 : * Executable statements
  42 : *
  43 :       IF (CMOT.EQ.'DEPL'.OR.CMOT.EQ.'FORC') THEN
  44 :          JGN=4
  45 :          JGM=0
  46 :          SEGINI MLMOTS
  47 : C  Quelques initialisations selon le type de probleme
  48 : C  Cas IDIM = 1 :
  49 : C  ISPE1D = 1 si IDIM=1 et IFOUR=9 ou 10, car les noms de DDL primaux et
  50 : C  variables duales ne sont pas dans l'ordre "classique" (un traitement
  51 : C  specifique est alors necessaire).
  52 :          ISPE1D=0
  53 : C  Deformations planes ou contraintes planes ou defo. plane gene :
  54 :          IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN
  55 :             LDEPL=2
  56 :             IADEPL=0
  57 : C  Axisymetrique :
  58 :          ELSEIF (IFOUR.EQ.0) THEN
  59 :             LDEPL=2
  60 :             IADEPL=3
  61 : C  Fourier :
  62 :          ELSEIF (IFOUR.EQ.1) THEN
  63 :             LDEPL=3
  64 :             IADEPL=3
  65 : C  Tridimensionnel :
  66 :          ELSEIF (IFOUR.EQ.2) THEN
  67 :             LDEPL=3
  68 :             IADEPL=0
  69 : C  Massif 1D (IDIM=1) :
  70 :          ELSEIF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN
  71 :             IF (IFOUR.LE.6) THEN
  72 :                LDEPL=1
  73 :                IADEPL=0
  74 :             ELSEIF (IFOUR.GE.7.AND.IFOUR.LE.10) THEN
  75 :                LDEPL=2
  76 :                IADEPL=0
  77 :                IF (IFOUR.EQ.9.OR.IFOUR.EQ.10) ISPE1D=1
  78 :             ELSEIF (IFOUR.EQ.11) THEN
  79 :                LDEPL=3
  80 :                IADEPL=0
  81 :             ELSE IF (IFOUR.EQ.15) THEN
  82 :                LDEPL=2
  83 :                IADEPL=3
  84 :             ELSE
  85 :                LDEPL=1
  86 :                IADEPL=3
  87 :             ENDIF
  88 : C  Autres cas :
  89 :          ELSE
  90 :             LDEPL=0
  91 :             IADEPL=0
  92 :          ENDIF
  93 : C  Cas particulier pour certains modes de IDIM=1
  94 :          IF (ISPE1D.EQ.1) THEN
  95 :             DO I=1,LDEPL
  96 :                IF (CMOT.EQ.'DEPL') THEN
  97 :                   MOTS(**)=MODE1D(IADEPL+I)
  98 :                ELSE
  99 :                   MOTS(**)=MOFO1D(IADEPL+I)
 100 :                ENDIF
 101 :             ENDDO
 102 : C  Cas general
 103 :          ELSE
 104 :             DO I=1,LDEPL
 105 :                IF (CMOT.EQ.'DEPL') THEN
 106 :                   MOTS(**)=MODEPL(IADEPL+I)
 107 :                ELSE
 108 :                   MOTS(**)=MODEDU(IADEPL+I)
 109 :                ENDIF
 110 :             ENDDO
 111 :          ENDIF
 112 :          SEGDES MLMOTS
 113 :       ELSE
 114 :          MOTERR(1:4)=CMOT
 115 : * 927 2
 116 : * Le type d'inconnue %m1:8 ne convient pas.
 116 :          CALL ERREUR(927)
 117 :       ENDIF
 118 :       RETURN
 119 : *
 120 : * End of subroutine IDCOMP
 121 : *
 122 :       END
 123 : 
 124 :  

© Cast3M 2003 - All rights reserved.
Disclaimer