+ for(T=max_T;T>0;T-=.05)
+ {
+ beta=1.0/T; /* k_B = 1 */
+ for(i=0;i<itt;i++)
+ {
+
+ M=0;
+ for(x_c=0;x_c<max_x;x_c++)
+ {
+ for(y_c=0;y_c<max_y;y_c++)
+ {
+ count_p=0;
+ if((*(atom+x_c+((y_c+max_y+1)%max_y)*max_x))&1) ++count_p;
+ if((*(atom+x_c+((y_c+max_y-1)%max_y)*max_x))&1) ++count_p;
+ if((*(atom+((max_x+x_c+1)%max_x)+y_c*max_x))&1) ++count_p;
+ if((*(atom+((max_x+x_c-1)%max_x)+y_c*max_x))&1) ++count_p;
+ if(((*(atom+x_c+y_c*max_x))&1)==0) count_p=4-count_p;
+ delta_e=(2*count_p-4)*s;
+ if(delta_e<0) *(atom+x_c+y_c*max_x)=(*(atom+x_c+y_c*max_x)+1)&1;
+ else
+ {
+ if(1.0*rand()/RAND_MAX<exp(-1.0*delta_e*beta))
+ *(atom+x_c+y_c*max_x)=(*(atom+x_c+y_c*max_x)+1)&1;
+ }
+ if((*(atom+x_c+y_c*max_x))&1) ++M;
+ }
+ }
+
+ if(i%dr==0)
+ {
+ sprintf(t_text," temp = %.3f",T);
+ arg_v[1]=t_text;
+ sprintf(b_text," beta = %.3f",beta);
+ arg_v[2]=b_text;
+ arg_v[3]=NULL;
+ sprintf(s_text," interaction strength: %.3f",s);
+ arg_v[4]=s_text;
+ arg_v[5]=NULL;
+ sprintf(m_text," magnetization: %.3f",1.0-2.0*M/(max_x*max_y));
+ arg_v[6]=m_text;
+ d2_lattice_draw(&d2_l,0,0,6,arg_v);
+ }
+
+ }
+ if(of_fd) dprintf(of_fd,"%f %f\n",T,1.0-2.0*M/(max_x*max_y));
+ }
+
+ if(of_fd) close(of_fd);
+