void Wave(void)
{
int i,j;
float d;
for(i=0; i<size; i++)
for(j=0; j<size; j++)
force[i][j] = 0.0f;
for(i=1; i<size-1; i++)
for(j=1; j<size-1; j++)
{
d=surf[i][j][1]-surf[i][j-1][1];
force[i][j] -= d;
force[i][j-1] += d;
d=surf[i][j][1]-surf[i-1][j][1];
force[i][j] -= d;
force[i-1][j] += d;
d=surf[i][j][1]-surf[i][j+1][1];
force[i][j] -= d;
force[i][j+1] += d;
d=surf[i][j][1]-surf[i+1][j][1];
force[i][j] -= d;
force[i+1][j] += d;
d=(surf[i][j][1]-surf[i+1][j+1][1])*SQRTOFTWOINV;
force[i][j] -= d;
force[i+1][j+1] += d;
d=(surf[i][j][1]-surf[i-1][j-1][1])*SQRTOFTWOINV;
force[i][j] -= d;
force[i-1][j-1] += d;
d=(surf[i][j][1]-surf[i+1][j-1][1])*SQRTOFTWOINV;
force[i][j] -= d;
force[i+1][j-1] += d;
d=(surf[i][j][1]-surf[i+1][j-1][1])*SQRTOFTWOINV;
force[i][j] -= d;
force[i+1][j-1] += d;
}
for(i=0; i<size; i++)
for(j=0; j<size; j++)
veloc[i][j] += force[i][j] * dt;
for(i=0; i<size; i++)
for(j=0; j<size; j++)
{
surf[i][j][1] += veloc[i][j];
if (surf[i][j][1]>0) surf[i][j][1] -= surf[i][j][1]/size;
else surf[i][j][1] -= surf[i][j][1]/size;
}
}