diff --git a/rubarbe.f90 b/rubarbe.f90
index a9d4e5ca10ed392c8eae2232526cc431c5277c42..1575d9fb9782be1bbfeb588212a28d9e9beca14d 100644
--- a/rubarbe.f90
+++ b/rubarbe.f90
@@ -3421,7 +3421,7 @@
       use donnees_geo,only:LM,LL
       use donnees_etude,only:REP,ETUDEDD,tmax1D,DTSAUV,tinit1D,DT1D,PSAVE
       use variables_ouvrages,only:HOUV,QOUV,IA1,IA2,NOUV,NBOUV,volqouv,&
-     &LONG,ZDEV,HAUT,COEF,TYPOUV,NREFA,COEFIN,ZOUV,ZFERM,NBCOU1,NBCOU2
+     &LONG,ZDEV,HAUT,COEF,TYPOUV,NREFA,COEFIN,ZOUV,ZFERM,NBCOU1,NBCOU2,DDZCOUP,DDQCOUP
       use rupture_progressive,only:ZC,ZPB,ALP,ALC,Z0,D50,RHO,PHI,DB0,ZB0,&
      &YM,SM,PM,RHM,ALM,NU,DBMAX,TRECT,QL,QS,DBR,Z,ZAV,ZBR,TRUP,ELAP,IOUB,NOB,&
      &ETA,KA,C1,C2,DT2,NT,ZB,DB,IT
@@ -3433,8 +3433,6 @@
       INTEGER :: nb1(nou1Dmax),NB2(nou1Dmax)
       CHARACTER NOMFIC*40,RIEN*9
       LOGICAL :: TROUVE
-      DOUBLE PRECISION :: QCOUP(nou1Dmax*noe1Dmax*noe1Dmax)&
-     &,ZCOUP(nou1Dmax*noe1Dmax*noe1Dmax)
       DOUBLE PRECISION :: ZP(NOB1DMAX)
       ! si volqouv true ecriture fichier volqouv car nref=-1 pour au moins une arete
       CHARACTER*1 ligne*80,nomfic2*40
@@ -3587,10 +3585,10 @@
             ENDIF
             NBCOU2(IOUV,J)=NBCOUM
             DO K=NBCOU1(IOUV,J),NBCOU2(IOUV,J)
-              READ(IDON,*,ERR=5)ZCOUP(K),QCOUP(K)
+              READ(IDON,*,ERR=5)DDZCOUP(K),DDQCOUP(K)
 !              DDZCOUP(K)=DDZCOUP(K)-ZFM
               IF(K.NE.NBCOU1(IOUV,J))THEN
-                IF(ZCOUP(K).LT.ZCOUP(K-1))THEN
+                IF(DDZCOUP(K).LT.DDZCOUP(K-1))THEN
                   WRITE(*,*)'ATTENTION: cotes non croissantes au '&
      &              ,'couple (Z,Q) numero ',K,' d''un ouvrage de type Z'
                 ENDIF
@@ -3615,9 +3613,9 @@
             ENDIF
             NBCOU2(IOUV,J)=NBCOUM
             DO K=NBCOU1(IOUV,J),NBCOU2(IOUV,J)
-              READ(IDON,*,ERR=5)ZCOUP(K),QCOUP(K)
+              READ(IDON,*,ERR=5)DDZCOUP(K),DDQCOUP(K)
               IF(K.NE.NBCOU1(IOUV,J))THEN
-                IF(ZCOUP(K).LT.ZCOUP(K-1))THEN
+                IF(DDZCOUP(K).LT.DDZCOUP(K-1))THEN
                   WRITE(*,*)'ATTENTION: temps non croissants au '&
      &              ,'couple (T,Q) numero ',K,' d''un ouvrage de type Q'
                 ENDIF
@@ -25959,63 +25957,26 @@
 !-----------------------------------------------------------------------
 
       use parameters,only:NOB1DMAX,NBHYPR,LMAX,NBMAX,nou1Dmax,noe1Dmax
