Я относительно новичок в программировании, и сейчас я пытаюсь написать программу с использованием Fortran 77, которая будет использовать метод решения уравнения Рунге-Кутта для определения температуры сферического мяч при определенном значении времени. В любом случае, уравнение в порядке, похоже, не вызывает никаких проблем, это, по-видимому, программирование самого метода РК.«Неожиданная ссылка на массив» в Fortran 77
Когда я говорю, что он компилируется, он представляет повторяющиеся ошибки в отношении «неожиданной ссылки на массив». Если кто-нибудь может дать мне несколько указателей о том, где я ошибаюсь, было бы очень признательно. Я развесить код и результаты ниже:
PROGRAM RKSubroutine
IMPLICIT NONE
DIMENSION t(3), y(3)
func=(-2.2067E-12)*((y**4)-(81E8));
y0=1200;
h1=240;
a=0;
b=480;
func is name of function to be evaluated
a & b are the limits of integration
y0 is the initial condition
h1 is the stepsize
t=[a];
y=[y0];
i=1;
while t(i)<b
h=h1
k1=feval(func,t(i), y(i));
k2=feval(func,t(i)+h/2,y(i)+k1*h/2);
k3=feval(func,t(i)+h/2,y(i)+k2*h/2);
k2=feval(func,t(i)+h,y(i)+k3*h);
y1=y(i)+(k1+2*k2+2*k3+k4)*h/6;
i=i+1;
t(i)=t(i-1)+h1;
stop
end
После небольшой модификации следующих Bradys предложения ниже, сейчас я только получаю ошибку, казалось бы, независимо от значения размерности T в:
`In file RK.f:21
while t(i)<b
1
Error: Unexpected array reference at (1)
Большое спасибо!
Откуда у вас этот код? Это не FORTRAN77 - вы запускаете какие-либо простые программы FORTRAN? см. http://en.wikipedia.org/wiki/Fortran#FORTRAN_77 –
Привет, Питер. Я написал несколько простых программ F77 раньше, но это был первый раз, когда я попытался использовать метод RK для решения проблемы. Я написал код с небольшой помощью из статьи Wiki об общем методе четвертого порядка Runge-Kutta http://en.wikipedia.org/wiki/Runge-Kutta_methods – PhysProg