Я делаю этот код, чтобы решить Runge-Kutta, мой компилятор не показывает ничего плохого, но не дает мне ничего, чтобы проверить, действительно ли это правильно.
Я не уверен, что код в порядке, но я использую опцию Отладка, и она ничего мне не показывает.Он только сказал мне
The program '[1328] Console2.exe' has exited with code 0 (0x0).
Program Runge-Kutta
INTEGER i, n
PARAMETER (n=101,m=101)
REAL (kind=8) eta(i), psi(i), teta(i)
REAL (kind=8) k1(i), k2(i), k3(i), k4(i), l1(i), l2(i), l3(i), l4(i)
REAL (kind=8) f(i), g(i)
REAL (kind=8) h
-----------------definition of parameters--------------------
PARAMETER (h=0.01)
------------------ initial conditions---------------------
eta(1)= 0.d0
teta(1)= 0.d0
eta(n)= 1
teta(n)= 1
psi(1)= 0.d0
декларация функций оценки
FUNCTION f(eta(i), psi(i), teta(i))
DO i=1, n
f= psi(i)
ENDDO
ENDFUNCTION
FUNCTION g(eta(i), psi(i), teta(i))
DO i=1, n
g=-(1/2) eta(i) psi(i)
ENDDO
ENDFUNCTION
получить значения K
DO i=1, n
k1(i)= h * f
l1(i)= h * g
!k2(n)= h * f(eta(i) + (h/2), psi(i) + (l1(i)/2), teta(i) + (k1(i)/2))
!l2(n)= h * g(eta(i) + (h/2), psi(i) + (l1(i)/2), teta(i) + (k1(i)/2))
!k3(n)= h * f(eta(i) + (h/2), psi(i) + (l2(i)/2), teta(i) + (k2(i)/2))
!l3(n)= h * g(eta(i) + (h/2), psi(i) + (l2(i)/2), teta(i) + (k2(i)/2))
!k4(n)= h * f(eta(i) + h, psi(i) + l3(i), teta(i) + k3(i))
!l4(n)= h * g(eta(i) + h, psi(i) + l3(i), teta(i) + k3(i))
teta(i+1)= teta(i) + (1/6)*(k1(i)) !+ 2 * k2(i)+2* k3(i) +k4(i))
psi(i+1)= psi(i) + (1/6)*(l1(i)) !+ 2* l2(i)+2* l3(i) +l4(i))
ENDDO
If(n==100)then
----------------------------------------- archivos DATOS ------------------------------
OPEN(unit=12,file='datos RK.dat')
WRITE(12,*)'TITLE = "Grid" '
WRITE(12,*)'VARIABLES = "x"'
WRITE(12,*)'"RK"' ! variable
WRITE(12,*)'ZONE T= "Matrix"'
---------------------------------------- ESCRITURA DE LAS VARIABLES ----------------------------------
DO i=1,n
WRITE(12,*) teta(i), psi(i)
END DO
CLOSE(unit=12)
End Program Runge-Kutta