ecoul1
C ECOUL1 SOURCE OF166741 24/10/07 21:15:12 12016 & IPCAR,IPCH1,IPCH2,IPCH3,IPCH4,IPCH5,ITHHER,IFI,PRECIS, & IPOTAB,JECHER,ISTEP,JNOID,LOGSUC,IPCHE7,IPCHE8,IPCHE9) ********************************************************************** * * ecoulement inelastique * ********************************************************************** * * entrees: * * ipmodl = pointeur sur un objet mmodel * ipche1 = pointeur sur un mchaml de contraintes initiales * ipche2 = pointeur sur un mchaml de variables internes initiales * ipche3 = pointeur sur un mchaml de deformations inelastiques initiale * ipche4 = pointeur sur un mchaml d'increment elastique de deformations * ipche5 = pointeur sur un mchaml de deformations * ipcar = pointeur sur un mchaml de caracteristiques * ipch1 = pointeur sur un mchaml de temperatures au debut du pas * ipch2 = pointeur sur un mchaml de temperatures a la fin du pas * ipch3 = pointeur sur un mchaml de temperatures de reference c mistral : * ipch4 = pointeur sur un mchaml de flux neutronique au debut du pas pou * ipch5 = pointeur sur un mchaml de flux neutronique a la fin du pas pou * ifi = 0 pas de flux neutronique; = 1 existence de flux neutronique ( c mistral. * ithher = 0 si pas de chargement thermique * = 1 si chargement thermique mais materiau constant * = 2 si chargement thermique et mat. dependant de la temperature * ipch1,ipch2,ipch3,ithher ne servent que pour les materiaux * endommageables de lemaitre quand ils dependent de la temperature * precis = precision des iterations internes * ipotab = pointeur sur une table * jecher = flag valant 0 ou 1(pour action dans ecoule) * istep =indicateur d'action pour calcul nonlocal * =0 dans le cas d'un calcul local (normal) * =1 ou 2 dans le cas d'un calcul nonlocal * =1 pour calcul des fonctions seuil uniquement * =2 pour calcul des variables dissipatives a partir * des fonctions seuil moyennees prealablement par nloc * jnoid = flag valant 0 ou 1(pour action dans ecoul1) * * sorties: * * logsuc = logique pour indication de pb de convergence * ipche7 = pointeur sur un mchaml de contraintes * ipche8 = pointeur sur un mchaml de variables internes * ipche9 = pointeur sur un mchaml de deformations * ************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC SMCHAML c mistral : POINTEUR MCHEL7.MCHELM,MCHEL8.MCHELM c mistral. -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE -INC CCHAMP Pointeur nomid1.nomid c SEGMENT NOTYPE CHARACTER*16 TYPE(NBTYPE) ENDSEGMENT * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * CHARACTER*8 CMATE CHARACTER*(NCONCH) CONM LOGICAL LOGSUC,lsupva,lsupco,lsupde,lsupma,lsupdd PARAMETER ( NINF=3 ) INTEGER INFOS(NINF) lsupva=.false. lsupde=.false. lsupdd=.false. c NHRM=NIFOUR c c verification du lieu support du mchaml de contraintes c IF (ISUP1.GT.1) RETURN * * verification du lieu support du mchaml de variables internes * IF (ISUP2.GT.1) RETURN c c verification du lieu support du mchaml de defor. inelastique init. c IF(IPCHE3.NE.0)THEN IF (ISUP3.GT.1) RETURN ELSE ISUP3=0 ENDIF c c verification du lieu support du mchaml de defor. totales c IF(IPCHE6.NE.0)THEN IF (ISUP6.GT.1) RETURN ELSE ISUP6=0 ENDIF c c verification du lieu support du mchaml des incr. deformat totales c IF (ISUP4.GT.1) RETURN c c verification du lieu support du mchaml de caracteristiques c IF (ISUP5.GT.1) RETURN c c activation du modele c MMODEL=IPMODL SEGACT MMODEL NSOUS=KMODEL(/1) c c creation des 3 mchelms c N1=NSOUS L1=11 N3=6 SEGINI MCHELM TITCHE='CONTRAINTES' IFOCHE=IFOUR IPCHE7=MCHELM L1=18 SEGINI MCHEL1 MCHEL1.TITCHE='VARIABLES INTERNES' MCHEL1.IFOCHE=IFOUR IPCHE8=MCHEL1 L1=12 SEGINI MCHEL2 MCHEL2.TITCHE='DEFORMATIONS INELASTIQUES' MCHEL2.IFOCHE=IFOUR IPCHE9=MCHEL2 c c traitement des champs de temperature pour les materiaux c endommageables de lemaitre c IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN MCHEL3=IPCH1 MCHEL4=IPCH2 MCHEL5=IPCH3 SEGACT MCHEL3 SEGACT MCHEL4 SEGACT MCHEL5 ENDIF *********************** * SPECIAL SUCCION * IF (ITHHER.EQ.3) THEN MCHEL3=IPCH1 MCHEL4=IPCH2 SEGACT MCHEL3 SEGACT MCHEL4 ENDIF *********************** c mistral : IF (IFI.EQ.1) THEN MCHEL7=IPCH4 MCHEL8=IPCH5 SEGACT MCHEL7 SEGACT MCHEL8 ENDIF c mistral. * * deformations totales * IF(IPCHE6.NE.0) THEN MCHEL6=IPCHE6 SEGACT MCHEL6 ENDIF c____________________________________________________________________ c c debut de la boucle sur les differentes zones c____________________________________________________________________ c DO 1000 ISOUS=1,NSOUS * * initialisation * NSTR=0 MOSTRS=0 IVASTR=0 MOVARI=0 NVARI=0 NVARF=0 IVARI=0 MOEPSI=0 MODEIN=0 NDEF=0 NDEIN=0 IVADEF=0 IVADET=0 IVADS=0 NCARA=0 NCARF=0 MOCARA=0 IVACAR=0 NMATF=0 NMATR=0 MOMATR=0 IVAMAT=0 IVASTF=0 IVARIF=0 IVADEP=0 KERRE=0 KERR1=0 MCHAML=0 MCHAM1=0 MCHAM2=0 lsupma=.true. c c on recupere l information generale c IMODEL=KMODEL(ISOUS) SEGACT IMODEL IPMAIL=IMAMOD CONM =CONMOD IMACHE(ISOUS)=IPMAIL CONCHE(ISOUS)=CONMOD MCHEL1.IMACHE(ISOUS)=IPMAIL MCHEL1.CONCHE(ISOUS)=CONMOD MCHEL2.IMACHE(ISOUS)=IPMAIL MCHEL2.CONCHE(ISOUS)=CONMOD * MELE=NEFMOD MELEME=IMAMOD SEGACT MELEME NBNN=NUM(/1) NBELEM=NUM(/2) c c coque integree ou pas ? NPINT=INFMOD(1) c c traitement du modele c NFOR=FORMOD(/2) NMAT=MATMOD(/2) c c nature du materiau c CMATE = CMATEE MATE = IMATEE INPLAS = INATUU c____________________________________________________________________ c c information sur l'element fini c____________________________________________________________________ c MFR =INFELE(13) NBG =INFELE(6) NBGS =INFELE(4) NSTRS=INFELE(16) LRE =INFELE(9) IPPORE=0 IF(MFR.EQ.33) IPPORE=NBNN LW =200 LW2 =150 LHOOK=INFELE(10) * IF (MFR.EQ.3.AND.NPINT.NE.0) LHOOK=4 * LHOO2=LHOOK*LHOOK * MINTE=INFELE(11) minte=infmod(7) IPMINT=MINTE IPORE=INFELE(8) * * remplissage des tableaux infche * INFCHE(ISOUS,1)=0 INFCHE(ISOUS,2)=0 INFCHE(ISOUS,3)=NHRM INFCHE(ISOUS,4)=MINTE INFCHE(ISOUS,5)=0 INFCHE(ISOUS,6)=5 * MCHEL1.INFCHE(ISOUS,1)=0 MCHEL1.INFCHE(ISOUS,2)=0 MCHEL1.INFCHE(ISOUS,3)=NHRM MCHEL1.INFCHE(ISOUS,4)=MINTE MCHEL1.INFCHE(ISOUS,5)=0 MCHEL1.INFCHE(ISOUS,6)=5 * MCHEL2.INFCHE(ISOUS,1)=0 MCHEL2.INFCHE(ISOUS,2)=0 MCHEL2.INFCHE(ISOUS,3)=NHRM MCHEL2.INFCHE(ISOUS,4)=MINTE MCHEL2.INFCHE(ISOUS,5)=0 MCHEL2.INFCHE(ISOUS,6)=5 c c creation du tableau infos c IF (IRTD.EQ.0)THEN SEGDES IMODEL*NOMOD,MMODEL*NOMOD SEGSUP MCHELM,MCHEL1,MCHEL2 RETURN ENDIF * * traitement du champ de contraintes * if(lnomid(4).ne.0) then nomid=lnomid(4) segact nomid mostrs=nomid nstr=lesobl(/2) nfac=lesfac(/2) lsupco=.false. else lsupco=.true. endif IF (MOSTRS.EQ.0) THEN MOTERR(1:4)='CONT' MOTERR(5:8)=NOMTP(MELE) SEGDES IMODEL*NOMOD,MMODEL*NOMOD SEGSUP MCHELM,MCHEL1,MCHEL2 RETURN ENDIF NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 GOTO 9990 ENDIF * IF (ISUP1.EQ.1) THEN IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 ISUP1=0 GOTO 9990 ENDIF ENDIF * * traitement du champ de variables internes * MOTYVA=NOTYPE * * cas particulier poutre a fibres * IF(MFR.EQ.7.AND.CMATE.EQ.'SECTION') THEN NBTYPE=1 SEGINI NOTYPE MOTYVA=NOTYPE TYPE(1)='POINTEURMCHAML ' * * cas particulier modele de maxwell * ELSE IF(INPLAS.EQ.74) THEN NBTYPE=10 SEGINI NOTYPE MOTYVA=NOTYPE TYPE(1)='REAL*8' DO IC=2,10 TYPE(IC)='POINTEURLISTREEL' END DO ENDIF if(lnomid(10).ne.0) then nomid=lnomid(10) segact nomid movari=nomid nvari=lesobl(/2) nvarf=lesfac(/2) lsupva=.false. else lsupva=.true. endif IF (MOVARI.EQ.0) THEN MOTERR(1:4)='VARI' MOTERR(5:8)=NOMTP(MELE) KERRE=999 SEGSUP NOTYPE GOTO 9990 ENDIF * IF(IERR.NE.0)THEN NOTYPE=MOTYVA SEGSUP NOTYPE KERRE=999 GOTO 9990 ENDIF * NVART=NVARI+NVARF * IF (ISUP2.EQ.1) THEN IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 ISUP2=0 GOTO 9990 ENDIF ENDIF * * traitement du champ de deformations inelastiques * if(lnomid(5).ne.0)then nomid1=lnomid(5) segini,nomid=nomid1 ndef=lesobl(/2) nfac=lesfac(/2) moepsi=nomid lsupde=.false. else lsupde=.true. endif if(lnomid(13).ne.0) then nomid=lnomid(13) segact nomid modein=nomid ndein=lesobl(/2) nfac=lesfac(/2) lsupdd=.false. else lsupdd=.true. endif if (NDEF.NE.NDEIN) then c.. en principe meme nombre de composantes pour deformations et def inelas return endif IF (MODEIN.EQ.0) THEN MOTERR(1:4)='DEIN' MOTERR(5:8)=NOMTP(MELE) KERRE=999 SEGSUP NOTYPE GOTO 9990 ENDIF * IF(IPCHE3.NE.0)THEN & ,1,INFOS,3,IVADEF) IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 GOTO 9990 ENDIF * IF (ISUP3.EQ.1) THEN IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 ISUP3=0 GOTO 9990 ENDIF ENDIF ENDIF * * traitement du champ de deformations totales * IF(IPCHE6.NE.0)THEN & ,1,INFOS,3,IVADET) IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 GOTO 9990 ENDIF * IF (ISUP6.EQ.1) THEN IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 ISUP6=0 GOTO 9990 ENDIF ENDIF ENDIF * * traitement du champ d'increments de deformations * 1 MOTYPE,1,INFOS,3,IVADS) *********SEGSUP NOTYPE IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 GOTO 9990 ENDIF * IF (ISUP4.EQ.1) THEN IF(IERR.NE.0)THEN SEGSUP NOTYPE KERRE=999 ISUP4=0 GOTO 9990 ENDIF ENDIF * * traitement du champ de caracteristiques materielles * if(lnomid(6).ne.0) then nomid=lnomid(6) segact nomid momatr=nomid nmatr=lesobl(/2) nmatf=lesfac(/2) lsupma=.false. else lsupma=.true. endif IF (MOMATR.EQ.0) THEN MOTERR(1:4)='MATE' MOTERR(5:8)=NOMTP(MELE) KERRE=999 GOTO 9990 ENDIF * IF(MATE.EQ.1.AND.(INPLAS.EQ.5.OR.INPLAS.EQ.87))THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=6 ELSE NBTYPE=5 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='POINTEUREVOLUTIO' TYPE(4)='REAL*8' TYPE(5)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(6)='REAL*8' C ELSE IF(MATE.EQ.4.AND.INPLAS.EQ.5)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=7 ELSE NBTYPE=6 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='REAL*8' TYPE(6)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(7)='REAL*8' C ELSE IF(MATE.EQ.1.AND.INPLAS.EQ.51)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=8 ELSE NBTYPE=7 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='POINTEUREVOLUTIO' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='POINTEUREVOLUTIO' TYPE(6)='REAL*8' TYPE(7)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(8)='REAL*8' C ELSE IF(MATE.EQ.4.AND.INPLAS.EQ.51)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=9 ELSE NBTYPE=8 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='POINTEUREVOLUTIO' TYPE(6)='POINTEUREVOLUTIO' TYPE(7)='REAL*8' TYPE(8)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(9)='REAL*8' C ELSE IF(MATE.EQ.1.AND.INPLAS.EQ.62)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=6 ELSE NBTYPE=5 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='POINTEUREVOLUTIO' TYPE(4)='REAL*8' TYPE(5)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(6)='REAL*8' C ELSE IF(MATE.EQ.1.AND.INPLAS.EQ.64)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=15 ELSE NBTYPE=14 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='POINTEUREVOLUTIO' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' TYPE(8)='REAL*8' TYPE(9)='REAL*8' TYPE(10)='REAL*8' TYPE(11)='REAL*8' TYPE(12)='REAL*8' TYPE(13)='REAL*8' TYPE(14)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(15)='REAL*8' C ELSE IF (MATE.EQ.1.AND.INPLAS.EQ.14) THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=10 ELSE NBTYPE=9 ENDIF NBTYPE=9 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='POINTEUREVOLUTIO' TYPE(7)='POINTEUREVOLUTIO' TYPE(8)='REAL*8' TYPE(9)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(10)='REAL*8' C ELSE IF (MATE.EQ.1.AND.INPLAS.EQ.26) THEN IF (ITHHER.EQ.2) THEN NBTYPE=0 SEGINI NOTYPE MOTYPE=NOTYPE ELSE IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=9 ELSE NBTYPE=8 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='POINTEUREVOLUTIO' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' TYPE(8)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(9)='REAL*8' ENDIF C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.29)THEN IF (ITHHER.EQ.2) THEN NBTYPE=0 SEGINI NOTYPE MOTYPE=NOTYPE ELSE IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=14 ELSE NBTYPE=13 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' TYPE(8)='REAL*8' TYPE(9)='REAL*8' TYPE(10)='POINTEUREVOLUTIO' TYPE(11)='REAL*8' TYPE(12)='REAL*8' TYPE(13)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(14)='REAL*8' ENDIF C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.16)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=8 ELSE NBTYPE=7 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='POINTEUREVOLUTIO' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.2)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=7 ELSE NBTYPE=6 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='REAL*8' TYPE(6)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(7)='REAL*8' C ELSE IF(MATE.EQ.1.AND.INPLAS.EQ.32)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=10 ELSE NBTYPE=19 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='REAL*8' TYPE(5)='POINTEUREVOLUTIO' TYPE(6)='POINTEUREVOLUTIO' TYPE(7)='POINTEUREVOLUTIO' TYPE(8)='POINTEUREVOLUTIO' TYPE(9)='POINTEUREVOLUTIO' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(10)='REAL*8' C ELSE IF(MATE.EQ.1.AND.INPLAS.EQ.44)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=21 ELSE NBTYPE=20 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' TYPE(8)='REAL*8' TYPE(9)='REAL*8' TYPE(10)='REAL*8' TYPE(11)='REAL*8' TYPE(12)='REAL*8' TYPE(13)='REAL*8' TYPE(14)='REAL*8' TYPE(15)='REAL*8' TYPE(16)='REAL*8' TYPE(17)='REAL*8' TYPE(18)='REAL*8' TYPE(19)='REAL*8' TYPE(20)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(21)='REAL*8' C ELSE IF(MATE.EQ.1.AND.INPLAS.EQ.45)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=28 ELSE NBTYPE=27 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' TYPE(8)='REAL*8' TYPE(9)='REAL*8' TYPE(10)='REAL*8' TYPE(11)='REAL*8' TYPE(12)='REAL*8' TYPE(13)='REAL*8' TYPE(14)='REAL*8' TYPE(15)='REAL*8' TYPE(16)='REAL*8' TYPE(17)='REAL*8' TYPE(18)='REAL*8' TYPE(19)='REAL*8' TYPE(20)='REAL*8' TYPE(21)='REAL*8' TYPE(22)='REAL*8' TYPE(23)='REAL*8' TYPE(24)='REAL*8' TYPE(25)='REAL*8' TYPE(26)='REAL*8' TYPE(27)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(28)='REAL*8' C ELSE IF(MFR.EQ.7.AND.CMATE.EQ.'SECTION')THEN NBTYPE=3 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='POINTEURMMODEL ' TYPE(2)='POINTEURMCHAML ' TYPE(3)='POINTEURLISTREEL' C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.54)THEN NBTYPE=15 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO TYPE(10)='POINTEUREVOLUTIO' TYPE(11)='POINTEUREVOLUTIO' C C JOINT_SOFT C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.56)THEN NBTYPE=10 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO TYPE(6)='POINTEUREVOLUTIO' TYPE(7)='POINTEUREVOLUTIO' TYPE(8)='POINTEUREVOLUTIO' C C Note: Il s'agit des parametres obligatoires. 1 et 2 sont par defaut C YOUN et NU, 3, 4 et 5 (d'apres idplas.eso modele plastique 35) C PNOR, CPLG, BETA, puis viennent les 3 courbes 6, 7 et 8, c.a.d C C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.119)THEN C C JOINT_COAT C NBTYPE=2+3 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO TYPE(2)='POINTEUREVOLUTIO' C C Note: Il s'agit des parametres obligatoires. 1 est par defaut C KS, 2 (d'apres idplas.eso modele plastique 49) la courbe SJSB C SJCB, SJSB et SJTB. C C+PPm ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.126)THEN C C MUR_SHEAR C C 2004 NBTYPE=13+4 NBTYPE=14+4 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO DO I=3,8 TYPE(I)='POINTEUREVOLUTIO' ENDDO C Note: Il s'agit des parametres obligatoires. 1 et 2 sont par defaut C YOUN et NU, 3 a 8 (d'apres idplas.eso modele plastique 63) les C courbes CUFP, CUKP, CULP, CUFM, CUKM, CULM C+PPm C C C ANCRAGE_ELIGEHAUSEN ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.91)THEN NBTYPE=11 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO C C PARFAIT_ANCRAGE C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.92)THEN NBTYPE=14 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO C C ACIER_ANCRAGE C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.93)THEN NBTYPE=24 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO C C TAKEDA C ELSEIF(MATE.EQ.1.AND.(INPLAS.EQ.59.OR.INPLAS.EQ.60))THEN NBTYPE=11 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO TYPE(3)='POINTEUREVOLUTIO' C C INFILL_UNI C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.72)THEN NBTYPE=12 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO TYPE(10)='POINTEUREVOLUTIO' C C CISAIL_NL C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.73)THEN NBTYPE=13 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO TYPE(10)='POINTEUREVOLUTIO' TYPE(11)='POINTEUREVOLUTIO' C ELSEIF(MATE.EQ.1.AND.INPLAS.EQ.74)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=22 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='POINTEUREVOLUTIO' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='REAL*8' TYPE(6)='POINTEUREVOLUTIO' TYPE(7)='REAL*8' TYPE(8)='POINTEUREVOLUTIO' TYPE(9)='REAL*8' TYPE(10)='POINTEUREVOLUTIO' TYPE(11)='REAL*8' TYPE(12)='REAL*8' TYPE(13)='REAL*8' TYPE(14)='REAL*8' TYPE(15)='POINTEUREVOLUTIO' TYPE(16)='REAL*8' TYPE(17)='POINTEUREVOLUTIO' TYPE(18)='REAL*8' TYPE(19)='POINTEUREVOLUTIO' TYPE(20)='REAL*8' TYPE(21)='POINTEUREVOLUTIO' TYPE(22)='REAL*8' ELSE NBTYPE=21 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='POINTEUREVOLUTIO' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='REAL*8' TYPE(6)='POINTEUREVOLUTIO' TYPE(7)='REAL*8' TYPE(8)='POINTEUREVOLUTIO' TYPE(9)='REAL*8' TYPE(10)='POINTEUREVOLUTIO' TYPE(11)='REAL*8' TYPE(12)='REAL*8' TYPE(13)='REAL*8' TYPE(14)='POINTEUREVOLUTIO' TYPE(15)='REAL*8' TYPE(16)='POINTEUREVOLUTIO' TYPE(17)='REAL*8' TYPE(18)='POINTEUREVOLUTIO' TYPE(19)='REAL*8' TYPE(20)='POINTEUREVOLUTIO' TYPE(21)='REAL*8' ENDIF C ELSEIF(MATE.EQ.4.AND.INPLAS.EQ.74)THEN IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=23 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='POINTEUREVOLUTIO' TYPE(6)='REAL*8' TYPE(7)='POINTEUREVOLUTIO' TYPE(8)='REAL*8' TYPE(9)='POINTEUREVOLUTIO' TYPE(10)='REAL*8' TYPE(11)='POINTEUREVOLUTIO' TYPE(12)='REAL*8' TYPE(13)='REAL*8' TYPE(14)='REAL*8' TYPE(15)='REAL*8' TYPE(16)='POINTEUREVOLUTIO' TYPE(17)='REAL*8' TYPE(18)='POINTEUREVOLUTIO' TYPE(19)='REAL*8' TYPE(20)='POINTEUREVOLUTIO' TYPE(21)='REAL*8' TYPE(22)='POINTEUREVOLUTIO' TYPE(23)='REAL*8' ELSE IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.2) THEN NBTYPE=26 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' TYPE(8)='POINTEUREVOLUTIO' TYPE(9)='POINTEUREVOLUTIO' TYPE(10)='REAL*8' TYPE(11)='POINTEUREVOLUTIO' TYPE(12)='REAL*8' TYPE(13)='POINTEUREVOLUTIO' TYPE(14)='REAL*8' TYPE(15)='POINTEUREVOLUTIO' TYPE(16)='REAL*8' TYPE(17)='REAL*8' TYPE(18)='REAL*8' TYPE(19)='POINTEUREVOLUTIO' TYPE(20)='REAL*8' TYPE(21)='POINTEUREVOLUTIO' TYPE(22)='REAL*8' TYPE(23)='POINTEUREVOLUTIO' TYPE(24)='REAL*8' TYPE(25)='POINTEUREVOLUTIO' TYPE(26)='REAL*8' ELSE NBTYPE=22 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='POINTEUREVOLUTIO' TYPE(6)='REAL*8' TYPE(7)='POINTEUREVOLUTIO' TYPE(8)='REAL*8' TYPE(9)='POINTEUREVOLUTIO' TYPE(10)='REAL*8' TYPE(11)='POINTEUREVOLUTIO' TYPE(12)='REAL*8' TYPE(13)='REAL*8' TYPE(14)='REAL*8' TYPE(15)='POINTEUREVOLUTIO' TYPE(16)='REAL*8' TYPE(17)='POINTEUREVOLUTIO' TYPE(18)='REAL*8' TYPE(19)='POINTEUREVOLUTIO' TYPE(20)='REAL*8' TYPE(21)='POINTEUREVOLUTIO' TYPE(22)='REAL*8' ENDIF C ELSEIF(INPLAS.EQ.67) THEN NBTYPE=NMATR+NMATF SEGINI NOTYPE MOTYPE=NOTYPE IM2=NMATR-2 DO IC=1,IM2 TYPE(IC)='REAL*8' ENDDO TYPE(NMATR-1)='POINTEUREVOLUTIO' TYPE(NMATR) ='POINTEUREVOLUTIO' DO IC=NMATR+1,NBTYPE TYPE(IC)='REAL*8' ENDDO C ELSEIF(MATE.EQ.4.AND.INPLAS.EQ.5)THEN NBTYPE=6 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='POINTEUREVOLUTIO' TYPE(5)='REAL*8' TYPE(6)='REAL*8' C c mistral : ELSEIF (INPLAS.EQ.94) THEN NBTYPE=NMATR+NMATF SEGINI NOTYPE MOTYPE=NOTYPE DO 11 ITYP=1,NBTYPE TYPE(ITYP)='REAL*8' 11 CONTINUE c pour le modèle mistral il y a 10 composantes non linéaires qui sont des listes de réels NLDEB=NMATR-9 DO 13 ITYP=NLDEB,NMATR TYPE(ITYP)='POINTEURLISTREEL' 13 CONTINUE c mistral. C ELSE IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR. + EQ.31.OR.MFR.EQ.33).AND.IFOUR.EQ.-2) THEN NBTYPE=2 ELSE NBTYPE=1 ENDIF SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' IF ((MFR.EQ.1.OR.MFR.EQ.3.OR.MFR.EQ.31.OR.MFR.EQ.33). + AND.IFOUR.EQ.-2) TYPE(2)='REAL*8' C ENDIF & INFOS,3,IVAMAT) SEGSUP NOTYPE C IF(IERR.NE.0)THEN KERRE=999 GOTO 9990 ENDIF NMATT=NMATR+NMATF * IF (ISUP5.EQ.1) THEN IF(IERR.NE.0)THEN KERRE=999 ISUP5=0 GOTO 9990 ENDIF ENDIF * * traitement du champ de caracteristiques geometriques * NBROBL=0 NBRFAC=0 MOCARA=0 * * coques minces * IF (MFR.EQ.3.OR.MFR.EQ.9) THEN NBROBL=1 NBRFAC=2 SEGINI NOMID MOCARA=NOMID LESOBL(1)='EPAI' LESFAC(1)='CALF' LESFAC(2)='EXCE' * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' ELSEIF (MFR.EQ.5) THEN NBROBL=1 NBRFAC=1 SEGINI NOMID MOCARA=NOMID LESOBL(1)='EPAI' LESFAC(1)='EXCE' * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * * section pour les barres * ELSE IF (MFR.EQ.27) THEN NBROBL=1 SEGINI NOMID MOCARA=NOMID LESOBL(1)='SECT' * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * * section, excentrements et orientation pour les barres excentrees * ELSE IF (MFR.EQ.49) THEN NBROBL=6 SEGINI NOMID MOCARA=NOMID LESOBL(1)='SECT' LESOBL(2)='EXCZ' LESOBL(3)='EXCY' LESOBL(4)='VX ' LESOBL(5)='VY ' LESOBL(6)='VZ ' * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * * raideurs locales pour l'element LIA2 de liaison a 2 noeuds * ELSE IF (MFR.EQ.51) THEN NBROBL=9 SEGINI NOMID MOCARA=NOMID LESOBL(1)='RLUX' LESOBL(2)='RLUY' LESOBL(3)='RLUZ' LESOBL(4)='RLRX' LESOBL(5)='RLRY' LESOBL(6)='RLRZ' LESOBL(7)='VX ' LESOBL(8)='VY ' LESOBL(9)='VZ ' * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * ELSE IF (MFR.EQ.7 ) THEN * * cas des poutres en formulation section * IF (CMATE.EQ.'SECTION') THEN NBROBL=0 NBRFAC=3 SEGINI NOMID MOCARA=NOMID LESFAC(1)='VX' LESFAC(2)='VY' LESFAC(3)='VZ' * NBTYPE=3 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' * * Cas des poutres 2D * ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN NBRFAC=1 NBROBL=2 SEGINI NOMID MOCARA=NOMID LESOBL(1)= 'SECT' LESOBL(2)= 'INRZ' LESFAC(1)= 'SECY' * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * * cas des poutres 3D * ELSE * * cas des autres poutres * NBROBL=4 NBRFAC=8 SEGINI NOMID MOCARA=NOMID LESOBL(1)='TORS' LESOBL(2)='INRY' LESOBL(3)='INRZ' LESOBL(4)='SECT' LESFAC(1)='SECY' LESFAC(2)='SECZ' LESFAC(3)='DX ' LESFAC(4)='DY ' LESFAC(5)='DZ ' LESFAC(6)='VX' LESFAC(7)='VY' LESFAC(8)='VZ' * NBTYPE=12 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' TYPE(8)='REAL*8' TYPE(9)='REAL*8' TYPE(9)='REAL*8' TYPE(10)='REAL*8' TYPE(11)='REAL*8' TYPE(11)='REAL*8' TYPE(12)='REAL*8' ENDIF * * caracteristiques pour les tuyaux * ELSE IF (MFR.EQ.13) THEN NBROBL=2 NBRFAC=11 SEGINI NOMID MOCARA=NOMID LESOBL(1)='EPAI' LESOBL(2)='RAYO' LESFAC(1)='RACO' LESFAC(2)='PRES' LESFAC(3)='CISA' LESFAC(4)='CFFX' LESFAC(5)='CFMX' LESFAC(6)='CFMY' LESFAC(7)='CFMZ' LESFAC(8)='CFPR' LESFAC(9)='VX' LESFAC(10)='VY' LESFAC(11)='VZ' * NBTYPE=13 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' TYPE(2)='REAL*8' TYPE(3)='REAL*8' TYPE(4)='REAL*8' TYPE(5)='REAL*8' TYPE(6)='REAL*8' TYPE(7)='REAL*8' TYPE(8)='REAL*8' TYPE(9)='REAL*8' TYPE(10)='REAL*8' TYPE(11)='REAL*8' TYPE(12)='REAL*8' TYPE(13)='REAL*8' * * caracteristiques pour les linespring * ELSE IF (MFR.EQ.15) THEN NBROBL=5 SEGINI NOMID MOCARA=NOMID LESOBL(1)='EPAI' LESOBL(2)='FISS' LESOBL(3)='VX ' LESOBL(4)='VY ' LESOBL(5)='VZ ' * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * * caracteristiques pour les tuyaux fissures * ELSE IF (MFR.EQ.17) THEN NBROBL=9 SEGINI NOMID MOCARA=NOMID LESOBL(1)='RAYO' LESOBL(2)='EPAI' LESOBL(3)='VX ' LESOBL(4)='VY ' LESOBL(5)='VZ ' LESOBL(6)='VXF ' LESOBL(7)='VYF ' LESOBL(8)='VZF ' LESOBL(9)='ANGL' * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * * caracteristiques des elements homogeneises * ELSE IF (MFR.EQ.37) THEN IF(IFOUR.EQ.1.OR.IFOUR.EQ.0) THEN NBROBL=4 SEGINI NOMID MOCARA=NOMID LESOBL(1)='SCEL' LESOBL(2)='SFLU' LESOBL(3)='EPS ' LESOBL(4)='XINE' ELSE NBROBL=3 SEGINI NOMID MOCARA=NOMID LESOBL(1)='SCEL' LESOBL(2)='SFLU' LESOBL(3)='EPS ' ENDIF * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' ENDIF * IF(MOCARA.NE.0)THEN & INFOS,3,IVACAR) SEGSUP NOTYPE IF(IERR.NE.0)THEN KERRE=999 GOTO 9990 ENDIF ENDIF NCARA=NBROBL NCARF=NBRFAC NCARR=NCARA+NCARF * IF (ISUP5.EQ.1.AND.MOCARA.NE.0) THEN IF(IERR.NE.0)THEN KERRE=999 ISUP5=0 GOTO 9990 ENDIF ENDIF * *------------------------------------------------- * creation des mchamls de la sous zone *------------------------------------------------- * NBPTEL=NBGS NEL=NBELEM * N1PTEL=NBPTEL N1EL=NEL N2PTEL=0 N2EL=0 * * contraintes * N2=NSTRS SEGINI MCHAML ICHAML(ISOUS)=MCHAML NS=1 NCOSOU=NSTRS SEGINI MPTVAL IVASTF=MPTVAL NOMID=MOSTRS SEGACT NOMID DO 1100 ICOMP=1,NSTRS NOMCHE(ICOMP)=LESOBL(ICOMP) TYPCHE(ICOMP)='REAL*8' SEGINI MELVAL IELVAL(ICOMP)=MELVAL IVAL(ICOMP)=MELVAL 1100 continue SEGDES NOMID * * variables internes * IF((MFR.EQ.7.OR.MFR.EQ.13).AND.CMATE.EQ.'SECTION')THEN N2PTEL=NBPTEL N2EL=NEL ENDIF * N2=NVART SEGINI MCHAM1 MCHEL1.ICHAML(ISOUS)=MCHAM1 NS=1 NCOSOU=NVART SEGINI MPTVAL IVARIF=MPTVAL NOMID=MOVARI SEGACT NOMID * * composantes obligatoires * DO 1200 ICOMP=1,NVARI MCHAM1.NOMCHE(ICOMP)=LESOBL(ICOMP) IF(MFR.EQ.7.AND.CMATE.EQ.'SECTION')THEN MCHAM1.TYPCHE(ICOMP)='POINTEURMCHAML ' N1PTEL=0 N1EL=0 ELSE IF(INPLAS.EQ.74.AND.ICOMP.GT.1) THEN MCHAM1.TYPCHE(ICOMP)='POINTEURLISTREEL' N1PTEL=0 N1EL=0 N2PTEL=NBPTEL N2EL=NEL ELSE MCHAM1.TYPCHE(ICOMP)='REAL*8' N2PTEL=0 N2EL=0 ENDIF SEGINI MELVAL MCHAM1.IELVAL(ICOMP)=MELVAL IVAL(ICOMP)=MELVAL 1200 continue * * composantes facultatives * DO 1201 ICOMP=1,NVARF JCOMP=ICOMP+NVARI MCHAM1.NOMCHE(JCOMP)=LESFAC(ICOMP) IF(INPLAS.EQ.74) THEN MCHAM1.TYPCHE(JCOMP)='POINTEURLISTREEL' N1PTEL=0 N1EL=0 ELSE MCHAM1.TYPCHE(JCOMP)='REAL*8' N2PTEL=0 N2EL=0 ENDIF SEGINI MELVAL MCHAM1.IELVAL(JCOMP)=MELVAL IVAL(JCOMP)=MELVAL 1201 continue SEGDES NOMID * * deformations inelastiques * N1PTEL=NBPTEL N1EL=NEL N2=NDEF SEGINI MCHAM2 MCHEL2.ICHAML(ISOUS)=MCHAM2 NS=1 NCOSOU=NDEF SEGINI MPTVAL IVADEP=MPTVAL NOMID=MODEIN SEGACT NOMID DO 1300 ICOMP=1,NDEF MCHAM2.NOMCHE(ICOMP)=LESOBL(ICOMP) MCHAM2.TYPCHE(ICOMP)='REAL*8' N2PTEL=0 N2EL=0 SEGINI MELVAL MCHAM2.IELVAL(ICOMP)=MELVAL IVAL(ICOMP)=MELVAL 1300 continue SEGDES NOMID * * traitement des champs de temperature pour les materiaux * endommageables de lemaitre * IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN IPH1=MCHEL3.ICHAML(ISOUS) IPH2=MCHEL4.ICHAML(ISOUS) IPH3=MCHEL5.ICHAML(ISOUS) ENDIF * * traitement des champs de flux neutronique pour le modèle MISTRAL c mistral : IF (IFI.EQ.1) THEN IPH4=MCHEL7.ICHAML(ISOUS) IPH5=MCHEL8.ICHAML(ISOUS) ENDIF c mistral. *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ * A PROPOS DE CE QUI EST FAIT JUSTE AU DESSUS ..... * * MLR : DANGEREUX : ON ACCEDE DIRECTEMENT AUX SOUS-ZONES * ALORS QU'IL CONVIENDRAIT DE PASSER PAR KOMCHA * EN ATTENDANT LA CORRECTION, ON OBLIGE * LA DONNEE DE CHPOINTS ( CF ECOULE) * DANS LE CAS DE LA SUCCION *ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ * *********************** * SPECIAL SUCCION * * traitement des champs de SUCCION * IF (ITHHER.EQ.3) THEN IPH1=MCHEL3.ICHAML(ISOUS) IPH2=MCHEL4.ICHAML(ISOUS) ENDIF *********************** * * recherche des pointeurs imat et icar * NUMAT=0 NUCAR=0 IRET = 1 IF (INPLAS.NE.26.AND.INPLAS.NE.29) THEN 1 ISUP5,INFOS,CONM,IMAT,ICAR,NUMAT,NUCAR,IRET) ENDIF IF(IRET.EQ.0) THEN GOTO 9990 ENDIF * * recherche des dimensions du melval de hooke * N2PTEL=0 N2EL=0 MPTVAL=IVAMAT DO 40 IO=1,NMATT IF(IVAL(IO).NE.0)THEN MELVAL=IVAL(IO) IF (CMATE.EQ.'SECTION') THEN N2PTEL=MAX(N2PTEL,IELCHE(/1)) N2EL =MAX(N2EL ,IELCHE(/2)) ELSE N2PTEL=MAX(N2PTEL,VELCHE(/1)) N2EL =MAX(N2EL ,VELCHE(/2)) ENDIF ENDIF 40 CONTINUE IF (N2PTEL.EQ.1.OR.NBG.EQ.1) THEN N2PTEL=1 ELSE N2PTEL=NBG ENDIF * ***************************************************** * appel a l'ecoulement proprement dit ***************************************************** * * On appel les modèles élastiques linéaires * et les modèles PLASTIQUES intégrés par * ECOINC * IF (INPLAS.EQ.0.OR. 1 INPLAS.EQ.1.OR. 2 INPLAS.EQ.3.OR. 2 INPLAS.EQ.4.OR. 3 INPLAS.EQ.5.OR. 4 INPLAS.EQ.7.OR. 5 INPLAS.EQ.11.OR. 7 INPLAS.EQ.12.OR. 7 INPLAS.EQ.13.OR. 9 INPLAS.EQ.15.OR. INPLAS.EQ.87) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVART,NMATT,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, * * On appelle les modèles VISCOPLASTIQUES et FLUAGE * intégrés par le 'moule' d'intégration CONSTI * L'intégration est effectuée suivant une méthode * de Runge-Kutta * ELSE IF (INPLAS.EQ.17.OR. 1 INPLAS.EQ.19.OR. 2 INPLAS.EQ.20.OR. 3 INPLAS.EQ.61.OR. 3 INPLAS.EQ.63.OR. 4 INPLAS.EQ.21.OR. 5 INPLAS.EQ.22.OR. 6 INPLAS.EQ.23.OR. 7 INPLAS.EQ.24.OR. 8 INPLAS.EQ.25.OR. 9 INPLAS.EQ.53.OR. INPLAS.EQ.76.OR. 9 INPLAS.EQ.44.OR. INPLAS.EQ.77.OR. 1 INPLAS.EQ.45.OR. INPLAS.EQ.102.OR. 2 INPLAS.EQ.70.OR. 3 INPLAS.EQ.84.OR. 5 INPLAS.EQ.85.OR. 4 INPLAS.EQ.86) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVART,NMATT,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, * * On appelle les modèles VISCOPLASTIQUES et FLUAGE * NON INTEGRES par CONSTI * ELSE IF (INPLAS.EQ.43.OR.INPLAS.EQ.82.OR. 1 INPLAS.EQ.90.OR.INPLAS.EQ.94.OR. 1 INPLAS.EQ.95.OR.INPLAS.EQ.100) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR,IPH1,IPH2,IPH3,IPH4,IPH5, 2 ITHHER,IFI,LHOOK,NSTRS,NVART,NMATT,NMATR,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, ELSE IF (INPLAS.EQ.65.OR.INPLAS.EQ.74) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVART,NMATT,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, * * On appele les modeles de materiaux endommageables de Lemaitre * Ce sont des matériaux plastiques (26) et viscoplastiques (29) * intégré par CONSTI * ELSE IF (INPLAS.EQ.26.OR. 9 INPLAS.EQ.29) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVART,NMATT,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, * * On appelle les matériaux ENDOMMAGEABLE * ELSE IF (INPLAS.EQ.30.OR. 1 INPLAS.EQ.31.OR.INPLAS.EQ.37.OR. 2 INPLAS.EQ.88.OR.INPLAS.EQ.89.OR. 3 INPLAS.EQ.96.OR.INPLAS.EQ.97.OR. 3 INPLAS.EQ.98.OR.INPLAS.EQ.118.OR. 4 INPLAS.EQ.134.OR.INPLAS.EQ.135.OR.INPLAS.EQ.141) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVART,NMATT,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, * * On appelle les matériaux PLASTIQUE_ENDOM(MAGEABLE) * ELSE IF (INPLAS.EQ.51.OR. 1 INPLAS.EQ.62.OR. 2 INPLAS.EQ.64.OR. 3 INPLAS.EQ.75) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVART,NMATT,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, * * On appelle les matériaux PLASTIQUES qui ne sont pas * intégrés dans ECOINC * * ELSE IF (INPLAS.EQ.2.OR.INPLAS.EQ.27.OR. 3 INPLAS.EQ.9.OR.INPLAS.EQ.14.OR. 6 INPLAS.EQ.18.OR.INPLAS.EQ.16.OR. 8 INPLAS.EQ.28.OR.INPLAS.EQ.32.OR. 8 INPLAS.EQ.33.OR.INPLAS.EQ.38.OR. 8 INPLAS.EQ.34.OR.INPLAS.EQ.35.OR. 8 INPLAS.EQ.36.OR.INPLAS.EQ.39.OR. 8 INPLAS.EQ.40.OR.INPLAS.EQ.41.OR. 8 INPLAS.EQ.50.OR.INPLAS.EQ.49.OR. 8 INPLAS.EQ.48.OR.INPLAS.EQ.42.OR. 8 INPLAS.EQ.47.OR.INPLAS.EQ.52.OR. 8 INPLAS.EQ.54.OR.INPLAS.EQ.55.OR. 8 INPLAS.EQ.56.OR.INPLAS.EQ.57.OR. 8 INPLAS.EQ.58.OR.INPLAS.EQ.59.OR. 9 INPLAS.EQ.60.OR.INPLAS.EQ.78.OR. 9 INPLAS.EQ.79.OR.INPLAS.EQ.80.OR. 9 INPLAS.EQ.91.OR.INPLAS.EQ.92.OR. 9 INPLAS.EQ.93.OR.INPLAS.EQ.119.OR.INPLAS.EQ.126) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVART,NMATT,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, * * * On appelle les matériaux PLASTIQUES qui ne sont pas * integres dans ECOINC - SUITE de ECOU60 * ELSE IF (INPLAS.EQ.66.OR.INPLAS.EQ.67.OR. 1 INPLAS.EQ.68.OR.INPLAS.EQ.69.OR. 2 INPLAS.EQ.71.OR.INPLAS.EQ.72.OR. 2 INPLAS.EQ.73.OR.INPLAS.EQ.99.OR. 3 INPLAS.EQ.101) THEN 1 NUMAT,NUCAR,IVASTR,IVARI,IVADEF,IVADET, 1 IVADS,IVAMAT,IVACAR, 2 IPH1,IPH2,IPH3,ITHHER,LHOOK,NSTRS,NVART,NMATT,NMATR,NCARR, 3 CMATE,PRECIS,JECHER,IPOTAB,ISTEP,NPINT,JNOID,LOGSUC, * ELSE KERRE=99 ENDIF * *************************************************** * Fin de l'appel aux modeles d'ecoulement *************************************************** 9990 CONTINUE * * desactivation des segments * SEGDES MELEME*NOMOD,IMODEL*NOMOD SEGDES,MINTE * IF(ISUP1.EQ.1)THEN ELSE ENDIF IF(ISUP2.EQ.1)THEN ELSE ENDIF IF(ISUP3.EQ.1)THEN ELSE ENDIF IF(ISUP4.EQ.1)THEN ELSE ENDIF IF(ISUP5.EQ.1)THEN ELSE ENDIF IF(ISUP5.EQ.1)THEN ELSE ENDIF IF(ISUP6.EQ.1)THEN ELSE IF(IPCHE6.NE.0) THEN ENDIF IF (KERRE.EQ.0) THEN SEGDES MCHAML,MCHAM1,MCHAM2 ELSE IF (MCHAML.NE.0) SEGSUP MCHAML IF (MCHAM1.NE.0) SEGSUP MCHAM1 IF (MCHAM2.NE.0) SEGSUP MCHAM2 END IF * IF (MOCARA.NE.0) THEN NOMID=MOCARA SEGSUP NOMID END IF * IF (MOMATR.NE.0) THEN NOMID=MOMATR if(lsupma)SEGSUP NOMID END IF * IF (MOVARI.NE.0) THEN NOMID=MOVARI if(lsupva)SEGSUP NOMID END IF * IF (MOSTRS.NE.0) THEN NOMID=MOSTRS if(lsupco)SEGSUP NOMID END IF * IF (MOEPSI.NE.0) THEN NOMID=MOEPSI if(lsupde)SEGSUP NOMID END IF IF (MODEIN.NE.0) THEN NOMID=MODEIN if(lsupdd)SEGSUP NOMID END IF * * IF (IPINF .NE.0) THEN * INFO=IPINF * SEGSUP INFO * END IF * IF(KERRE.NE.0)GO TO 888 1000 continue * 888 CONTINUE * * traitement des champs de temperature pour les materiaux * endommageables de lemaitre * IF (ITHHER.EQ.1.OR.ITHHER.EQ.2) THEN SEGDES MCHEL3,MCHEL4,MCHEL5 ENDIF c mistral : IF (IFI.EQ.1) THEN SEGDES MCHEL7,MCHEL8 ENDIF c mistral. *********************** * SPECIAL SUCCION * IF (ITHHER.EQ.3) THEN SEGDES MCHEL3,MCHEL4 ENDIF *********************** * IF(IPCHE6.NE.0) THEN SEGDES MCHEL6 ENDIF * SEGDES MMODEL*NOMOD IF(KERRE.EQ.0)THEN SEGDES MCHELM,MCHEL1,MCHEL2 ELSE SEGSUP MCHELM,MCHEL1,MCHEL2 ENDIF * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales