I am trying to take a derivative of an array but am having trouble. The array is two dimensional, x
and y
directions. I would like to take a derivative along x
and along y
using central difference discretization. The array has random values of numbers, no values are NaN. I will provide a basic portion of the code below to illustrate my point (assume the array u
is defined and has some initial values already inputted into it)
integer :: i,j
integer, parameter :: nx=10, ny=10
real, dimension(-nx:nx, -ny:ny) :: u,v,w
real, parameter :: h
do i=-nx,nx
do j=-ny,ny
v = (u(i+1,j)-u(i-1,j))/(2*h)
w = (u(i,j+1)-u(i,j-1))/(2*h)
end do
end do
Note, assume the array u
is defined and filled up before I find v
,w
. v
,w
are supposed to be derivatives of the array u
along x
and along y
,respectively. Is this the correct way to take a derivative of an array?