mdcres
C MDCRES SOURCE CHAT 05/01/13 01:40:07 5004 C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C DIMENSION AB(9,9),RELC(9),BRAN(8),DUR(200), & AB0(200),AL(200),AK(200),AKL(200), & EBFLU(9,200),EB(9),EVIS(9,38),TZE(200), & REL(200,200),TZERO(200),TMT0(200), & CB(9,9),ELC(9),COEG(8),TRO(200), & CB0(200),CL(200),CK(200),CKL(200), & COE(9,9),CDB(9),CZ1(9),CZ2(9), & FIFLU(200,200) C C****************************************************************** C TEM(N,M)=DATE DE MESURE DE LA DEFORMATION C TZERO(M)= DATE D'APPLICATION DE LA CHARGE C DATCOU= DATE DE COULAGE DU BETON C TMT0(N)=(TEM(N,M)-TZERO(M)) C E28=4734*SQR(FC) 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 INITIALISATION C C C TAU1= TEMPS INITIAL POUR LE CALCUL A PARTIR DE LA SECONDE BRANCHE C DES COEFFICIENTS DE CHAQUE BRANCHE C C******************************************************************* C CALCUL DES COEFFICIENTS DES BRANCHES DU MODELE DE MAXWELL C******************************************************************* C MC=NBRC+1 C DO 10 N=1,NBRC IF (N.EQ.1) THEN BRAN(N) = 0.D0 BRAN(N)=TAU1 ELSE BRAN(N)=10**(N-2)*TAU2 ENDIF 10 CONTINUE C NC=NCOE+1 C C******************************************************************* C APPEL DES COURBES DE VALEURS DE RELAXATION C******************************************************************* C C NTPS1=NTPS+1 C DO 20 I=1,NTPS1 C IF(I.EQ.1)THEN TMT0(I)=DUR(I) ELSE IF(I.GT.1.AND.I.LT.NTPS1) THEN TMT0(I)=DUR(I) ELSE IF(I.EQ.NTPS1) THEN TMT0(I)=0.D0 ENDIF C 20 CONTINUE C C****************************************************************** C INITIALISATION SUR COE(9,9)=0.D0 C****************************************************************** C DO 21 KI=1,MC DO 22 KJ=1,NC COE(KI,KJ) = 0.D0 22 CONTINUE 21 CONTINUE C C******************************************************************* C BOUCLE SUR LES DIFFERENTES BRANCHES C******************************************************************* C DO 25 LDEB=1,MC C C****************************************************************** C INITIALISATION C***************************************************************** C DO 26 IN1 = 1,NC ELC(IN1) = 0.D0 27 CONTINUE 26 CONTINUE C C****************************************************************** C BOUCLE SUR LES DIFFERENTS TEMPS D'APPLICATION C******************************************************************* C DO 30 J = 1,NTZERO TZE(J) = TZERO(J) C C******************************************************************* C BOUCLE SUR LES DIFFERENTES DATES DE MESURE C******************************************************************* C C******************************************************************* C INITIALISATION C******************************************************************* C DO 40 I = 1,NTPS1 AB0(I) = 0.D0 AL(I) = 0.D0 AK(I) = 0.D0 AKL(I) = 0.D0 40 CONTINUE C C******************************************************************* C CONDITION THERMODYNAMIQUE C******************************************************************* C C DO 41 I=1,NTPS1 C C DO 42 JO=1,NTZERO C C IF(REL(I,JO).LT.0.D0)THEN C NTPS1=I-1 C GOTO 500 C ENDIF C C 42 CONTINUE C C 41 CONTINUE C C******************************************************************* C INITIALISATION C******************************************************************* C 500 DO 43 L = 1,MC RELC(L) = 0.D0 DO 44 K = 1,MC AB(L,K) = 0.D0 44 CONTINUE 43 CONTINUE C C******************************************************************** C DO 45 I=1,NTPS1 C C NOK=NTPS C C IF(I.EQ.1)THEN AB0(I)=NOK*(TMT0(I))/(TMT0(NOK)) ELSE IF(I.EQ.2)THEN AB0(I)=NOK*(TMT0(I)-TMT0(NTPS1))/(2*(TMT0(NOK))) ELSE IF(I.LE.(NOK).AND.I.GT.2)THEN AB0(I)=NOK*(TMT0(I)-TMT0(I-2))/(2*(TMT0(NOK))) ELSE IF(I.EQ.NTPS1)THEN AB0(I)=NOK*(TMT0(NOK)-TMT0(NOK-1))/(TMT0(NOK)) ENDIF C DO 50 K=1,MC C DO 60 L=1,MC C C COEFFICIENT DE LA MATRICE [AB] C [AB]=TABLEAU AB[NBRC+1,NBRC+1] C IF(I.EQ.1) THEN IF(K.EQ.1.AND.L.EQ.1)THEN AB(L,K)=AB(L,K)+AB0(I) ELSE IF(K.EQ.1.AND.L.GT.1)THEN AL(I) = AB0(I)*EXP(-(TMT0(NTPS1))/BRAN(L-1)) AB(L,K) = AB(L,K)+ AL(I) ELSE IF(K.GT.1.AND.L.EQ.1)THEN AK(I) = AB0(I)*EXP(-(TMT0(NTPS1))/BRAN(K-1)) AB(L,K) = AB(L,K)+ AK(I) ELSE IF(K.GT.1.AND.L.GT.1)THEN AKL(I) = AB0(I)*EXP(-(TMT0(NTPS1))/BRAN(K-1))* *EXP(-(TMT0(NTPS1))/BRAN(L-1)) AB(L,K) = AB(L,K)+AKL(I) ENDIF C ELSE C IF(K.EQ.1.AND.L.EQ.1)THEN AB(L,K)=AB(L,K)+AB0(I) ELSE IF(K.EQ.1.AND.L.GT.1)THEN AL(I) = AB0(I)*EXP(-(TMT0(I-1))/BRAN(L-1)) AB(L,K) = AB(L,K)+ AL(I) ELSE IF(K.GT.1.AND.L.EQ.1)THEN AK(I) = AB0(I)*EXP(-(TMT0(I-1))/BRAN(K-1)) AB(L,K) = AB(L,K)+ AK(I) ELSE IF(K.GT.1.AND.L.GT.1)THEN AKL(I) = AB0(I)*EXP(-(TMT0(I-1))/BRAN(K-1))* *EXP(-(TMT0(I-1))/BRAN(L-1)) AB(L,K) = AB(L,K)+AKL(I) ENDIF ENDIF C 60 CONTINUE 50 CONTINUE C C******************************************************************* C INITIALISATION C******************************************************************* C RL0=0.D0 RL1=0.D0 C C C****************************************************************** C DO 70 L=1,MC C C COEFFICIENT DU VECTEUR RELC(NBRC) C RELC(NBRC)=SECOND MEMBRE POUR RESOLUTION PAR GAUSS C IF(I.EQ.1) THEN IF(L.EQ.1)THEN RL0=AB0(I)*REL(I,J) RELC(L)=RELC(L)+RL0 ELSE IF(L.GT.1)THEN RL1=AB0(I)*REL(I,J)*EXP(-(TMT0(NTPS1))/BRAN(L-1)) RELC(L)=RELC(L)+RL1 ENDIF ELSE C IF(L.EQ.1)THEN RL0=AB0(I)*REL(I,J) RELC(L)=RELC(L)+RL0 ELSE IF(L.GT.1)THEN RL1=AB0(I)*REL(I,J)*EXP(-(TMT0(I-1))/BRAN(L-1)) RELC(L)=RELC(L)+RL1 ENDIF ENDIF RL0=0.D0 RL1=0.D0 C EB(L)=0.D0 C 70 CONTINUE C 45 CONTINUE C C DO 79 NVIS = 1,38 DO 80 L=1,MC EBFLU(L,J)=EB(L) EVIS(L,NVIS) = EBFLU(L,NVIS) 80 CONTINUE 79 CONTINUE C C C******************************************************************* C INITIALISATION C****************************************************************** C CB0(J)=0.D0 CL(J)=0.D0 CK(J)=0.D0 CKL(J)=0.D0 EL0=0.D0 EL1=0.D0 C C******************************************************************* C BOUCLE SUR LES DIFFERENTS TEMPS D APPLICATION (SUITE) C******************************************************************* C C******************************************************************* C !!!REMARQUE IMPORTANTE : SI NTZERO DIFFERENT DE NTPS C ALORS REVOIR LA VALEUR (LA DEFINIR)DE TZERO(MOK) CI-DESSOUS C TRANSFORMEE EN TMT0(MOK) CAR IL S AVERE ETRE LA MEME VALEUR C******************************************************************* C MOK=NTZERO-1 C IF(J.EQ.1)THEN CB0(J)=MOK*(TZERO(J+1)-TZERO(J))/(TZERO(NTZERO)-TZERO(1)) ELSE IF(J.LE.(MOK).AND.J.GT.1)THEN CB0(J)=MOK*(TZERO(J+1)-TZERO(J-1))/(2*(TZERO(NTZERO)-TZERO(1))) ELSE IF(J.EQ.NTZERO)THEN CB0(J)=MOK*(TZERO(J)-TZERO(J-1))/(TZERO(NTZERO)- TZERO(1)) C ENDIF C C********************************************************************* C DO 100 K=1,NC C DO 110 I=1,NC C C COEFFICIENT DE LA MATRICE [CB] C [CB]=TABLEAU CB[NCOE+1,NCOE+1] C IF(K.EQ.1.AND.I.EQ.1)THEN C CB(I,K)=CB(I,K)+CB0(J) ELSE IF(K.EQ.1.AND.I.GT.1)THEN CL(J)=CB0(J)*EXP((DATCUR-TZERO(J)) **COEG(I-1)) CB(I,K)=CB(I,K)+CL(J) ELSE IF(K.GT.1.AND.I.EQ.1)THEN CK(J)=CB0(J)*EXP((DATCUR-TZERO(J)) **COEG(K-1)) CB(I,K)=CB(I,K)+CK(J) ELSE IF(K.GT.1.AND.I.GT.1)THEN CKL(J)=CB0(J)*EXP((DATCUR-TZERO(J)) **COEG(K-1))*EXP((DATCUR-TZERO(J)) **COEG(I-1)) CB(I,K)=CB(I,K)+CKL(J) C ENDIF C 110 CONTINUE C 100 CONTINUE C DO 120 N=1,NC C C COEFFICIENT DU VECTEUR ELC(NCOE) C ELC(NCOE)=SECOND MEMBRE POUR RESOLUTION PAR GAUSS (Subroutine SYSTLI) C IF(N.EQ.1)THEN C EL0=CB0(J)*EBFLU(LDEB,J) ELC(N)=ELC(N)+EL0 ELSE IF(N.GT.1)THEN EL1=CB0(J)*EBFLU(LDEB,J)*EXP((DATCUR-TZERO(J)) **COEG(N-1)) ELC(N)=ELC(N)+EL1 ENDIF CDB(N)=0.0 C 120 CONTINUE C 30 CONTINUE C C C******************************************************************* C AFFICHAGE DES VALEURS CONSTITUTIVES DE CHAQUE MODULE C DE CHAQUE BRANCHE DE MAXWELL C******************************************************************* C DO 130 NFIN=1,NC C COE(LDEB,NFIN)=CDB(NFIN) C C PRINT*,'LES VALEURS POUR LA BRANCHE',LDEB,'SONT :',CDB(NFIN) C 130 CONTINUE C 25 CONTINUE C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales