/*********************************************************************** * * File: afire.c (21-Jun-2001) * (21-Jun-2005) * * Hilfsprogramm zur Waldbrandsimulation (Gittermodell) * * Lesen der Ergebnisse einer Simulation von Binaerfile und Ausgabe der * Wahrscheinlichkeitsdichte der verbrannten Areale in ASCII-File * "afire.dat" * **********************************************************************/ #include #include /**********************************************************************/ int main() { /**********************************************************************/ FILE *fp; char fname[100]; unsigned short int iran[3]; int i,istep,ix,ns,nx,ny; int *ihist; int **lattice; long int ihcum; double fact; printf(" fname="); gets(fname); fp=fopen(fname,"r"); fread(&nx,sizeof(int),1,fp); ny=nx; ihist=(int*)malloc((nx*ny+1)*sizeof(int)); lattice=(int**)malloc((nx+2)*sizeof(int*)); for(ix=0;ix<=nx+1;ix=ix+1) { lattice[ix]=(int*)malloc((ny+2)*sizeof(int)); } fread(&istep,sizeof(int),1,fp); fread(&ns,sizeof(int),1,fp); fread(iran,sizeof(unsigned short int),3,fp); for(ix=1;ix<=nx;ix=ix+1) { fread(&lattice[ix][1],sizeof(int),ny,fp); } fread(&ihist[1],sizeof(int),nx*ny,fp); fclose(fp); printf(" nx=ny=%d\n",nx); printf(" 1/f_m=%d\n",ns); printf(" steps=%d\n",istep); ihcum=0; for(i=1;i<=nx*ny;i=i+1) { ihcum=ihcum+ihist[i]; } fact=1.0/ihcum; /* Wahrscheinlichkeitsdichte und komplementaere kumulative Wahrscheinlichkeitsverteilung auf File schreiben */ fp=fopen("afire.dat","w"); for(i=1;i<=nx*ny;i=i+1) { if(ihist[i]!=0) { fprintf(fp," %d %14.7e %14.7e\n",i,fact*ihist[i],fact*ihcum); ihcum=ihcum-ihist[i]; } } fclose(fp); return 0; } /**********************************************************************/