To begin with, please use [code] tags around all code samples in the future, especially ones as large as this. This is very important, as the code tags force the software to retain the indentation; without them, the code is almost impossible to read.
#include <iostream>
#include <fstream>
#include <math.h>
#include <string>
using namespace std;
float ran1(long *);
#define IA 16807
#define IM 2147483647
#define AM (1.0/IM)
#define IQ 127773
#define IR 2836
#define NTAB 32
#define NDIV (1+(IM-1)/NTAB)
#define EPS 1.2e-7
#define RNMX (1.0-EPS)
float ran1(long *idum)
{
int j;
long k;
static long iy=0;
static long iv[NTAB];
float temp;
if (*idum <= 0 || !iy)
{
if (-(*idum) < 1) *idum=1;
else *idum = -(*idum);
for (j=NTAB+7; j>=0; j--)
{
k=(*idum)/IQ;
*idum=IA*(*idum-k*IQ)-IR*k;
if (*idum < 0) *idum += IM;
if (j < NTAB) iv[j] = *idum;
}
iy=iv[0];
}
k=(*idum)/IQ;
*idum=IA*(*idum-k*IQ)-IR*k;
if (*idum < 0) *idum += IM;
j=iy/NDIV;
iy=iv[j];
iv[j] = *idum;
if ((temp=AM*iy) > RNMX) return RNMX;
else return temp;
}
#undef IA
#undef IM
#undef AM
#undef IQ
#undef IR
#undef NTAB
#undef NDIV
#undef EPS
#undef RNMX
//-------------------------------------------------------------------------------------
//--------------------------------------Defining Energy Function--------------------
double annint(double, double);
double annint (double xcoz, double box) //If xcoz is not between (-0.5 to 0.5 * box) it is taken as part of another box
{
double co1, co2;
if (xcoz > 0)
{
co1 = (int(xcoz/box))*box;
return (xcoz-co1);
}
else if (xcoz < 0)
{
co2 = (int(xcoz/box))*box;
return (xcoz-co2);
}
else
return(0);
}
// The LJ parameters for …