C MODEL6 SOURCE CHAT 05/01/13 01:48:31 5004 SUBROUTINE MODEL6(LESPRO,NBPRO,LESTEF,NBTEF,N1MAX,N2MAX) *---------------------------------------------------------------------- * OBJET MODELE - CAS DE LA FORMULATION 'POREUX' * DEFINITION DES NOMS DE MODELES DE MATERIAU * ET DES NOMS DE TYPES D'ELEMENTS FINIS *---------------------------------------------------------------------- IMPLICIT INTEGER(I-N) -INC PPARAM -INC CCOPTIO * CHARACTER*16 MOMODL(100) * CHARACTER*16 LESPRO(*) CHARACTER*4 LESTEF(*) * * Noms des comportements lineaires * CALL MODLIN (MOMODL,NMOD) * DO 1 I=1,NMOD LESPRO(I)=MOMODL(I) 1 CONTINUE NBPRO=NMOD * * Noms des materiaux pour le comportement lineaire * CALL MODELA (MOMODL,NMOD) * DO 2 I=NBPRO+1,NBPRO+NMOD LESPRO(I)=MOMODL(I-NBPRO) 2 CONTINUE NBPRO=NBPRO+NMOD * * Noms des comportements non lineaires * * Remarque * La routine MODNLI va retourner les noms des sept familles de * comportements non lineaires, dans l'ordre suivant : * 'PLASTIQUE', 'FLUAGE', 'VISCOPLASTIQUE', 'ENDOMMAGEMENT', * 'PLASTIQUE_ENDOM', 'NON_LINEAIRE' et 'VISCO_EXTERNE'. * Les noms de toutes les familles de comportements non lineaires * feront donc partie du vocabulaire admissible dans la definition * du modele, sans restriction. * Toutefois, DANS LE CAS DE LA FORMULATION 'POREUX', seuls les * materiaux des 6 PREMIERES FAMILLES seront acceptables : cf. appels * ci-dessous aux routines MODPLA, MODFLU, MODVIS et MODEND. * Il y a donc une restriction en formulation 'POREUX' par rapport * a la formulation 'MECANIQUE', mais on ne la fait pas apparaitre * au stade de la definition des familles admissibles. CALL MODNLI (MOMODL,NMOD) * DO 3 I=NBPRO+1,NBPRO+NMOD LESPRO(I)=MOMODL(I-NBPRO) 3 CONTINUE NBPRO=NBPRO+NMOD * * Noms des materiaux plastiques * CALL MODPLA (MOMODL,NMOD) * DO 4 I=NBPRO+1,NBPRO+NMOD LESPRO(I)=MOMODL(I-NBPRO) 4 CONTINUE NBPRO=NBPRO+NMOD * * Noms des materiaux fluages * CALL MODFLU (MOMODL,NMOD) * DO 5 I=NBPRO+1,NBPRO+NMOD LESPRO(I)=MOMODL(I-NBPRO) 5 CONTINUE NBPRO=NBPRO+NMOD * * Noms des materiaux viscoplastiques * CALL MODVIS (MOMODL,NMOD) * DO 6 I=NBPRO+1,NBPRO+NMOD LESPRO(I)=MOMODL(I-NBPRO) 6 CONTINUE NBPRO=NBPRO+NMOD * * Noms des materiaux endommageables * CALL MODEND (MOMODL,NMOD) * DO 7 I=NBPRO+1,NBPRO+NMOD LESPRO(I)=MOMODL(I-NBPRO) 7 CONTINUE NBPRO=NBPRO+NMOD * * Noms des materiaux plastiques endommageables * CALL MODPLE (MOMODL,NMOD) * DO 8 I=NBPRO+1,NBPRO+NMOD LESPRO(I)=MOMODL(I-NBPRO) 8 CONTINUE NBPRO=NBPRO+NMOD * * Noms des materiaux elastiques non linéaires * CALL MODENL (MOMODL,NMOD) * DO 9 I=NBPRO+1,NBPRO+NMOD LESPRO(I)=MOMODL(I-NBPRO) 9 CONTINUE NBPRO=NBPRO+NMOD * IF(NBPRO.GT.N1MAX) THEN CALL ERREUR(550) GO TO 99 END IF * * NOMS DE TYPES D'ELEMENTS FINIS * IF(IDIM.EQ.2) THEN NBTEF=9 IF(NBTEF.GT.N2MAX) THEN CALL ERREUR(551) GO TO 99 END IF LESTEF(1)='TRIP' LESTEF(2)='QUAP' LESTEF(3)='JOP3' LESTEF(4)='TRIQ' LESTEF(5)='QUAQ' LESTEF(6)='JOQ3' LESTEF(7)='TRIR' LESTEF(8)='QUAR' LESTEF(9)='JOR3' ELSE NBTEF=15 IF(NBTEF.GT.N2MAX) THEN CALL ERREUR(551) GO TO 99 END IF LESTEF(1)='CUBP' LESTEF(2)='TETP' LESTEF(3)='PRIP' LESTEF(4)='JOP6' LESTEF(5)='JOP8' LESTEF(6)='CUBQ' LESTEF(7)='TETQ' LESTEF(8)='PRIQ' LESTEF(9)='JOQ6' LESTEF(10)='JOQ8' LESTEF(11)='CUBR' LESTEF(12)='TETR' LESTEF(13)='PRIR' LESTEF(14)='JOR6' LESTEF(15)='JOR8' ENDIF RETURN 99 CALL ERREUR(5) RETURN END