Télécharger simplx.eso

Retour à la liste

Numérotation des lignes :

simplx
  1. C SIMPLX SOURCE CHAT 05/01/13 03:18:54 5004
  2. SUBROUTINE SIMPLX(A,M,N,MP,NP,M1,M2,M3,ICASE,IZROV,IPOSV,
  3. > EPS,L1,L2,L3,MMAX)
  4. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  5. C C
  6. C METHODE DU SIMPLEX : CALCUL EFFECTIF APPELER PAR SIMPLE C
  7. C C
  8. C FORTRAN APPELLANT SIMP1,SIMP2 ET SIMP3 C
  9. C C
  10. C P.PEGON 31/8/92 C
  11. C C
  12. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  13. IMPLICIT INTEGER(I-N)
  14. IMPLICIT REAL*8(A-H,O-Z)
  15. DIMENSION A(MP,NP),IZROV(N),IPOSV(M),L1(MMAX),L2(MMAX),L3(MMAX)
  16. C
  17. NL1=N
  18. DO 11 K=1,N
  19. L1(K)=K
  20. IZROV(K)=K
  21. 11 CONTINUE
  22. C
  23. NL2=M
  24. DO 12 I=1,M
  25. L2(I)=I
  26. IPOSV(I)=N+I
  27. 12 CONTINUE
  28. C
  29. DO 13 I=1,M2
  30. L3(I)=1
  31. 13 CONTINUE
  32. C
  33. IR=0
  34. IF(M2+M3.EQ.0)GOTO 30
  35. C
  36. IR=1
  37. DO 15 K=1,N+1
  38. Q1=0.D0
  39. DO 14 I=M1+1,M
  40. Q1=Q1+A(I+1,K)
  41. 14 CONTINUE
  42. A(M+2,K)=-Q1
  43. 15 CONTINUE
  44. C
  45. 10 CALL SIMP1(A,MP,NP,M+1,L1,NL1,0,KP,BMAX)
  46. C
  47. IF(BMAX.LE.EPS.AND.A(M+2,1).LT.-EPS)THEN
  48. ICASE=-1
  49. RETURN
  50. C
  51. ELSEIF(BMAX.LE.EPS.AND.A(M+2,1).LE.EPS)THEN
  52. M12=M1+M2+1
  53. C
  54. IF(M12.LE.M)THEN
  55. DO 16 IP=M12,M
  56. IF(IPOSV(IP).EQ.IP+N)THEN
  57. CALL SIMP1(A,MP,NP,IP,L1,NL1,1,KP,BMAX)
  58. IF(BMAX.GT.0.D0)GOTO 1
  59. ENDIF
  60. 16 CONTINUE
  61. ENDIF
  62. C
  63. IR=0
  64. M12=M12-1
  65. IF(M1+1.GT.M12)GOTO 30
  66. DO 18 I=M1+1,M12
  67. IF(L3(I-M1).EQ.1)THEN
  68. DO 17 K=1,N+1
  69. A(I+1,K)=-A(I+1,K)
  70. 17 CONTINUE
  71. ENDIF
  72. 18 CONTINUE
  73. GOTO 30
  74. C
  75. ENDIF
  76. C
  77. CALL SIMP2(A,M,N,MP,NP,L2,NL2,IP,KP,Q1,EPS)
  78. IF(IP.EQ.0)THEN
  79. ICASE=-1
  80. RETURN
  81. ENDIF
  82. C
  83. 1 CALL SIMP3(A,MP,NP,M+1,N,IP,KP)
  84. IF(IPOSV(IP).GE.N+M1+M2+1)THEN
  85. DO 19 K=1,NL1
  86. IF(L1(K).EQ.KP)GOTO 2
  87. 19 CONTINUE
  88. 2 NL1=NL1-1
  89. DO 21 IS=K,NL1
  90. L1(IS)=L1(IS+1)
  91. 21 CONTINUE
  92. ELSE
  93. IF(IPOSV(IP).LT.N+M1+1)GOTO 20
  94. KH=IPOSV(IP)-M1-N
  95. IF(L3(KH).EQ.0)GOTO 20
  96. L3(KH)=0
  97. ENDIF
  98. C
  99. A(M+2,KP+1)=A(M+2,KP+1)+1.D0
  100. DO 22 I=1,M+2
  101. A(I,KP+1)=-A(I,KP+1)
  102. 22 CONTINUE
  103. C
  104. 20 IS=IZROV(KP)
  105. IZROV(KP)=IPOSV(IP)
  106. IPOSV(IP)=IS
  107. C
  108. IF(IR.NE.0)GOTO 10
  109. C
  110. 30 CALL SIMP1(A,MP,NP,0,L1,NL1,0,KP,BMAX)
  111. IF(BMAX.LE.0.D0)THEN
  112. ICASE=0
  113. RETURN
  114. ENDIF
  115. C
  116. CALL SIMP2(A,M,N,MP,NP,L2,NL2,IP,KP,Q1,EPS)
  117. IF(IP.EQ.0)THEN
  118. ICASE=1
  119. RETURN
  120. ENDIF
  121. C
  122. CALL SIMP3(A,MP,NP,M,N,IP,KP)
  123. GOTO 20
  124. C
  125. END
  126.  
  127.  

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