elfele
C ELFELE SOURCE PV 20/03/30 21:18:29 10567 C C C ===================================================================== C APPELE PAR ELFE POUR TRAITER LES ELEMENTS DE POUTRES. C LE SOUS-PROGRAMME ELFELE CREE LE SEGMENT DE TRAVAIL MNREFE C A PARTIR DE L'OBJET STRUCTURE. C C VERSION : 24/10/86 C PROGRAMMEUR : GUILBAUD C C ===================================================================== C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C -INC PPARAM -INC CCOPTIO C -INC SMCHAML -INC SMCOORD -INC SMELEME -INC SMSTRUC C SEGMENT MNREFE INTEGER NREFE(8,NSTR) INTEGER NTANBN INTEGER NIDNCN INTEGER NTVN POINTEUR NREPA.MPASS POINTEUR NRECA.MCARA POINTEUR NRENO.MNORM POINTEUR NRECPR.ICPR POINTEUR NREMEL.MELEME POINTEUR NREDEN.MDEN ENDSEGMENT C C NSTR : NOMBRE D'ELEMENTS C NREFE(1,I) : MELEME C NREFE(2,I) : MSOSTU C NREFE(3,I) : TYPE DE L'ELEMENT C NREFE(4,I) : NOMBRE DE POINTS DU MELEME C NREFE(5,I) : NOMBRE DE DDL PAR POINT C NREFE(6,I)=IVN :LE 1ER DDL DE L'ELEMENT EST LE IVN+1 IEME DE VN C NREFE(7,I)=IAN :LE 1ER TERME DE LA MATRICE A EST LE IAN IEME DE ANBN C NREFE(8,I)= 1 :LE IEME ELEMENT EST RIGIDE (OU PARTIELLEMENT) SINON 0 C NTANBN : NOMBRE DE TERMES DES MATRICES A ET B POUR TOUS LES ELEMENTS C NIDNCN : NOMBRE TOTAL D'INCONNUES DE DNCN C NTVN : LONGUEUR DU TABLEAU VN C SEGMENT MPASS REAL*8 PASS(9*NSTR) ENDSEGMENT C C PASS(9) : MATRICE DE CHANGEMENT DE REPERE POUR L'ELEMENT I C SEGMENT MCARA REAL*8 CARA(LCAR*NSTR) ENDSEGMENT C C LCAR : NOMBRE DE CARACTERISTIQUES DE L'ELEMENT C SEGMENT MNORM REAL*8 DNORM(LNORM) ENDSEGMENT C C DNORM : VECTEUR DE NORMALISATION C SEGMENT ICPR(nbpts) C C IKID=ICPR(NUM(I,J))+K C LA COMPOSANTE NOMD(K) DU POINT NUM EST LE IKID-IEME DDL DE DNCN( , ,1 C SEGMENT MDEN INTEGER IDEN(INS) ENDSEGMENT C C IL Y A INS STRUCTURES AYANT DES CARACTERISTIQUES DIFFERENTES C IDEN CONTIENT LEUR NUMERO D'ORDRE DANS MNREFE C DATA L11/11/,L6/6/,L24/24/,L28/28/ C WRITE(IOIMP,*) ' DEBUT DE ELFELE ' EPS=1.D-3 SEGACT MSTRUC NSTR= LISTRU(/1) LCAR=L11 SEGINI MNREFE,ICPR,MPASS,MCARA DO 5 I=1,nbpts ICPR(I)=-1 5 CONTINUE NRECPR=ICPR NREPA=MPASS NRECA=MCARA C C BOUCLE SUR LES ELEMENTS C INS=NSTR SEGINI MDEN NREDEN=MDEN INS=0 NTVN=0 NIDNCN=0 NTANBN=1 NBELEM=2*NSTR NBNN=1 NBSOUS=0 NBREF=0 SEGINI IPT1 IPT1.ITYPEL=1 LBP=0 NRG=0 LNORM=L24*NSTR SEGINI MNORM NRENO=MNORM DO 30 NS=1,NSTR MSOSTU =LISTRU(NS) SEGACT MSOSTU MCHELM=ISCHAM(1) MCHEL1=ISCHAM(2) SEGDES MSOSTU IF(MCHELM.EQ.0.OR.MCHEL1.EQ.0) THEN C *** LA SOUS-STRUCTURE DOIT ETRE DEFINIE A PARTIR DES CHAMPS PAR ELEMEN INTERR(1)=MSOSTU RETURN ENDIF SEGACT MCHELM,MCHEL1 NSOUS=IMACHE(/1) IF(NSOUS.NE.1) THEN C *** LA SOUS-STRUCTURE DOIT ETRE COMPOSEE D'UNE SEULE ZONE D'ELEMENTS INTERR(1)=MSOSTU RETURN ENDIF MELEME=IMACHE(1) SEGACT MELEME IF(ITYPEL.NE.2) THEN C *** LA SOUS-STRUCTURE DOIT ETRE COMPOSEE D'ELEMENTS SEG2 INTERR(1)=MSOSTU RETURN ENDIF NBELEM=NUM(/2) IF(NBELEM.NE.1) THEN C *** LA SOUS-STRUCTURE DOIT ETRE COMPOSEE D'UN SEUL ELEMENT INTERR(1)=MSOSTU RETURN ENDIF C C LES DIMENSIONS SUIVANTES SONT POUR LES ELEMENTS POUTRES : C NDDL=L6 NTAEL=L28 C C REMPLISSAGE DE ICPR C NBNOE=NUM(/1) DO 10 NB=1,NBNOE IP=NUM(NB,1) IF(ICPR(IP).NE.-1) THEN C *** LA SOUS-STRUCTURE POSSEDE DES NOEUDS EN COMMUN AVEC LES PRECEDENTE INTERR(1)=MSOSTU RETURN ENDIF ICPR(IP)=NIDNCN NIDNCN=NIDNCN+2*NDDL LBP=LBP+1 IPT1.NUM(1,LBP)=IP 10 CONTINUE NREFE(1,NS)=MELEME NREFE(2,NS)=MSOSTU NREFE(3,NS)=ITYPEL NREFE(4,NS)=NBNOE NREFE(5,NS)=NDDL NREFE(6,NS)=NTVN NTVN=NTVN+NDDL*NBNOE C C RECUPERATION DES CARACTERISTIQUES DYNAMIQUES DE L'ELEMENT C REMPLISSAGE DE CARA C MCHAML=ICHAML(1) SEGACT,MCHAML MELVAL=IELVAL(1) SEGACT,MELVAL E=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(2) SEGACT,MELVAL ANU=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(3) SEGACT,MELVAL RHO=VELCHE(1,1) SEGDES,MELVAL SEGDES,MCHAML MCHAML=MCHEL1.ICHAML(1) SEGACT,MCHAML MELVAL=IELVAL(1) SEGACT,MELVAL TORS=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(2) SEGACT,MELVAL AINRY=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(3) SEGACT,MELVAL AINRZ=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(4) SEGACT,MELVAL SECT=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(7) SEGACT,MELVAL VX=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(8) SEGACT,MELVAL VY=VELCHE(1,1) SEGDES,MELVAL MELVAL=IELVAL(9) SEGACT,MELVAL VZ=VELCHE(1,1) SEGDES,MELVAL SEGDES,MCHAML C C CALCUL DES CARACTERISTIQUES DYNAMIQUES C ES=E*SECT AIP=AINRY+AINRZ AMU=E/(2.D0*(1.D0+ANU)) CTC= SQRT(E/RHO) C POUR UNE POUTRE DE SECTION CIRCULAIRE SEULEMENT CTO=SQRT(AMU/RHO) RTC=SQRT(AIP/SECT) RTO=SQRT(TORS*2.D0*(1.D0+ANU)/SECT) RFY=SQRT(AINRY/SECT) RFZ=SQRT(AINRZ/SECT) NCOO1=(NUM(1,1)-1)*(IDIM+1) NCOO2=(NUM(2,1)-1)*(IDIM+1) XE(1)=XCOOR(NCOO1+1) XE(2)=XCOOR(NCOO2+1) YE(1)=XCOOR(NCOO1+2) YE(2)=XCOOR(NCOO2+2) ZE(1)=XCOOR(NCOO1+3) ZE(2)=XCOOR(NCOO2+3) XL=XE(2)-XE(1) YL=YE(2)-YE(1) ZL=ZE(2)-ZE(1) DL=SQRT(XL*XL+YL*YL+ZL*ZL) C C CREATION DE MCARA C NCA=LCAR*(NS-1) CARA(NCA+1)=DL CARA(NCA+2)=RTC CARA(NCA+3)=RTO CARA(NCA+4)=RFY CARA(NCA+5)=RFZ CARA(NCA+6)=CTC CARA(NCA+7)=CTO CARA(NCA+8)=RHO CARA(NCA+9)=SECT CARA(NCA+10)=AIP CARA(NCA+11)=0.D0 C C EXISTE-T-IL DES STRUCTURES DE MEME CARACTERISTIQUE ? C NS1=NS-1 DO 25 NSP=1,NS1 NCAP=LCAR*(NSP-1) DO 20 JK=1,7 DIF=ABS(CARA(NCAP+JK)-CARA(NCA+JK)) IF(DIF.GT.EPS) GOTO 25 20 CONTINUE NREFE(7,NS)=NREFE(7,NSP) GOTO 27 25 CONTINUE NREFE(7,NS)=NTANBN NTANBN=NTANBN+NTAEL INS=INS+1 IDEN(INS)=NS 27 CONTINUE C C CREATION DE LA MATRICE DE PASSAGE REPERE LOCAL-REPERE GLOBAL C MP=9*(NS-1)+1 IF(KERRE.NE.0) THEN C *** L'ELEMENT EST DE LONGUEUR NULLE INTERR(1)=MSOSTU ENDIF C C CREATION DU VECTEUR DE NORMALISATION C DO 50 IEXTR=1,2 DNORM(NRG+1)=RTC DNORM(NRG+2)=RFZ DNORM(NRG+3)=RFY DNORM(NRG+4)=1.D0 DNORM(NRG+5)=1.D0 DNORM(NRG+6)=1.D0 DNORM(NRG+7)=ES DNORM(NRG+8)=ES DNORM(NRG+9)=ES DNORM(NRG+10)=ES*RTO DNORM(NRG+11)=ES*RFZ DNORM(NRG+12)=ES*RFY NRG=NRG+2*NDDL 50 CONTINUE C SEGDES MELEME SEGDES MCHELM,MCHEL1 30 CONTINUE NTANBN=NTANBN-1 SEGADJ MDEN NBELEM=LBP SEGADJ IPT1 NREMEL=IPT1 KNREFE=MNREFE C IF(IIMPI.EQ.1) THEN WRITE(IOIMP,1000) NSTR 1000 FORMAT(1X,///' NOMBRE D''ELEMENTS ',I5//) DO 40 NS=1,NSTR WRITE(IOIMP,1012) NREFE(1,NS) WRITE(IOIMP,1013) NREFE(2,NS) WRITE(IOIMP,1014) NREFE(3,NS) WRITE(IOIMP,1015) NREFE(4,NS) WRITE(IOIMP,1016) NREFE(5,NS) WRITE(IOIMP,1017) NREFE(6,NS) WRITE(IOIMP,1018) NREFE(7,NS) 1012 FORMAT(1X,' MELEME ',I5) 1013 FORMAT(1X,' MSOSTU ',I5) 1014 FORMAT(1X,' ITYPEL ',I5) 1015 FORMAT(1X,' NBNOE ',I5) 1016 FORMAT(1X,' NDDL ',I5) 1017 FORMAT(1X,' IVN ',I5) 1018 FORMAT(1X,' IAN ',I5,//) NCA=LCAR*(NS-1) WRITE(IOIMP,1001) CARA(NCA+1) WRITE(IOIMP,1002) CARA(NCA+2) WRITE(IOIMP,1003) CARA(NCA+3) WRITE(IOIMP,1004) CARA(NCA+4) WRITE(IOIMP,1005) CARA(NCA+5) WRITE(IOIMP,1006) CARA(NCA+6) WRITE(IOIMP,1007) CARA(NCA+7) WRITE(IOIMP,1008) CARA(NCA+8) WRITE(IOIMP,1009) CARA(NCA+9) 1001 FORMAT(1X,' DL ',1PE12.5) 1002 FORMAT(1X,' RTC ',1PE12.5) 1003 FORMAT(1X,' RTO ',1PE12.5) 1004 FORMAT(1X,' RFY ',1PE12.5) 1005 FORMAT(1X,' EIZ ',1PE12.5) 1006 FORMAT(1X,' CTC ',1PE12.5) 1007 FORMAT(1X,' CTO ',1PE12.5) 1008 FORMAT(1X,' RHO ',1PE12.5) 1009 FORMAT(1X,' SECT ',1PE12.5) WRITE(IOIMP,1022) 1022 FORMAT(1X,' MATRICE DE CHANGEMENT DE REPERE '/) MP=9*(NS-1) WRITE(IOIMP,1019)(PASS(MP+I),I=1,9) 1019 FORMAT(1X,6(1PE12.5,1X)) 40 CONTINUE WRITE(IOIMP,1122) 1122 FORMAT(1X,' VECTEURS DE NORMALISATION '/) WRITE(IOIMP,1019) (DNORM(I),I=1,LNORM) WRITE(IOIMP,1020) 1020 FORMAT(1X/,' ICPR '/) WRITE(IOIMP,1021)(ICPR(I),I=1,ICPR(/1)) 1021 FORMAT(1X,20(I5,1X)) WRITE(IOIMP,*) 'NTANBN',NTANBN,'NIDNCN',NIDNCN,'NTVN',NTVN ENDIF SEGDES MSTRUC WRITE (IOIMP,*) ' FIN DE ELFELE ' RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales