sigma3
C SIGMA3 SOURCE PV090527 24/04/04 21:15:27 11875 & IVECT,IVAMAT,MELE,IMAT,NELMAT,NBGMAT,LHOOK,CMATE,IREPS2, & NBPTEL,NSTRS,MFR,NMATT,NBPGAU,ISOUS,LRE,LW,IVASTR,UZDPG, & RYDPG,RXDPG,IIPDPG,inoer) *---------------------------------------------------------------------* * __________________________ * * | | * * | CALCUL DES CONTRAINTES| * * |________________________| * * * * poutre,tuyau,linespring,tuyau fissure,barre,cerce,tuyo,shb8 * * * * * *---------------------------------------------------------------------* * * * ENTREES : * * ________ * * * * IPMAIL Pointeur sur un segment MELEME * * IVADEP Pointeur sur le chamelem de deplacements * * NDEP Nombre de composantes de deplacements * * IVACAR Pointeur sur les chamelems de caracteristiques * * NCARR Nombre de caracteristiques geometriques * * IVECT Flag indiquant si on a entree les axes locaux * * IVAMAT Pointeur sur un segment MPTVAL pour le materiau ou * * MELE Numero de l'element fini * * IMAT (2 il y a une matrice de HOOKE,1 non ) * * NELMAT Taille maxi des melval du materiau (No d'element) * * NBGMAT Taille maxi des melval du materiau (pt de gauss) * * LHOOK Dimension de la matrice de Hooke * * CMATE Nom du materiau * * IRESP2 Flag pour indiquer si on veut les contraintes * * de Piola-Kirchhoff * * NBPTEL Nombre de points par element * * NSTRS Nombre de composante de contraintes/deformations * * MFR Numero de formulation de l'element fini * * NMATT Nombre de composante de materiau (IMAT=1) * * pour une matrice de hooke * * NBPGAU Nombre de point d'integration pour la rigidite * * ISOUS NUMERO DE LA SOUS-ZONE * * LRE Nombre de ddl dans la matrice de rigidite * * LW Dimension du tableau de travail de l'element * * * * SORTIES : * * ________ * * * * IVASTR pointeur sur un segment MPTVAL contenant les * * les melvals de contraints * * * *---------------------------------------------------------------------* IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) INTEGER KERRE * -INC PPARAM -INC CCOPTIO -INC CCHAMP -INC CCREEL -INC SMCHAML -INC SMINTE -INC SMELEME -INC SMCOORD -INC SMLREEL * SEGMENT WRK1 REAL*8 DDHOOK(LHOOK,LHOOK) ,XDDL(LRE) ,XSTRS(NSTRS) REAL*8 XE(3,NBBB) ,DDHOMU(NSTRS,NSTRS) ENDSEGMENT * SEGMENT WRK2 REAL*8 BPSS(3,3) ,BGENE(LHOOK,LRE) ENDSEGMENT * SEGMENT WRK3 ENDSEGMENT * SEGMENT WRK5 REAL*8 XGENE(NSTN,LRN) ENDSEGMENT * SEGMENT WRK7 REAL*8 PROPEL(45) REAL*8 OUT(30),rel(1,1),work1(24) ENDSEGMENT * SEGMENT,MVELCH REAL*8 VALMAT(NV1) ENDSEGMENT * SEGMENT MPTVAL INTEGER IPOS(NS) ,NSOF(NS) INTEGER IVAL(NCOSOU) CHARACTER*16 TYVAL(NCOSOU) ENDSEGMENT * DIMENSION CRIGI(12),CMASS(12) CHARACTER*4 CMOT CHARACTER*8 CMATE KERRE=0 * * INITIALISATION DU POINT AUTOUR DUQUEL SE FAIT LE MOUVEMENT * EN DEFORMATION PLANE GENERALISEE * IF (IFOUR.EQ.-3) THEN IP=IIPDPG SEGACT MCOORD IREF=(IP-1)*(IDIM+1) XDPGE=XCOOR(IREF+1) YDPGE=XCOOR(IREF+2) ELSE XDPGE=0.D0 YDPGE=0.D0 ENDIF * MELEME=IPMAIL NBNN=NUM(/1) NBELEM=NUM(/2) * NV1=NMATT SEGINI,MVELCH * NHRM=NIFOUR MINTE=IPMINT * IRTD=1 NBBB=NBNN SEGINI WRK1 C_______________________________________________________________________ C C NUMERO DES ETIQUETTES : C ETIQUETTES DE 1 A 98 POUR TRAITEMENT SPECIFIQUE A L ELEMENT C DANS LA ZONE SPECIFIQUE A CHAQUE ELEMENT COMMENCANT PAR : C 5 CONTINUE C ELEMENT 5 ETIQUETTES 1005 2005 3005 4005 ... C 44 CONTINUE C ELEMENT 44 ETIQUETTES 1044 2044 3044 4044 ... C_______________________________________________________________________ C IF (MELE.LE.100) &GOTO (99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 1 99,99,99,99,99,99,99,99,29,30,99,99,99,99,99,99,99,99,99,99, 2 99,29,43,99,45,46,99,99,99,30,99,99,99,99,99,99,99,99,99,99, 3 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 4 99,99,99,29,99,99,99,99,99,99,99,99,99,99,46,96,99,99,99,99 5 ),MELE IF (MELE.LE.200) &GOTO (99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99, 1 99,99,46,124,125,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 2 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 3 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 4 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 5 34),MELE-100 IF (MELE.LE.300) &GOTO (34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 1 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34, 2 34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,258,34, 3 260,34,34,34,34,265),MELE-200 C 34 CONTINUE C GOTO 99 C_______________________________________________________________________ CC C____________________________________________________________________ C C ELEMENTS POUTRES TUYAUX C____________________________________________________________________ C 29 CONTINUE SEGINI WRK3 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3029 IB=1,NBELEM C C ON CHERCHE LES DEPLACEMENTS C IE=1 NCARR1=NCARR IF(IVECT.EQ.1) NCARR1=NCARR-3 DO 4029 IGAU=1,NBNN MPTVAL=IVADEP DO 4039 ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 4039 CONTINUE C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C RANGEMENT DES CARACTERISTIQUES DANS WORK C SI LE VECTEUR EXISTE , IL EST EN DERNIERE POSITION C MPTVAL=IVACAR DO 6029 IC=1,NCARR1 IF (IVAL(IC).NE.0) THEN MELVAL=IVAL(IC) IBMN=MIN(IB,VELCHE(/2)) IGMN=MIN(IGAU,VELCHE(/1)) ELSE ENDIF C 6029 CONTINUE 4029 CONTINUE C C CAS OU ON A LU LE MOT VECTEUR C C IF ((IVECT.EQ.1).AND.(IFOUR.EQ.2)) THEN C DO 6129 IC=1,IDIM MELVAL=IVAL(NCARR+IC-3) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF 6129 CONTINUE ENDIF C C TRAITEMENT DU MATERIAU C MPTVAL=IVAMAT MELVAL=IVAL(1) * IF(CMATE.NE.'SECTION') THEN IBMN=MIN(IB,VELCHE(/2)) YOUNG=VELCHE(1,IBMN) C C CAS DES TUYAUX - ON CALCULE LES CARACTERISTIQUES DE LA POUTRE EQUIVA C IF(MELE.EQ.42) THEN ENDIF IF (KERRE.EQ.77) THEN GOTO 510 ENDIF C C ON CHERCHE LES COEFF DES MAT DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) SEGDES MLREEL C------------- C PROVISOIRE C------------- * C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN C ELSE ENDIF ELSE IF (IMAT.EQ.1) THEN * DO 9029 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9029 CONTINUE IF(MELE.EQ.84) THEN C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN ELSE C ENDIF ELSE C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN ELSE C ENDIF ENDIF C------------- C PROVISOIRE C------------- C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN AUX=VALMAT(2) ELSE C AUX=VALMAT(2) ENDIF C------------- ENDIF * * CAS DE LA FORMULATION SECTION * ELSE IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) SEGDES MLREEL ELSE IF (IMAT.EQ.1) THEN * * ON REGARDE SI ON A LA COMPOSANTE MAHO * SI OUI, ON LA PREND * IF(IVAL(3).NE.0) THEN MELVAL=IVAL(3) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) SEGDES MLREEL ELSE IBMN=MIN(IB,IELCHE(/2)) IPMODL=IELCHE(1,IBMN) MELVAL=IVAL(2) IBMN=MIN(IB,IELCHE(/2)) IPMAT=IELCHE(1,IBMN) IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) ENDIF ENDIF ENDIF C C ON CALCULE LES CONTRAINTES ( STOCKEES DANS WORK ET NON PAS DANS XSTRS C IF(MELE.EQ.84) THEN IF(CMATE.NE.'SECTION') THEN C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN ELSE C ENDIF ELSE IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN ELSE ENDIF ENDIF ELSE C IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.-3) THEN ELSE C ENDIF ENDIF C C REMPLISSAGE DU SEGMENT CONTENANT LES CONTRAINTES C ID=12 DO IGAU=1,NBPTEL MPTVAL=IVASTR DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) ID=ID+1 enddo enddo C 3029 CONTINUE IF(IRTD.EQ.0.AND.IMAT.EQ.1) THEN MOTERR(1:8)=CMATE MOTERR(9:12)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP MVELCH,WRK1,WRK3 GOTO 510 C____________________________________________________________________ C C ELEMENT LINESPRING LISP ET LISM C____________________________________________________________________ C 30 CONTINUE NSTR=NSTRS NSTRS=2 C ATTENTION ON NE SERT PAS DE XSTRS(NSTRS) DS WRK1 C SEGINI WRK3 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELELEMTS C DO 3030 IB=1,NBELEM C C ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C ON CHERCHE LES COORDONNEES DES NOEUDS ET ON REACTUALISE C C C ON CHERCHE LA MATRICE DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) SEGDES MLREEL ELSE IF (IMAT.EQ.1) THEN DO 9030 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9030 CONTINUE IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) ENDIF C C ON CHERCHE LES CARACTERISTIQUES ON OUBLIE LE 2 IEME PT DE GAUSS C IE=1 DO IC=1,3,2 MPTVAL=IVACAR DO ICOMP=1,NCARR MELVAL=IVAL(ICOMP) IF (MELVAL.NE.0) THEN IGMN=MIN(IC,VELCHE(/1)) IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF IE=IE+1 enddo enddo C C CALCUL DES CONTRAINTES C 1 I69,I70,I195,I157) C IF(I69.NE.0) THEN * RETURN ENDIF IF(I70.NE.0) THEN * RETURN ENDIF IF(I195.NE.0) THEN if (inoer.eq.0) then * RETURN else call soucis(195) endif ENDIF IF(I157.NE.0) THEN * RETURN ENDIF IE=1 DO IGAU=1,NBPTEL MPTVAL=IVASTR DO ICOMP=1,NSTR MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) IE=IE+1 enddo enddo 3030 CONTINUE IF(IRTD.EQ.0.AND.IMAT.EQ.1) THEN MOTERR(1:8)=CMATE MOTERR(9:12)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP MVELCH,WRK1,WRK3 GOTO 510 C____________________________________________________________________ C____________________________________________________________________ C C ELEMENT TUYAU FISSURE C____________________________________________________________________ C 43 CONTINUE C ATTENTION ON NE SERT PAS DE XSTRS(NSTRS) DS WRK1 C SEGINI WRK3 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3043 IB=1,NBELEM C C ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C ON CHERCHE LES CARACTERISTIQUES C MPTVAL=IVACAR DO 7043 IC=1,9 MELVAL=IVAL(IC) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF 7043 CONTINUE C C ON CHERCHE LES COEFF DES MAT DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) SEGDES MLREEL ELSE IF (IMAT.EQ.1) THEN DO 9043 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9043 CONTINUE IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) ENDIF C C ON CALCULE LES CONTRAINTES C IF(I137.NE.0) INTERR(1)=ISOUS IF(I137.NE.0) INTERR(2)=IB C MPTVAL=IVASTR DO 6043 ICOMP=1,8 MELVAL=IVAL(ICOMP) IBMN=MIN(IB,VELCHE(/2)) 6043 CONTINUE C 3043 CONTINUE IF(IRTD.EQ.0.AND.IMAT.EQ.1) THEN MOTERR(1:8)=CMATE MOTERR(9:12)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP MVELCH,WRK1,WRK3 GOTO 510 C____________________________________________________________________ C C ELEMENT POINT (POI1) C____________________________________________________________________ C 45 CONTINUE * IF(MELE.EQ.45.AND.IFOUR.NE.-3) THEN GO TO 99 ENDIF * SEGINI WRK3 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3045 IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C ON CALCULE LES DEFORMATIONS C C MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) SECT=VELCHE(1,IBMN) ELSE GO TO 3045 ENDIF C C ON CHERCHE LE COEFF DE LA MAT DE HOOKE C MPTVAL=IVADEP MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) SEGDES MLREEL ELSE IF (IMAT.EQ.1) THEN DO 9045 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9045 CONTINUE ENDIF MPTVAL=IVADEP C C REMPLISSAGE DU SEGMENT CONTENANT LES DEFORMATIONS C ID=1 DO IGAU=1,NBPTEL MPTVAL=IVASTR DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) ID=ID+1 enddo enddo MPTVAL=IVADEP C 3045 CONTINUE IF(IRTD.EQ.0.AND.IMAT.EQ.1) THEN MOTERR(1:8)=CMATE MOTERR(9:12)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP MVELCH,WRK1,WRK3 GOTO 510 C____________________________________________________________________ C C BARRE ET CERCE C____________________________________________________________________ C 46 CONTINUE * IF(MELE.EQ.95.AND.IFOUR.NE.0.AND.IFOUR.NE.1) THEN GO TO 99 ENDIF * SEGINI WRK3 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3046 IB=1,NBELEM KERRE=0 C C ON CHERCHE LES DEPLACEMENTS C NDDD=NDEP IF (IFOUR.EQ.-3.AND.MELE.EQ.46) NDDD=NDEP-3 IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDDD MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C ON CALCULE LES DEFORMATIONS C IF(KERRE.NE.0) THEN GO TO 3046 ENDIF MPTVAL=IVACAR MELVAL=IVAL(1) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) SECT=VELCHE(1,IBMN) ELSE GO TO 3046 ENDIF C C ON CHERCHE LE COEFF DE LA MAT DE HOOKE C MPTVAL=IVADEP MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) SEGDES MLREEL ELSE IF (IMAT.EQ.1) THEN DO 9046 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9046 CONTINUE ENDIF MPTVAL=IVADEP C C REMPLISSAGE DU SEGMENT CONTENANT LES CONTRAINTES C ID=1 DO IGAU=1,NBPTEL MPTVAL=IVASTR DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) ID=ID+1 enddo enddo MPTVAL=IVADEP C 3046 CONTINUE IF(IRTD.EQ.0.AND.IMAT.EQ.1) THEN MOTERR(1:8)=CMATE MOTERR(9:12)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP MVELCH,WRK1,WRK3 GOTO 510 C C____________________________________________________________________ C C ELEMENT BARRE 3D EXCENTRE (BAEX) C____________________________________________________________________ C 124 CONTINUE NBBB=NBNN NSTN=NBNN LRN =LRE SEGINI WRK1,WRK3,WRK5 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3108 IB=1,NBELEM C C ON RECUPERE LA SECTION DE L'ELEMENT, SES EXCENTREMENTS ET SON C ORIENTATION. LES CARACTERISTIQUES SONT RANGEES DANS WORK C SELON L'ORDRE SUIVANT: SECT EXCZ EXCY VX VY VZ C MPTVAL=IVACAR DO IC=1,NCARR IF(IVAL(IC).NE.0) THEN MELVAL=IVAL(IC) IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF END DO C C XGENE STOCKE LA MATRICE DE PASSAGE DE L'ELEMENT EXCENTRE C IF(KERRE.NE.0) INTERR(1)=ISOUS IF(KERRE.NE.0) INTERR(2)=IB C C ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C ON CALCULE LES DEFORMATIONS C C C ON CHERCHE LE COEFF DE LA MAT DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL SEGDES MLREEL ELSE IF (IMAT.EQ.1) THEN DO 9124 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9124 CONTINUE ENDIF C C REMPLISSAGE DU SEGMENT CONTENANT LES CONTRAINTES C ID=1 DO IGAU=1,NBPTEL MPTVAL=IVASTR DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) VELCHE(IGAU,IBMN)=XSTRS(ID)*DDHOOK(1,1) ID=ID+1 enddo enddo C 3108 CONTINUE SEGSUP WRK1,WRK3,WRK5,MVELCH GOTO 510 C_______________________________________________________________________ C C LIA2 : element de liaison a 2 noeuds (6 ddl par C noeuds) C_______________________________________________________________________ C 125 CONTINUE NBBB=NBNN NSTN=3 LRN =3 SEGINI WRK1,WRK3,WRK5 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3109 IB=1,NBELEM C C RANGEMENT DES CARACTERISTIQUES DANS WORK C MPTVAL=IVACAR DO IC=1,NCARR IF(IVAL(IC).NE.0) THEN MELVAL=IVAL(IC) IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF END DO C IF(KERRE.NE.0) INTERR(1)=ISOUS IF(KERRE.NE.0) INTERR(2)=IB C C ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C ON CALCULE LES CONTRAINTES (EFFORTS : F = K * U) C C C REMPLISSAGE DU SEGMENT CONTENANT LES CONTRAINTES C ID=1 DO IGAU=1,NBPTEL MPTVAL=IVASTR DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) VELCHE(IGAU,IBMN)=XSTRS(ID) ID=ID+1 enddo enddo C 3109 CONTINUE SEGSUP MVELCH,WRK1,WRK3,WRK5 GOTO 510 C_______________________________________________________________________ C C JOI1 : element de liaison a 2 noeuds (6 ddl par C noeuds) C_______________________________________________________________________ C 265 CONTINUE NBBB=NBNN NSTN=3 LRN =3 SEGINI WRK1,WRK3,WRK2 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3110 IB=1,NBELEM C C RANGEMENT DES CARACTERISTIQUES DANS WORK C MPTVAL=IVAMAT DO IC=1,NMATT IF(IVAL(IC).NE.0) THEN MELVAL=IVAL(IC) IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF END DO C C C ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C CALCUL DES DEPLACEMENTS LOCAUX C IAW1 = 101 IAW2 = IAW1 + LRE C C ON CALCULE LES CONTRAINTES (EFFORTS : F = K * U) C * C C REMPLISSAGE DU SEGMENT CONTENANT LES CONTRAINTES C ID=1 DO IGAU=1,NBPTEL MPTVAL=IVASTR DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) VELCHE(IGAU,IBMN)=XSTRS(ID) ID=ID+1 enddo enddo C 3110 CONTINUE SEGSUP MVELCH,WRK1,WRK3,WRK2 GOTO 510 C____________________________________________________________________ C C ELEMENT TUYO C____________________________________________________________________ C 96 CONTINUE SEGINI WRK3 C C BOUCLE DE CALCUL POUR LES DIFFERENTS ELEMENTS C DO 3096 IB=1,NBELEM C C ON CHERCHE LES DEPLACEMENTS C IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,NDEP MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) XDDL(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C RANGEMENT DES CARACTERISTIQUES DANS WORK C MPTVAL=IVACAR DO 6096 IC=1,NCARR IF (IVAL(IC).NE.0) THEN MELVAL=IVAL(IC) IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF 6096 CONTINUE C C CAS OU ON A LU LE MOT VECTEUR C C IF (IVECT.EQ.1) THEN DO 6196 IC=1,IDIM MELVAL=IVAL(NCARR+IC-3) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF 6196 CONTINUE C C CAS DU CHAMELEM COMVERTI C ELSE IF (IVECT.EQ.2) THEN DO 6496 IC=1,IDIM MELVAL=IVAL(NCARR+IC-3) IF (MELVAL.NE.0) THEN IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF 6496 CONTINUE ENDIF C MPTVAL=IVAMAT MELVAL=IVAL(1) IBMN=MIN(IB,VELCHE(/2)) YOUNG=VELCHE(1,IBMN) C C CAS DES TUYAUX - ON CALCULE LES CARACTERISTIQUES DE LA POUTRE EQUIVA C IF(MELE.EQ.42) THEN ENDIF IF (KERRE.EQ.77) THEN GOTO 510 ENDIF C C ON CHERCHE LES COEFF DES MAT DE HOOKE C MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IB.LE.NELMAT.OR.NBGMAT.GT.1) SEGDES MLREEL C------------- C PROVISOIRE C------------- ELSE IF (IMAT.EQ.1) THEN * DO 9096 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9096 CONTINUE C------------- C PROVISOIRE C------------- AUX=VALMAT(2) C------------- ENDIF C C ON CALCULE LES CONTRAINTES ( STOCKEES DANS WORK ET NON PAS DANS XSTRS C C C REMPLISSAGE DU SEGMENT CONTENANT LES CONTRAINTES C ID=12 DO IGAU=1,NBPTEL MPTVAL=IVASTR DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) ID=ID+1 enddo enddo C 3096 CONTINUE IF(IRTD.EQ.0.AND.IMAT.EQ.1) THEN MOTERR(1:8)=CMATE MOTERR(9:12)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP MVELCH,WRK1,WRK3 GOTO 510 c_______________________________________________________________________ c c ELEMENTS CIFL MACRO ELEMENT CISAILLEMENT FLEXION c____________________________________________________________________ c 258 CONTINUE NBNO=NBNN SEGINI WRK2,WRK3 c DO IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IB C C C ON CHERCHE LES DEPLACEMENTS (UX1,UY1,RZ1,UX2,UY2,RZ2,UM,RM) C MPTVAL=IVADEP MELVAL=IVAL(1) XDDL(1)=VELCHE(MIN(1,VELCHE(/1)),MIN(IB ,VELCHE(/2))) XDDL(4)=VELCHE(MIN(3,VELCHE(/1)),MIN(IB ,VELCHE(/2))) MELVAL=IVAL(2) XDDL(2)=VELCHE(MIN(1,VELCHE(/1)),MIN(IB ,VELCHE(/2))) XDDL(5)=VELCHE(MIN(3,VELCHE(/1)),MIN(IB ,VELCHE(/2))) MELVAL=IVAL(3) XDDL(3)=VELCHE(MIN(1,VELCHE(/1)),MIN(IB ,VELCHE(/2))) XDDL(6)=VELCHE(MIN(3,VELCHE(/1)),MIN(IB ,VELCHE(/2))) MELVAL=IVAL(4) XDDL(7)=VELCHE(MIN(2,VELCHE(/1)),MIN(IB ,VELCHE(/2))) MELVAL=IVAL(5) XDDL(8)=VELCHE(MIN(2,VELCHE(/1)),MIN(IB ,VELCHE(/2))) C C PASSAGE DES AXES GLOBAUX AUX AXES LOCAUX C c c matrice de hooke c MPTVAL=IVAMAT IF(IMAT.EQ.2) THEN MELVAL=IVAL(1) IBMN=MIN(IB ,IELCHE(/2)) MLREEL=IELCHE(1,IBMN) SEGACT MLREEL IF (IGAU.LE.NBGMAT.AND.(IB.LE.NELMAT.OR.NBGMAT.GT.1)) SEGDES MLREEL ELSE IF (IMAT.EQ.1) THEN C DO IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF ENDDO C MPTVAL=IVACAR DO IC=1,NCARR IF (IVAL(IC).NE.0) THEN MELVAL=IVAL(IC) IBMN=MIN(IB,VELCHE(/2)) ELSE ENDIF ENDDO C ENDIF c DDHOOK(1,1)=DDHOOK(1,1)/(XH/2) DDHOOK(2,2)=DDHOOK(2,2)/(XH/2) DDHOOK(3,3)=DDHOOK(3,3)/ XH DDHOOK(4,4)=DDHOOK(4,4)/(XH/2) DDHOOK(5,5)=DDHOOK(5,5)/(XH/2) c c c remplissage du segment contenant les contraintes c MPTVAL=IVASTR DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) VELCHE(1,IBMN)=XSTRS(ICOMP) ENDDO ENDDO C IF(IRTD.EQ.0) THEN MOTERR(1:8)=CMATE MOTERR(9:12)=NOMFR(MFR/2+1) INTERR(1)=IFOUR ENDIF SEGSUP MVELCH,WRK1,WRK2,WRK3 GOTO 510 C_______________________________________________________________________ C C ELEMENT DE COQUE VOLUMIQUE SHB8 C_______________________________________________________________________ C 260 CONTINUE NBNO=NBNN NBBB=NBNN SEGINI WRK1,WRK7,MVELCH C C BOUCLE POUR TOUS LES ELEMENTS C DO IB=1,NBELEM C C ON CHERCHE LES COORDONNEES DES NOEUDS DE L ELEMENT IB C C C on cherche les deplacements C MPTVAL=IVADEP IE=1 DO IGAU=1,NBNN MPTVAL=IVADEP DO ICOMP=1,3 MELVAL=IVAL(ICOMP) IGMN=MIN(IGAU,VELCHE(/1)) IBMN=MIN(IB ,VELCHE(/2)) WORK1(IE)=VELCHE(IGMN,IBMN) IE=IE+1 enddo enddo MPTVAL=IVAMAT DO 9070 IM=1,NMATT IF (IVAL(IM).NE.0) THEN MELVAL=IVAL(IM) IBMN=MIN(IB ,VELCHE(/2)) VALMAT(IM)=VELCHE(1,IBMN) ELSE VALMAT(IM)=0.D0 ENDIF 9070 CONTINUE PROPEL(1)=VALMAT(1) PROPEL(2)=VALMAT(2) DO IM=3,12 PROPEL(IM)=VALMAT(1) ENDDO PROPEL(3)=ireps2 PROPEL(14)=VALMAT(1) C C CALCUL DES CONTRAINTES C MPTVAL=IVASTR IE=1 DO ICOMP=1,NSTRS MELVAL=IVAL(ICOMP) DO IBG=1,5 MELVAL=IVAL(ICOMP) IBMN=MIN(IB ,VELCHE(/2)) VELCHE(IBG,IBMN)=out(ICOMP+ (IBG-1)*NSTRS) ENDDO ENDDO ENDDO SEGSUP WRK1,WRK7,MVELCH GO TO 510 *____________________________________________________________________ 99 CONTINUE SEGSUP MVELCH,WRK1 MOTERR(1:4)=NOMTP(MELE) MOTERR(9:12)='SIGM' * 510 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales