			     /* Simulation der Epidemie Schistosomiasis */

/* Mathematische Spezifikation: Modell SNM, d.h. Barbour-Kafetzaki mit zusaetzlich
   moeglichen Todesfaellen und sofortige gekoppelte Geburt, konstante Menschenpopulation, F1 Poisson 

   Ausdruck ist die Verteilung der Parasiten pro Mensch in gewissem Alter: 5/10/15/20/30/40/60/100.  
   
   Das Programm ist folgendermassen aufgebaut: 	Programmkopf mit	Importen
									Deklarationen
									Variablen- und Parameterbeschreibungen
									Initialisierungen und Voreinstellungen
									
						Hauptprogramm mit	Zeitberechnung
									Ereignistypberechnung
									Neueinstellungen
				
						Programmende mit	Ausdrucksberechnung
									Ausdruck */

/* --------------------------------------------------------------------------------------------------------- */
/* ------------------------------------------Programmkopf--------------------------------------------------- */
/* --------------------------------------------------------------------------------------------------------- */

/* --------------------------------------------Importe------------------------------------------------------ */

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

main()
	{	
	/* int	random();  bereits in stdlib deklariert, Funktion, die ich 	
	brauche fuer Uniform (0,1), Zahl zwischen 0 und 2E31-1 */

/* -----------------------------------------Deklarationen--------------------------------------------------- */

	double	abz,bp,dt,gas,glz,h,lambda,maxlife,maxsl,mlm,my,kappa,r1,r2,r3,r4,r5,r6;
	double	hsts,sts,summe1,summe2,t,t1,theta;
	double	prev[5001],prevn[5001],prevz[5001], d[101], d00[101], d02[101], d04[101], d06[101], d10[101], d15[101], d30[101], nschisto[101],thuman[200], ninf;
	int	et,gam,i,j,k,kadenz,msm,no,shuman[200];

/* ------------------------------Variablen- und Parameterbeschreibungen------------------------------------- */

/*
abz	ist die Abbruchzeit
bp	ist der Belastungsparameter fuer die Aufteilung
d[i]	is the proportion of individuals with i worms over all age classes (distribution)
dxy[i]	is the proportion of individuals with i worms at age [xy, xy+1)
dt	ist die Zeit bis zum naechsten Ereignis
et	ist der Zustandsparameter bei der Frage nach dem Typ Ereignis
gam	ist die Gesamtanzahl Menschen (versehen mit Nummern Null bis (gam-1))
gas	ist die momentane Gesamtanzahl Schistosomen im Programm (nur wenn gas gebraucht wird, nicht global)
glz	ist die aktuelle Gesamtlaufzeit
h 	ist eine lokale Hilfsgroesse 
hsts	Hilfe bei der sukzessiven Testsummation
i	ist ein nur lokal verwendeter Laufindex 
j	ist ein nur lokal verwendeter Laufindex 
k 	ist ein nur lokal verwendeter Laufindex
lambda	ist die Kontaktrate der Menschen 
maxlife	ist das maximal jemals erziehlte Alter eines Menschen (lebt eventuell nicht mehr)
maxsl	ist die maximale "Schistosomenload" (SL), welche ein Mensch im ganzen Programmablauf je hatte
mlm	ist die maximale Lebensmessung, welche noch registriert wird 
msm	ist die maximale Schistosomenmessung, welche noch registriert wird (wegen Fakultaetsberechnungen (!)) 
my	ist die Absterberate der Schistosomen im Menschen
ninf	is the sum for to calculate the overall prevalence (NonINFected) 
no	ist das neue Opfer, der Mensch mit Nummer no wurde neu infiziert 
nschisto[p] ist die Anzahl Menschen mit p Schistosomen
kappa	ist die Absterberate der Menschen
prev[i]	is the proportion of infected at age [i, i+1)
prevn[i] is the denominator for the calculations of prev[i]
prevz[i] is the numerator for the calculations of prev[i]
r1 bis r6 sind Zufallszahlen, welche alle mit Hilfe von random() gebildet werden, genaue Angaben bei Gebrauch 
shuman[t] ist die Anzahl Schistosomen in Person t
summe1	ist die Gesamtrate mit der Schistosomen sterben
summe2	ist die Gesamtrate mit der Menschen infiziert werden
sts	sukzessive Testsummation
t	ist eine lokale Hilfsgroesse 
t1 	ist eine lokale Hilfsgroesse 	
theta	ist die durchschnittl. Anz. Parasiten, welche von einem Parasiten uebertragen werden (erfolgr. Infekt.)
thuman[j] ist das Alter der Person j   */

/* ----------------------------Initialisierungen und Voreinstellungen--------------------------------------- */

/* Die folgenden Initialisierungen und Voreinstellungen muessen konsistent und sinnvoll sein; es sind keine
   Tests eingebaut, d.h. gigo. */

/* Angaben ueber die Menschenpopulation: */
	
	gam = 200; 
	gas = 224;
	maxlife = 0;	/* wird spaeter sofort korrigiert */
	maxsl = 5;
	mlm = 5000; 
	msm = 100;	/* nicht vergroessern wegen Fakultaetsberechnungen (!) */
	for (i=0; i<50; ++i)	{shuman[i]=1;}	
	for (i=50; i<60; ++i)	{shuman[i]=2;}	
	for (i=60; i<75; ++i)	{shuman[i]=3;}	
	for (i=75; i<91; ++i)	{shuman[i]=4;}	
	for (i=91; i<100; ++i)	{shuman[i]=5;}	
	for (i=100; i<gam; ++i)	{shuman[i]=0;}
	nschisto[0]=100;nschisto[1]=50;nschisto[2]=10;nschisto[3]=15;nschisto[4]=16;nschisto[5]=9;
	for (i=(maxsl+1); i<=msm; ++i)	{nschisto[i]=0;}

/* Es folgt die Altersverteilung fuer die 200 Personen */

	thuman[0]=0;thuman[199]=0;thuman[55]=0;thuman[77]=0;thuman[109]=0;thuman[110]=0;thuman[2]=1;
	thuman[80]=1;thuman[26]=1;thuman[59]=1;thuman[76]=1;thuman[98]=1;thuman[51]=2;thuman[35]=2;
	thuman[160]=2;thuman[50]=2;thuman[91]=2;thuman[177]=2;thuman[158]=3;thuman[44]=3;thuman[122]=3;
	thuman[61]=3;thuman[86]=3;thuman[11]=3;thuman[194]=4;thuman[167]=4;thuman[139]=4;thuman[100]=4;
	thuman[102]=4;thuman[66]=4;thuman[106]=5;thuman[147]=5;thuman[5]=5;thuman[23]=5;thuman[174]=5;
	thuman[198]=5;thuman[171]=6;thuman[170]=6;thuman[183]=6;thuman[120]=6;thuman[46]=6;thuman[124]=6;
	thuman[96]=7;thuman[72]=7;thuman[71]=7;thuman[128]=7;thuman[187]=7;thuman[176]=7;thuman[89]=8;
	thuman[191]=8;thuman[73]=8;thuman[81]=8;thuman[95]=8;thuman[161]=8;thuman[92]=9;thuman[54]=9;
	thuman[56]=9;thuman[12]=9;thuman[90]=9;thuman[82]=9;thuman[175]=10;thuman[166]=10;thuman[104]=10;
	thuman[78]=10;thuman[103]=10;thuman[114]=10;thuman[39]=11;thuman[68]=11;thuman[108]=11;thuman[8]=11;
	thuman[131]=11;thuman[143]=11;thuman[64]=12;thuman[105]=12;thuman[1]=12;thuman[10]=12;thuman[134]=12;
	thuman[155]=12;thuman[178]=13;thuman[181]=13;thuman[189]=13;thuman[168]=13;thuman[107]=13;
	thuman[197]=13;thuman[52]=14;thuman[93]=14;thuman[163]=14;thuman[173]=14;thuman[97]=15;thuman[179]=15;
	thuman[9]=15;thuman[101]=15;thuman[141]=16;thuman[41]=16;thuman[13]=16;thuman[74]=16;thuman[19]=17;
	thuman[169]=17;thuman[20]=17;thuman[14]=17;thuman[18]=18;thuman[75]=18;thuman[117]=18;thuman[172]=18;
	thuman[6]=19;thuman[27]=19;thuman[7]=19;thuman[184]=19;thuman[182]=20;thuman[165]=20;thuman[70]=20;
	thuman[40]=20;thuman[180]=21;thuman[29]=21;thuman[132]=21;thuman[150]=21;thuman[192]=22;thuman[112]=22;
	thuman[157]=22;thuman[149]=22;thuman[162]=23;thuman[125]=23;thuman[138]=23;thuman[34]=23;
	thuman[25]=24;thuman[137]=24;thuman[145]=24;thuman[43]=24;thuman[57]=25;thuman[4]=25;thuman[146]=25;
	thuman[37]=25;thuman[69]=26;thuman[156]=26;thuman[148]=26;thuman[142]=26;thuman[133]=27;thuman[30]=27;
	thuman[36]=27;thuman[144]=27;thuman[152]=28;thuman[154]=28;thuman[111]=29;thuman[127]=29;
	thuman[118]=30;thuman[28]=30;thuman[186]=31;thuman[24]=31;thuman[99]=32;thuman[121]=32;thuman[84]=33;
	thuman[22]=33;thuman[38]=34;thuman[58]=34;thuman[79]=35;thuman[60]=35;thuman[126]=36;thuman[3]=36;
	thuman[135]=37;thuman[15]=37;thuman[140]=38;thuman[65]=38;thuman[153]=39;thuman[63]=39;thuman[159]=40;
	thuman[32]=40;thuman[190]=41;thuman[21]=41;thuman[196]=42;thuman[185]=43;thuman[195]=44;thuman[45]=45;
	thuman[193]=46;thuman[88]=47;thuman[67]=48;thuman[16]=49;thuman[48]=50;thuman[49]=51;thuman[47]=52;
	thuman[115]=53;thuman[123]=54;thuman[164]=55;thuman[188]=57;thuman[17]=59;thuman[31]=62;thuman[33]=66;
	thuman[42]=70;thuman[53]=74;thuman[62]=74;thuman[94]=80;thuman[113]=85;thuman[136]=87;thuman[151]=90;
	thuman[116]=92;thuman[87]=96;thuman[85]=99;thuman[130]=100;thuman[129]=103;thuman[119]=104;
	thuman[83]=108;

/* Angaben ueber die Epidemie:	(epidemiologisch relevante Informationen) */

	lambda= 0.3;
	my = 0.25;
	theta = 1.8;
	kappa= 0.025;

/* Technische Angaben: */

        abz=1000000;
	bp = 0;
	dt = 0;
	et = 0;
 	glz=0; 
	h=0;i=0;j=0;k=0;t=0;t1=0;
	no=0;
	r1 = 0; r2 = 0; r3 = 0; r4 = 0;	r5 = 0; r6 = 0;
	summe1 = 0;summe2 = 0;
	hsts=0; sts = 0;
	ninf=0;

/* Angaben fuer den Ausdruck: */

	for (i=0; i<=msm; ++i)	{d00[i]=0;}
	for (i=0; i<=msm; ++i)	{d02[i]=0;}
	for (i=0; i<=msm; ++i)	{d04[i]=0;}
	for (i=0; i<=msm; ++i)	{d06[i]=0;}
	for (i=0; i<=msm; ++i)	{d10[i]=0;}
	for (i=0; i<=msm; ++i)	{d15[i]=0;}
	for (i=0; i<=msm; ++i)	{d30[i]=0;}
	for (i=0; i<=msm; ++i)	{d[i]=0;}
	for (i=0; i<=mlm; ++i)	{prev[i]=0;}
	for (i=0; i<=mlm; ++i)	{prevn[i]=0;}
	for (i=0; i<=mlm; ++i)	{prevz[i]=0;}



/* --------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------Hauptprogramm------------------------------------------------- */
/* --------------------------------------------------------------------------------------------------------- */

/* ------------------------------------------Zeitberechnung------------------------------------------------- */

/* Hier beginnt die Schlaufe des gesamten Hauptprogramms */

	while (glz<abz)	{

/* Wann geschieht ein Ereignis? */

		r1 = ((((double)random())+1)/2147483650.0);

		/* Berechnung von Summe1: {\sum_{i=0}^{i=maxsl} my*i*nschisto[i]} */
			summe1=0;
			for (i=1; i<=maxsl; ++i)	{
				summe1=(summe1+(my*i*nschisto[i]));
			}

		/* Berechnung von Summe2:
		   {\lambda*nschisto[0]*(1-(nschisto[0]/gam))} */
			summe2=0;
			summe2=(lambda*nschisto[0]*(1-(nschisto[0]/gam)));

		/* Berechnung des Belastungsparameters */
			bp = (summe1 + summe2 + (gam*kappa));

		/* Berechnung der Zeit bis etwas geschieht */
			dt = (-log(r1)/bp); 	
			glz = (glz + dt); /* neue Gesamtlaufzeit */

/* Anpassung des Zeitvektors */
			
		for (i=0; i<gam; ++i)	{
			thuman[i]=(thuman[i]+dt);
		}

/* Berechnung von maxlife */

		for (i=0; i<gam; ++i)	{
			if (thuman[i]>maxlife)	{
				maxlife=thuman[i];
			}
		}
/* Zwischenmessung fuer die Praevalenz, small inacurracy: must be that dt << 1 */

		ninf=ninf+nschisto[0]*dt;
		for(i=0;i<=maxlife;++i)	{
			for(j=0;j<gam;++j)	{
				if((i<=thuman[j]) && (thuman[j]<(i+1)))	{
					prevn[i]=prevn[i]+dt;
					if(shuman[j]>=1)	{
						prevz[i]=prevz[i]+dt;
					}
				}
			}
		}

		for(j=0;j<=gam;++j)	{
			if ((thuman[j] >=0) && (thuman[j] < 1))	{
				d00[(shuman[j])]=(d00[(shuman[j])] + dt);
			}
		}	
		for(j=0;j<=gam;++j)	{
			if ((thuman[j] >=2) && (thuman[j] < 3))	{
				d02[(shuman[j])]=(d02[(shuman[j])] + dt);
			}
		}	
		for(j=0;j<=gam;++j)	{
			if ((thuman[j] >=4) && (thuman[j] < 5))	{
				d04[(shuman[j])]=(d04[(shuman[j])] + dt);
			}
		}	
		for(j=0;j<=gam;++j)	{
			if ((thuman[j] >=6) && (thuman[j] < 7))	{
				d06[(shuman[j])]=(d06[(shuman[j])] + dt);
			}
		}	
		for(j=0;j<=gam;++j)	{
			if ((thuman[j] >=10) && (thuman[j] < 11))	{
				d10[(shuman[j])]=(d10[(shuman[j])] + dt);
			}
		}	
		for(j=0;j<=gam;++j)	{
			if ((thuman[j] >=15) && (thuman[j] < 16))	{
				d15[(shuman[j])]=(d15[(shuman[j])] + dt);
			}
		}	
		for(j=0;j<=gam;++j)	{
			if ((thuman[j] >=30) && (thuman[j] < 31))	{
				d30[(shuman[j])]=(d30[(shuman[j])] + dt);
			}
		}	
		for(i=0;i<=msm;++i)	{
			d[i]=(d[i] + (nschisto[i]*dt));
		}	

		
/* ---------------------------------------Ereignistypberechnung--------------------------------------------- */	

		r2 = ((((double)random())+1)/2147483650.0);
			if (r2< (summe1/bp))	
				et=0;	/* Ein Schistosome stirbt */
			else if ((r2 >= (summe1/bp)) && (r2 < ((summe1+summe2)/bp)))
				et=1;	/* Eine Infektion passiert */
			else
				et=2;	/* Ein Mensch stirbt */	
				
/* -----------------------------------------Neueinstellungen------------------------------------------------ */
	
/* Erste Veraenderungsmoeglichkeit: ein Schisto starb(et=0) */

		if (et==0)	{	/* Progr.strat.: Schistos aufgereiht in Menschenreihenfolge */
			gas=0;
			for (i=1; i<=maxsl; ++i)	{
				gas=(gas+(i*nschisto[i]));				
			}
			r3=(((((double)random())+1)/2147483650.0)*gas);
			sts=0;
			for (i=0; i< gam; ++i)	{
				if((sts <= r3) && (r3 < (sts+shuman[i])))	{ /* Sch. aus Mensch i starb */	
					nschisto[shuman[i]]=(nschisto[shuman[i]]-1);/* ein dekrement */
					nschisto[(shuman[i]-1)]=(nschisto[(shuman[i]-1)]+1); /* incr. */
					sts=(sts+shuman[i]);	/* muss hier erhoehen falls nur 1 Schisto */
					shuman[i]=(shuman[i]-1);	/* Person i hat einen Schisto weniger */
				}
				sts=(sts+shuman[i]);		
			}
		}

/* Zweite Veraenderungsmoeglichkeit: eine Infektion passierte(et=1), ev. Nullinfektion wegen bp-Berechnung */

		else if (et==1)	{


			/* Welcher Mensch wird infiziert? */

			sts=0;
			r4 = (((((double)random())+1)/2147483650.0)*nschisto[0]); 
			no=0;
			while(sts<=r4)	{ 		
				if(shuman[no]==0)	{
					++sts;
				}
				++no;
			}
			no=(no-1);			/* Mensch no wurde infiziert */


			/* Mit wievielen Schistosomen wird Mensch no infiziert? */
			
			sts=0;
			for (i=0;i<=msm;++i)	{
				hsts=0;	
				if(i==0)	{
					t1=1;
				}
				else	{
					t1=t1*i;	/* t1 ist Fakultaet von i */
				}
				for (j=1;j<=maxsl;++j)	{
					h=j*theta;
					t=i;
					hsts=hsts+nschisto[j]*(exp((-h)))*pow(h,t)/t1;
				}
				sts=sts+hsts;
			}	/* sts ist nun proportional zum Gesamtmass der Infektionsanteile */ 

			r5 = (((((double)random())+1)/2147483650.0)*sts);
			sts=0; i=0;
			while(r5>sts)	{
				hsts=0;					
				if(i==0)	{
					t1=1;
				}
				else	{
					t1=t1*i;	/* t1 ist Fakultaet von i */
				}
				for (j=1;j<=maxsl;++j)	{
					h=j*theta;
					t=i;
					hsts=hsts+nschisto[j]*(exp((-h)))*pow(h,t)/t1;
				}
				sts=sts+hsts;
				++i;
			}
			k=i-1;	/* Person no wird mit k Schistosomen infiziert */
			nschisto[k]=(nschisto[k]+1);
			nschisto[0]=(nschisto[0]-1);	/* ev. Nullinfektion */
			shuman[no]=k;	
			if (k>maxsl)	{
				maxsl=k;	/* Die max. SchistoLoad wird erhoeht */
			}
		} 	/* Schluss der else if (et==1) */

/* Dritte Veraenderungsmoeglichkeit: ein Mensch stirbt(et=2) */

		else if (et==2)	{	/* Progr.strat.: Menschen aufgereiht */
			sts=0;
			r6 = (((((double)random())+1)/2147483650.0)*gam);
			for(i=0;i<gam;++i)	{
				if((sts<=r6) && (r6<(sts+1)))	{	/* Mensch i starb */
					nschisto[0]=(nschisto[0]+1);	/* falls falsch s. naechste Zeile */
					nschisto[shuman[i]]=(nschisto[shuman[i]]-1); /* ev. Korrektur von oben */
					thuman[i]=0;
					shuman[i]=0;
				}
				sts=(sts+1);
			}
		}

	}	/* Hier endet die grosse while-Schlaufe des Hauptprogramms */
  
/* --------------------------------------------------------------------------------------------------------- */
/* -------------------------------------------Programmende-------------------------------------------------- */
/* --------------------------------------------------------------------------------------------------------- */

/* ----------------------------------------Ausdrucksberechnung----------------------------------------------- */

/* Berechnung der ratios */
	t=0;
	for(i=0;i<=msm;++i)	{
		t=t+d00[i];
	}
	for(i=0;i<=msm;++i)	{
		d00[i]=d00[i]/t;
	}


	t=0;
	for(i=0;i<=msm;++i)	{
		t=t+d02[i];
	}
	for(i=0;i<=msm;++i)	{
		d02[i]=d02[i]/t;
	}


	t=0;
	for(i=0;i<=msm;++i)	{
		t=t+d04[i];
	}
	for(i=0;i<=msm;++i)	{
		d04[i]=d04[i]/t;
	}


	t=0;
	for(i=0;i<=msm;++i)	{
		t=t+d06[i];
	}
	for(i=0;i<=msm;++i)	{
		d06[i]=d06[i]/t;
	}


	t=0;
	for(i=0;i<=msm;++i)	{
		t=t+d10[i];
	}
	for(i=0;i<=msm;++i)	{
		d10[i]=d10[i]/t;
	}


	t=0;
	for(i=0;i<=msm;++i)	{
		t=t+d15[i];
	}
	for(i=0;i<=msm;++i)	{
		d15[i]=d15[i]/t;
	}


	t=0;
	for(i=0;i<=msm;++i)	{
		t=t+d30[i];
	}
	for(i=0;i<=msm;++i)	{
		d30[i]=d30[i]/t;
	}

	for(i=0;i<=msm; ++i)	{
		d[i]=d[i]/(abz*gam);
	}
	for(i=0;i<=maxlife;++i)	{
		if(prevn[i]==0)	{
			prev[i]=-1;
		}
		else	{
			prev[i]=(prevz[i]/prevn[i]);
		}
	}
	ninf=(ninf/200)/abz;

/* ---------------------------------------------Ausdruck---------------------------------------------------- */

	printf("Die Anzahl gesunder Menschen zur Abbruchzeit ist (von gesamthaft 200)");
	printf("\n");
	printf(" %8.8f", nschisto[0]);
	printf("\n");
	printf("The estimated proportion over all ages of people that are not infected is ($R_0^{-1}$) (better than other measures)");
	printf("\n");
	printf(" %8.8f", ninf);
	printf("\n");
	printf("The maximal number of worms in an individual was");
	printf("\n");
	printf(" %8.8f", maxsl);
	printf("The maximal age an individual had was");
	printf("\n");
	printf(" %8.8f", maxlife);
	printf("\n");
	printf("Die Praevalenz in Abhaengigkeit des Alters sieht folgendermassen aus:");
	printf("\n");
	for (i=0; i<=maxlife; ++i)	{
		printf("Der Anteil infiz. Menschen im Alter zwischen");
		printf(" %3d", i);
		printf(" und");
		printf(" %3d", i+1);
		printf(" Jahren ist ");
		printf("%8.8f", prev[i]);
		printf("\n");
	}
	printf("\n");
	printf("The distribution of parasites per individual amongst the 0 year old is:");
	printf("\n");
	for (i=0; i<=msm; ++i)	{
		printf("The proportion of individuals with");
		printf(" %3d", i);
		printf(" parasites is ");
		printf("%8.8f", d00[i]);
		printf("\n");
	}

	printf("\n");
	printf("The distribution of parasites per individual amongst the 2 year old is:");
	printf("\n");
	for (i=0; i<=msm; ++i)	{
		printf("The proportion of individuals with");
		printf(" %3d", i);
		printf(" parasites is ");
		printf("%8.8f", d02[i]);
		printf("\n");
	}

	printf("\n");
	printf("The distribution of parasites per individual amongst the 4 year old is:");
	printf("\n");
	for (i=0; i<=msm; ++i)	{
		printf("The proportion of individuals with");
		printf(" %3d", i);
		printf(" parasites is ");
		printf("%8.8f", d04[i]);
		printf("\n");
	}

	printf("\n");
	printf("The distribution of parasites per individual amongst the 6 year old is:");
	printf("\n");
	for (i=0; i<=msm; ++i)	{
		printf("The proportion of individuals with");
		printf(" %3d", i);
		printf(" parasites is ");
		printf("%8.8f", d06[i]);
		printf("\n");
	}

	printf("\n");
	printf("The distribution of parasites per individual amongst the 10 year old is:");
	printf("\n");
	for (i=0; i<=msm; ++i)	{
		printf("The proportion of individuals with");
		printf(" %3d", i);
		printf(" parasites is ");
		printf("%8.8f", d10[i]);
		printf("\n");
	}

	printf("\n");
	printf("The distribution of parasites per individual amongst the 15 year old is:");
	printf("\n");
	for (i=0; i<=msm; ++i)	{
		printf("The proportion of individuals with");
		printf(" %3d", i);
		printf(" parasites is ");
		printf("%8.8f", d15[i]);
		printf("\n");
	}

	printf("\n");
	printf("The distribution of parasites per individual amongst the 30 year old is:");
	printf("\n");
	for (i=0; i<=msm; ++i)	{
		printf("The proportion of individuals with");
		printf(" %3d", i);
		printf(" parasites is ");
		printf("%8.8f", d30[i]);
		printf("\n");
	}

	printf("\n");
	printf("The distribution of parasites per individual is:");
	printf("\n");
	for (i=0; i<=msm; ++i)	{
		printf("The proportion of individuals with");
		printf(" %3d", i);
		printf(" parasites is ");
		printf("%8.8f", d[i]);
		printf("\n");
	}

	}
