C DECOUP SOURCE CHAT 05/01/12 22:39:27 5004 C CALCUL AUTOMATIQUE DES DECOUPAGES C SUBROUTINE DECOUP(INBR,DEN1,DEN2,APROG,NBELEM,DENI,DECA,DLONG) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) IF (INBR.GT.0) GOTO 100 XAUX=abs(((DEN1-DEN2)**2)/2) IF (DEN2.LT.DEN1) APROG=1+XAUX-SQRT(XAUX*(2+XAUX)) IF (DEN2.GE.DEN1) APROG=1+XAUX+SQRT(XAUX*(2+XAUX)) IF (ABS(APROG-1).GT.1.D-5) GOTO 20 XNBELE=1.D0/DEN1 NBELEM=INT(XNBELE) NBELEM=MAX(1,NBELEM) IF (XNBELE/NBELEM.GT.(NBELEM+1)/XNBELE) NBELEM=NBELEM+1 IF (INBR.LT.0) NBELEM=-INBR DEN1=1.D0/DBLE(NBELEM) GOTO 21 20 CONTINUE XNBELE=(LOG(DEN2/DEN1)/LOG(APROG)) NBELEM=INT(XNBELE) NBELEM=MAX(1,NBELEM) IF (XNBELE/NBELEM.GT.(NBELEM+1)/XNBELE) NBELEM=NBELEM+1 IF (INBR.LT.0) NBELEM=-INBR 21 CONTINUE IF (ABS(APROG-1).GT.1.D-5) $ DEN1=(1-APROG)/((1-APROG**NBELEM)*APROG) DENI=DEN1*DLONG DECA=(DEN2-DEN1)*DLONG GOTO 101 100 APROG=1.D0 NBELEM=INBR DEN1=1.D0/INBR DENI=DLONG/INBR DECA=0 101 CONTINUE RETURN END