idcomp
C IDCOMP SOURCE CB215821 20/11/25 13:30:07 10792 IMPLICIT REAL*8 (A-H,O-Z) IMPLICIT INTEGER (I-N) C*********************************************************************** C NOM : IDCOMP C DESCRIPTION : Renvoie une liste de noms de composantes de l'inconnue C demandée (pour l'instant 'DEPL' et 'FORC') C C Cette subroutine est copiée de bloque.eso C 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 ENTREES : CMOT C ENTREES/SORTIES : C SORTIES : MLMOTS C CODE RETOUR (IRET) : = 0 si tout s'est bien passé C*********************************************************************** C VERSION : v1, 07/10/2005, version initiale C HISTORIQUE : v1, 07/10/2005, création C HISTORIQUE : C HISTORIQUE : C*********************************************************************** -INC PPARAM -INC CCOPTIO -INC SMLMOTS * CHARACTER*(LOCOMP) MODEPL(6),MODEDU(6) CHARACTER*(LOCOMP) MODE1D(2),MOFO1D(2) CHARACTER*(*) CMOT * DATA MODEPL / 'UX ','UY ','UZ ','UR ','UZ ','UT ' / DATA MODEDU / 'FX ','FY ','FZ ','FR ','FZ ','FT ' / C Tableaux MODE1D et MOFO1D sont utilises pour certains modes 1D DATA MODE1D / 'UX ','UZ ' / DATA MOFO1D / 'FX ','FZ ' / * * Executable statements * IF (CMOT.EQ.'DEPL'.OR.CMOT.EQ.'FORC') THEN JGN=LOCOMP JGM=0 SEGINI MLMOTS C Quelques initialisations selon le type de probleme C Cas IDIM = 1 : C ISPE1D = 1 si IDIM=1 et IFOUR=9 ou 10, car les noms de DDL primaux et C variables duales ne sont pas dans l'ordre "classique" (un traitement C specifique est alors necessaire). ISPE1D=0 C Deformations planes ou contraintes planes ou defo. plane gene : IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-2.OR.IFOUR.EQ.-3) THEN LDEPL=2 IADEPL=0 C Axisymetrique : ELSEIF (IFOUR.EQ.0) THEN LDEPL=2 IADEPL=3 C Fourier : ELSEIF (IFOUR.EQ.1) THEN LDEPL=3 IADEPL=3 C Tridimensionnel : ELSEIF (IFOUR.EQ.2) THEN LDEPL=3 IADEPL=0 C Massif 1D (IDIM=1) : ELSEIF (IFOUR.GE.3.AND.IFOUR.LE.15) THEN IF (IFOUR.LE.6) THEN LDEPL=1 IADEPL=0 ELSEIF (IFOUR.GE.7.AND.IFOUR.LE.10) THEN LDEPL=2 IADEPL=0 IF (IFOUR.EQ.9.OR.IFOUR.EQ.10) ISPE1D=1 ELSEIF (IFOUR.EQ.11) THEN LDEPL=3 IADEPL=0 ELSE IF (IFOUR.EQ.15) THEN LDEPL=2 IADEPL=3 ELSE LDEPL=1 IADEPL=3 ENDIF C Autres cas : ELSE LDEPL=0 IADEPL=0 ENDIF C Cas particulier pour certains modes de IDIM=1 IF (ISPE1D.EQ.1) THEN DO I=1,LDEPL IF (CMOT.EQ.'DEPL') THEN ELSE ENDIF ENDDO C Cas general ELSE DO I=1,LDEPL IF (CMOT.EQ.'DEPL') THEN ELSE ENDIF ENDDO ENDIF SEGDES MLMOTS ELSE MOTERR=CMOT ENDIF RETURN * * End of subroutine IDCOMP * END
© Cast3M 2003 - Tous droits réservés.
Mentions légales