/*** GENERAL.C ***/ #include "header.h" void InitSeed(void) { int seed; time_t nowtime; struct tm *preztime; time(&nowtime); preztime = localtime(&nowtime); seed = (int)((preztime->tm_sec+1)*(preztime->tm_min+1)* (preztime->tm_hour+1)*(preztime->tm_year)*(preztime->tm_year)); if(seed%2==0) seed++; srand48(seed); } /* NEAREST NEIGHBOR MAP: If the array looks like: (00) (01) (02) .... (10) (11) (12) .... (20) (21) (22) .... . . . . . . . . . . . . Then the neighbors are: Top Left Right Bot All sites have: Left: nabes[0] Top: nabes[1] Bot: nabes[2] Right: nabes[3] Sites that share a bond can be indexed as follows: [ site->nabes[i]->nabes[3-i] = site ] */ void Initialize_Arena(Site *arena) { int i, j; Site *origin; origin = arena; for(i=0;i0) arena->nabes[0] = arena - 1; else arena->nabes[0] = arena + NCOLS - 1; if(i>0) arena->nabes[1] = arena - NCOLS; else arena->nabes[1] = arena + NSITES - NCOLS; if(i<(NROWS-1)) arena->nabes[2] = arena + NCOLS; else arena->nabes[2] = origin + j; if(j<(NCOLS-1)) arena->nabes[3] = arena + 1; else arena->nabes[3] = arena - (NCOLS-1); arena++; } } } void Initial_Conditions(Site arena[NROWS][NCOLS]) { int i, j, k=0; int mask[NCOLS]; for(i=0;i