ntap21
C NTAP21 SOURCE CHAT 05/01/13 02:02:08 5004 * NPDR,N,MCP,MCQ,M,MVDU,MVDL,ITI,ITK) * IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) REAL*8 NORMP,NORMPM LOGICAL ADMI,UNAD -INC PPARAM -INC CCOPTIO -INC CCREEL -INC SMLREEL -INC TMXMAT -INC SMLENTI POINTEUR MLREE4.MLREEL,MLREE5.MLREEL POINTEUR MLREE6.MLREEL,MLREE7.MLREEL,MLREE8.MLREEL * UNAD=.FALSE. VFPMIN=XGRAND NORMPM=XGRAND N11=N+1 MLENT1=ITI MLENT2=ITK LDIM1=NPDR LDIM2=2 SEGINI MXMAT,MXMA1 MXMA2=MVDU MXMA3=MVDL SEGACT MXMA2,MXMA3 DO 1 I=1,NPDR XMAT(I,1)=MXMA2.XMAT(MLENT1.LECT(I),MLENT2.LECT(I)-1) XMAT(I,2)=MXMA2.XMAT(MLENT1.LECT(I),MLENT2.LECT(I)) MXMA1.XMAT(I,1)=MXMA3.XMAT(MLENT1.LECT(I),MLENT2.LECT(I)-1) MXMA1.XMAT(I,2)=MXMA3.XMAT(MLENT1.LECT(I),MLENT2.LECT(I)) 1 CONTINUE MLREEL=IBU SEGACT MLREEL SEGINI MLREE6,MLREE7 SEGINI MLREE4,MLREE5 SEGINI MLREE2,MLREE3 IBBU=MLREE2 IBBL=MLREE3 DO 2 I=0,(2**NPDR)-1 ADMI=.TRUE. * * SAUVEGARDE DE IBU,IBL * MLREEL=IBU MLREE1=IBL SEGACT MLREEL,MLREE1 DO 10 J=1,N11 10 CONTINUE * K=I JG=NPDR SEGINI MLENTI DO 3 J=NPDR-1,0,-1 LECT(J+1)=INT(K/(2**J)) K=K-(2**J)*LECT(J+1) 3 CONTINUE DO 4 J=1,NPDR 4 CONTINUE * * TEST SI IBU,IBL EST UN PT DUAL ADMISSIBLE * SEGINI MLREEL,MLREE1 DO 41 J=1,N11 41 CONTINUE MXMA2=MCP MXMA3=MCQ MLREE8=IVB NORMP=0.D0 DO 42 J=1,M IF(DIF.GT.0.D0)THEN IF(UNAD) GO TO 2 ADMI=.FALSE. NORMP=NORMP+(DIF**2) ENDIF 42 CONTINUE * * CALCUL DE LA VALEUR DE LA FONCTION PRIMALE VFP DE X * IF(ADMI) THEN IF(IIMPI.EQ.1799) *WRITE(IOIMP,FMT='( '' POINT ADMISSIBLE '' )') MLREE6=IVFP MLREE7=IVFQ SEGACT MLREE6,MLREE7 VFP=0. DO 5 J = 1,N11 5 CONTINUE UNAD=.TRUE. * * RECHERCHE DU MIN DE VFP POUR LES PTS ADMISSIBLES * IF(VFP.LT.VFPMIN) THEN VFPMIN=VFP DO 20 J=1,N11 20 CONTINUE ENDIF ENDIF * * RECHERCHE DU PT QUI RESPECTE AU MIEUX LES CONTRAINTES SI PAS DE SOL * IF(.NOT.UNAD)THEN IF(NORMP.LT.NORMPM) THEN NORMPM=NORMP DO 21 J=1,N11 21 CONTINUE ENDIF ENDIF 2 CONTINUE IF(.NOT.UNAD) THEN IF(IIMPI.EQ.1799) *WRITE(IOIMP,FMT='( '' PAS DE POINT ADMISSIBLE '' )') ENDIF MLREEL=IBBU MLREE1=IBBL MLREE2=IBU MLREE3=IBL SEGACT MLREEL,MLREE1,MLREE2,MLREE3 DO 30 I=1,N11 30 CONTINUE IF(IIMPI.EQ.1799) WRITE(IOIMP,FMT='('' VALEURS DE X DANS ETAP21 IF(IIMPI.EQ.1799) WRITE(IOIMP,FMT='('' VALEURS DE X DANS ETAP21 RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales