00001
00002 subroutine f(X,func,n)
00003 use localParameters
00004 implicit none
00005 integer i,j,k,n,z
00006 integer index
00007 real(8) X(n),func(n)
00008 real(8) dx,dy
00009
00010
00011
00012
00013
00014
00015
00016 dx=(Lx)/(nx-1.d0)
00017 dy=(Ly)/(ny-1.d0)
00018
00019
00020
00021
00022 func=0.d0
00023
00024
00025
00026
00027
00028 func=X
00029
00030
00031
00032 j=1
00033 z=(j-1)*nx
00034 do i=1,nx
00035 index=(z+i-1)*unk+1
00036 func(index)=X(index)
00037 end do
00038
00039
00040
00041 j=ny
00042 z=(j-1)*nx
00043 do i=1,nx
00044 index=(z+i-1)*unk+1
00045 func(index)=X(index)
00046 end do
00047
00048
00049
00050
00051 i=1
00052
00053 do j=2,ny-1
00054 index=((j-1)*nx+i-1)*unk+1
00055 func(index)=X(index)
00056 end do
00057
00058
00059
00060 i=nx
00061
00062 do j=2,ny-1
00063 index=((j-1)*nx+i-1)*unk+1
00064 func(index)=X(index)
00065 end do
00066
00067
00068
00069
00070
00071 do j=2,ny-1
00072
00073 z=(j-1)*nx
00074
00075 do i=2,ny-1
00076
00077 index=(z+i-1)*unk+1
00078
00079
00080 func(index)=(X(index-unk) -2.d0*X(index) + X(index+unk))/dx**2.d0 + (X(index-nx*unk) -2.d0*X(index) + X(index+nx*unk))/dy**2.d0 + lambda*dexp(X(index))
00081
00082
00083
00084 end do
00085
00086
00087
00088 end do
00089
00090
00091
00092 end subroutine f