In this program, all parameters are encoded as compile time constants. This approach has slightly greater efficiency and readability over reading the parameters in at run-time. The disadvantage of this method over the other is the requirement to recompile all modules of the program whenever one of the parameters change. This doesn't prove onerous, since run lengths are typically hundreds of hours compared with minutes of compile time. The following is a list of compile time parameters:
C Turn off default typing. This is not a standard Fortran77 construct. C Replacing it by implicit character (a-z) produces almost as good type IMPLICIT CHARACTER (A-Z) C NP = number of particles C DIMPS = Dimension of phase space = 2 * D * NP C D = dimension of physical space C CUBSIZ = length of side of cube containing the particles C TEMP = temperature C THERMO = a switch determining whether thermostatting is on C RCUT = cut of radius for soft sphere interaction C V0 = parameter controlling the strength of the potential C TAU = timescale for fluctuations in kinetic energy about the steady C state mean value D * NP * TEMP C Q = D * NP * TEMP * TAU ** 2 see Evans & Holian (1985),J Chem Phys,v83 C COLOUR = a switch determining if the colour field is on C CURRNT = a switch determining if FCC sets up an initial colour current C H = STEP SIZE C NNHSTP = NUMBER OF TIMESTEPS OF NOSE HOOVER EVOLUTION BETWEEN SPURS C NGPTS = NUMBER OF POINTS ALONG SPUR THAT ARE SAMPLED C MAXJ = MAXIMUM VALUE OF THE COLOUR CURRENT ACCEPTED FOR THE SPUR C EPSCUR = maximum relative variation allowed in the current C before a spur is rejected C MAXRUN = maximum number of job resubmissions before termination C MAXLAM = maximum value of lambda accepted C TSTEP = time in milliseconds for one time origin to be executed C QL = Nose-Hoover coupling constant for lambda C SEED0 = initial random generator seed INTEGER DIMPS, D, NP DOUBLE PRECISION CUBSIZ, TEMP, RCUT, V0, TAU, Q, J0 LOGICAL THERMO, COLOUR, CURRNT INTEGER NNHSTP, NGPTS, MAXKB, MAXRUN, MAXLAM, TSTEP, SEED0 DOUBLE PRECISION STPSIZ, MAXJ, EPSCUR, QL PARAMETER( D=3, NP=108, DIMPS = 2*D*NP, CUBSIZ=5.03, TEMP=1.08) PARAMETER( THERMO=.TRUE., RCUT=1.5, V0 = 1, TAU = 0.09622 ) PARAMETER( Q = D * NP * TEMP * TAU ** 2, QL=2 ) PARAMETER( COLOUR=.TRUE., CURRNT=.TRUE. ) PARAMETER (STPSIZ=4E-3, NNHSTP=10, NGPTS=2000) PARAMETER( MAXKB=1900, MAXJ = 0.2,EPSCUR=0.1,MAXLAM=20) PARAMETER( J0=0.0, MAXRUN=100, TSTEP=30000) PARAMETER( SEED0= 14)