hi again pals
I am trying to implemnt my source from fortran to c, using void instead subroutines as in fortran but something is wrong could you help me
here is my source
Code:
/*Laplace equation 2D*/
/*Build the Mesh*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define max 100
int
main()
{
FILE *mesh;
float dx,x[max],y[max],f[max][max],u[max][max],v[max][max],c[max][max];
float ys,xs,il,it,ui;
int imax,jmax,i,j,s;
mesh=fopen("mesh.data","w");
il=11;
it=31;
imax=41;
jmax=12;
ys=1.24;
xs=1.24;
ui=0.5;
/*Generating the Mesh*/
dx=-1.0/(il-it);
for (i=il;i<=it;i++)
{
x[i]=(i-il)*dx;
}
for (i=it+1;i<=imax;i++)
{
x[i]=x[i-1]+(x[i-1]-x[i-2])*xs;
}
for(i=il-1;i>=1;i--)
{
x[i]=x[i+1]+(x[i+1]-x[i+2])*xs;
}
y[1]=-dx/2;
y[2]=dx/2;
for(j=3;j<=jmax;j++)
{
y[j]=y[j-1]+(y[j-1]-y[j-2])*ys;
}
/*Print the Results*/
for(j=1;j<=jmax;j++)
{
for(i=1;i<=imax;i++)
fprintf(mesh,"%1.15f %1.15f\n",x[i],y[j]);
}
fclose(mesh);
/*Initial Conditions*/
for(i=1;i<=imax;i++)
{
for(j=1;j<=jmax;j++)
f[i][j]=ui*x[i];
}
/*Calculus of Velocities*/
for(i=2;i<=imax-1;i++)
{
for(j=2;j<=jmax-1;j++)
u[i][j]=(f[i+1][j]-f[i-1][j])/(x[i+1]-x[i-1]);
v[i][j]=(f[i][j+1]-f[i][j-1])/(y[j+1]-y[j-1]);
c[i][j]=1.0-(power(u[i][j],2)+power(v[i][j],2));
}
void contour(float f[][],float x[],float y[],int jmax, int imax)
{
for(j=1;j<=jmax;j++)
{
f[1][j]=ui*x[1];
f[imax][j]=ui*x[imax];
}
for(i=1;i<=imax;i++)
{
f[i][jmax]=ui*x[i];
if((i>=il) && (i<=it))
f[i][1]=f[i][2]-0.1*(y[2]-y[1])*(1.0-2*x[i]);
else
f[i][1]=f[i][2];
}
}// end contour ()
exit(0);
}