I got a wrong result by using Poisson solver with Neumann boundary conditions.
This can be easily justified by checking the symmetry of the solution.
As I did in the attachment, the left and rightboundaries are homogeneous Neumann condtions,
while the uppor and bottom employ the same nonhomogeneous Neumann conditions specified by data in the file 'bc'.
So the solution should symmetric vertically. But the subroutine d_Helmholtz_2D do not keep this symmetry.
I add all files, and please check this result for me.
Another thing is, if changing the BC type from 'NNNN' to 'DNNN' in test.f90, it will report some error:
forrtl: severe (174): SIGSEGV, segmentation fault occurred
If change the size of dpar from5*(nx-1)/2+7 to 13*(nx-1)/2+7, this error disappear.
So my question is what is the size of dpar? The mannual refer to the former5*(nx-1)/2+7
while the example used the latter 13*(nx-1)/2+7.
I am confused about this.
Sorry for forgetting the attachment.
I do it now.
The files is listed as:
bc input nonhomogeneous Neumann boundary data for upper and bottom, i.e. G(x_j)
bc.eps profile of bc data
input parameters for domain and size
*.mod compiled mod files
run excutable file
sol.eps profile of the output solution, it is wrong
test.f90 the source code