Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Scampada

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
'K, с этим разобрался.
Действия:
1. Засунул общие переменные и все подпрограммы и функции в отдельный файл модуля в виде
module all_needed
 integer :: N, LIM
 integer, dimension(, allocatable :: IJ
 real, dimension(, allocatable :: E, G, XX, YY, ZZ, H, Y, Z, A, V
contains
...
end
2. Скомпилировал.
Выход перенаправил в файл, в консоль все ошибки не поместились. Вот:
 
ALL_YOU_NEED.f95:457.12:
 
            HUNS = (H*SCALE)*SCALE
            1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:458.12:
 
            HI = ONE/H
            1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:554.12:
 
            EE = E(L) - Z
            1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:561.12:
 
            WW = E(L+1) - Z
            1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:562.12:
 
            E(L) = (FF*C + WW*S)*S + EE + Z
            1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:572.14:
 
              WW = E(J+1) - Z
              1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:573.14:
 
              E(J) = (FF*C + WW*S)*S + EE + Z
              1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:577.12:
 
            E(K) = E(K)*C + Z
            1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:350.6:
 
      S(IR)=A(IJ)
      1
Error: Incompatible ranks 0 and 1 in assignment at (1)
ALL_YOU_NEED.f95:256.14:
 
      CALL DI(Z)
              1
Error: Type mismatch in argument 'q' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:260.14:
 
      CALL DI(Y)
              1
Error: Type mismatch in argument 'q' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:264.18:
 
      CALL ANTCOM(A,Y,V)
                  1
Error: Type mismatch in argument 'a' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:267.14:
 
      CALL DI(Y)
              1
Error: Type mismatch in argument 'q' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:271.14:
 
      CALL DI(Z)
              1
Error: Type mismatch in argument 'q' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:206.15:
 
      CALL ABA(Y,A,1,V)
               1
Error: Type mismatch in argument 'a' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:209.15:
 
      CALL ABA(Z,A,1,V)
               1
Error: Type mismatch in argument 'a' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:212.18:
 
      CALL ANTCOM(A,Z,V)
                  1
Error: Type mismatch in argument 'a' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:217.15:
 
    4 P=P+DABS(A(K))
               1
Error: 'a' argument of 'dabs' intrinsic at (1) must be double precision
ALL_YOU_NEED.f95:158.27:
 
      CALL HQRII1(N,1,N,-1,A,E,N,V,.TRUE.,IER)
                           1
Error: Type mismatch in argument 'a' at (1); passed REAL(4) to REAL(8)
ALL_YOU_NEED.f95:143.15:
 
      DO 1 J=1,N/10.+0.99
               1
Warning: Deleted feature: End expression in DO loop at (1) must be integer
 
1. Incompatible ranks. Пример с контекстом (с купюрами):
 
DIMENSION ...W2(NX),...
PARAMETER (...,ONE=1.D0,...)
 
DO 8 J=KP1,NL
8 SCALE =ABS (A(IX(J)+K))+SCALE
SCALEI = ONE/SCALE
DO 10 J=KP1,NL
  W2(J) = A(IX(J)+K)*SCALEI
 10 SUM =W2(J)**2+ SUM
 
S = SIGN (SQRT (SUM),W2(KP1))
W2(KP1) = W2(KP1) +S
H = W2(KP1)*S
HUNS = (H*SCALE)*SCALE
 
(Остальные ошибки мне хоть сколько-нибудь понятны, с ними пока можно обождать)
Возможно, это дело происходит из-за неявного объявления переменных? Например, переменные HUNS, H, S, насколько я наблюдаю, вообще не объявляются, а просто им присваивается некоторое значение; может быть, из-за этого компилятор не знает, какой тип поставить в соответствие при операциях с разными типами (вроде присвоения такого вот неявного значения элементу массива)?
 
Извините, что не выкладываю код - он весьма объемен для поста на борде... А кусками его выкладывать, опять же, либо неэффективно, либо тоже многовато будет.

Всего записей: 6 | Зарегистр. 29-07-2012 | Отправлено: 23:24 29-07-2012
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru