From 9013106e09e2b380e93df8f1a79153630885d185 Mon Sep 17 00:00:00 2001 From: Connor Moore Date: Wed, 25 Feb 2026 12:47:03 -0500 Subject: Forced real64 for everything and added gitignore --- .gitignore | 10 ++++++++ new/self-langevin-motion.f90 | 54 ++++++++++++++++++++++---------------------- 2 files changed, 37 insertions(+), 27 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6022cc9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +new/prog +class/prog + +new/*_results +new/*.out +new/*.mod + +class/*_results +class/*.out +class/*.mod diff --git a/new/self-langevin-motion.f90 b/new/self-langevin-motion.f90 index 167da70..6c048d9 100644 --- a/new/self-langevin-motion.f90 +++ b/new/self-langevin-motion.f90 @@ -7,19 +7,19 @@ program langevin_motion !> Define some basic parameters integer(int64), parameter :: n = 1000 - real(real64), parameter :: pi = 2.0*asin(1.0) - real(real64), parameter :: L = 1.0 + real(real64), parameter :: pi = 2.0_real64*asin(1.0_real64) + real(real64), parameter :: L = 1.0_real64 !> Numerical constants and such - real(real64), parameter :: dt = 0.005 - real(real64), parameter :: t_max = 10.0 - real(real64), parameter :: kT = 10.0 - real(real64), parameter :: g = 1.0 - real(real64), parameter :: m = 1.0 - real(real64), parameter :: eps = 1.0 - real(real64), parameter :: sigma = 1E-03 - real(real64), parameter :: rc = sigma*2**(1.0/6.0) - real(real64), parameter :: pref1 = g, pref2 = sqrt(24.0*kT*g/dt) + real(real64), parameter :: dt = 0.005_real64 + real(real64), parameter :: t_max = 10.0_real64 + real(real64), parameter :: kT = 10.0_real64 + real(real64), parameter :: g = 1.0_real64 + real(real64), parameter :: m = 1.0_real64 + real(real64), parameter :: eps = 1.0_real64 + real(real64), parameter :: sigma = 1E-03_real64 + real(real64), parameter :: rc = sigma*2**(1.0_real64/6.0_real64) + real(real64), parameter :: pref1 = g, pref2 = sqrt(24.0_real64*kT*g/dt) !> And non-constants real(real64) :: t @@ -39,8 +39,8 @@ program langevin_motion do while (t .lt. t_max) !> Update half-step velocities - vhx = vx + 0.5*ax*dt - vhy = vy + 0.5*ay*dt + vhx = vx + 0.5_real64*ax*dt + vhy = vy + 0.5_real64*ay*dt !> Update the positions px = px + vhx*dt @@ -50,13 +50,13 @@ program langevin_motion call impose_BC(px, py, vhx, vhy, is_tracked, L) !> Find the new acceleration - ax = 0.0 - ay = 0.0 + ax = 0.0_real64 + ay = 0.0_real64 call random_number(ran1) - ran1 = ran1 - 0.5 + ran1 = ran1 - 0.5_real64 call random_number(ran2) - ran2 = ran2 - 0.5 + ran2 = ran2 - 0.5_real64 !> Random force ax = ax - pref1*vhx + ran1 @@ -74,12 +74,12 @@ program langevin_motion are_interacting = (dn .gt. 0.0) .and. (dn .lt. rc) .and. is_tracked !> Start with no forces - F = 0.0 + F = 0.0_real64 where (are_interacting) !> Lennardn-Jones force - F = 4.0*eps*(-12.0*sigma**12/dn**13 + 6.0*sigma**6/dn**7) + F = 4.0_real64*eps*(-12.0_real64*sigma**12/dn**13 + 6.0_real64*sigma**6/dn**7) end where @@ -90,8 +90,8 @@ program langevin_motion end do interactions !> Update full velocities - vx = vhx + 0.5*ax*dt - vy = vhy + 0.5*ay*dt + vx = vhx + 0.5_real64*ax*dt + vy = vhy + 0.5_real64*ay*dt !> Update timestep t = t + dt @@ -120,20 +120,20 @@ contains call random_number(ran2) !> Initial position - px = L*(ran1-0.5) - py = L*(ran2-0.5) + px = L*(ran1-0.5_real64) + py = L*(ran2-0.5_real64) !> Initial acceleration is zero - ax = 0.0 - ay = 0.0 + ax = 0.0_real64 + ay = 0.0_real64 !> New random numbers call random_number(ran1) call random_number(ran2) !> Initial velocity using Box-Muller transform - vx = sqrt(kT/m)*sqrt(-2.0*log(ran1))*cos(2*pi*ran2) - vy = sqrt(kT/m)*sqrt(-2.0*log(ran1))*sin(2*pi*ran2) + vx = sqrt(kT/m)*sqrt(-2.0_real64*log(ran1))*cos(2.0_real64*pi*ran2) + vy = sqrt(kT/m)*sqrt(-2.0_real64*log(ran1))*sin(2.0_real64*pi*ran2) end subroutine initialize_particles -- cgit v1.2.3