+      use donnees_geo,only:LM,LL,XTMAIL,XCTDF
+      use nbiefs,only:NBB
+      use donnees_etude,only:ETUDEDD,TS,FDEB1,FDEB2,FDEB3,TSOR,DELMAI,DELIMAI
+      use variables_ouvrages,only:IA1,IA2,NOUV,NBOUV,LONG,ZDEV,HAUT,COEF,TYPOUV,&
+     &COEFIN,ZOUV,ZFERM,NBCOU1,NBCOU2,DDQCOUP,DDZCOUP,NREFA
+      use rupture_progressive,only:ZC,ZPB,ALP,ALC,Z0,D50,RHO,PHI,DB0,ZB0,&
+     &ETA,KA,C1,C2,DT2,ZB,DB,IT,DBMAX,TRECT,TRUP,ELAP,NT,IOUB,NOB
 
       IMPLICIT NONE
-      INTEGER :: LM(0:NBMAX),LL
-
-      INTEGER :: M,NBB
-      INTEGER :: IOUV,IDON,I,K,IBOUV,NOB
-      CHARACTER ETUDE*20,NOMFIC*40
-      INTEGER :: IA1(nou1Dmax),IA2(nou1Dmax),NOUV(nou1Dmax)&
-     &,NBOUV,NREFA(LMAX)&
-     &  ,NBCOUP,NBCOU2(nou1Dmax,noe1Dmax),NBCOU1(nou1Dmax,noe1Dmax)
-      DOUBLE PRECISION :: LONG(nou1Dmax,noe1Dmax),ZDEV(nou1Dmax,noe1Dmax)&
-     &  ,HAUT(nou1Dmax,noe1Dmax),COEF(nou1Dmax,noe1Dmax)&
-     &  ,ZOUV(nou1Dmax,noe1Dmax),COEFIN(nou1Dmax,noe1Dmax)&
-     &  ,ZFERM(nou1Dmax,noe1Dmax)&
-     &  ,QCOUP(nou1Dmax*noe1Dmax*noe1Dmax)&
-     &,ZCOUP(nou1Dmax*noe1Dmax*noe1Dmax)
-      CHARACTER*1 TYPOUV(nou1Dmax,noe1Dmax)
-      INTEGER :: IT(NOB1DMAX),NT(NOB1DMAX),IOUB(nou1Dmax,noe1Dmax),NB1,NB2
-      DOUBLE PRECISION :: KA(NOB1DMAX),DT2(NOB1DMAX)
-      DOUBLE PRECISION :: ZC(NOB1DMAX),ZP(NOB1DMAX),ZB(NOB1DMAX)&
-     &,ZB0(NOB1DMAX),Z0(NOB1DMAX),ALP(NOB1DMAX),ALC(NOB1DMAX)&
-     &,RHO(NOB1DMAX),PHI(NOB1DMAX)&
-     &,DB0(NOB1DMAX),DB(NOB1DMAX),D50(NOB1DMAX)
-      DOUBLE PRECISION :: ETA(NOB1DMAX),C1(NOB1DMAX),C2(NOB1DMAX)&
-     &,DBMAX(NOB1DMAX),TRUP(NOB1DMAX)&
-     &,TS,FDEB1,FDEB2,FDEB3&
-     &,TSOR(NBHYPR),DELMAI(NBHYPR),DELIMAI(NBHYPR)&
-     &,xtmail(lmax),xctdf(lmax),TR
-
-      DOUBLE PRECISION :: TRECT(NOB1DMAX)
-      LOGICAL :: ELAP(NOB1DMAX)
-
-      COMMON/PHYS/LM,LL
-      COMMON/NBIEF/NBB
-      COMMON/NOMETU/ETUDE
-      COMMON/DDIOUVRA/IA1,IA2,NOUV,NBOUV
-      COMMON/DDCOUVRA/LONG,ZDEV,HAUT,COEF
-      COMMON/DDTOUVRA/TYPOUV
-      COMMON/DDNARF/NREFA
-      COMMON/YOUVRA/COEFIN,ZOUV,ZFERM
-      COMMON/NOUVRA/NBCOU1,NBCOU2
-      COMMON/DDZOUVRA/QCOUP,ZCOUP
-      COMMON/DDDIGUE/ZC,ZP,ALP,ALC,Z0,D50,RHO,PHI,DB0,ZB0
-      COMMON/DDMAXBRE/DBMAX,TRECT
-      COMMON/DDTINIB/TRUP
-      COMMON/DDELAPPR/ELAP
-      COMMON/DDIOBREC/IOUB,NOB
-      COMMON/DDCONRUP/ETA,KA,C1,C2,DT2
-      COMMON/DDNCONST/NT
-      COMMON/DDBRECHE/ZB,DB,IT
-      COMMON/SORCAL/TS,FDEB1,FDEB2,FDEB3,TSOR,DELMAI,DELIMAI
-      COMMON/XGEOMT/XTMAIL,XCTDF
+
+      INTEGER :: M
+      INTEGER :: IOUV,IDON,I,K,IBOUV
+      CHARACTER NOMFIC*40
+      INTEGER :: NB1,NB2,NBCOUP
+      DOUBLE PRECISION :: TR
 
       IF(NOB.GT.0)THEN
          IBOUV=0
          IDON=9
