tansr
C TANSR SOURCE CHAT 05/01/13 03:32:01 5004 C SOURCE BERTHOLLET C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C DIMENSION RELAX(200,200),DELTRAX(200,200),TZO(200),DUR(200), & ELAS(200),TINTER(200,200,200),TZSUP(200,200),TZU(200), & FIFLU(200,200),DURE(200),TRO(200) C C******************************************************************* C C ELAS(J) = MODULE D ELASTICITE POUR CHAQUE t0 EN MPA. C TZU(J) = VALEURS DES t0 = DATE D'APPLICATION DE LA CHARGE EN JOURS. C DURE(I) = VALEURS DES DUREES t-t0 D APPLICATION VARIABLES C DE LA CHARGE EN JOURS. C TZSUP(I,J) = ADDITION DE L AGE D APPLICATION t0 DE LA CHARGE C AVEC LES DUREES D APPLICATION DUR(I) EN JOURS. C TINTER(DURE(I),(DURE(I)+t0)) = TABLEAU DES VALEURS DE LA FONCTION DE C FLUAGE POUR CHAQUE DUREE D APPLICATION C ET CHAQUE PSEUDO-DATES D APPLICATION. C (TABLEAU POUR LA METHODE DE CALCUL PAR APPROXIMATION NUMERIQUE) C C RELAX(I,J) = TABLEAU DES FONCTIONS DE RELAXATION POUR J=t0 C ET DUR(I) EN MPA. C C ITYPE = CODE D ACCES AU CHOIX DU MODELE DE FLUAGE C ITYPE = 1 : MODELE ACI209 C ITYPE = 2 : MODELE ESPION ET HALLEUX C ITYPE = 3 : MODELE B3 C ITYPE = 4 : MODELE CEBFIP C ITYPE = 5 : MODELE EUROCODE2 C ITYPE = 6 : MODELE BPEL91 C ITYPE = 7 : MODELE AFREM C ITYPE = 8 : MODELE BP-KX C C PGTZO = COEFFICIENT DE PROGRESSION DES DATES D APPLICATION t0 C PGDUR = COEFFICIENT DE PROGRESSION DES DUREES D APPLICATION t-t0 C TZER = PREMIERE DATE D APPLICATION EN JOURS DE LA CHARGE C A PARTIR DE LA DATE 0 JOUR DU COULAGE C C******************************************************************* C SEGMENT BETJEF & TCON,DPSTF1,DPSTF2,TETA,PDT,TP00 INTEGER ICT,ICC,IMOD,IVIS,ITER, & ISIM,IBB,IGAU,IZON ENDSEGMENT SEGMENT BETFLU REAL*8 DATCOU,DATCUR,DATSEC,E28,PGTZO,PGDUR,TAU1,TAU2, & TP0,TZER INTEGER ITYPE,IMD,NBRC,NCOE,NTZERO,NTPS,IFOR ENDSEGMENT C C******************************************************************* C C 1 : DOMAINE D APPLICATION DES FONCTIONS DE FLUAGE C 2 : PAS DE DISCRETISATION CHOISIS C 3 : TYPE DE MODELE DE FLUAGE UTILISE C----------------------------------------------------- C C 1 : PREMIERE DATE D APPLICATION D UNE CHARGE : TZER C-------------------------------- IF (DATCUR.GT.TZER) THEN TZER = DATCUR ENDIF C-------------------------------- C C 1 : PREMIERE DUREE D APPLICATION D UNE CHARGE = DER (en jours) C----------------- DER = 1.D0 C----------------- C C 1 : NOMBRE DE VALEURS D AGE D APPLICATION DE LA CHARGE = NTZERO1 C 1 : NOMBRE DE VALEURS DE DUREE D APPLICATION DE LA CHARGE = NTPS1 C 2 : PAS DE PROGRESSION POUR LES INTERVALLES ENTRE DATES D APPLICATION = PGTZ0 C 2 : PAS DE PROGRESSION POUR LES INTERVALLES ENTRE DUREES DAPPLICATION = PGDUR C 3 : MODELE DE FLUAGE = ITYPE C C******************************************************************* C NTZERO1 = NTZERO+1 NTPS1 = NTPS+1 C C******************************************************************* C DEFINITION DES TABLEAUX TZO, DUR, TZSUP C******************************************************************* C DO 10 J=1,NTZERO1 C IF (J.EQ.1) THEN C TZU(J) = 0.D0 TZO(J) = 0.D0 TZU(J) = TZER TZO(J) = TZU(J) C ELSE IF (J.EQ.2) THEN C TZU(J) = 0.D0 TZO(J) = 0.D0 TZU(J) = TZU(1)*PGTZO + TZU(1) TZO(J) = TZU(J) C ELSE C TZU(J) = 0.D0 TZO(J) = 0.D0 TZU(J) = (TZU(J-1) - TZU(J-2)) * PGTZO + TZU(J-1) TZO(J) = TZU(J) C ENDIF C C------------------------------------------------------------------ C DO 20 I=1,NTPS1 C IF (I.EQ.1) THEN C DURE(I) = 0.D0 DUR(I) = 0.D0 DURE(I) = 0.01 DUR(I) = DURE(I) C ELSE IF (I.EQ.2) THEN C DURE(I) = 0.D0 DUR(I) = 0.D0 DURE(I) = DER DUR(I) = DURE(I) C ELSE IF (I.EQ.3) THEN C DURE(I) = 0.D0 DUR(I) = 0.D0 DURE(I) = DURE(2)*PGDUR + DURE(2) DUR(I) = DURE(I) C ELSE C DURE(I) = 0.D0 DUR(I) = 0.D0 DURE(I) = (DURE(I-1) - DURE(I-2)) * PGDUR + DURE(I-1) DUR(I) = DURE(I) C ENDIF C TZSUP(I,J) = 0.D0 TZSUP(I,J) = TZU(J) + DURE(I) C 20 CONTINUE C 10 CONTINUE C C******************************************************************* C CALCUL DES TABLEAUX DE FLUAGE POUR CHAQUE t0 : TINTER C******************************************************************* C DO 40 JTZO = 1,NTZERO1 DO 50 J = 1,NTZERO1 DO 60 I = 1,NTPS1 C IF (J.EQ.1) THEN TFLU = TZU(JTZO) ELSE TFLU = TZSUP(J-1,JTZO) ENDIF C TDURE = DURE(I)+TZU(JTZO)-TFLU C C IF (J.EQ.1) THEN FIFLU(I,JTZO) = 0.D0 ELAS(JTZO)= 0.D0 FIFLU(I,JTZO) = FI ELAS(JTZO) = ELAS0 ENDIF C TINTER(I,J,JTZO) = 0.D0 TINTER(I,J,JTZO) = FLU C FLU = 0.D0 TFLU = 0.D0 TDURE = 0.D0 C 60 CONTINUE C 50 CONTINUE C 40 CONTINUE C C******************************************************************* C CALCUL DES COURBES DE RELAXATION POUR CHAQUE t0 : RELAX C******************************************************************* C DO 70 JTZO = 1,NTZERO1 DO 80 I = 1,NTPS1 C C INITIALISATION C----------------------------- RELAX(I,JTZO) = 0.D0 DELTRAX(I,JTZO) = 0.D0 C----------------------------- C IF (I.EQ.1) THEN C DELTRAX(I,JTZO) = ELAS(JTZO) RELAX(I,JTZO) = DELTRAX(I,JTZO) C ELSE IF (I.GT.1) THEN C NAT = I-1 C SOM = 0.D0 SOMI = 0.D0 C JACK = 0 C DO 90 K = 1,NAT C JACK = K+1 C SOMI = (TINTER(I,K,JTZO)+TINTER(I,JACK,JTZO) *-TINTER(I-1,K,JTZO)-TINTER(I-1,JACK,JTZO)) **DELTRAX(K,JTZO) C SOM = SOM + SOMI C 90 CONTINUE C C RELAX(I,JTZO) = -SOM/(TINTER(I,I,JTZO) *+TINTER(I,I+1,JTZO))+RELAX(I-1,JTZO) C DELTRAX(I,JTZO)= RELAX(I,JTZO)-RELAX(I-1,JTZO) C ENDIF C 80 CONTINUE C TRO(JTZO) = ((RELAX(1,JTZO)+RELAX(2,JTZO))/2 *-RELAX(NTPS1,JTZO))/((RELAX(1,JTZO) *-RELAX(2,JTZO))/DUR(1)) C 70 CONTINUE C C******************************************************************* C CONDITION THERMODYNAMIQUE C******************************************************************* C C DO 910 I=1,NTPS1 C DO 920 J=1,NTZERO1 C C IF (RELAX(I,J).LT.0.D0) THEN C RELAX(I,J)=0.D0 C ENDIF C C 92 CONTINUE C 91 CONTINUE C C******************************************************************* C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales