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, насколько я наблюдаю, вообще не объявляются, а просто им присваивается некоторое значение; может быть, из-за этого компилятор не знает, какой тип поставить в соответствие при операциях с разными типами (вроде присвоения такого вот неявного значения элементу массива)? Извините, что не выкладываю код - он весьма объемен для поста на борде... А кусками его выкладывать, опять же, либо неэффективно, либо тоже многовато будет. |