dirich
C DIRICH SOURCE CB215821 23/07/12 21:15:04 11704 SUBROUTINE DIRICH IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCNOYAU -INC SMTABLE -INC SMLREEL LOGICAL LOGRE,LOGIN REAL*8 TEMPS(0:1000),YOUNG(0:1000) REAL*8 TREL(0:10),EVO(0:1000,0:10) CHARACTER*8 CHARIN,CHARRE CHARACTER*(8) CHARA,TYPIND,TYPOBJ C CHARACTER*4 MOUNIT,MOCODE(3) C DATA MOCODE/'EURO','BPEL','LCPC'/ XVALIN=0.D0 CHARIN=' ' LOGIN =.FALSE. IOBIN=0 IVALRE=0 XVALRE=0.D0 IOBRE=0 C C ON LIT LE MOT UNITE C IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN * * MOT CLE EURO PAR DEFAUT * IF(IMLU.EQ.0) IMLU=1 * * CAS EUROCODE * IF(IMLU.EQ.1) THEN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN * * CAS BPEL * ELSE IF(IMLU.EQ.2) THEN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN * * CAS LCPC * ELSE IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN IF(IERR.NE.0) RETURN ENDIF * * TESTS SUR LES DONNEES * TMAX=TMAXA IF (MOUNIT.EQ.'SECO') THEN TMAX=TMAXA/3600./24. ELSE IF (MOUNIT.EQ.'ANNE') THEN TMAX=TMAXA*365. ELSE IF (MOUNIT.NE.'JOUR') THEN MOTERR = MOUNIT RETURN ENDIF IF (NB.GT.8) THEN NB=8 ENDIF * * ICI APPEL AUX ROUTINES DE CALCUL * IF(IMLU.EQ.1) THEN * * ENTREES : HO en mm * EUROCODE ROH en valeur reelle ( entre 0 et 1 ) * FCM en MPa * Temps en jours * HO=HO*1000.D0 ROH=ROH/100.D0 & TREL,EVO,YOUNG,LIDIM) * ELSE IF (IMLU.EQ.2) THEN * * ENTREES : RM en cm * BPEL RH en % ( entre 0 et 100 ) * FC28 en MPa * Temps en jours * RM=RM*100.D0 & TREL,EVO,YOUNG,LIDIM) ELSE * * ENTREES : H0 en mm * LCPC RHOS taux d'armatures passives * dans une section de beton arme. * (0. < RHOS < 1.) * H0 = H0*1000.D0 & TREL,EVO,YOUNG,LIDIM) * ENDIF * * CREATION DES TABLES * * * CREATION DE DEUX PROGS * JG=LIDIM+1 * * AM 5/9/16 ON REMET LA SORTIE DANS LES UNITES ANNONCEES * IF (MOUNIT.EQ.'SECO') THEN FAFAC= 3600.*24. ELSE IF (MOUNIT.EQ.'ANNE') THEN FAFAC= 1./365. ELSE FAFAC= 1. ENDIF * ON CREE LES ABSCISSES SEGINI MLREEL IPRABS=MLREEL DO I=0,LIDIM ENDDO * * AM 5/9/16 ON ETEND LES TEMPS A TMAX SI BESOIN * SEGDES MLREEL * ON CREE LE PROG DES MODULES D'YOUNG SEGINI MLREEL IPRMOD=MLREEL DO I=0,LIDIM ENDDO SEGDES MLREEL * * CREATION DE L'OBJET MODULE D'YOUNG * DO 10 IC=0,NB * * ON CREE LES ORDONNEES * SEGINI MLREEL IPRORD=MLREEL DO I=0,LIDIM ENDDO * * AM 5/9/16 ON REMET LES INVERSES DES TEMPS DE RELAXATION * DANS LES BONNES UNITES * TREL(IC)=TREL(IC)/FAFAC * * * CREATION D'UN OBJET EVOLUTION * IF(IERR.NE.0) RETURN * * DANS LA TABLE DES MODULES * A L'INDICE II ON MET L'EVOLUTION DE POINTEUR IPEV * & 'EVOLUTIO',IVALRE,XVALRE,CHARRE,LOGRE,IPEV) * * DANS LA TABLE DES TEMPS * A L'INDICE II ON MET LE TEMPS TREL(IC) * & 'FLOTTANT',IVALRE,TREL(IC),CHARRE,LOGRE,IOBRE) 10 CONTINUE * * ECRITURE DES RESULTATS * RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales