fcoul1
C FCOUL1 SOURCE CB215821 24/04/12 21:15:55 11897 ********************************************************************** * * ECOULEMENT INELASTIQUE POUR LES MODELE A SECTION * Boucle sur les ss-zone du modele de section * ********************************************************************** * Pierre Pegon (ISPRA) Juillet/Aout 1993 ********************************************************************** * * ENTREES: * * DEPSI(6) INCREMENT DE DEFORMATION POUR LA FIBRE CENTRALE * IPMODL = POINTEUR SUR UN OBJET MMODEL * IPCHE1 = POINTEUR SUR UN MCHAML DE CONTRAINTES INITIALES * IPCHE2 = POINTEUR SUR UN MCHAML DE VARIABLES INTERNES INITIALES * IPCAR = POINTEUR SUR UN MCHAML DE CARACTERISTIQUES * TIME0 = INSTANT INITIAL * TIMEF = INSTANT FINAL * * SORTIES: * * SIGMA(6) ELEMENT DE REDUCTION DES EFFORT POUR LA FIBRE CENTRALE * IPCHE7 = POINTEUR SUR UN MCHAML DE CONTRAINTES * IPCHE8 = POINTEUR SUR UN MCHAML DE VARIABLES INTERNES * ************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) * -INC PPARAM -INC CCOPTIO -INC SMCHAML -INC SMELEME -INC SMCOORD -INC SMMODEL -INC SMINTE -INC CCHAMP 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 CHARACTER*16 MOMODL(10) PARAMETER ( NINF=3 ) INTEGER INFOS(NINF) LOGICAL lsupva,lsupco,lsupma,lsupca lsupva=.false. lsupco=.false. lsupma=.false. lsupca=.false. C IRETO=0 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 CARACTERISTIQUES C IF (ISUP5.GT.1) RETURN C C ACTIVATION DU MODELE C MMODEL=IPMODL SEGACT MMODEL NSOUS=KMODEL(/1) C C CREATION DES 2 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 C C MISE A ZERO DES CONTRAINTES C DO IE1=1,NSTRS2 ENDDO C____________________________________________________________________ C C DEBUT DE LA BOUCLE SUR LES DIFFERENTES ZONES C____________________________________________________________________ C *-DC- EPSUP=-1.0D10 EPINF= 1.0D10 * DAMAG= 0.0D0 ETIQE= 0.0D0 *-DC- DO 1000 ISOUS=1,NSOUS * * INITIALISATION * NSTR=0 MOSTRS=0 IVASTR=0 MOVARI=0 NVARI=0 NVARF=0 IVARI=0 NMATF=0 NMATR=0 MOMATR=0 IVAMAT=0 NCARA=0 NCARF=0 MOCARA=0 IVACAR=0 IVASTF=0 IVARIF=0 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 * MELE=NEFMOD MELEME=IMAMOD SEGACT MELEME NBNN=NUM(/1) NBELEM=NUM(/2) C+PPf C ON EVACUE LE CAS DU SEGS EN 3D IF(MELE.EQ.166.AND.IDIM.EQ.3)THEN GOTO 888 ENDIF C+PPf C C TRAITEMENT DU MODELE C NFOR=FORMOD(/2) NMAT=MATMOD(/2) C C NATURE DU MATERIAU C IF (CMATE.EQ.' ')THEN GOTO 888 ENDIF IF(MATE.NE.1)THEN GOTO 888 ENDIF IF((NIFIBR.EQ.0).AND.(INFIBR.NE.0))THEN GOTO 888 ENDIF INFIBR=NIFIBR * C____________________________________________________________________ C C INFORMATION SUR L'ELEMENT FINI C____________________________________________________________________ C * CALL ELQUOI(MELE,0,5,IPINF,IMODEL) * IF (IERR.NE.0) THEN * GOTO 888 * ENDIF * INFO=IPINF MFR =INFELE(13) IPPORE=0 IF(MFR.EQ.33) IPPORE=NBNN IF (MFR.NE.47)THEN SEGSUP MCHELM,MCHEL1 RETURN ENDIF NBG =INFELE(6) NBGS =INFELE(4) NSTRS=INFELE(16) LRE =INFELE(9) LHOOK=INFELE(10) LHOO2=LHOOK*LHOOK * MINTE=INFELE(11) MINTE=infmod(7) IPMINT=MINTE SEGACT,MINTE * * REMPLISSAGE DES TABLEAUX INFCHE * INFCHE(ISOUS,1)=0 INFCHE(ISOUS,2)=0 INFCHE(ISOUS,3)=NHRM INFCHE(ISOUS,4)=IPMINT 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)=IPMINT MCHEL1.INFCHE(ISOUS,5)=0 MCHEL1.INFCHE(ISOUS,6)=5 C C CREATION DU TABLEAU INFOS C IF (IRTD.EQ.0)THEN * INFO=IPINF * SEGSUP INFO GOTO 888 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) * INFO=IPINF * SEGSUP INFO GOTO 888 ENDIF * NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' IF(IERR.NE.0)THEN SEGSUP NOTYPE GOTO 9990 ENDIF * IF (ISUP1.EQ.1) THEN IF(IERR.NE.0)THEN SEGSUP NOTYPE ISUP1=0 GOTO 9990 ENDIF ENDIF * * TRAITEMENT DU CHAMP DE VARIABLES INTERNES * 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 * write(6,*) ' lnomid(10) nvari nvarf ', lnomid(10),nvari,nvarf IF (MOVARI.EQ.0) THEN MOTERR(1:4)='VARI' MOTERR(5:8)=NOMTP(MELE) SEGSUP NOTYPE GOTO 9990 ENDIF * IF(IERR.NE.0)THEN SEGSUP NOTYPE GOTO 9990 ENDIF * NVART=NVARI+NVARF IF (ISUP2.EQ.1) THEN IF(IERR.NE.0)THEN SEGSUP NOTYPE ISUP2=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) GOTO 9990 ENDIF * IF (NIFIBR.NE.8) THEN NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * ELSE NBTYPE=13 SEGINI NOTYPE MOTYPE=NOTYPE DO I=1,NBTYPE TYPE(I)='REAL*8' ENDDO TYPE(10)='POINTEUREVOLUTIO' TYPE(11)='POINTEUREVOLUTIO' * ENDIF * & INFOS,3,IVAMAT) SEGSUP NOTYPE IF(IERR.NE.0)THEN GOTO 9990 ENDIF NMATT=NMATR+NMATF * IF (ISUP5.EQ.1) THEN IF(IERR.NE.0)THEN ISUP5=0 GOTO 9990 ENDIF ENDIF * * TRAITEMENT DU CHAMP DE CARACTERISTIQUES GEOMETRIQUES * if(lnomid(7).ne.0) then nomid=lnomid(7) segact nomid mocara=nomid ncara=lesobl(/2) ncarf=lesfac(/2) lsupca=.false. else lsupca=.true. endif * * write(6,*) ' lnomid(7) ncara ncarf ' , lnomid(7),ncara,ncarf NBTYPE=1 SEGINI NOTYPE MOTYPE=NOTYPE TYPE(1)='REAL*8' * & INFOS,3,IVACAR) SEGSUP NOTYPE IF(IERR.NE.0)THEN GOTO 9990 ENDIF NCARR=NCARA+NCARF * IF (ISUP5.EQ.1.AND.MOCARA.NE.0) THEN IF(IERR.NE.0)THEN ISUP5=0 GOTO 9990 ENDIF ENDIF * * CREATION DES MCHAMLS DE LA SOUS ZONE * NBPTEL=NBGS NEL=NBELEM N1PTEL=NBPTEL N1EL=NEL * * 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' N2PTEL=0 N2EL=0 SEGINI MELVAL IELVAL(ICOMP)=MELVAL IVAL(ICOMP)=MELVAL 1100 CONTINUE * * VARIABLES INTERNES * N2=NVART SEGINI MCHAM1 MCHEL1.ICHAML(ISOUS)=MCHAM1 NS=1 NCOSOU=NVART SEGINI MPTVAL IVARIF=MPTVAL NOMID=MOVARI SEGACT NOMID DO 1200 ICOMP=1,NVARI MCHAM1.NOMCHE(ICOMP)=LESOBL(ICOMP) MCHAM1.TYPCHE(ICOMP)='REAL*8' N2PTEL=0 N2EL=0 SEGINI MELVAL MCHAM1.IELVAL(ICOMP)=MELVAL IVAL(ICOMP)=MELVAL 1200 CONTINUE DO 1201 ICOMP=NVARI+1,NVART MCHAM1.NOMCHE(ICOMP)=LESFAC(ICOMP) MCHAM1.TYPCHE(ICOMP)='REAL*8' N2PTEL=0 N2EL=0 SEGINI MELVAL MCHAM1.IELVAL(ICOMP)=MELVAL IVAL(ICOMP)=MELVAL 1201 CONTINUE * * APPEL A L'ECOULEMENT PROPREMENT DIT * 1 IVARI,IVAMAT,IVACAR,NSTRS,NVART,NMATT,NCARR,TIME0,TIMEF, * 9990 CONTINUE * ckich contraction eventuelle des melval MPTVAL = IVASTF do ICOMP=1,NSTRS ichin = ival(icomp) ielval(icomp) = ichin C* ival(icomp) = ichin enddo MPTVAL=IVARIF do ICOMP=1,NVARI ichin = ival(icomp) mcham1.ielval(icomp) = ichin C* ival(icomp) = ichin enddo do ICOMP=NVARI+1,NVART ichin = ival(icomp) mcham1.ielval(icomp) = ichin C* ival(icomp) = ichin enddo * DESACTIVATION DES SEGMENTS * IF(ISUP1.EQ.1)THEN ELSE ENDIF IF(ISUP2.EQ.1)THEN ELSE ENDIF IF(ISUP5.EQ.1)THEN ELSE ENDIF IF (IERR.EQ.0) THEN ELSE END IF * IF (MOCARA.NE.0) THEN NOMID=MOCARA if(lsupca)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 (IPINF .NE.0) THEN * INFO=IPINF * SEGSUP INFO * END IF * IF (IERR.NE.0) THEN SEGSUP MCHAML,MCHAM1 GOTO 888 ENDIF 1000 CONTINUE * 888 CONTINUE IF (IERR.EQ.0)THEN IRETO=1 ELSE IRETO=0 SEGSUP MCHELM,MCHEL1 ENDIF END
© Cast3M 2003 - Tous droits réservés.
Mentions légales