#include <stdio.h>
int main(void)
{
int i,j,k;
int a,b,c,d;
double f[201][201]={0.000};
double F[201][201]={0.000};
double u,v;
double dt,dx,dy;
FILE *one;
one=fopen("result.xls","w");
dx=0.01;
dy=0.01;
dt=0.004;
for(j=0;j<=200;j++){
for(i=0;i<=200;i++){
if (i==150 &&
j==150)
f[i][j]=1.00;
else
f[i][j]=0.00;
}
}//初期条件
for(k=0;k<=600;k++){
u=1.00;
for(j=1;j<=199;j++){
v=-1.00;
for(i=1;i<=199;i++){
if(u>=0.00){
a=0;
b=-1;
}
else{
a=1;
b=0;
}
if(v>=0.00){
c=0;
d=-1;
}
else{
c=1;
d=0;
}
F[i][j]=f[i][j]-((u*dt)/dx)*(f[i+a][j]-f[i+b][j])-((v*dt)/dy)*(f[i][j+c]-f[i][j+d]);
v=v+dx;
}//for(i)end
u=u-dy;
}//for(j)end
for(j=0;j<=199;j++){
for(i=0;i<=199;i++){
f[i][j]=F[i][j];
}
}//入替
}//for(k)end
for(j=0;j<=200;j++){
if(j==0){
fprintf(one,"
");
}
fprintf(one,"%d
",j-100);
if(j==200)
fprintf(one,"%d\n",j-100);
}
for(j=0;j<=200;j++){
for(i=0;i<=200;i++){
if(i==0)
fprintf(one,"%d
",j-100);
fprintf(one,"%f
",f[i][j]);
if(i==200)
fprintf(one,"f\n",f[i][j]);
}//for(i)end
}//for(j)end
return(0);
}