На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > FORTRAN. Подпрограмма SIMQ , Компилятор не понимает SIMQ
      Всем доброе время суток.
      Пытаюсь написать простую программку, да компилятор (FPS 4.0) не дает.
      Ругается:

      --------------------Configuration: zadacha2 - Win32 Debug--------------------
      Linking...
      zadacha2.obj : error LNK2001: unresolved external symbol _SIMQ@16
      zadacha2.exe : fatal error LNK1120: 1 unresolved externals
      Error executing link.exe.
      zadacha2.exe - 2 error(s), 0 warning(s)
      -----------------------------------------------------------------------------

      Подпрограмма SIMQ по идее стандартная. Кто-нибудь, наставьте на путь истинный!

      Текст программы:
      -----------------------------------------------------------------------------

      program ZADACHA2

      integer, parameter :: n = 4 ! Число уравнений в системе
      dimension A(n,n) ! Массив коэффициентов при X
      dimension B(n) ! Массив свободных членов
      integer i ! Параметр цикла
      integer IER ! Код ошибки для SIMQ

      print *, "ZADANIE 2"

      ! -- Ввод элементов массивов

      print *, "Vvedite koefficzienty pri X po strokam:"
      read (*,*) ((a(i,j), j=1,n), i = 1, n)

      print *, "Vvedite massiv svobodnyh chlenov:"
      read (*,*) (B(i), i = 1, n)

      ! -- Вызов подпрограммы SIMQ для решения
      ! системы линейных алгебраических уравнений

      call SIMQ(A, B, n, IER)

      if (IER.EQ.0) then
      print *, "Reshenie najdeno: "
      do i = 1, n
      write (*, 20) i, B(i)
      20 format(2x, "B(", i2, ") = ", f6.3)
      end do
      end if

      if (IER.EQ.1) then
      write (*, *) "Reshenie ne najdeno: "
      end if

      if (IER.EQ.2) then
      write (*, *) "Nevernoe kolichestvo uravnenj."
      end if

      pause "Pause. Press ENTER to continue . . ."

      end program ZADACHA2
      ------------------------------------------------------------------------------
      А может быть SIMQ вовсе и не стандартная подпрограмма?
        на винграде тебе уже ответили, что это не стандартная процедура. Смотри либо в IMSL, либо вот на 77 код
        ExpandedWrap disabled
                SUBROUTINE SIMQ(A,B,N,KS)
           
                DIMENSION A(N),B(N)
                TOL=0.0
                KS=0
                JJ=-N
                DO 65 J=1,N
                JY=J+1
                JJ=JJ+N+1
                BIGA=0
                IT=JJ-J
                DO 30 I=J,N
                IJ=IT+I
                IF(ABS(BIGA)-ABS(A(IJ))) 20,30,30
          20    BIGA=A(IJ)
                IMAX=I
          30    CONTINUE
                IF(ABS(BIGA)-TOL) 35,35,40
          35    KS=1
                RETURN
          40    I1=J+N*(J-2)
                IT=IMAX-J
                DO 50 K=J,N
                I1=I1+N
                I2=I1+IT
                SAVE=A(I1)
                A(I1)=A(I2)
                A(I2)=SAVE
          50    A(I1)=A(I1)/BIGA
                SAVE=B(IMAX)
                B(IMAX)=B(J)
                B(J)=SAVE/BIGA
                IF(J-N) 55,70,55
          55    IQS=N*(J-1)
                DO 65 IX=JY,N
                IXJ=IQS+IX
                IT=J-IX
                DO 60 JX=JY,N
                IXJX=N*(JX-1)+IX
                JJX=IXJX+IT
          60    A(IXJX)=A(IXJX)-(A(IXJ)*A(JJX))
          65    B(IX)=B(IX)-(B(J)*A(IXJ))
          70    NY=N-1
                IT=N*N
                DO 80 J=1,NY
                IA=IT-J
                IB=N-J
                IC=N
                DO 80 K=1,J
                B(IB)=B(IB)-A(IA)*B(IC)
                IA=IA-N
          80    IC=IC-1
                RETURN
                END
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0240 ]   [ 16 queries used ]   [ Generated: 25.04.24, 13:20 GMT ]