wells
C WELLS SOURCE PV 17/12/08 21:18:08 9660 C C______________________________________________________________________ C C MODELE WELLS C______________________________________________________________________ C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC DECHE * DIMENSION SIGF1(3),DEPST1(3),EPSTF1(3) DIMENSION DEPST2(3) NSTRS = SIG0(/1) NVARI = VAR0(/1) NMAT = XMAT(/1) NSTRS1 = NSTRS - 1 * PRINT *,' ENTREE WELLS - NMAT=', NMAT * * * QUELQUES IMPRESSIONS EN ENTREE * * DO I=1,NMAT * PRINT *,' I=', I, ' XMAT=', XMAT(I) * ENDDO * * DO I=1,NSTRS * PRINT *,' I=', I, ' SIG0=', SIG0(I) * ENDDO * * DO I=1,NVARI * PRINT *,' I=', I, ' VAR0=', VAR0(I) * ENDDO * * DO I=1,NSTRS * PRINT *,' I=', I, ' DEPST=', DEPST(I) * ENDDO * * * XMAT(1) : KS * XMAT(2) : KN * 3 : LTR * 4 : GFTR * 5 : HS * 6 : DINT * XKS = XMAT(1) XKN = XMAT(2) XLTR = XMAT(3) GFTR = XMAT(4) HS = - XMAT(5) DINT = XMAT(6) * * SIG0(1) : SMS1 * SIG0(2) : SMS2 SI 3D * SIG0(NSTRS) : SMN * * EPST0(1) : DRS1 * EPST0(2) : DRS2 SI 3D * EPST0(NSTRS) : DRN * * * * * VAR0(1) : EPSE * VAR0(2) : EPS1 * VAR0(3) : EPS2 SI 3D * VAR0(NVARI) : EPN * * ----------------------- * LOI ELASTIQUE * ----------------------- * * * ON RECUPERE L'OUVERTURE MAXI INITIALE * XK0 = VAR0(NVARI) * * ON REGARDE L'ETAT INITIAL ET L'ETAT FINAL * DN0 = EPST0(NSTRS) DNF = DN0 + DEPST(NSTRS) CR0 = DN0 - XK0 CRF = DNF - XK0 * * TEST DE DN0 PAR RAPPORT A DNF * IF(DN0.GT.DNF) GO TO 10 * -------------------------------------------------------------------- * ! A) DN0 < DNF ! * -------------------------------------------------------------------- *------------------------------------- * 1-ER CAS : FERMETURE - FERMETURE *------------------------------------- * IF(DN0.LE.0.D0.AND.DNF.LE.0.D0) THEN * PRINT *,' CAS A1 ' C C calcul de l'increment de contrainte C C C ON CALCULE LES CONTRAINTES FINALES C DO I=1,NSTRS SIGF(I) = SIG0(I) + DSIGT(I) ENDDO DO I=1,NVARI VARF(I) = VAR0(I) ENDDO *------------------------------------- * 2-EME CAS : FERMETURE - OUVERTURE *------------------------------------- * ELSE IF (DN0.LE.0.D0.AND.DNF.GT.0.D0) THEN * PRINT *,' CAS A2 ' * * CALCUL DE LA PROPORTION * XX1L = - DN0 /(DNF - DN0 ) XX1NL= 1.D0 - XX1L DO I=1,NSTRS DEPST1(I) = DEPST(I)*XX1L DEPST2(I) = DEPST(I)*XX1NL ENDDO C C calcul de l'increment de contrainte PUREMENT ELASTIQUE C C DO I=1,NSTRS SIGF1(I) = SIG0(I) + DSIGT(I) EPSTF1(I) = EPST0(I) + DEPST1(I) ENDDO C C CALCUL DU SUPPPLEMENT DE CONTRAINTE C * * 1-ER SOUS CAS : JOINT DEJA ENDOMMAGE * °°°°°°°°°°°°?* IF(XK0.GT.0.D0) THEN * * ON VERIFIE SI LE POINT FINAL DEPASSE LE CRITERE * * A) ON NE DEPASSE PAS => ON UTILISE TOUT CE QUI RESTE * ----------------- * IF(CRF.LE.0.) THEN DO I=1,NSTRS1 SIGF(I) = SIGF1(I) + & DINT*EXP(HS*DNF)*EPSTF(I) & - DINT*EPSTF1(I) ENDDO * SIGF(NSTRS)= SIGF1(NSTRS) + DSIG3 * VARF(1) = ABS(DEPST2(NSTRS)) DO I=1,NSTRS1 VARF(I+1) = VAR0(I+1)+ DEPST2(I) ENDDO VARF(NVARI) = VAR0(NVARI) * * * B) ON DEPASSE * ---------- * ELSE * * IL FAUT CALCULER UNE AUTRE PROPORTION * XX2L = XK0 /DNF DO I=1,NSTRS DEPST1(I) = DEPST2(I)*XX2L ENDDO * DO I=1,NSTRS1 SIGF(I) = SIGF1(I) + & DINT*EXP(HS*DNF)*EPSTF(I) & - DINT*EPSTF1(I) ENDDO * * 3-EME COMPOSANTE : D'ABORD PARTIE SECANTE * SIGF1(NSTRS)= SIGF1(NSTRS) + DSIG3 * * PUIS LA PARTIE ADOUCISSANTE * DSIG3 = XLTR*EXP(-XLTR*DNF/GFTR) - & XLTR*EXP(-XLTR*XK0/GFTR) SIGF(NSTRS) = SIGF1(NSTRS) + DSIG3 * VARF(1) = ABS(DEPST2(NSTRS)) DO I=1,NSTRS1 VARF(I+1) = VAR0(I+1)+ DEPST2(I) ENDDO VARF(NVARI) = DNF ENDIF * * 2-EME SOUS CAS : JOINT PAS ENDOMMAGE * °°°°°°°°°°°°°° * ELSE DO I=1,NSTRS1 SIGF(I) = SIGF1(I) + & DINT*EXP(HS*DNF)*EPSTF(I) & - DINT*EPSTF1(I) ENDDO * * DIRECTEMENT ADOUCISSANT * DSIG3 = XLTR*EXP(-XLTR*DNF/GFTR) & - XLTR SIGF(NSTRS) = SIGF1(NSTRS) + DSIG3 * VARF(1) = ABS(DEPST2(NSTRS)) DO I=1,NSTRS1 VARF(I+1) = VAR0(I+1)+ DEPST2(I) ENDDO VARF(NVARI) = DNF ENDIF *------------------------------------- * 3-EME CAS : OUVERTURE - OUVERTURE *------------------------------------- * ELSE IF (DN0.GT.0.D0.AND.DNF.GT.0.D0) THEN * PRINT *,' CAS A3 ' * * 1-ER SOUS CAS : JOINT DEJA ENDOMMAGE * °°°°°°°°°°°°?* * PRINT *,' CAS A3 XK0=' , XK0 IF(XK0.GT.0.D0) THEN * * ON VERIFIE SI LE POINT FINAL DEPASSE LE CRITERE * * A) ON NE DEPASSE PAS => ON UTILISE TOUT L'INCREMENT * ----------------- * * PRINT *,' CAS A3 CRF=' , CRF IF(CRF.LE.0.) THEN DO I=1,NSTRS1 SIGF(I) = SIG0(I) + & DINT*EXP(HS*DNF)*EPSTF(I) & - DINT*EXP(HS*DN0)*EPST0(I) ENDDO * SIGF(NSTRS)= SIG0(NSTRS) + DSIG3 * VARF(1) = VAR0(1)+ABS(DEPST(NSTRS)) DO I=1,NSTRS1 VARF(I+1) = VAR0(I+1)+ DEPST(I) ENDDO VARF(NVARI) = VAR0(NVARI) * * * B) ON DEPASSE * ---------- * ELSE * DO I=1,NSTRS1 SIGF(I) = SIG0(I) + & DINT*EXP(HS*DNF)*EPSTF(I) & - DINT*EXP(HS*DN0)*EPST0(I) ENDDO * * 3-EME COMPOSANTE : * IL FAUT CALCULER UNE PROPORTION * XX1L = (XK0 -DN0) / (DNF - DN0 ) * PRINT *, ' XX1L = ', XX1L DO I=1,NSTRS DEPST1(I) = DEPST(I)*XX1L ENDDO * * D'ABORD PARTIE SECANTE * SIGF1(NSTRS)= SIG0(NSTRS) + DSIG3 * * PUIS LA PARTIE ADOUCISSANTE * DSIG3 = XLTR*EXP(-XLTR*DNF/GFTR) - & XLTR*EXP(-XLTR*XK0/GFTR) SIGF(NSTRS) = SIGF1(NSTRS) + DSIG3 * VARF(1) = VAR0(1)+ABS(DEPST(NSTRS)) DO I=1,NSTRS1 VARF(I+1) = VAR0(I+1)+ DEPST(I) ENDDO VARF(NVARI) = DNF ENDIF * * 2-EME SOUS CAS : JOINT PAS ENDOMMAGE * °°°°°°°°°°°°°° * ELSE DO I=1,NSTRS1 SIGF(I) = SIG0(I) + & DINT*EXP(HS*DNF)*EPSTF(I) & - DINT*EXP(HS*DN0)*EPST0(I) ENDDO * * DIRECTEMENT ADOUCISSANT * DSIG3 = XLTR*EXP(-XLTR*DNF/GFTR) & - XLTR SIGF(NSTRS) = SIGF1(NSTRS) + DSIG3 * VARF(1) = VAR0(1)+ABS(DEPST(NSTRS)) DO I=1,NSTRS1 VARF(I+1) = VAR0(I+1)+ DEPST(I) ENDDO VARF(NVARI) = DNF ENDIF * ENDIF GO TO 20 * 10 CONTINUE * * * -------------------------------------------------------------------- * ! B) DN0 >= DNF ! * -------------------------------------------------------------------- *------------------------------------- * 1-ER CAS : FERMETURE - FERMETURE *------------------------------------- * IF(DN0.LE.0.D0.AND.DNF.LE.0.D0) THEN * PRINT *,' CAS B1' C C calcul de l'increment de contrainte C C C ON CALCULE LES CONTRAINTES FINALES C DO I=1,NSTRS SIGF(I) = SIG0(I) + DSIGT(I) ENDDO DO I=1,NVARI VARF(I) = VAR0(I) ENDDO *------------------------------------- * 2-EME CAS : DECHARGE - FERMETURE *------------------------------------- * ELSE IF (DN0.GT.0.D0.AND.DNF.LE.0.D0) THEN * PRINT *,' CAS B2' * * CALCUL DE LA PROPORTION * XX1L = - DN0 /(DNF - DN0 ) XX1NL= 1.D0 - XX1L DO I=1,NSTRS DEPST1(I) = DEPST(I)*XX1L DEPST2(I) = DEPST(I)*XX1NL EPSTF1(I) = EPST0(I) + DEPST1(I) ENDDO DO I=1,NSTRS1 SIGF1(I) = SIG0(I) + & DINT*EPSTF1(I) & - DINT*EXP(HS*DN0)*EPST0(I) ENDDO * SIGF1(NSTRS)= SIG0(NSTRS) + DSIG3 C C CALCUL DU SUPPPLEMENT DE CONTRAINTE PUREMENT ELASTIQUE C C DO I=1,NSTRS SIGF(I) = SIGF1(I) + DSIGT(I) ENDDO * VARF(1) = ABS(DEPST(NSTRS)) DO I=1,NSTRS1 VARF(I+1) = VAR0(I+1)+ DEPST1(I) ENDDO VARF(NVARI) = VAR0(NVARI) *---------------------------------- * 3-EME CAS : DECHARGE - DECHARGE *---------------------------------- * ELSE IF (DN0.GT.0.D0.AND.DNF.GE.0.D0) THEN * PRINT *,' CAS B3' ZOB = -XLTR*XK0/GFTR ZOB1 = EXP (ZOB) * PRINT *,' XLTR=', XLTR , ' XK0 = ', XK0 , * & ' GFTR = ', GFTR * PRINT *,' ZOB=', ZOB , ' ZOB1 = ', ZOB1 DO I=1,NSTRS1 SIGF(I) = SIG0(I) + & DINT*EXP(HS*DNF)*EPSTF(I) & - DINT*EXP(HS*DN0)*EPST0(I) ENDDO * SIGF(NSTRS)= SIG0(NSTRS) + DSIG3 * VARF(1) = ABS(DEPST(NSTRS)) DO I=1,NSTRS1 VARF(I+1) = VAR0(I+1)+ DEPST(I) ENDDO VARF(NVARI) = VAR0(NVARI) ENDIF 20 CONTINUE * PRINT *,' SORTIE DE WELLS' * * * QUELQUES IMPRESSIONS EN SORTIE * * DO I=1,NSTRS * PRINT *,' I=', I, ' SIGF=', SIGF(I) * ENDDO * * DO I=1,NVARI * PRINT *,' I=', I, ' VARF=', VARF(I) * ENDDO * * DO I=1,NSTRS * PRINT *,' I=', I, ' EPSTF =', EPSTF(I) * ENDDO RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales