Télécharger ntap21.eso

Retour à la liste

Numérotation des lignes :

ntap21
  1. C NTAP21 SOURCE CHAT 05/01/13 02:02:08 5004
  2. SUBROUTINE NTAP21(IVFP,IVFQ,IVLAMB,IVB,IBU,IBL,
  3. * NPDR,N,MCP,MCQ,M,MVDU,MVDL,ITI,ITK)
  4. *
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7. REAL*8 NORMP,NORMPM
  8. LOGICAL ADMI,UNAD
  9.  
  10. -INC PPARAM
  11. -INC CCOPTIO
  12. -INC CCREEL
  13. -INC SMLREEL
  14. -INC TMXMAT
  15. -INC SMLENTI
  16. POINTEUR MLREE4.MLREEL,MLREE5.MLREEL
  17. POINTEUR MLREE6.MLREEL,MLREE7.MLREEL,MLREE8.MLREEL
  18. *
  19. UNAD=.FALSE.
  20. VFPMIN=XGRAND
  21. NORMPM=XGRAND
  22. N11=N+1
  23. MLENT1=ITI
  24. MLENT2=ITK
  25. LDIM1=NPDR
  26. LDIM2=2
  27. SEGINI MXMAT,MXMA1
  28. MXMA2=MVDU
  29. MXMA3=MVDL
  30. SEGACT MXMA2,MXMA3
  31. DO 1 I=1,NPDR
  32. XMAT(I,1)=MXMA2.XMAT(MLENT1.LECT(I),MLENT2.LECT(I)-1)
  33. XMAT(I,2)=MXMA2.XMAT(MLENT1.LECT(I),MLENT2.LECT(I))
  34. MXMA1.XMAT(I,1)=MXMA3.XMAT(MLENT1.LECT(I),MLENT2.LECT(I)-1)
  35. MXMA1.XMAT(I,2)=MXMA3.XMAT(MLENT1.LECT(I),MLENT2.LECT(I))
  36. 1 CONTINUE
  37. MLREEL=IBU
  38. SEGACT MLREEL
  39. JG=PROG(/1)
  40. SEGINI MLREE6,MLREE7
  41. SEGINI MLREE4,MLREE5
  42. SEGINI MLREE2,MLREE3
  43. IBBU=MLREE2
  44. IBBL=MLREE3
  45. DO 2 I=0,(2**NPDR)-1
  46. ADMI=.TRUE.
  47. *
  48. * SAUVEGARDE DE IBU,IBL
  49. *
  50. MLREEL=IBU
  51. MLREE1=IBL
  52. SEGACT MLREEL,MLREE1
  53. DO 10 J=1,N11
  54. MLREE4.PROG(J)=PROG(J)
  55. MLREE5.PROG(J)=MLREE1.PROG(J)
  56. 10 CONTINUE
  57. *
  58. K=I
  59. JG=NPDR
  60. SEGINI MLENTI
  61. DO 3 J=NPDR-1,0,-1
  62. LECT(J+1)=INT(K/(2**J))
  63. K=K-(2**J)*LECT(J+1)
  64. 3 CONTINUE
  65. DO 4 J=1,NPDR
  66. MLREE4.PROG(MLENT1.LECT(J))=XMAT(J,LECT(J)+1)
  67. MLREE5.PROG(MLENT1.LECT(J))=MXMA1.XMAT(J,LECT(J)+1)
  68. 4 CONTINUE
  69. *
  70. * TEST SI IBU,IBL EST UN PT DUAL ADMISSIBLE
  71. *
  72. JG=MLREE4.PROG(/1)
  73. SEGINI MLREEL,MLREE1
  74. DO 41 J=1,N11
  75. PROG(J)=1.D0/MLREE4.PROG(J)
  76. MLREE1.PROG(J)=1.D0/MLREE5.PROG(J)
  77. 41 CONTINUE
  78. MXMA2=MCP
  79. MXMA3=MCQ
  80. CALL MATVE1(MXMA2.XMAT,PROG,M,N11,MLREE6.PROG,2)
  81. CALL MATVE1(MXMA3.XMAT,MLREE1.PROG,M,N11,MLREE7.PROG,2)
  82. MLREE8=IVB
  83. NORMP=0.D0
  84. DO 42 J=1,M
  85. DIF=MLREE6.PROG(J)+MLREE7.PROG(J)-MLREE8.PROG(J)
  86. IF(DIF.GT.0.D0)THEN
  87. IF(UNAD) GO TO 2
  88. ADMI=.FALSE.
  89. NORMP=NORMP+(DIF**2)
  90. ENDIF
  91. 42 CONTINUE
  92. *
  93. * CALCUL DE LA VALEUR DE LA FONCTION PRIMALE VFP DE X
  94. *
  95. IF(ADMI) THEN
  96. IF(IIMPI.EQ.1799)
  97. *WRITE(IOIMP,FMT='( '' POINT ADMISSIBLE '' )')
  98. MLREE6=IVFP
  99. MLREE7=IVFQ
  100. SEGACT MLREE6,MLREE7
  101. VFP=0.
  102. DO 5 J = 1,N11
  103. VFP=VFP+(PROG(J)*MLREE6.PROG(J))+
  104. * (MLREE1.PROG(J)*MLREE7.PROG(J))
  105. 5 CONTINUE
  106. UNAD=.TRUE.
  107. *
  108. * RECHERCHE DU MIN DE VFP POUR LES PTS ADMISSIBLES
  109. *
  110. IF(VFP.LT.VFPMIN) THEN
  111. VFPMIN=VFP
  112. DO 20 J=1,N11
  113. MLREE2.PROG(J)=MLREE4.PROG(J)
  114. MLREE3.PROG(J)=MLREE5.PROG(J)
  115. 20 CONTINUE
  116. ENDIF
  117. ENDIF
  118. *
  119. * RECHERCHE DU PT QUI RESPECTE AU MIEUX LES CONTRAINTES SI PAS DE SOL
  120. *
  121. IF(.NOT.UNAD)THEN
  122. IF(NORMP.LT.NORMPM) THEN
  123. NORMPM=NORMP
  124. DO 21 J=1,N11
  125. MLREE2.PROG(J)=MLREE4.PROG(J)
  126. MLREE3.PROG(J)=MLREE5.PROG(J)
  127. 21 CONTINUE
  128. ENDIF
  129. ENDIF
  130. 2 CONTINUE
  131. IF(.NOT.UNAD) THEN
  132. IF(IIMPI.EQ.1799)
  133. *WRITE(IOIMP,FMT='( '' PAS DE POINT ADMISSIBLE '' )')
  134. ENDIF
  135. MLREEL=IBBU
  136. MLREE1=IBBL
  137. MLREE2=IBU
  138. MLREE3=IBL
  139. SEGACT MLREEL,MLREE1,MLREE2,MLREE3
  140. DO 30 I=1,N11
  141. MLREE2.PROG(I)=PROG(I)
  142. MLREE3.PROG(I)=MLREE1.PROG(I)
  143. 30 CONTINUE
  144. IF(IIMPI.EQ.1799) WRITE(IOIMP,FMT='('' VALEURS DE X DANS ETAP21
  145. * = IBU :'',/,(1X,5E12.5))')(MLREE2.PROG(I),I=1,N11)
  146. IF(IIMPI.EQ.1799) WRITE(IOIMP,FMT='('' VALEURS DE X DANS ETAP21
  147. * = IBL :'',/,(1X,5E12.5))')(MLREE3.PROG(I),I=1,N11)
  148. RETURN
  149. END
  150.  
  151.  
  152.  
  153.  
  154.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales