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