<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=320947&amp;view=findpost&amp;p=2777865</guid>
        <pubDate>Mon, 13 Dec 2010 18:17:24 +0000</pubDate>
        <title>FORTRAN. Подпрограмма SIMQ</title>
        <link>https://forum.sources.ru/index.php?showtopic=320947&amp;view=findpost&amp;p=2777865</link>
        <description><![CDATA[NetVir: на винграде тебе уже ответили, что это не стандартная процедура. Смотри либо в IMSL, либо вот на 77 код<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SUBROUTINE SIMQ(A,B,N,KS) </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DIMENSION A(N),B(N) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;TOL=0.0 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;KS=0 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;JJ=-N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DO 65 J=1,N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;JY=J+1 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;JJ=JJ+N+1 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;BIGA=0 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IT=JJ-J </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DO 30 I=J,N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IJ=IT+I </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IF(ABS(BIGA)-ABS(A(IJ))) 20,30,30 </div><div class="code_line">20 &nbsp; &nbsp;BIGA=A(IJ) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IMAX=I </div><div class="code_line">30 &nbsp; &nbsp;CONTINUE </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IF(ABS(BIGA)-TOL) 35,35,40 </div><div class="code_line">35 &nbsp; &nbsp;KS=1 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;RETURN </div><div class="code_line">40 &nbsp; &nbsp;I1=J+N*(J-2) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IT=IMAX-J </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DO 50 K=J,N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;I1=I1+N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;I2=I1+IT </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SAVE=A(I1) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;A(I1)=A(I2) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;A(I2)=SAVE </div><div class="code_line">50 &nbsp; &nbsp;A(I1)=A(I1)/BIGA </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SAVE=B(IMAX) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;B(IMAX)=B(J) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;B(J)=SAVE/BIGA </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IF(J-N) 55,70,55 </div><div class="code_line">55 &nbsp; &nbsp;IQS=N*(J-1) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DO 65 IX=JY,N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IXJ=IQS+IX </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IT=J-IX </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DO 60 JX=JY,N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IXJX=N*(JX-1)+IX </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;JJX=IXJX+IT </div><div class="code_line">60 &nbsp; &nbsp;A(IXJX)=A(IXJX)-(A(IXJ)*A(JJX)) </div><div class="code_line">65 &nbsp; &nbsp;B(IX)=B(IX)-(B(J)*A(IXJ)) </div><div class="code_line">70 &nbsp; &nbsp;NY=N-1 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IT=N*N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DO 80 J=1,NY </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IA=IT-J </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IB=N-J </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IC=N </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DO 80 K=1,J </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;B(IB)=B(IB)-A(IA)*B(IC) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IA=IA-N </div><div class="code_line">80 &nbsp; &nbsp;IC=IC-1 </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;RETURN </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;END</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>NetVir</author>
        <category>Fortran</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=320947&amp;view=findpost&amp;p=2777389</guid>
        <pubDate>Mon, 13 Dec 2010 12:08:36 +0000</pubDate>
        <title>FORTRAN. Подпрограмма SIMQ</title>
        <link>https://forum.sources.ru/index.php?showtopic=320947&amp;view=findpost&amp;p=2777389</link>
        <description><![CDATA[forum_xxx: Всем доброе время суток.<br>Пытаюсь написать простую программку, да компилятор (FPS 4.0) не дает. <br>Ругается:<br><br>--------------------Configuration: zadacha2 - Win32 Debug--------------------<br>Linking...<br>zadacha2.obj : error LNK2001: unresolved external symbol _SIMQ@16<br>zadacha2.exe : fatal error LNK1120: 1 unresolved externals<br>Error executing link.exe.<br>zadacha2.exe - 2 error(s), 0 warning(s)<br>-----------------------------------------------------------------------------<br><br>Подпрограмма SIMQ по идее стандартная. Кто-нибудь, наставьте на путь истинный&#33;<br><br>Текст программы:<br>-----------------------------------------------------------------------------<br><br>program ZADACHA2<br><br>integer, parameter :: n = 4                  &#33; Число уравнений в системе<br>dimension A(n,n)                                  &#33; Массив коэффициентов при X<br>dimension B(n)                                         &#33; Массив свободных членов<br>integer i                                                &#33; Параметр цикла<br>integer IER                                           &#33; Код ошибки для SIMQ<br><br>print *, &quot;ZADANIE 2&quot;<br><br>&#33; -- Ввод элементов массивов<br><br>print *, &quot;Vvedite koefficzienty pri X po strokam:&quot;<br>read (*,*) ((a(i,j), j=1,n), i = 1, n)<br><br>print *, &quot;Vvedite massiv svobodnyh chlenov:&quot;<br>read (*,*) (B(i), i = 1, n)<br><br>&#33; -- Вызов подпрограммы SIMQ для решения<br>&#33; системы линейных алгебраических уравнений<br><br>call SIMQ(A, B, n, IER)<br><br>if (IER.EQ.0) then<br>print *, &quot;Reshenie najdeno: &quot;<br>do i = 1, n<br>write (*, 20) i, B(i)<br>20 format(2x, &quot;B(&quot;, i2, &quot;) = &quot;, f6.3)<br>end do<br>end if<br><br>if (IER.EQ.1) then<br>write (*, *) &quot;Reshenie ne najdeno: &quot;<br>end if<br><br>if (IER.EQ.2) then<br>write (*, *) &quot;Nevernoe kolichestvo uravnenj.&quot;<br>end if<br><br>pause &quot;Pause. Press ENTER to continue . . .&quot;<br><br>end program ZADACHA2<br>------------------------------------------------------------------------------<br>А может быть SIMQ вовсе и не стандартная подпрограмма?]]></description>
        <author>forum_xxx</author>
        <category>Fortran</category>
      </item>
	
      </channel>
      </rss>
	