Jose A. Rodriguez, Project 3, AMS 530
Problem 3.1
I. Algorithm
The program MOLECDYN calculates the forces, velocities and positions of a large
number of particles. The forces are calculated from simple Coulomb interactions
between the particles. The positions are determined from the Newton’s second
law of movement. The program calculates each step using P processors in parallel.
This is the sequence of steps:
· Assign charges to the N particles using P processors. Done in the
subroutine charges. Random charges are generated in the [-1,1]
interval. Half of them positive, half negative.
· Assign initial coordinates to the N particles using P processors. Done in the
subroutines coordx, coordy and coordz. The particles are randomly located
in a square of 10x10x10 (10-8 meter units). This in the central or working
box. In boxes around, the particles have similar relative positions which
can be obtained by applying the corresponding translation vectors
{Tx,Ty,Tz}.
· Assign initial velocities to the N particles using P processors. Done in the
subroutine vel.The velocities are assigned assuming a Gaussian
distribution centered in (0,0,0) with a variance of 4.
· Compute forces for each of the N particles by P processors. The charges
and coordinates of each particle are broadcasted to P processors from the
root. Each processor calculates the total force on (N/P) particles in a
central or working box. Done in subroutine forces assuming periodic
boundary conditions. The particles in the central box interact with
particles in 26 nearest-neighbor boxes located around. Interactions with
particles at longer distances are negligible.
* Compute new positions and velocities for N particles using P processors.
Each processor calculates the position and velocities for (N/P) particles
in the central box. It is assumed that particles in the surrounding boxes
move in an identical way (i.e. number of particles in each box constant).
Newton’s equation is solved numerically and the new X,Y,Z positions
are corrected if necessary assuming periodic boundary conditions. Done
in subroutine velnp. The differential equations are solved numerically,
using finite differences. To find the new coordinates a second-order
Taylor (or Runge-Kutta) approximation is used. For the velocities a
first-order Taylor (or Euler) approximation is used.
· The last three steps are repeated 100 times for a given time step or
increment, in this case 10-6 seconds.
II. The program
C23456789123456789123456789
PROGRAM MOLECDYN
PARAMETER (LENGTH = 10000)
INCLUDE 'mpif.h'
DIMENSION Q(LENGTH), COX(LENGTH), COY(LENGTH),
&COZ(LENGTH),FTX(LENGTH),FTY(LENGTH),FTZ(LENGTH),
&FTSX(LENGTH),FTSY(LENGTH),FTSZ(LENGTH),QW(LENGTH),
&COXW(LENGTH), COYW(LENGTH), COZW(LENGTH),
&FTTX(LENGTH),FTTY(LENGTH),FTTZ(LENGTH),VX(LENGTH),
&VY(LENGTH),VZ(LENGTH),NCX(LENGTH),NCY(LENGTH),
&NCZ(LENGTH)
INTEGER SIZE, MY_RANK, ROOT
INTEGER N_SIZE
DOUBLE PRECISION STARTTIME, ENDTIME, EXETIME,
&FTX,FTY,FTZ,FTSX,FTSY,FTSZ,FTTX,FTTY,FTTZ,
&COX,COY,COZ,COXW,COYW,COZW,VX,VY,VZ
N= LENGTH
ROOT= 0
C
C
CALL MPI_Init(ierr)
STARTTIME= MPI_Wtime()
CALL MPI_Comm_rank(MPI_comm_world,MY_RANK,ierr)
CALL MPI_Comm_size(MPI_comm_world,SIZE,ierr)
N_SIZE= N/SIZE
C
IF(MY_RANK.EQ.ROOT)THEN
C
C OBTAIN CHARGES, N_SIZE PARTICLES PER PROCESSOR
C
CALL CHARGES (N_SIZE,Q)
C
C GATHER CHARGES
C
CALL MPI_Gather(Q,N_SIZE,MPI_REAL,Q,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
C
C OBTAIN INITIAL COORDINATES, N_SIZE PARTICLES PER
C PROCESSOR
C
CALL COORDX(N_SIZE,COX)
CALL COORDY(N_SIZE,COY)
CALL COORDZ(N_SIZE,COZ)
C
C GATHER COORDINATES
C
CALL MPI_Gather(COX,N_SIZE,MPI_REAL,COX,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(COY,N_SIZE,MPI_REAL,COY,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(COZ,N_SIZE,MPI_REAL,COZ,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
C
DO 23 M=1,N
QW(M)= Q(M)
COXW(M)= COX(M)
COYW(M)= COY(M)
COZW(M)= COZ(M)
23 CONTINUE
C
C OBTAIN INITIAL VELOCITIES, N_SIZE PARTICLES
C PER PROCESSOR
C
CALL VEL(N_SIZE,VX)
CALL VEL(N_SIZE,VY)
CALL VEL(N_SIZE,VZ)
C
C GATHER VELOCITIES
C
CALL MPI_Gather(VX,N_SIZE,MPI_REAL,VX,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(VY,N_SIZE,MPI_REAL,VY,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(VZ,N_SIZE,MPI_REAL,VZ,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
C
C INTEGRATION STEPS
C
NSTEPS= 100
DO 555 ML= 1,NSTEPS
C
C
C CALCULATE THE FORCES
C
C First broacast charges, velocities and coordinates
C to the processors
C
CALL MPI_Bcast(Q,N,MPI_REAL,root,MPI_Comm_World,ierr)
CALL MPI_Bcast(COX,N,MPI_REAL,root,MPI_Comm_World,ierr)
CALL MPI_Bcast(COY,N,MPI_REAL,root,MPI_Comm_World,ierr)
CALL MPI_Bcast(COZ,N,MPI_REAL,root,MPI_Comm_World,ierr)
CALL MPI_Scatter(QW,N_SIZE,MPI_REAL,QW,N_SIZE,MPI_REAL,
&ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(COXW,N_SIZE,MPI_REAL,COXW,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(COYW,N_SIZE,MPI_REAL,COYW,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(COZW,N_SIZE,MPI_REAL,COZW,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(FTTX,N_SIZE,MPI_REAL,FTTX,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(FTTY,N_SIZE,MPI_REAL,FTTY,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(FTTZ,N_SIZE,MPI_REAL,FTTZ,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(VX,N_SIZE,MPI_REAL,VX,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(VY,N_SIZE,MPI_REAL,VY,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Scatter(VZ,N_SIZE,MPI_REAL,VZ,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
C
C Calculate forces for N_SIZE particles in each processor
C
CALL FORCES(N,N_SIZE,COX,COY,COZ,Q,COXW,COYW,COZW,QW,
&FTTX,FTTY,FTTZ)
C
C Gather the results
C
CALL MPI_Gather(FTTX,N_SIZE,MPI_REAL,FTX,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(FTTY,N_SIZE,MPI_REAL,FTY,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(FTTZ,N_SIZE,MPI_REAL,FTZ,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
C
C Calculate velocities and new X,Y,Z positions for
C N_SIZE particles in each processor
C
CALL VELNP(N_SIZE,COXW,COYW,COZW,
&FTTX,FTTY,FTTZ,VX,VY,VZ,NCX,NCZ,NCY)
C
C Gather results
C
CALL MPI_Gather(COXW,N_SIZE,MPI_REAL,COXW,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(COXW,N_SIZE,MPI_REAL,COX,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(COYW,N_SIZE,MPI_REAL,COYW,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(COYW,N_SIZE,MPI_REAL,COY,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(COZW,N_SIZE,MPI_REAL,COZW,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(COZW,N_SIZE,MPI_REAL,COZ,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(VX,N_SIZE,MPI_REAL,VX,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(VY,N_SIZE,MPI_REAL,VY,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
CALL MPI_Gather(VZ,N_SIZE,MPI_REAL,VZ,N_SIZE,
&MPI_REAL,ROOT,MPI_COMM_WORLD,ierr)
555 CONTINUE
ENDTIME= MPI_Wtime()
IF(MY_RANK.EQ.ROOT) CAll FWRITE(STARTTIME,ENDTIME,N,
&SIZE,COX,COY,COZ,Q,FTX,FTY,FTZ)
END IF
call MPI_Finalize(ierr)
END
SUBROUTINE VELNP(N_SIZE,COXW,COYW,COZW,
&FTTX,FTTY,FTTZ,VX,VY,VZ,NCX,NCZ,NCY)
DIMENSION COXW(N_SIZE),COYW(N_SIZE),COZW(N_SIZE),
&FTTX(N_SIZE),FTTY(N_SIZE),FTTZ(N_SIZE),VX(N_SIZE),
&VY(N_SIZE),VZ(N_SIZE),NCX(N_SIZE),NCY(N_SIZE),
&NCZ(N_SIZE)
DOUBLE PRECISION FTTX,FTTY,FTTZ,DH,COXW,COYW,
&COZW,CX,ACX,CY,ACY,CZ,ACZ,VX,VY,VZ
C
C The time interval is 10-6 sec
C
DH=1.0E-06
C
C Calculate new positions for each particle. V=(dr/dt).
C According to Taylor's approximation r(t+1)= r(t)+
C h*r'(t) + (h**2)*r''(t)/2. V(t)= r'(t), F(t)=mr''(t),
C m= 1. Thus, r(t+1)= r(t) + h*V(t) + (h**2)*F(t)/2
C
DO 25 K=1,N_SIZE
CX= COXW(K) + DH*VX(K)+ (DH**2)*FTTX(K)/2
C
C Correct position according to periodic BC
C
COXW(K)= CX
ACX= ABS(CX)
IF(ACX.LE.10) GO TO 11
DIV= CX/10
IDIV= DIV
IF(CX.LT.0) GO TO 12
COXW(K)= CX - (IDIV)*10
GO TO 14
12 COXW(K)= (IDIV-1)*(-10) + CX
GO TO 14
11 IF(CX.GE.0) GO TO 14
COXW(K)= 10 + CX
14 CY= COYW(K) + DH*VY(K) + (DH**2)*FTTY(K)/2
C
C Correct position according to periodic BC
C
COYW(K)= CY
ACY= ABS(CY)
IF(ACY.LE.10) GO TO 15
DIV= CY/10
IDIV= DIV
IF(CY.LT.0) GO TO 16
COYW(K)= CY - (IDIV)*10
GO TO 17
16 COYW(K)= (IDIV-1)*(-10) + CY
GO TO 17
15 IF(CY.GE.0) GO TO 17
COYW(K)= 10 + CY
17 CZ= COZW(K) + DH*VZ(K) + (DH**2)*FTTZ(K)/2
C
C Correct position according to periodic BC
C
COZW(K)= CZ
ACZ= ABS(CZ)
IF(ACZ.LE.10) GO TO 18
DIV= CZ/10
IDIV= DIV
IF(CZ.LT.0) GO TO 19
COZW(K)= CZ - (IDIV)*10
GO TO 20
19 COZW(K)= (IDIV-1)*(-10) + CZ
GO TO 20
18 IF(CZ.GE.0) GO TO 20
COZW(K)= 10 + CZ
20 XX= CZ
25 CONTINUE
C
C Calculate velocities for each particle. F=m(dV/dt).
C According to Euler's approximation V(t+1)= V(t) +
C h*F(t)
C
DO 50 I=1,N_SIZE
VX(I)= VX(I) + DH*FTTX(I)
VY(I)= VY(I) + DH*FTTY(I)
VZ(I)= VZ(I) + DH*FTTZ(I)
50 CONTINUE
RETURN
END
SUBROUTINE FORCES(N,N_SIZE,COX,COY,COZ,Q,COXW,COYW,
&COZW,QW,FTX,FTY,FTZ)
DIMENSION COX(N),COY(N),Q(N),X(3),QW(N_SIZE),
&COZ(N),COXW(N_SIZE),COYW(N_SIZE),COZW(N_SIZE),
&FTX(N_SIZE),FTY(N_SIZE),FTZ(N_SIZE)
DOUBLE PRECISION FIX,FIY,FIZ,FTX,FTY,FTZ,CC,
&COX,COY,COZ,COXW,COYW,COZW
C
C Force= CQ*Q/(r**2), where force is calculated in
C in newton units. C= 8.9874 E+9 newton*(meter**2)/
C (coul**2)
C
CC= 2.3 E-12
DO 30 K= 1,N_SIZE
FTX(K)= 0.00
FTY(K)= 0.00
FTZ(K)= 0.00
C
C We will assume periodic boundary conditions.
C The particles in a box interact with particles
C inside the box and particles in 26 boxes
C surrounding the central box. We will assume
C that Coulomb interactions with particles in
C boxes located at larger distances are
C negligible. NA, NB and NC are translation
C vectors.
C
DO 32 IA=1,3
NA= (IA - 2)*10
DO 34 IB=1,3
NB= (IB - 2)*10
DO 36 IC=1,3
NC= (IC - 2)*10
DO 40 L= 1,N
IF(L.EQ.K) GO TO 40
X(1)= COXW(K) - COX(L) - NA
X(2)= COYW(K) - COY(L) - NB
X(3)= COZW(K) - COZ(L) - NC
DIS= X(1)*X(1) + X(2)*X(2) + X(3)*X(3)
IF(DIS.EQ.0) GO TO 40
FM= CC*QW(K)*Q(L)/DIS
RNORM= SQRT(DIS)
FIX = FM*X(1)/RNORM
FIY = FM*X(2)/RNORM
FIZ = FM*X(3)/RNORM
FTX(K)= FTX(K) + FIX
FTY(K)= FTY(K) + FIY
FTZ(K)= FTZ(K) + FIZ
40 CONTINUE
36 CONTINUE
34 CONTINUE
32 CONTINUE
30 CONTINUE
RETURN
END
SUBROUTINE CHARGES(N,Q)
DIMENSION Q(N)
C
C charges are calculated in units of "e",
C where 1e= 1.60219 E-19 coulomb
C
DO 10 I=1,N
SIGN=(-1)**I
Q(I)=SIGN*Rand(I+1)
10 CONTINUE
RETURN
END
SUBROUTINE COORDX(N,CO)
DIMENSION CO(N)
DOUBLE PRECISION CO
C
C coordinates in units of "A", where
C 1A= E-8 meters
C
DO 10 I=1,N
CO(I)=10*Rand(I)
10 CONTINUE
RETURN
END
SUBROUTINE COORDY(N,CO)
DIMENSION CO(N)
DOUBLE PRECISION CO
C
C coordinates in units of "A", where
C 1A= E-8 meters
C
DO 10 I=1,N
CO(I)=10*Rand(I+2)
10 CONTINUE
RETURN
END
SUBROUTINE COORDZ(N,CO)
DIMENSION CO(N)
DOUBLE PRECISION CO
C
C coordinates in units of "A", where
C 1A= E-8 meters
C
DO 10 I=1,N
CO(I)= 10*Rand(I+4)
10 CONTINUE
RETURN
END
SUBROUTINE VEL(N,V)
DIMENSION V(N)
DOUBLE PRECISION V
C
C The initial velocities are assumed to follow a
C gaussian distribution, f(v)=A*exp(-v**2/d**2),
C centered in 0 and with variance (d) equal to 4.
C The f(v) values were calculated for velocities
C of 0, 0.5, -0.5, 1.0, -1.0, 1.5, -1.5 ......
C 4.5, -4.5, 5.0, -5.0. Groups of particles are
C assigned these velocities following a Gaussian
C distribution.
C
C v=0
PV1= 0.18*N
NV1= PV1
DO 10 I= 1, NV1
V(I)= 0.00
10 CONTINUE
C v=0.5 or -0.5
PV2= 0.16*N
NV2= NV1 + PV2
DO 20 J= NV1+1,NV2
A=(-1)**J
V(J)= A*0.5
20 CONTINUE
C v=1.0 or -1.0
PV3= 0.16*N
NV3= NV2 + PV3
DO 30 IJ= NV2+1,NV3
A=(-1)**IJ
V(IJ)= A*1.0
30 CONTINUE
C v=1.5 or -1.5
PV4= 0.14*N
NV4= NV3 + PV4
DO 40 JI= NV3+1,NV4
A=(-1)**JI
V(JI)= A*1.5
40 CONTINUE
C v=2.0 or -2.0
PV5= 0.12*N
NV5= NV4 + PV5
DO 50 K= NV4+1,NV5
A=(-1)**K
V(K)= A*2.0
50 CONTINUE
C v=2.5 or -2.5
PV6= 0.08*N
NV6= NV5 + PV6
DO 60 KI= NV5+1, NV6
A=(-1)**KI
V(KI)= A*2.5
60 CONTINUE
C v=3.0 or 3.0
PV7= 0.06*N
NV7= NV6 + PV7
DO 70 IK= NV6+1,NV7
A=(-1)**IK
V(IK)= A*3.0
70 CONTINUE
C v=3.5 or -3.5
PV8= 0.04*N
NV8= NV7 + PV8
DO 80 L= NV7+1,NV8
A=(-1)**L
V(L)= A*3.5
80 CONTINUE
C v=4.0 or -4.0
PV9= 0.02*N
NV9= NV8 + PV9
DO 90 LI= NV8+1,NV9
A=(-1)**LI
V(LI)= A*4.0
90 CONTINUE
C v=4.5 or -4.5
PV10= 0.02*N
NV10= NV9 + PV10
DO 100 IL= NV9+1,NV10
A=(-1)**IL
V(IL)= A*4.5
100 CONTINUE
C v=5.0 or -5.0
PV11= 0.02*N
NV11= NV10 + PV11
DO 110 M= NV10+1,NV11
A=(-1)**M
V(M)= A*5.0
110 CONTINUE
RETURN
END
SUBROUTINE FWRITE(STARTTIME,ENDTIME,N,SIZE,
&COX,COY,COZ,Q,FTX,FTY,FTZ)
DIMENSION COX(N),COY(N),COZ(N),Q(N),FTX(N),
&FTY(N),FTZ(N)
DOUBLE PRECISION STARTTIME,ENDTIME,EXETIME,
&COX,COY,COZ,Q,FTX,FTY,FTZ
INTEGER SIZE
EXETIME= ENDTIME - STARTTIME
WRITE(*,100) STARTTIME, EXETIME, N, SIZE
100 FORMAT('To=', E10.5, ' Texe=', E10.5, ' N=',
& I5, ' NPro=', I4)
C DO 10 I= 1,10
C WRITE(*,200) I, COX(I), FTX(I)
C 200 FORMAT(I4, ' X=', F10.5,
C &' FX=', E15.5)
C 10 CONTINUE
RETURN
END
III. Results
Next are shown (as an example) the calculated x coordinated and Fx force for one
of the particles in a system with a total of 21600 particles. A negative force is
acting over the particle and as a result one sees a monotonous decrease of the
x coordinate. This force→reaction response is typical of the calculations.
N= 21600 particles, P=16 processors, DT= 10-6 sec
STEP= 1
x= 5.29476 FX= -0.71793E+01
STEP= 2
x= 5.29476 FX= -0.71793E+01
STEP= 3
x= 5.29476 FX= -0.71792E+01
STEP= 4
x= 5.29475 FX= -0.71792E+01
STEP= 5
x= 5.29475 FX= -0.71792E+01
STEP= 6
x= 5.29475 FX= -0.71791E+01
STEP= 7
x= 5.29475 FX= -0.71791E+01
STEP= 8
x= 5.29475 FX= -0.71791E+01
STEP= 9
x= 5.29475 FX= -0.71791E+01
STEP= 10
x= 5.29475 FX= -0.71790E+01
STEP= 11
x= 5.29475 FX= -0.71790E+01
STEP= 12
x= 5.29474 FX= -0.71790E+01
STEP= 13
x= 5.29474 FX= -0.71790E+01
STEP= 14
x= 5.29474 FX= -0.71789E+01
STEP= 15
x= 5.29474 FX= -0.71789E+01
STEP= 16
x= 5.29474 FX= -0.71789E+01
STEP= 17
x= 5.29474 FX= -0.71789E+01
STEP= 18
x= 5.29474 FX= -0.71788E+01
STEP= 19
x= 5.29474 FX= -0.71788E+01
STEP= 20
x= 5.29474 FX= -0.71788E+01
STEP= 21
x= 5.29474 FX= -0.71788E+01
STEP= 22
x= 5.29474 FX= -0.71787E+01
STEP= 23
x= 5.29474 FX= -0.71787E+01
STEP= 24
x= 5.29474 FX= -0.71787E+01
STEP= 25
x= 5.29474 FX= -0.71787E+01
STEP= 26
x= 5.29474 FX= -0.71786E+01
STEP= 27
x= 5.29474 FX= -0.71786E+01
STEP= 28
x= 5.29474 FX= -0.71786E+01
STEP= 29
x= 5.29474 FX= -0.71786E+01
STEP= 30
x= 5.29474 FX= -0.71785E+01
STEP= 31
x= 5.29474 FX= -0.71785E+01
STEP= 32
x= 5.29474 FX= -0.71785E+01
STEP= 33
x= 5.29474 FX= -0.71785E+01
STEP= 34
x= 5.29473 FX= -0.71784E+01
STEP= 35
x= 5.29473 FX= -0.71784E+01
STEP= 36
x= 5.29473 FX= -0.71784E+01
STEP= 37
x= 5.29473 FX= -0.71784E+01
STEP= 38
x= 5.29473 FX= -0.71783E+01
STEP= 39
x= 5.29473 FX= -0.71783E+01
STEP= 40
x= 5.29473 FX= -0.71783E+01
STEP= 41
x= 5.29473 FX= -0.71783E+01
STEP= 42
x= 5.29473 FX= -0.71782E+01
STEP= 43
x= 5.29473 FX= -0.71782E+01
STEP= 44
x= 5.29473 FX= -0.71782E+01
STEP= 45
x= 5.29473 FX= -0.71782E+01
STEP= 46
x= 5.29473 FX= -0.71781E+01
STEP= 47
x= 5.29473 FX= -0.71781E+01
STEP= 48
x= 5.29473 FX= -0.71781E+01
STEP= 49
x= 5.29473 FX= -0.71781E+01
STEP= 50
x= 5.29473 FX= -0.71780E+01
STEP= 51
x= 5.29472 FX= -0.71780E+01
STEP= 52
x= 5.29472 FX= -0.71780E+01
STEP= 53
x= 5.29472 FX= -0.71779E+01
STEP= 54
x= 5.29472 FX= -0.71779E+01
STEP= 55
x= 5.29472 FX= -0.71779E+01
STEP= 56
x= 5.29472 FX= -0.71779E+01
STEP= 57
x= 5.29472 FX= -0.71778E+01
STEP= 58
x= 5.29472 FX= -0.71778E+01
STEP= 59
x= 5.29472 FX= -0.71778E+01
STEP= 60
x= 5.29472 FX= -0.71778E+01
STEP= 61
x= 5.29472 FX= -0.71777E+01
STEP= 62
x= 5.29472 FX= -0.71777E+01
STEP= 63
x= 5.29472 FX= -0.71777E+01
STEP= 64
x= 5.29472 FX= -0.71777E+01
STEP= 65
x= 5.29472 FX= -0.71776E+01
STEP= 66
x= 5.29472 FX= -0.71776E+01
STEP= 67
x= 5.29472 FX= -0.71776E+01
STEP= 68
x= 5.29472 FX= -0.71776E+01
STEP= 69
x= 5.29471 FX= -0.71775E+01
STEP= 70
x= 5.29471 FX= -0.71775E+01
STEP= 71
x= 5.29471 FX= -0.71775E+01
STEP= 72
x= 5.29471 FX= -0.71775E+01
STEP= 73
x= 5.29471 FX= -0.71774E+01
STEP= 74
x= 5.29471 FX= -0.71774E+01
STEP= 75
x= 5.29471 FX= -0.71774E+01
STEP= 76
x= 5.29471 FX= -0.71774E+01
STEP= 77
x= 5.29471 FX= -0.71773E+01
STEP= 78
x= 5.29471 FX= -0.71773E+01
STEP= 79
x= 5.29471 FX= -0.71773E+01
STEP= 80
x= 5.29471 FX= -0.71773E+01
STEP= 81
x= 5.29471 FX= -0.71772E+01
STEP= 82
x= 5.29471 FX= -0.71772E+01
STEP= 83
x= 5.29471 FX= -0.71772E+01
STEP= 84
x= 5.29471 FX= -0.71772E+01
STEP= 85
x= 5.29471 FX= -0.71771E+01
STEP= 86
x= 5.29470 FX= -0.71771E+01
STEP= 87
x= 5.29470 FX= -0.71771E+01
STEP= 88
x= 5.29470 FX= -0.71771E+01
STEP= 89
x= 5.29470 FX= -0.71770E+01
STEP= 90
x= 5.29470 FX= -0.71770E+01
STEP= 91
x= 5.29470 FX= -0.71770E+01
STEP= 92
x= 5.29470 FX= -0.71770E+01
STEP= 93
x= 5.29470 FX= -0.71769E+01
STEP= 94
x= 5.29470 FX= -0.71769E+01
STEP= 95
x= 5.29470 FX= -0.71769E+01
STEP= 96
x= 5.29470 FX= -0.71769E+01
STEP= 97
x= 5.29469 FX= -0.71768E+01
STEP= 98
x= 5.29469 FX= -0.71768E+01
STEP= 99
x= 5.29469 FX= -0.71768E+01
STEP= 100
x= 5.29469 FX= -0.71767E+01
Next are shown the computational times necessary in Galaxy to do 100