C NTAPE1 SOURCE CHAT 05/01/13 02:02:13 5004 SUBROUTINE NTAPE1(MCP,MCQ,IVFP,IVFQ,IVLAMB,NVD,M,N,MVDU, $ MVDL,IVMINU,IVMINL,IVMAXU,IVMAXL,IVU,IVN,IVD,IVUL,IVLL, $ IVXU,IVXL) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCOPTIO -INC TMXMAT -INC SMLENTI -INC SMLREEL POINTEUR MLREE4.MLREEL,MLREE5.MLREEL POINTEUR MLREE6.MLREEL,MLREE7.MLREEL MXMAT=MCP N11= N + 1 MLREEL=IVLAMB JG =XMAT(/2) SEGINI MLREE1,MLREE2 CALL MATVE1(XMAT,PROG,M,N11,MLREE1.PROG,1) MXMAT=MCQ CALL MATVE1(XMAT,PROG,M,N11,MLREE2.PROG,1) MLREEL=IVFP CALL AEQAPB(MLREE1.PROG,PROG,N11) MLREEL=IVFQ CALL AEQAPB(MLREE2.PROG,PROG,N11) * * EVALUATION DES VARIABLES DISCRETES * JG=N11 SEGINI MLREEL,MLREE3 IF(NVD.NE.0) THEN MXMAT=MVDU MXMA1=MVDL NDIS=XMAT(/2)-2 JG=NVD SEGINI MLREE4 DO 2 I=1,NVD CT=MLREE1.PROG(I) IF (MLREE1.PROG(I).LT.1.D-15) CT=1.D-15 MLREE4.PROG(I)=MLREE2.PROG(I)/CT 2 CONTINUE DO 1 I=1,NVD PROG(I)=XMAT(I,2) MLREE3.PROG(I)=MXMA1.XMAT(I,2) DO 4 K=3,NDIS XXK=XMAT(I,K-1)*XMAT(I,K) XXK=MXMA1.XMAT(I,K-1)*MXMA1.XMAT(I,K)/XXK XXK1=XMAT(I,K)*XMAT(I,K+1) XXK1=MXMA1.XMAT(I,K)*MXMA1.XMAT(I,K+1)/XXK1 IF(XXK.LE.MLREE4.PROG(I).AND.XXK1.GT.MLREE4.PROG(I)) THEN PROG(I)=XMAT(I,K) MLREE3.PROG(I)=MXMA1.XMAT(I,K) GO TO 1 ENDIF XXF=XMAT(I,NDIS+1)*XMAT(I,NDIS) XXF=MXMA1.XMAT(I,NDIS+1)*MXMA1.XMAT(I,NDIS)/XXF IF(XXF.LE.MLREE4.PROG(I)) THEN PROG(I)=XMAT(I,NDIS+1) MLREE3.PROG(I)=MXMA1.XMAT(I,NDIS+1) ENDIF 4 CONTINUE 1 CONTINUE SEGSUP MLREE4 ENDIF * * EVALUATIONS DES VARIABLES CONTINUES * NK=N11-NVD JG=N11 SEGINI MLENTI DO 3 I=1,NK J=I+NVD * DERIVEE EN XMIN MLREE4=IVMINU MLREE5=IVMINL T1=MLREE1.PROG(J)/(MLREE4.PROG(J)**2) T1=T1-(MLREE2.PROG(J)/(MLREE5.PROG(J)**2)) * DERIVEE EN XMAX MLREE6=IVMAXU MLREE7=IVMAXL T2=MLREE1.PROG(J)/(MLREE6.PROG(J)**2) T2=T2-(MLREE2.PROG(J)/(MLREE7.PROG(J)**2)) * CHOIX DE X(LAMBDA) IF(T1.GE.0.D0) THEN PROG(J)=MLREE4.PROG(J) MLREE3.PROG(J)=MLREE5.PROG(J) ENDIF IF(T2.LE.0.D0) THEN PROG(J)=MLREE6.PROG(J) MLREE3.PROG(J)=MLREE7.PROG(J) ENDIF MLREE4=IVUL MLREE5=IVLL IF(T1.LT.0.D0.AND.T2.GT.0.D0) THEN CTE=SQRT(MLREE1.PROG(J))*MLREE5.PROG(J) CTE=CTE+(SQRT(MLREE2.PROG(J))*MLREE4.PROG(J)) CTE=CTE/(SQRT(MLREE1.PROG(J))+SQRT(MLREE2.PROG(J))) PROG(J)=MLREE4.PROG(J)-CTE MLREE3.PROG(J)=CTE-MLREE5.PROG(J) LECT(J)=1 ENDIF 3 CONTINUE IF(IVXU.NE.0) THEN MLREE7=IVXU SEGSUP MLREE7 ENDIF IF(IVXL.NE.0) THEN MLREE7=IVXL SEGSUP MLREE7 ENDIF IF(IVU.NE.0) THEN MLENT1=IVU SEGSUP MLENT1 ENDIF IF(IVN.NE.0) THEN MLREE7=IVN SEGSUP MLREE7 ENDIF IF(IVD.NE.0) THEN MLREE7=IVD SEGSUP MLREE7 ENDIF IVXU=MLREEL IVXL=MLREE3 IVU=MLENTI IVN=MLREE1 IVD=MLREE2 RETURN END