+ for(c=-1;c<=1;c++)
+ {
+ if(c!=0)
+ {
+ off=((i+c+d3_l->max_x)%d3_l->max_x)+j*d3_l->max_x+k*d3_l->max_x*d3_l->max_y;
+ carry=0;
+ /* case neighbour not amorph */
+ if(!(*(d3_l->status+off)&AMORPH))
+ {
+ carry=(*(d3_l->extra+off)-*(d3_l->extra+offset))/2;
+ if(carry!=0)
+ {
+ *(d3_l->extra+offset)+=carry;
+ *(d3_l->extra+off)-=carry;
+ }
+ }
+ }
+ }
+ /* cryst -> amorph diffusion in z direction */
+ if(z_diff)
+ {
+ for(c=1;c>=-1;c--)
+ {
+ off=i+j*d3_l->max_x+((k+c+d3_l->max_z)%d3_l->max_z)*d3_l->max_x*d3_l->max_y;
+ carry=0;
+ if(*(d3_l->status+off)&AMORPH) carry=(int)(d_r*(*(d3_l->extra+off)));
+ if(carry!=0)
+ {
+ *(d3_l->extra+offset)+=carry;
+ *(d3_l->extra+off)-=carry;
+ }
+ }
+ } /* if z_diff */