-      NOMFIC='ouvrag-r.'//ETUDE
+      NOMFIC='ouvrag-r.'//ETUDEDD
       OPEN(IDON,FILE=NOMFIC,STATUS='UNKNOWN')
       WRITE(*,'(A,A)')'ecriture fichier ',NOMFIC
       DO IOUV=1,NBOUV
@@ -26052,13 +26013,13 @@
             WRITE(IDON,'(A1,I9,4F10.3)')TYPOUV(iouv,I)&
      &,NBCOU2(IOUV,I)-NBCOU1(IOUV,I)+1,0.,0.,0.,0.
             DO K=1,NBCOU1(IOUV,I),NBCOU2(IOUV,I)
-              WRITE(IDON,'(2F10.3)')ZCOUP(K),QCOUP(K)
+              WRITE(IDON,'(2F10.3)')DDZCOUP(K),DDQCOUP(K)
             ENDDO
           ELSEIF(TYPOUV(iouv,I).EQ.'Q'.OR.TYPOUV(iouv,I).EQ.'q')THEN
             WRITE(IDON,'(A1,I9,4F10.3)')TYPOUV(iouv,I)&
      &,NBCOU2(IOUV,I)-NBCOU1(IOUV,I)+1,0.,0.,0.,0.
             DO K=1,NBCOU1(IOUV,I),NBCOU2(IOUV,I)
-              WRITE(IDON,'(2F10.3)')ZCOUP(K),QCOUP(K)
+              WRITE(IDON,'(2F10.3)')DDZCOUP(K),DDQCOUP(K)
             ENDDO
           ELSEIF(TYPOUV(iouv,I).EQ.'B'.OR.TYPOUV(iouv,I).EQ.'b')THEN
                        ibouv=ibouv+1
@@ -26074,7 +26035,7 @@
                        endif
             WRITE(IDON,'(A1,I1,F8.0,4F10.3)')&
      &TYPOUV(iouv,I),nbcoup,TR&
-     &,zc(ibouv),Zp(ibouv),alc(ibouv),alp(ibouv)
+     &,zc(ibouv),ZPB(ibouv),alc(ibouv),alp(ibouv)
             WRITE(IDON,'(4F10.2)')D50(IBOUV)*1000.,KA(IBOUV)&
      & ,RHO(IBOUV),PHI(IBOUV)
             WRITE(IDON,'(3F10.2)')ZB(IBOUV),DB(IBOUV)*1000.,DBMAX(IBOUV)