From 7c90c9f2e9a4296d4a51fa6447420214ea902de3 Mon Sep 17 00:00:00 2001
From: "Kurt A. O'Hearn" <ohearnku@msu.edu>
Date: Thu, 18 Feb 2021 17:20:39 -0500
Subject: [PATCH] Test: fix Python wrapper for QM/MM (interfaces out-of-date).
 Fix Fortran tester bugs. Add test artifacts.

---
 PG-PuReMD/src/cuda/cuda_bonds.cu              |  61 +-
 PG-PuReMD/src/cuda/cuda_forces.cu             | 136 ++-
 PG-PuReMD/src/cuda/cuda_multi_body.cu         |  80 +-
 PG-PuReMD/src/cuda/cuda_torsion_angles.cu     | 216 +++--
 PG-PuReMD/src/cuda/cuda_valence_angles.cu     | 498 +++++------
 PG-PuReMD/src/cuda/cuda_valence_angles.h      |   9 +-
 PG-PuReMD/src/reax_types.h                    |   4 +-
 test/library/qmmm_amber/forces_charges.txt    | 777 ++++++++++++++++++
 .../qmmm_amber/fortran_stub/driver.F03        |  26 +-
 .../fortran_stub/forces_charges.txt           | 776 +++++++++++++++++
 .../qmmm_amber/fortran_stub/reaxff_puremd.F03 |   2 +-
 .../qmmm_amber/fortran_stub/run_sim.bash      |   3 +-
 test/library/qmmm_amber/tester_AVE.py         |  13 +-
 13 files changed, 2067 insertions(+), 534 deletions(-)
 create mode 100644 test/library/qmmm_amber/forces_charges.txt
 create mode 100644 test/library/qmmm_amber/fortran_stub/forces_charges.txt

diff --git a/PG-PuReMD/src/cuda/cuda_bonds.cu b/PG-PuReMD/src/cuda/cuda_bonds.cu
index 9cd4e0a4..5a705b17 100644
--- a/PG-PuReMD/src/cuda/cuda_bonds.cu
+++ b/PG-PuReMD/src/cuda/cuda_bonds.cu
@@ -30,14 +30,17 @@
 CUDA_GLOBAL void Cuda_Bonds( reax_atom *my_atoms, global_parameters gp, 
         single_body_parameters *sbp, two_body_parameters *tbp, 
         storage p_workspace, reax_list p_bond_list, int n, int num_atom_types, 
-        real *e_bond )
+        real *e_bond_g )
 {
     int i, j, pj;
     int start_i, end_i;
     int type_i, type_j;
-    real ebond, pow_BOs_be2, exp_be12, CEbo;
+    real pow_BOs_be2, exp_be12, CEbo;
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    real e_bond_l;
+#endif
     real gp3, gp4, gp7, gp10, gp37;
-    real exphu, exphua1, exphub1, exphuov, hulpov, estriph;
+    real exphu, exphua1, exphub1, exphuov, hulpov;
     real decobdbo, decobdboua, decobdboub;
     single_body_parameters *sbp_i, *sbp_j;
     two_body_parameters *twbp;
@@ -59,6 +62,9 @@ CUDA_GLOBAL void Cuda_Bonds( reax_atom *my_atoms, global_parameters gp,
     gp7 = gp.l[7];
     gp10 = gp.l[10];
     gp37 = (int) gp.l[37];
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    e_bond_l = 0.0;
+#endif
 
     start_i = Start_Index( i, bond_list );
     end_i = End_Index( i, bond_list );
@@ -82,32 +88,21 @@ CUDA_GLOBAL void Cuda_Bonds( reax_atom *my_atoms, global_parameters gp,
                 * (1.0 - twbp->p_be1 * twbp->p_be2 * pow_BOs_be2);
 
             /* calculate bond energy */
-            ebond = -twbp->De_s * bo_ij->BO_s * exp_be12
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+            e_bond_g[i] += -twbp->De_s * bo_ij->BO_s * exp_be12
+                - twbp->De_p * bo_ij->BO_pi
+                - twbp->De_pp * bo_ij->BO_pi2;
+#else
+            e_bond_l += -twbp->De_s * bo_ij->BO_s * exp_be12
                 - twbp->De_p * bo_ij->BO_pi
                 - twbp->De_pp * bo_ij->BO_pi2;
-            e_bond[i] += ebond;
+#endif
 
             /* calculate derivatives of bond orders */
             bo_ij->Cdbo += CEbo;
             bo_ij->Cdbopi -= CEbo + twbp->De_p;
             bo_ij->Cdbopi2 -= CEbo + twbp->De_pp;
 
-#if defined(TEST_ENERGY)
-            //fprintf( out_control->ebond, "%6d%6d%24.15e%24.15e%24.15e\n",
-            fprintf( out_control->ebond, "%6d%6d%12.4f%12.4f%12.4f\n",
-                    system->my_atoms[i].orig_id, 
-                    system->my_atoms[j].orig_id, 
-                    bo_ij->BO, ebond, data->my_en.e_bond );
-#endif
-
-#if defined(TEST_FORCES)
-            Add_dBO( system, lists, i, pj, CEbo, workspace->f_be );
-            Add_dBOpinpi2( system, lists, i, pj,
-                    -(CEbo + twbp->De_p),
-                    -(CEbo + twbp->De_pp),
-                    workspace->f_be, workspace->f_be );
-#endif
-
             /* Stabilisation terminal triple bond */
             if ( bo_ij->BO >= 1.00 )
             {
@@ -127,8 +122,11 @@ CUDA_GLOBAL void Cuda_Bonds( reax_atom *my_atoms, global_parameters gp,
                     exphuov = EXP(gp4 * (workspace->Delta[i] + workspace->Delta[j]));
                     hulpov = 1.0 / (1.0 + 25.0 * exphuov);
 
-                    estriph = gp10 * exphu * hulpov * (exphua1 + exphub1);
-                    e_bond[i] += estriph;
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                    e_bond_g[i] += gp10 * exphu * hulpov * (exphua1 + exphub1);
+#else
+                    e_bond_l += gp10 * exphu * hulpov * (exphua1 + exphub1);
+#endif
 
                     decobdbo = gp10 * exphu * hulpov * (exphua1 + exphub1)
                         * ( gp3 - 2.0 * gp7 * (bo_ij->BO - 2.5) );
@@ -140,21 +138,12 @@ CUDA_GLOBAL void Cuda_Bonds( reax_atom *my_atoms, global_parameters gp,
                     bo_ij->Cdbo += decobdbo;
                     workspace->CdDelta[i] += decobdboua;
                     workspace->CdDelta[j] += decobdboub;
-
-#if defined(TEST_ENERGY)
-                    //fprintf( out_control->ebond, 
-                    //  "%6d%6d%24.15e%24.15e%24.15e%24.15e\n",
-                    //  system->my_atoms[i].orig_id, system->my_atoms[j].orig_id,
-                    //  estriph, decobdbo, decobdboua, decobdboub );
-#endif
-
-#if defined(TEST_FORCES)
-                    Add_dBO( system, lists, i, pj, decobdbo, workspace->f_be );
-                    Add_dDelta( system, lists, i, decobdboua, workspace->f_be );
-                    Add_dDelta( system, lists, j, decobdboub, workspace->f_be );
-#endif
                 }
             }
         }
     }
+
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    atomicAdd( (double *) e_bond_g, (double) e_bond_l );
+#endif
 }
diff --git a/PG-PuReMD/src/cuda/cuda_forces.cu b/PG-PuReMD/src/cuda/cuda_forces.cu
index 6c658975..f0310b5f 100644
--- a/PG-PuReMD/src/cuda/cuda_forces.cu
+++ b/PG-PuReMD/src/cuda/cuda_forces.cu
@@ -223,7 +223,6 @@ CUDA_GLOBAL void k_init_distance( reax_atom *my_atoms, reax_list far_nbr_list, i
 {
     int i, j, pj, start_i, end_i;
     rvec x_i;
-    reax_atom *atom_j;
 
     i = blockIdx.x * blockDim.x + threadIdx.x;
 
@@ -240,19 +239,18 @@ CUDA_GLOBAL void k_init_distance( reax_atom *my_atoms, reax_list far_nbr_list, i
     for ( pj = start_i; pj < end_i; ++pj )
     {
         j = far_nbr_list.far_nbr_list.nbr[pj];
-        atom_j = &my_atoms[j];
 
         if ( i < j )
         {
-            far_nbr_list.far_nbr_list.dvec[pj][0] = atom_j->x[0] - x_i[0];
-            far_nbr_list.far_nbr_list.dvec[pj][1] = atom_j->x[1] - x_i[1];
-            far_nbr_list.far_nbr_list.dvec[pj][2] = atom_j->x[2] - x_i[2];
+            far_nbr_list.far_nbr_list.dvec[pj][0] = my_atoms[j].x[0] - x_i[0];
+            far_nbr_list.far_nbr_list.dvec[pj][1] = my_atoms[j].x[1] - x_i[1];
+            far_nbr_list.far_nbr_list.dvec[pj][2] = my_atoms[j].x[2] - x_i[2];
         }
         else
         {
-            far_nbr_list.far_nbr_list.dvec[pj][0] = x_i[0] - atom_j->x[0];
-            far_nbr_list.far_nbr_list.dvec[pj][1] = x_i[1] - atom_j->x[1];
-            far_nbr_list.far_nbr_list.dvec[pj][2] = x_i[2] - atom_j->x[2];
+            far_nbr_list.far_nbr_list.dvec[pj][0] = x_i[0] - my_atoms[j].x[0];
+            far_nbr_list.far_nbr_list.dvec[pj][1] = x_i[1] - my_atoms[j].x[1];
+            far_nbr_list.far_nbr_list.dvec[pj][2] = x_i[2] - my_atoms[j].x[2];
         }
         far_nbr_list.far_nbr_list.d[pj] = rvec_Norm( far_nbr_list.far_nbr_list.dvec[pj] );
     }
@@ -263,7 +261,7 @@ CUDA_GLOBAL void k_init_distance( reax_atom *my_atoms, reax_list far_nbr_list, i
  * in the far neighbors list if it's a NOT re-neighboring step */
 CUDA_GLOBAL void k_init_distance_opt( reax_atom *my_atoms, reax_list far_nbr_list, int N )
 {
-    int j, pj, start_i, end_i, thread_id, warp_id, lane_id;
+    int j, pj, start_i, end_i, thread_id, warp_id, lane_id, itr;
     __shared__ rvec x_i;
 
     thread_id = blockIdx.x * blockDim.x + threadIdx.x;
@@ -284,7 +282,7 @@ CUDA_GLOBAL void k_init_distance_opt( reax_atom *my_atoms, reax_list far_nbr_lis
     __syncthreads( );
 
     /* update distance and displacement vector between atoms i and j (i-j) */
-    for ( pj = start_i + lane_id; pj < end_i; pj += 32 )
+    for ( itr = 0, pj = start_i + lane_id; itr < (end_i - start_i + 0x0000001F) >> 5; ++itr )
     {
         j = far_nbr_list.far_nbr_list.nbr[pj];
 
@@ -301,6 +299,8 @@ CUDA_GLOBAL void k_init_distance_opt( reax_atom *my_atoms, reax_list far_nbr_lis
             far_nbr_list.far_nbr_list.dvec[pj][2] = x_i[2] - my_atoms[j].x[2];
         }
         far_nbr_list.far_nbr_list.d[pj] = rvec_Norm( far_nbr_list.far_nbr_list.dvec[pj] );
+
+        pj += warpSize;
     }
 }
 
@@ -1125,7 +1125,6 @@ CUDA_GLOBAL void k_update_sym_hbond_indices_opt( reax_atom *my_atoms,
 
     thread_id = blockIdx.x * blockDim.x + threadIdx.x;
     warp_id = thread_id >> 5;
-    lane_id = thread_id & 0x0000001F; 
 
     if ( warp_id > N )
     {
@@ -1133,6 +1132,7 @@ CUDA_GLOBAL void k_update_sym_hbond_indices_opt( reax_atom *my_atoms,
     }
 
     i = warp_id;
+    lane_id = thread_id & 0x0000001F; 
     start = Start_Index( my_atoms[i].Hindex, &hbond_list );
     end = End_Index( my_atoms[i].Hindex, &hbond_list );
     j = start + lane_id;
@@ -1564,14 +1564,13 @@ int Cuda_Init_Forces( reax_system *system, control_params *control,
 
     if ( renbr == FALSE && dist_done == FALSE )
     {
+        blocks = system->N * 32 / DEF_BLOCK_SIZE
+            + (system->N * 32 % DEF_BLOCK_SIZE == 0 ? 0 : 1);
 
-//        blocks = system->N * 32 / DEF_BLOCK_SIZE
-//            + (system->N * 32 % DEF_BLOCK_SIZE == 0 ? 0 : 1);
-
-        k_init_distance <<< control->blocks_n, control->block_size_n >>>
-            ( system->d_my_atoms, *(lists[FAR_NBRS]), system->N );
-//        k_init_distance_opt <<< blocks, DEF_BLOCK_SIZE >>>
+//        k_init_distance <<< control->blocks_n, control->block_size_n >>>
 //            ( system->d_my_atoms, *(lists[FAR_NBRS]), system->N );
+        k_init_distance_opt <<< blocks, DEF_BLOCK_SIZE >>>
+            ( system->d_my_atoms, *(lists[FAR_NBRS]), system->N );
         cudaCheckError( );
 
         dist_done = TRUE;
@@ -1769,10 +1768,8 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
     static int compute_bonded_part1 = FALSE;
     real *spad;
     rvec *rvec_spad;
-#if defined(DEBUG_FOCUS)
-    real t_start, t_elapsed;
-#endif
 
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
     cuda_check_malloc( &workspace->scratch, &workspace->scratch_size,
             MAX( sizeof(real) * system->n,
                 MAX( sizeof(real) * 3 * system->n,
@@ -1781,6 +1778,7 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
                             (sizeof(real) + sizeof(rvec)) * system->n + sizeof(rvec) * control->blocks )))),
             "Cuda_Compute_Bonded_Forces::workspace->scratch" );
     spad = (real *) workspace->scratch;
+#endif
     update_energy = (out_control->energy_update_freq > 0
             && data->step % out_control->energy_update_freq == 0) ? TRUE : FALSE;
     ret = SUCCESS;
@@ -1810,31 +1808,59 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
         cudaCheckError( );
 
         /* 2. Bond Energy Interactions */
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
         cuda_memset( spad, 0, sizeof(real) * system->n,
                 "Compute_Bonded_Forces::spad" );
+#else
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_bond,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_bond" );
+#endif
 
         Cuda_Bonds <<< control->blocks, control->block_size, sizeof(real) * control->block_size >>>
             ( system->d_my_atoms, system->reax_param.d_gp, system->reax_param.d_sbp, system->reax_param.d_tbp,
               *(workspace->d_workspace), *(lists[BONDS]), 
-              system->n, system->reax_param.num_atom_types, spad );
+              system->n, system->reax_param.num_atom_types,
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+              spad
+#else
+              &((simulation_data *)data->d_simulation_data)->my_en.e_bond
+#endif
+            );
         cudaCheckError( );
 
-        /* reduction for E_BE */
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
         if ( update_energy == TRUE )
         {
             Cuda_Reduction_Sum( spad, &((simulation_data *)data->d_simulation_data)->my_en.e_bond,
                     system->n );
         }
+#endif
 
         /* 3. Atom Energy Interactions */
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
         cuda_memset( spad, 0, sizeof(real) * 3 * system->n,
                 "Compute_Bonded_Forces::spad" );
+#else
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_lp,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_lp" );
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_ov,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_ov" );
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_un,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_un" );
+#endif
 
         Cuda_Atom_Energy_Part1 <<< control->blocks, control->block_size >>>
             ( system->d_my_atoms, system->reax_param.d_gp,
               system->reax_param.d_sbp, system->reax_param.d_tbp, *(workspace->d_workspace),
               *(lists[BONDS]), system->n, system->reax_param.num_atom_types,
-              spad, &spad[system->n], &spad[2 * system->n] );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+              spad, &spad[system->n], &spad[2 * system->n]
+#else
+              &((simulation_data *)data->d_simulation_data)->my_en.e_lp,
+              &((simulation_data *)data->d_simulation_data)->my_en.e_ov,
+              &((simulation_data *)data->d_simulation_data)->my_en.e_un
+#endif
+             );
         cudaCheckError( );
 
 #if !defined(CUDA_ACCUM_FORCE_ATOMIC)
@@ -1843,22 +1869,21 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
         cudaCheckError( );
 #endif
 
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
         if ( update_energy == TRUE )
         {
-            /* reduction for E_Lp */
             Cuda_Reduction_Sum( spad, &((simulation_data *)data->d_simulation_data)->my_en.e_lp,
                     system->n );
 
-            /* reduction for E_Ov */
             Cuda_Reduction_Sum( &spad[system->n],
                     &((simulation_data *)data->d_simulation_data)->my_en.e_ov,
                     system->n );
 
-            /* reduction for E_Un */
             Cuda_Reduction_Sum( &spad[2 * system->n],
                     &((simulation_data *)data->d_simulation_data)->my_en.e_un,
                     system->n );
         }
+#endif
 
         compute_bonded_part1 = TRUE;
     }
@@ -1869,7 +1894,8 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
             "Cuda_Compute_Bonded_Forces::workspace->scratch" );
 
     thbody = (int *) workspace->scratch;
-    spad = (real *) workspace->scratch; /* in case scratch gets reallocated above, changing the pointer */
+    /* in case scratch gets reallocated above, reassign scratch pointer */
+    spad = (real *) workspace->scratch;
 
     ret = Cuda_Estimate_Storage_Three_Body( system, control, data, workspace,
             lists, thbody );
@@ -1878,32 +1904,49 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
     {
         Cuda_Init_Three_Body_Indices( thbody, system->total_thbodies_indices, lists );
 
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
         cuda_memset( spad, 0,
                 (sizeof(real) * 3 + sizeof(rvec)) * system->N + sizeof(rvec) * control->blocks_n,
                 "Cuda_Compute_Bonded_Forces::spad" );
+#else
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_ang,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_ang" );
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_pen,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_pen" );
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_coa,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_coa" );
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_ext_press,
+                0, sizeof(rvec), "Cuda_Compute_Bonded_Forces::my_ext_press" );
+#endif
 
         Cuda_Valence_Angles_Part1 <<< control->blocks_n, control->block_size_n >>>
-            ( system->d_my_atoms, system->reax_param.d_gp, 
+            ( system->d_my_atoms, system->reax_param.d_gp,
               system->reax_param.d_sbp, system->reax_param.d_thbp, 
               (control_params *) control->d_control_params,
               *(workspace->d_workspace), *(lists[BONDS]), *(lists[THREE_BODIES]),
               system->n, system->N, system->reax_param.num_atom_types, 
-              spad, &spad[system->N], &spad[2 * system->N], (rvec *) (&spad[3 * system->N]) );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+              spad, &spad[system->N], &spad[2 * system->N], (rvec *) (&spad[3 * system->N])
+#else
+              &((simulation_data *)data->d_simulation_data)->my_en.e_ang,
+              &((simulation_data *)data->d_simulation_data)->my_en.e_pen,
+              &((simulation_data *)data->d_simulation_data)->my_en.e_coa,
+              &((simulation_data *)data->d_simulation_data)->my_ext_press
+#endif
+            );
         cudaCheckError( );
 
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
         if ( update_energy == TRUE )
         {
-            /* reduction for E_Ang */
             Cuda_Reduction_Sum( spad,
                     &((simulation_data *)data->d_simulation_data)->my_en.e_ang,
                     system->N );
 
-            /* reduction for E_Pen */
             Cuda_Reduction_Sum( &spad[system->N],
                     &((simulation_data *)data->d_simulation_data)->my_en.e_pen,
                     system->N );
 
-            /* reduction for E_Coa */
             Cuda_Reduction_Sum( &spad[2 * system->N],
                     &((simulation_data *)data->d_simulation_data)->my_en.e_coa,
                     system->N );
@@ -1913,7 +1956,6 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
         {
             rvec_spad = (rvec *) (&spad[3 * system->N]);
 
-            /* reduction for ext_pres */
             k_reduction_rvec <<< control->blocks_n, control->block_size_n,
                              sizeof(rvec) * (control->block_size_n / 32) >>>
                 ( rvec_spad, &rvec_spad[system->N], system->N );
@@ -1929,6 +1971,7 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
 //                    &((simulation_data *)data->d_simulation_data)->my_ext_press,
 //                    system->N );
         }
+#endif
 
 #if !defined(CUDA_ACCUM_FORCE_ATOMIC)
         Cuda_Valence_Angles_Part2 <<< control->blocks_n, control->block_size_n >>>
@@ -1938,25 +1981,40 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
 #endif
 
         /* 5. Torsion Angles Interactions */
-        cuda_memset( spad, 0, (sizeof(real) * 2 + sizeof(rvec)) * system->n + sizeof(rvec) * control->blocks,
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+        cuda_memset( spad, 0,(sizeof(real) * 2 + sizeof(rvec)) * system->n + sizeof(rvec) * control->blocks,
                 "Cuda_Compute_Bonded_Forces::spad" );
+#else
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_tor,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_tor" );
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_en.e_con,
+                0, sizeof(real), "Cuda_Compute_Bonded_Forces::e_con" );
+        cuda_memset( &((simulation_data *)data->d_simulation_data)->my_ext_press,
+                0, sizeof(rvec), "Cuda_Compute_Bonded_Forces::my_ext_press" );
+#endif
 
         Cuda_Torsion_Angles_Part1 <<< control->blocks, control->block_size >>>
             ( system->d_my_atoms, system->reax_param.d_gp, system->reax_param.d_fbp,
               (control_params *) control->d_control_params, *(lists[BONDS]),
               *(lists[THREE_BODIES]), *(workspace->d_workspace), system->n,
               system->reax_param.num_atom_types, 
-              spad, &spad[system->n], (rvec *) (&spad[2 * system->n]) );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+              spad, &spad[system->n], (rvec *) (&spad[2 * system->n])
+#else
+              &((simulation_data *)data->d_simulation_data)->my_en.e_tor,
+              &((simulation_data *)data->d_simulation_data)->my_en.e_con,
+              &((simulation_data *)data->d_simulation_data)->my_ext_press
+#endif
+            );
         cudaCheckError( );
 
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
         if ( update_energy == TRUE )
         {
-            /* reduction for E_Tor */
             Cuda_Reduction_Sum( spad,
                     &((simulation_data *)data->d_simulation_data)->my_en.e_tor,
                     system->n );
 
-            /* reduction for E_Con */
             Cuda_Reduction_Sum( &spad[system->n],
                     &((simulation_data *)data->d_simulation_data)->my_en.e_con,
                     system->n );
@@ -1966,7 +2024,6 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
         {
             rvec_spad = (rvec *) (&spad[2 * system->n]);
 
-            /* reduction for ext_pres */
             k_reduction_rvec <<< control->blocks, control->block_size,
                              sizeof(rvec) * (control->block_size / 32) >>>
                 ( rvec_spad, &rvec_spad[system->n], system->n );
@@ -1982,6 +2039,7 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
 //                    &((simulation_data *)data->d_simulation_data)->my_ext_press,
 //                    system->n );
         }
+#endif
 
 #if !defined(CUDA_ACCUM_FORCE_ATOMIC)
         Cuda_Torsion_Angles_Part2 <<< control->blocks_n, control->block_size_n >>>
@@ -2014,7 +2072,6 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
 
             if ( update_energy == TRUE )
             {
-                /* reduction for E_HB */
                 Cuda_Reduction_Sum( spad,
                         &((simulation_data *)data->d_simulation_data)->my_en.e_hb,
                         system->n );
@@ -2024,7 +2081,6 @@ int Cuda_Compute_Bonded_Forces( reax_system *system, control_params *control,
             {
                 rvec_spad = (rvec *) (&spad[system->n]);
 
-                /* reduction for ext_pres */
                 k_reduction_rvec <<< control->blocks, control->block_size,
                                  sizeof(rvec) * (control->block_size / 32) >>>
                     ( rvec_spad, &rvec_spad[system->n], system->n );
diff --git a/PG-PuReMD/src/cuda/cuda_multi_body.cu b/PG-PuReMD/src/cuda/cuda_multi_body.cu
index 67f49c3d..7969ae7d 100644
--- a/PG-PuReMD/src/cuda/cuda_multi_body.cu
+++ b/PG-PuReMD/src/cuda/cuda_multi_body.cu
@@ -30,13 +30,16 @@
 CUDA_GLOBAL void Cuda_Atom_Energy_Part1( reax_atom *my_atoms, global_parameters gp, 
         single_body_parameters *sbp, two_body_parameters *tbp, 
         storage workspace, reax_list bond_list, int n, int num_atom_types,
-        real *data_e_lp, real *dat_e_ov, real *data_e_un )
+        real *e_lp_g, real *e_ov_g, real *e_un_g )
 {
     int i, j, pj, type_i, type_j;
     real Delta_lpcorr, dfvl;
-    real e_lp, expvd2, inv_expvd2, dElp, CElp, DlpVi;
-    real e_lph, Di, vov3, deahu2dbo, deahu2dsbo;
-    real e_ov, CEover1, CEover2, CEover3, CEover4;
+    real expvd2, inv_expvd2, dElp, CElp, DlpVi;
+    real Di, vov3, deahu2dbo, deahu2dsbo;
+    real CEover1, CEover2, CEover3, CEover4;
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    real e_lp_l;
+#endif
     real exp_ovun1, exp_ovun2, sum_ovun1, sum_ovun2;
     real exp_ovun2n, exp_ovun6, exp_ovun8;
     real inv_exp_ovun1, inv_exp_ovun2, inv_exp_ovun2n, inv_exp_ovun8;
@@ -71,8 +74,11 @@ CUDA_GLOBAL void Cuda_Atom_Energy_Part1( reax_atom *my_atoms, global_parameters
     inv_expvd2 = 1.0 / (1.0 + expvd2 );
 
     /* calculate the energy */
-    e_lp = p_lp2 * workspace.Delta_lp[i] * inv_expvd2;
-    data_e_lp[i] += e_lp;
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    e_lp_g[i] += p_lp2 * workspace.Delta_lp[i] * inv_expvd2;
+#else
+    e_lp_l = p_lp2 * workspace.Delta_lp[i] * inv_expvd2;
+#endif
 
     dElp = p_lp2 * inv_expvd2 + 75.0 * p_lp2 * workspace.Delta_lp[i]
         * expvd2 * SQR(inv_expvd2);
@@ -80,14 +86,6 @@ CUDA_GLOBAL void Cuda_Atom_Energy_Part1( reax_atom *my_atoms, global_parameters
 
     workspace.CdDelta[i] += CElp;  // lp - 1st term  
 
-#if defined(TEST_ENERGY)
-        fprintf( out_control->elp, "%23.15e%23.15e%23.15e%23.15e\n",
-                 p_lp2, workspace.Delta_lp_temp[i], expvd2, dElp );
-    fprintf( out_control->elp, "%6d%12.4f%12.4f%12.4f\n",
-            system->my_atoms[i].orig_id, workspace.nlp[i], 
-            e_lp, data->my_en.e_lp );
-#endif
-
 #if defined(TEST_FORCES)
     Add_dDelta( system, lists, i, CElp, workspace.f_lp );  // lp - 1st term
 #endif
@@ -115,8 +113,11 @@ CUDA_GLOBAL void Cuda_Atom_Energy_Part1( reax_atom *my_atoms, global_parameters
 
                     if ( vov3 > 3.0 )
                     {
-                        e_lph = p_lp3 * SQR( vov3 - 3.0 );
-                        data_e_lp[i] += e_lph;
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                        e_lp_g[i] += p_lp3 * SQR( vov3 - 3.0 );
+#else
+                        e_lp_l += p_lp3 * SQR( vov3 - 3.0 );
+#endif
 
                         deahu2dbo = 2.0 * p_lp3 * (vov3 - 3.0);
                         deahu2dsbo = 2.0 * p_lp3 * (vov3 - 3.0)
@@ -124,25 +125,18 @@ CUDA_GLOBAL void Cuda_Atom_Energy_Part1( reax_atom *my_atoms, global_parameters
 
                         bo_ij->Cdbo += deahu2dbo;
                         workspace.CdDelta[i] += deahu2dsbo;
-
-#if defined(TEST_ENERGY)
-                        fprintf( out_control->elp,"C2cor%6d%6d%12.6f%12.6f%12.6f\n",
-                                system->my_atoms[i].orig_id, system->my_atoms[j].orig_id,
-                                e_lph, deahu2dbo, deahu2dsbo );
-#endif
-
-#if defined(TEST_FORCES)
-                        Add_dBO( system, lists, i, pj, deahu2dbo, workspace.f_lp );
-                        Add_dDelta( system, lists, i, deahu2dsbo, workspace.f_lp );
-#endif
                     }
                 }    
             }
         }
     }
 
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    atomicAdd( (double *) e_lp_g, (double) e_lp_l );
+#endif
+
     /* over-coordination energy */
-    if( sbp_i->mass > 21.0 ) 
+    if ( sbp_i->mass > 21.0 ) 
     {
         dfvl = 0.0;
     }
@@ -179,8 +173,11 @@ CUDA_GLOBAL void Cuda_Atom_Energy_Part1( reax_atom *my_atoms, global_parameters
     DlpVi = 1.0 / (Delta_lpcorr + sbp_i->valency + 1.0e-8);
     CEover1 = Delta_lpcorr * DlpVi * inv_exp_ovun2;
 
-    e_ov = sum_ovun1 * CEover1;
-    dat_e_ov[i] += e_ov;
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    e_ov_g[i] += sum_ovun1 * CEover1;
+#else
+    atomicAdd( (double *) e_ov_g, (double) (sum_ovun1 * CEover1) );
+#endif
 
     CEover2 = sum_ovun1 * DlpVi * inv_exp_ovun2 * (1.0 - Delta_lpcorr
             * ( DlpVi + p_ovun2 * exp_ovun2 * inv_exp_ovun2 ));
@@ -201,7 +198,11 @@ CUDA_GLOBAL void Cuda_Atom_Energy_Part1( reax_atom *my_atoms, global_parameters
     inv_exp_ovun8 = 1.0 / (1.0 + exp_ovun8);
 
     e_un = -p_ovun5 * (1.0 - exp_ovun6) * inv_exp_ovun2n * inv_exp_ovun8;
-    data_e_un[i] += e_un;
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    e_un_g[i] += e_un;
+#else
+    atomicAdd( (double *) e_un_g, (double) e_un );
+#endif
 
     CEunder1 = inv_exp_ovun2n * ( p_ovun5 * p_ovun6 * exp_ovun6 * inv_exp_ovun8
             + p_ovun2 * e_un * exp_ovun2n );
@@ -302,23 +303,6 @@ CUDA_GLOBAL void Cuda_Atom_Energy_Part1( reax_atom *my_atoms, global_parameters
                 workspace.f_un, workspace.f_un ); // UnCoor - 2b
 #endif
     }
-
-#if defined(TEST_ENERGY)
-    //fprintf( out_control->elp, "%6d%24.15e%24.15e%24.15e\n",
-    //fprintf( out_control->elp, "%6d%12.4f%12.4f%12.4f\n",
-    //     system->my_atoms[i].orig_id, workspace.nlp[i], 
-    //     e_lp, data->my_en.e_lp );
-
-    //fprintf( out_control->eov, "%6d%24.15e%24.15e\n", 
-    fprintf( out_control->eov, "%6d%12.4f%12.4f\n", 
-            system->my_atoms[i].orig_id, 
-            e_ov, data->my_en.e_ov + data->my_en.e_un );
-
-    //fprintf( out_control->eun, "%6d%24.15e%24.15e\n", 
-    fprintf( out_control->eun, "%6d%12.4f%12.4f\n", 
-            system->my_atoms[i].orig_id, 
-            e_un, data->my_en.e_ov + data->my_en.e_un );
-#endif
 }
 
 
diff --git a/PG-PuReMD/src/cuda/cuda_torsion_angles.cu b/PG-PuReMD/src/cuda/cuda_torsion_angles.cu
index e0e10fe2..f9648c36 100644
--- a/PG-PuReMD/src/cuda/cuda_torsion_angles.cu
+++ b/PG-PuReMD/src/cuda/cuda_torsion_angles.cu
@@ -144,7 +144,7 @@ CUDA_DEVICE static real Calculate_Omega( const rvec dvec_ij, real r_ij, const rv
 CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_parameters gp, 
         four_body_header *d_fbp, control_params *control, reax_list bond_list,
         reax_list thb_list, storage workspace, int n, int num_atom_types, 
-        real *data_e_tor, real *data_e_con, rvec *data_ext_press )
+        real *e_tor_g, real *e_con_g, rvec *ext_press_g )
 {
     int i, j, k, l, pi, pj, pk, pl, pij, plk;
     int type_i, type_j, type_k, type_l;
@@ -170,9 +170,14 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
     real CEtors5, CEtors6, CEtors7, CEtors8, CEtors9;
     real Cconj, CEconj1, CEconj2, CEconj3;
     real CEconj4, CEconj5, CEconj6;
-    real e_tor, e_con;
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    real e_tor_l, e_con_l;
+#endif
     rvec dvec_li;
     rvec force, ext_press;
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    rvec ext_press_l;
+#endif
     ivec rel_box_jl;
     // rtensor total_rtensor, temp_rtensor;
     four_body_header *fbh;
@@ -193,6 +198,11 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
     p_tor3 = gp.l[24];
     p_tor4 = gp.l[25];
     p_cot2 = gp.l[27];
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    e_tor_l = 0.0;
+    e_con_l = 0.0;
+    rvec_MakeZero( ext_press_l );
+#endif
 #if defined(DEBUG_FOCUS)
     num_frb_intrs = 0;
 #endif
@@ -349,8 +359,11 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
 //                                    + fbp->V2 * exp_tor1 * (1.0 - SQR(cos_omega))
 //                                    + fbp->V3 * (0.5 + 2.0 * CUBE(cos_omega) - 1.5 * cos_omega);
 
-                                e_tor = fn10 * sin_ijk * sin_jkl * CV;
-                                data_e_tor[j] += e_tor;
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                e_tor_g[j] += fn10 * sin_ijk * sin_jkl * CV;
+#else
+                                e_tor_l += fn10 * sin_ijk * sin_jkl * CV;
+#endif
 
                                 dfn11 = (-p_tor3 * exp_tor3_DjDk
                                         + (p_tor3 * exp_tor3_DjDk - p_tor4 * exp_tor4_DjDk)
@@ -386,9 +399,13 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
 
                                 /* 4-body conjugation energy */
                                 fn12 = exp_cot2_ij * exp_cot2_jk * exp_cot2_kl;
-                                e_con = fbp->p_cot1 * fn12
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                e_con_g[j] += fbp->p_cot1 * fn12
                                     * (1.0 + (SQR(cos_omega) - 1.0) * sin_ijk * sin_jkl);
-                                data_e_con[j] += e_con;
+#else
+                                e_con_l += fbp->p_cot1 * fn12
+                                    * (1.0 + (SQR(cos_omega) - 1.0) * sin_ijk * sin_jkl);
+#endif
 
                                 Cconj = -2.0 * fn12 * fbp->p_cot1 * p_cot2
                                     * (1.0 + (SQR(cos_omega) - 1.0) * sin_ijk * sin_jkl);
@@ -491,7 +508,11 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
                                     rvec_Scale( force, CEtors7 + CEconj4, p_ijk->dcos_dk );
                                     atomic_rvecAdd( pbond_ij->ta_f, force );
                                     rvec_iMultiply( ext_press, pbond_ij->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     rvec_ScaledAdd( workspace.f[j], 
                                             CEtors7 + CEconj4, p_ijk->dcos_dj );
@@ -499,7 +520,11 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
                                     rvec_Scale( force, CEtors7 + CEconj4, p_ijk->dcos_di );
                                     atomic_rvecAdd( pbond_jk->ta_f, force );
                                     rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     /* dcos_theta_jkl */
                                     rvec_ScaledAdd( workspace.f[j], 
@@ -508,18 +533,30 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
                                     rvec_Scale( force, CEtors8 + CEconj5, p_jkl->dcos_dj );
                                     atomic_rvecAdd( pbond_jk->ta_f, force );
                                     rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     rvec_Scale( force, CEtors8 + CEconj5, p_jkl->dcos_dk );
                                     rvec_Add( pbond_kl->ta_f, force );
                                     rvec_iMultiply( ext_press, rel_box_jl, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     /* dcos_omega */                      
                                     rvec_Scale( force, CEtors9 + CEconj6, dcos_omega_di );
                                     atomic_rvecAdd( pbond_ij->ta_f, force );
                                     rvec_iMultiply( ext_press, pbond_ij->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     rvec_ScaledAdd( workspace.f[j], 
                                             CEtors9 + CEconj6, dcos_omega_dj );
@@ -527,12 +564,20 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
                                     rvec_Scale( force, CEtors9 + CEconj6, dcos_omega_dk );
                                     rvec_Add( pbond_jk->ta_f, force );
                                     rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     rvec_Scale( force, CEtors9 + CEconj6, dcos_omega_dl );
                                     rvec_Add( pbond_kl->ta_f, force );
                                     rvec_iMultiply( ext_press, rel_box_jl, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 #else
                                     ivec_Sum( rel_box_jl, pbond_jk->rel_box, pbond_kl->rel_box );
 
@@ -540,7 +585,11 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
                                     rvec_Scale( force, CEtors7 + CEconj4, p_ijk->dcos_dk );
                                     atomic_rvecAdd( workspace.f[i], force );
                                     rvec_iMultiply( ext_press, pbond_ij->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     atomic_rvecScaledAdd( workspace.f[j], 
                                             CEtors7 + CEconj4, p_ijk->dcos_dj );
@@ -548,7 +597,11 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
                                     rvec_Scale( force, CEtors7 + CEconj4, p_ijk->dcos_di );
                                     atomic_rvecAdd( workspace.f[k], force );
                                     rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     /* dcos_theta_jkl */
                                     atomic_rvecScaledAdd( workspace.f[j], 
@@ -557,18 +610,30 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
                                     rvec_Scale( force, CEtors8 + CEconj5, p_jkl->dcos_dj );
                                     atomic_rvecAdd( workspace.f[k], force );
                                     rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     rvec_Scale( force, CEtors8 + CEconj5, p_jkl->dcos_dk );
                                     atomic_rvecAdd( workspace.f[l], force );
                                     rvec_iMultiply( ext_press, rel_box_jl, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     /* dcos_omega */                      
                                     rvec_Scale( force, CEtors9 + CEconj6, dcos_omega_di );
                                     atomic_rvecAdd( workspace.f[i], force );
                                     rvec_iMultiply( ext_press, pbond_ij->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     atomic_rvecScaledAdd( workspace.f[j], 
                                             CEtors9 + CEconj6, dcos_omega_dj );
@@ -576,111 +641,22 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
                                     rvec_Scale( force, CEtors9 + CEconj6, dcos_omega_dk );
                                     atomic_rvecAdd( workspace.f[k], force );
                                     rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
+#endif
 
                                     rvec_Scale( force, CEtors9 + CEconj6, dcos_omega_dl );
                                     rvec_Add( workspace.f[l], force );
                                     rvec_iMultiply( ext_press, rel_box_jl, force );
-                                    rvec_Add( data_ext_press[j], ext_press );
-#endif
-                                }
-
-#if defined(TEST_ENERGY)
-                                /* fprintf( out_control->etor, 
-                                   "%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f\n",
-                                   r_ij, r_jk, r_kl, cos_ijk, cos_jkl, sin_ijk, sin_jkl );
-                                   fprintf( out_control->etor, "%12.8f\n", dfn11 ); */
-                                /* fprintf( out_control->etor, 
-                                   "%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f\n",
-                                   CEtors2, CEtors3, CEtors4, CEtors5, CEtors6, 
-                                   CEtors7, CEtors8, CEtors9 ); */
-                                /* fprintf( out_control->etor, 
-                                   "%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f\n",
-                                   htra, htrb, htrc, hthd, hthe, hnra, hnrc, hnhd, hnhe ); */
-                                /* fprintf( out_control->etor, 
-                                   "%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f\n",
-                                   CEconj1, CEconj2, CEconj3, CEconj4, CEconj5, CEconj6 ); */
-
-                                /* fprintf( out_control->etor, "%12.6f%12.6f%12.6f%12.6f\n",
-                                   fbp->V1, fbp->V2, fbp->V3, fbp->p_tor1 );*/
-
-                                fprintf(out_control->etor, 
-                                        //"%6d%6d%6d%6d%24.15e%24.15e%24.15e%24.15e\n", 
-                                        "%6d%6d%6d%6d%12.4f%12.4f%12.4f%12.4f\n", 
-                                        system->my_atoms[i].orig_id,system->my_atoms[j].orig_id, 
-                                        system->my_atoms[k].orig_id,system->my_atoms[l].orig_id, 
-                                        RAD2DEG(omega), BOA_jk, e_tor, data->my_en.e_tor );
-
-                                fprintf(out_control->econ, 
-                                        //"%6d%6d%6d%6d%24.15e%24.15e%24.15e%24.15e%24.15e%24.15e\n", 
-                                        "%6d%6d%6d%6d%12.4f%12.4f%12.4f%12.4f%12.4f%12.4f\n", 
-                                        system->my_atoms[i].orig_id,system->my_atoms[j].orig_id, 
-                                        system->my_atoms[k].orig_id,system->my_atoms[l].orig_id, 
-                                        RAD2DEG(omega), BOA_ij, BOA_jk, BOA_kl, 
-                                        e_con, data->my_en.e_con );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                                    rvec_Add( ext_press_g[j], ext_press );
+#else
+                                    rvec_Add( ext_press_l, ext_press );
 #endif
-
-#if defined(TEST_FORCES)
-                                /* Torsion Forces */
-                                Add_dBOpinpi2( system, lists, j, pk, CEtors2, 0.0, 
-                                        workspace.f_tor, workspace.f_tor );
-                                Add_dDelta( system, lists, j, CEtors3, workspace.f_tor );
-                                Add_dDelta( system, lists, k, CEtors3, workspace.f_tor );
-                                Add_dBO( system, lists, j, pij, CEtors4, workspace.f_tor );
-                                Add_dBO( system, lists, j, pk, CEtors5, workspace.f_tor );
-                                Add_dBO( system, lists, k, plk, CEtors6, workspace.f_tor );
-
-                                rvec_ScaledAdd( workspace.f_tor[i], 
-                                        CEtors7, p_ijk->dcos_dk );
-                                rvec_ScaledAdd( workspace.f_tor[j], 
-                                        CEtors7, p_ijk->dcos_dj );
-                                rvec_ScaledAdd( workspace.f_tor[k], 
-                                        CEtors7, p_ijk->dcos_di );
-
-                                rvec_ScaledAdd( workspace.f_tor[j], 
-                                        CEtors8, p_jkl->dcos_di );
-                                rvec_ScaledAdd( workspace.f_tor[k], 
-                                        CEtors8, p_jkl->dcos_dj );
-                                rvec_ScaledAdd( workspace.f_tor[l], 
-                                        CEtors8, p_jkl->dcos_dk );
-
-                                rvec_ScaledAdd( workspace.f_tor[i], 
-                                        CEtors9, dcos_omega_di );
-                                rvec_ScaledAdd( workspace.f_tor[j], 
-                                        CEtors9, dcos_omega_dj );
-                                rvec_ScaledAdd( workspace.f_tor[k], 
-                                        CEtors9, dcos_omega_dk );
-                                rvec_ScaledAdd( workspace.f_tor[l], 
-                                        CEtors9, dcos_omega_dl );
-
-                                /* Conjugation Forces */
-                                Add_dBO( system, lists, j, pij, CEconj1, workspace.f_con );
-                                Add_dBO( system, lists, j, pk, CEconj2, workspace.f_con );
-                                Add_dBO( system, lists, k, plk, CEconj3, workspace.f_con );
-
-                                rvec_ScaledAdd( workspace.f_con[i], 
-                                        CEconj4, p_ijk->dcos_dk );
-                                rvec_ScaledAdd( workspace.f_con[j], 
-                                        CEconj4, p_ijk->dcos_dj );
-                                rvec_ScaledAdd( workspace.f_con[k], 
-                                        CEconj4, p_ijk->dcos_di );
-
-                                rvec_ScaledAdd( workspace.f_con[j], 
-                                        CEconj5, p_jkl->dcos_di );
-                                rvec_ScaledAdd( workspace.f_con[k], 
-                                        CEconj5, p_jkl->dcos_dj );
-                                rvec_ScaledAdd( workspace.f_con[l], 
-                                        CEconj5, p_jkl->dcos_dk );
-
-                                rvec_ScaledAdd( workspace.f_con[i], 
-                                        CEconj6, dcos_omega_di );
-                                rvec_ScaledAdd( workspace.f_con[j], 
-                                        CEconj6, dcos_omega_dj );
-                                rvec_ScaledAdd( workspace.f_con[k], 
-                                        CEconj6, dcos_omega_dk );
-                                rvec_ScaledAdd( workspace.f_con[l], 
-                                        CEconj6, dcos_omega_dl );
 #endif
+                                }
                             } // pl check ends
                         } // pl loop ends
                     } // pi check ends
@@ -689,6 +665,12 @@ CUDA_GLOBAL void Cuda_Torsion_Angles_Part1( reax_atom *my_atoms, global_paramete
         } // j<k && j-k neighbor check ends
     } // pk loop ends
     //  } // j loop
+
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    atomicAdd( (double *) e_tor_g, (double) e_tor_l );
+    atomicAdd( (double *) e_con_g, (double) e_con_l );
+    atomic_rvecAdd( *ext_press_g, ext_press_l );
+#endif
 }
 
 
diff --git a/PG-PuReMD/src/cuda/cuda_valence_angles.cu b/PG-PuReMD/src/cuda/cuda_valence_angles.cu
index 32ac5543..df1583ab 100644
--- a/PG-PuReMD/src/cuda/cuda_valence_angles.cu
+++ b/PG-PuReMD/src/cuda/cuda_valence_angles.cu
@@ -36,7 +36,7 @@ CUDA_GLOBAL void Cuda_Valence_Angles_Part1( reax_atom *my_atoms,
         global_parameters gp, single_body_parameters *sbp, three_body_header *d_thbh,
         control_params *control, storage workspace, reax_list bond_list,
         reax_list thb_list, int n, int N, int num_atom_types,
-        real *data_e_ang, real *data_e_pen, real *data_e_coa, rvec *my_ext_press )
+        real *e_ang_g, real *e_pen_g, real *e_coa_g, rvec *ext_press_g )
 {
     int i, j, pi, k, pk, t;
     int type_i, type_j, type_k;
@@ -53,13 +53,19 @@ CUDA_GLOBAL void Cuda_Valence_Angles_Part1( reax_atom *my_atoms,
     real dSBO1, dSBO2, SBO, SBO2, CSBO2, SBOp, prod_SBO, vlpadj;
     real CEval1, CEval2, CEval3, CEval4, CEval5, CEval6, CEval7, CEval8;
     real CEpen1, CEpen2, CEpen3;
-    real e_ang, e_coa, e_pen;
+    real e_pen, e_coa;
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    real e_ang_l, e_coa_l, e_pen_l;
+#endif
     real CEcoa1, CEcoa2, CEcoa3, CEcoa4, CEcoa5;
     real Cf7ij, Cf7jk, Cf8j, Cf9j;
     real f7_ij, f7_jk, f8_Dj, f9_Dj;
     real Ctheta_0, theta_0, theta_00, theta, cos_theta, sin_theta;
     real BOA_ij, BOA_jk;
     rvec force, ext_press;
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    rvec ext_press_l;
+#endif
     three_body_header *thbh;
     three_body_parameters *thbp;
     three_body_interaction_data *p_ijk;
@@ -85,12 +91,19 @@ CUDA_GLOBAL void Cuda_Valence_Angles_Part1( reax_atom *my_atoms,
     p_val9 = gp.l[16];
     p_val10 = gp.l[17];
     //num_thb_intrs = j * THREE_BODY_OFFSET;
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    e_ang_l = 0.0;
+    e_coa_l = 0.0;
+    e_pen_l = 0.0;
+    rvec_MakeZero( ext_press_l );
+#endif
 
     type_j = my_atoms[j].type;
     start_j = Start_Index( j, &bond_list );
     end_j = End_Index( j, &bond_list );
     p_val3 = sbp[ type_j ].p_val3;
     p_val5 = sbp[ type_j ].p_val5;
+
     /* sum of pi and pi-pi BO terms for all neighbors of atom j,
      * used in determining the equilibrium angle between i-j-k */
     SBOp = 0.0;
@@ -101,7 +114,7 @@ CUDA_GLOBAL void Cuda_Valence_Angles_Part1( reax_atom *my_atoms,
     for ( t = start_j; t < end_j; ++t )
     {
         bo_jt = &bond_list.bond_list[t].bo_data;
-        SBOp += (bo_jt->BO_pi + bo_jt->BO_pi2);
+        SBOp += bo_jt->BO_pi + bo_jt->BO_pi2;
         temp = SQR( bo_jt->BO );
         temp *= temp;
         temp *= temp;
@@ -236,309 +249,239 @@ CUDA_GLOBAL void Cuda_Valence_Angles_Part1( reax_atom *my_atoms,
 
                 /* Fortran ReaxFF code hard-codes the constant below
                  * as of 2019-02-27, so use that for now */
-                if ( j < n && BOA_jk >= 0.0 && (bo_ij->BO * bo_jk->BO) >= 0.00001 )
-//                if ( j < n && BOA_jk >= 0.0 && (bo_ij->BO * bo_jk->BO) > SQR(control->thb_cut) )
+                if ( j >= n || BOA_jk < 0.0 || (bo_ij->BO * bo_jk->BO) < 0.00001 )
+//                if ( j >= n || BOA_jk < 0.0 || (bo_ij->BO * bo_jk->BO) < SQR(control->thb_cut) )
                 {
-                    thbh = &d_thbh[
-                        index_thbp(type_i, type_j, type_k, num_atom_types) ];
+                    continue;
+                }
+
+                thbh = &d_thbh[
+                    index_thbp(type_i, type_j, type_k, num_atom_types) ];
 
-                    for ( cnt = 0; cnt < thbh->cnt; ++cnt )
+                for ( cnt = 0; cnt < thbh->cnt; ++cnt )
+                {
+                    /* valence angle does not exist in the force field */
+                    if ( FABS(thbh->prm[cnt].p_val1) < 0.001 )
                     {
-                        /* valence angle does not exist in the force field */
-                        if ( FABS(thbh->prm[cnt].p_val1) < 0.001 )
-                        {
-                            continue;
-                        }
+                        continue;
+                    }
 
-                        thbp = &thbh->prm[cnt];
-
-                        /* calculate valence angle energy */
-                        p_val1 = thbp->p_val1;
-                        p_val2 = thbp->p_val2;
-                        p_val4 = thbp->p_val4;
-                        p_val7 = thbp->p_val7;
-                        theta_00 = thbp->theta_00;
-
-                        exp3ij = EXP( -p_val3 * POW( BOA_ij, p_val4 ) );
-                        f7_ij = 1.0 - exp3ij;
-                        Cf7ij = p_val3 * p_val4
-                            * POW( BOA_ij, p_val4 - 1.0 ) * exp3ij;
-
-                        exp3jk = EXP( -p_val3 * POW( BOA_jk, p_val4 ) );
-                        f7_jk = 1.0 - exp3jk;
-                        Cf7jk = p_val3 * p_val4
-                            * POW( BOA_jk, p_val4 - 1.0 ) * exp3jk;
-
-                        expval7 = EXP( -p_val7 * workspace.Delta_boc[j] );
-                        trm8 = 1.0 + expval6 + expval7;
-                        f8_Dj = p_val5 - ( (p_val5 - 1.0) * (2.0 + expval6) / trm8 );
-                        Cf8j = ( (1.0 - p_val5) / SQR(trm8) )
-                            * (p_val6 * expval6 * trm8
-                                    - (2.0 + expval6) * ( p_val6*expval6 - p_val7*expval7) );
-
-                        theta_0 = 180.0 - theta_00 * (1.0 - EXP(-p_val10 * (2.0 - SBO2)));
-                        theta_0 = DEG2RAD( theta_0 );
-
-                        expval2theta = p_val1 * EXP(-p_val2 * SQR(theta_0 - theta));
-                        if ( p_val1 >= 0.0 )
-                        {
-                            expval12theta = p_val1 - expval2theta;
-                        }
-                        /* to avoid linear Me-H-Me angles (6/6/06) */
-                        else
-                        {
-                            expval12theta = -expval2theta;
-                        }
+                    thbp = &thbh->prm[cnt];
+
+                    /* calculate valence angle energy */
+                    p_val1 = thbp->p_val1;
+                    p_val2 = thbp->p_val2;
+                    p_val4 = thbp->p_val4;
+                    p_val7 = thbp->p_val7;
+                    theta_00 = thbp->theta_00;
+
+                    exp3ij = EXP( -p_val3 * POW( BOA_ij, p_val4 ) );
+                    f7_ij = 1.0 - exp3ij;
+                    Cf7ij = p_val3 * p_val4
+                        * POW( BOA_ij, p_val4 - 1.0 ) * exp3ij;
+
+                    exp3jk = EXP( -p_val3 * POW( BOA_jk, p_val4 ) );
+                    f7_jk = 1.0 - exp3jk;
+                    Cf7jk = p_val3 * p_val4
+                        * POW( BOA_jk, p_val4 - 1.0 ) * exp3jk;
+
+                    expval7 = EXP( -p_val7 * workspace.Delta_boc[j] );
+                    trm8 = 1.0 + expval6 + expval7;
+                    f8_Dj = p_val5 - (p_val5 - 1.0) * (2.0 + expval6) / trm8;
+                    Cf8j = ( (1.0 - p_val5) / SQR(trm8) )
+                        * (p_val6 * expval6 * trm8
+                                - (2.0 + expval6) * ( p_val6 * expval6 - p_val7 * expval7) );
+
+                    theta_0 = 180.0 - theta_00 * (1.0 - EXP(-p_val10 * (2.0 - SBO2)));
+                    theta_0 = DEG2RAD( theta_0 );
+
+                    expval2theta = p_val1 * EXP(-p_val2 * SQR(theta_0 - theta));
+                    if ( p_val1 >= 0.0 )
+                    {
+                        expval12theta = p_val1 - expval2theta;
+                    }
+                    /* to avoid linear Me-H-Me angles (6/6/06) */
+                    else
+                    {
+                        expval12theta = -expval2theta;
+                    }
 
-                        CEval1 = Cf7ij * f7_jk * f8_Dj * expval12theta;
-                        CEval2 = Cf7jk * f7_ij * f8_Dj * expval12theta;
-                        CEval3 = Cf8j * f7_ij * f7_jk * expval12theta;
-                        CEval4 = 2.0 * p_val2 * f7_ij * f7_jk * f8_Dj
-                            * expval2theta * (theta_0 - theta);
+                    CEval1 = Cf7ij * f7_jk * f8_Dj * expval12theta;
+                    CEval2 = Cf7jk * f7_ij * f8_Dj * expval12theta;
+                    CEval3 = Cf8j * f7_ij * f7_jk * expval12theta;
+                    CEval4 = 2.0 * p_val2 * f7_ij * f7_jk * f8_Dj
+                        * expval2theta * (theta_0 - theta);
 
-                        Ctheta_0 = p_val10 * DEG2RAD(theta_00)
-                            * EXP( -p_val10 * (2.0 - SBO2) );
+                    Ctheta_0 = p_val10 * DEG2RAD(theta_00)
+                        * EXP( -p_val10 * (2.0 - SBO2) );
 
-                        CEval5 = CEval4 * Ctheta_0 * CSBO2;
-                        CEval6 = CEval5 * dSBO1;
-                        CEval7 = CEval5 * dSBO2;
-                        CEval8 = CEval4 / sin_theta;
+                    CEval5 = CEval4 * Ctheta_0 * CSBO2;
+                    CEval6 = CEval5 * dSBO1;
+                    CEval7 = CEval5 * dSBO2;
+                    CEval8 = CEval4 / sin_theta;
 
-                        if ( pk < pi )
-                        {
-                            e_ang = f7_ij * f7_jk * f8_Dj * expval12theta;
-                            data_e_ang[j] += e_ang;
-                        }
+                    if ( pk < pi )
+                    {
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                        e_ang_g[j] += f7_ij * f7_jk * f8_Dj * expval12theta;
+#else
+                        e_ang_l += f7_ij * f7_jk * f8_Dj * expval12theta;
+#endif
+                    }
 
-                        /* calculate penalty for double bonds in valency angles */
-                        p_pen1 = thbp->p_pen1;
-
-                        exp_pen2ij = EXP( -p_pen2 * SQR( BOA_ij - 2.0 ) );
-                        exp_pen2jk = EXP( -p_pen2 * SQR( BOA_jk - 2.0 ) );
-                        exp_pen3 = EXP( -p_pen3 * workspace.Delta[j] );
-                        exp_pen4 = EXP(  p_pen4 * workspace.Delta[j] );
-                        trm_pen34 = 1.0 + exp_pen3 + exp_pen4;
-                        f9_Dj = ( 2.0 + exp_pen3 ) / trm_pen34;
-                        Cf9j = (-p_pen3 * exp_pen3 * trm_pen34
-                                - (2.0 + exp_pen3) * ( -p_pen3 * exp_pen3
-                                    + p_pen4 * exp_pen4 )) / SQR( trm_pen34 );
-                        /* very important: since each kernel generates all interactions,
-                         * need to prevent all energies becoming duplicates */
-                        if ( pk < pi )
-                        {
-                            e_pen = p_pen1 * f9_Dj * exp_pen2ij * exp_pen2jk;
-                            data_e_pen[j] += e_pen;
-                        }
+                    /* calculate penalty for double bonds in valency angles */
+                    p_pen1 = thbp->p_pen1;
+
+                    exp_pen2ij = EXP( -p_pen2 * SQR( BOA_ij - 2.0 ) );
+                    exp_pen2jk = EXP( -p_pen2 * SQR( BOA_jk - 2.0 ) );
+                    exp_pen3 = EXP( -p_pen3 * workspace.Delta[j] );
+                    exp_pen4 = EXP(  p_pen4 * workspace.Delta[j] );
+                    trm_pen34 = 1.0 + exp_pen3 + exp_pen4;
+                    f9_Dj = ( 2.0 + exp_pen3 ) / trm_pen34;
+                    Cf9j = (-p_pen3 * exp_pen3 * trm_pen34
+                            - (2.0 + exp_pen3) * ( -p_pen3 * exp_pen3
+                                + p_pen4 * exp_pen4 )) / SQR( trm_pen34 );
+
+                    /* very important: since each kernel generates all interactions,
+                     * need to prevent all energies becoming duplicates */
+                    if ( pk < pi )
+                    {
+                        e_pen = p_pen1 * f9_Dj * exp_pen2ij * exp_pen2jk;
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                        e_pen_g[j] += e_pen;
+#else
+                        e_pen_l += e_pen;
+#endif
+                    }
 
-                        CEpen1 = e_pen * Cf9j / f9_Dj;
-                        temp = -2.0 * p_pen2 * e_pen;
-                        CEpen2 = temp * (BOA_ij - 2.0);
-                        CEpen3 = temp * (BOA_jk - 2.0);
-
-                        /* calculate valency angle conjugation energy */
-                        p_coa1 = thbp->p_coa1;
-
-                        exp_coa2 = EXP( p_coa2 * workspace.Delta_boc[j] );
-                        e_coa = p_coa1
-                            * EXP( -p_coa4 * SQR(BOA_ij - 1.5) )
-                            * EXP( -p_coa4 * SQR(BOA_jk - 1.5) )
-                            * EXP( -p_coa3 * SQR(workspace.total_bond_order[i] - BOA_ij) )
-                            * EXP( -p_coa3 * SQR(workspace.total_bond_order[k] - BOA_jk) )
-                            / (1.0 + exp_coa2);
-                        /* similar to above comment regarding if statement */
-                        if ( pk < pi )
-                        {
-                            data_e_coa[j] += e_coa;
-                        }
+                    CEpen1 = e_pen * Cf9j / f9_Dj;
+                    temp = -2.0 * p_pen2 * e_pen;
+                    CEpen2 = temp * (BOA_ij - 2.0);
+                    CEpen3 = temp * (BOA_jk - 2.0);
+
+                    /* calculate valency angle conjugation energy */
+                    p_coa1 = thbp->p_coa1;
+
+                    exp_coa2 = EXP( p_coa2 * workspace.Delta_boc[j] );
+                    e_coa = p_coa1
+                        * EXP( -p_coa4 * SQR(BOA_ij - 1.5) )
+                        * EXP( -p_coa4 * SQR(BOA_jk - 1.5) )
+                        * EXP( -p_coa3 * SQR(workspace.total_bond_order[i] - BOA_ij) )
+                        * EXP( -p_coa3 * SQR(workspace.total_bond_order[k] - BOA_jk) )
+                        / (1.0 + exp_coa2);
+                    /* similar to above comment regarding if statement */
+                    if ( pk < pi )
+                    {
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                        e_coa_g[j] += e_coa;
+#else
+                        e_coa_l += e_coa;
+#endif
+                    }
 
-                        CEcoa1 = -2.0 * p_coa4 * (BOA_ij - 1.5) * e_coa;
-                        CEcoa2 = -2.0 * p_coa4 * (BOA_jk - 1.5) * e_coa;
-                        CEcoa3 = -p_coa2 * exp_coa2 * e_coa / (1.0 + exp_coa2);
-                        CEcoa4 = -2.0 * p_coa3 * (workspace.total_bond_order[i] - BOA_ij) * e_coa;
-                        CEcoa5 = -2.0 * p_coa3 * (workspace.total_bond_order[k] - BOA_jk) * e_coa;
+                    CEcoa1 = -2.0 * p_coa4 * (BOA_ij - 1.5) * e_coa;
+                    CEcoa2 = -2.0 * p_coa4 * (BOA_jk - 1.5) * e_coa;
+                    CEcoa3 = -p_coa2 * exp_coa2 * e_coa / (1.0 + exp_coa2);
+                    CEcoa4 = -2.0 * p_coa3 * (workspace.total_bond_order[i] - BOA_ij) * e_coa;
+                    CEcoa5 = -2.0 * p_coa3 * (workspace.total_bond_order[k] - BOA_jk) * e_coa;
 
-                        /* calculate force contributions */
-                        /* we must again check for pk < pi for entire forces part */
-                        if ( pk < pi )
-                        {
+                    /* calculate force contributions */
+                    /* we must again check for pk < pi for entire forces part */
+                    if ( pk < pi )
+                    {
 #if !defined(CUDA_ACCUM_FORCE_ATOMIC)
-                            bo_ij->Cdbo += (CEval1 + CEpen2 + (CEcoa1 - CEcoa4));
-                            bo_jk->Cdbo += (CEval2 + CEpen3 + (CEcoa2 - CEcoa5));
-                            workspace.CdDelta[j] += ((CEval3 + CEval7) + CEpen1 + CEcoa3);
-                            pbond_ij->va_CdDelta += CEcoa4;
-                            pbond_jk->va_CdDelta += CEcoa5;
+                        bo_ij->Cdbo += CEval1 + CEpen2 + (CEcoa1 - CEcoa4);
+                        bo_jk->Cdbo += CEval2 + CEpen3 + (CEcoa2 - CEcoa5);
+                        workspace.CdDelta[j] += (CEval3 + CEval7) + CEpen1 + CEcoa3;
+                        pbond_ij->va_CdDelta += CEcoa4;
+                        pbond_jk->va_CdDelta += CEcoa5;
 #else
-                            atomicAdd( &bo_ij->Cdbo, CEval1 + CEpen2 + (CEcoa1 - CEcoa4) );
-                            atomicAdd( &bo_jk->Cdbo, CEval2 + CEpen3 + (CEcoa2 - CEcoa5) );
-                            atomicAdd( &workspace.CdDelta[j], (CEval3 + CEval7) + CEpen1 + CEcoa3 );
-                            atomicAdd( &workspace.CdDelta[i], CEcoa4 );
-                            atomicAdd( &workspace.CdDelta[k], CEcoa5 );
+                        atomicAdd( &bo_ij->Cdbo, CEval1 + CEpen2 + (CEcoa1 - CEcoa4) );
+                        atomicAdd( &bo_jk->Cdbo, CEval2 + CEpen3 + (CEcoa2 - CEcoa5) );
+                        atomicAdd( &workspace.CdDelta[j], (CEval3 + CEval7) + CEpen1 + CEcoa3 );
+                        atomicAdd( &workspace.CdDelta[i], CEcoa4 );
+                        atomicAdd( &workspace.CdDelta[k], CEcoa5 );
 #endif
 
-                            for ( t = start_j; t < end_j; ++t )
-                            {
-                                pbond_jt = &bond_list.bond_list[t];
-                                bo_jt = &pbond_jt->bo_data;
-                                temp_bo_jt = bo_jt->BO;
-                                temp = CUBE( temp_bo_jt );
-                                pBOjt7 = temp * temp * temp_bo_jt;
+                        for ( t = start_j; t < end_j; ++t )
+                        {
+                            pbond_jt = &bond_list.bond_list[t];
+                            bo_jt = &pbond_jt->bo_data;
+                            temp_bo_jt = bo_jt->BO;
+                            temp = CUBE( temp_bo_jt );
+                            pBOjt7 = temp * temp * temp_bo_jt;
 
 #if !defined(CUDA_ACCUM_FORCE_ATOMIC)
-                                bo_jt->Cdbo += (CEval6 * pBOjt7);
-                                bo_jt->Cdbopi += CEval5;
-                                bo_jt->Cdbopi2 += CEval5;
+                            bo_jt->Cdbo += (CEval6 * pBOjt7);
+                            bo_jt->Cdbopi += CEval5;
+                            bo_jt->Cdbopi2 += CEval5;
 #else
-                                atomicAdd( &bo_jt->Cdbo, CEval6 * pBOjt7 );
-                                atomicAdd( &bo_jt->Cdbopi, CEval5 );
-                                atomicAdd( &bo_jt->Cdbopi2, CEval5 );
+                            atomicAdd( &bo_jt->Cdbo, CEval6 * pBOjt7 );
+                            atomicAdd( &bo_jt->Cdbopi, CEval5 );
+                            atomicAdd( &bo_jt->Cdbopi2, CEval5 );
 #endif
-                            }
+                        }
 
-                            if ( control->virial == 0 )
-                            {
+                        if ( control->virial == 0 )
+                        {
 #if !defined(CUDA_ACCUM_FORCE_ATOMIC)
-                                rvec_ScaledAdd( pbond_ij->va_f, CEval8, p_ijk->dcos_di );
-                                rvec_ScaledAdd( workspace.f[j], CEval8, p_ijk->dcos_dj );
-                                rvec_ScaledAdd( pbond_jk->va_f, CEval8, p_ijk->dcos_dk );
+                            rvec_ScaledAdd( pbond_ij->va_f, CEval8, p_ijk->dcos_di );
+                            rvec_ScaledAdd( workspace.f[j], CEval8, p_ijk->dcos_dj );
+                            rvec_ScaledAdd( pbond_jk->va_f, CEval8, p_ijk->dcos_dk );
 #else
-                                atomic_rvecScaledAdd( workspace.f[i], CEval8, p_ijk->dcos_di );
-                                atomic_rvecScaledAdd( workspace.f[j], CEval8, p_ijk->dcos_dj );
-                                atomic_rvecScaledAdd( workspace.f[k], CEval8, p_ijk->dcos_dk );
+                            atomic_rvecScaledAdd( workspace.f[i], CEval8, p_ijk->dcos_di );
+                            atomic_rvecScaledAdd( workspace.f[j], CEval8, p_ijk->dcos_dj );
+                            atomic_rvecScaledAdd( workspace.f[k], CEval8, p_ijk->dcos_dk );
 #endif
-                            }
-                            else
-                            {
+                        }
+                        else
+                        {
 #if !defined(CUDA_ACCUM_FORCE_ATOMIC)
-                                /* terms not related to bond order derivatives are
-                                 * added directly into forces and pressure vector/tensor */
-                                rvec_Scale( force, CEval8, p_ijk->dcos_di );
-                                rvec_Add( pbond_ij->va_f, force );
-                                rvec_iMultiply( ext_press, pbond_ij->rel_box, force );
-                                rvec_Add( my_ext_press[j], ext_press );
-
-                                rvec_ScaledAdd( workspace.f[j], CEval8, p_ijk->dcos_dj );
-
-                                rvec_Scale( force, CEval8, p_ijk->dcos_dk );
-                                rvec_Add( pbond_jk->va_f, force );
-                                rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
-                                rvec_Add( my_ext_press[j], ext_press );
+                            /* terms not related to bond order derivatives are
+                             * added directly into forces and pressure vector/tensor */
+                            rvec_Scale( force, CEval8, p_ijk->dcos_di );
+                            rvec_Add( pbond_ij->va_f, force );
+                            rvec_iMultiply( ext_press, pbond_ij->rel_box, force );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                            rvec_Add( ext_press_g[j], ext_press );
 #else
-                                /* terms not related to bond order derivatives are
-                                 * added directly into forces and pressure vector/tensor */
-                                rvec_Scale( force, CEval8, p_ijk->dcos_di );
-                                atomic_rvecAdd( workspace.f[i], force );
-                                rvec_iMultiply( ext_press, pbond_ij->rel_box, force );
-                                rvec_Add( my_ext_press[j], ext_press );
-
-                                rvec_ScaledAdd( workspace.f[j], CEval8, p_ijk->dcos_dj );
-
-                                rvec_Scale( force, CEval8, p_ijk->dcos_dk );
-                                atomic_rvecAdd( workspace.f[k], force );
-                                rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
-                                rvec_Add( my_ext_press[j], ext_press );
-#endif
-                            }
-                        }
-
-#if defined(TEST_ENERGY)
-                        /*fprintf( out_control->eval, "%12.8f%12.8f%12.8f%12.8f\n",
-                          p_val3, p_val4, BOA_ij, BOA_jk );
-                          fprintf(out_control->eval, "%13.8f%13.8f%13.8f%13.8f%13.8f\n",
-                          workspace.Delta_e[j], workspace.vlpex[j],
-                          dSBO1, dSBO2, vlpadj );
-                          fprintf( out_control->eval, "%12.8f%12.8f%12.8f%12.8f\n",
-                          f7_ij, f7_jk, f8_Dj, expval12theta );
-                          fprintf( out_control->eval,
-                          "%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f%12.8f\n",
-                          CEval1, CEval2, CEval3, CEval4,
-                          CEval5, CEval6, CEval7, CEval8 );
-
-                          fprintf( out_control->eval,
-                          "%12.8f%12.8f%12.8f\n%12.8f%12.8f%12.8f\n%12.8f%12.8f%12.8f\n",
-                          p_ijk->dcos_di[0]/sin_theta, p_ijk->dcos_di[1]/sin_theta,
-                          p_ijk->dcos_di[2]/sin_theta,
-                          p_ijk->dcos_dj[0]/sin_theta, p_ijk->dcos_dj[1]/sin_theta,
-                          p_ijk->dcos_dj[2]/sin_theta,
-                          p_ijk->dcos_dk[0]/sin_theta, p_ijk->dcos_dk[1]/sin_theta,
-                          p_ijk->dcos_dk[2]/sin_theta);
-
-                          fprintf( out_control->eval,
-                          "%6d%6d%6d%15.8f%15.8f\n",
-                          system->my_atoms[i].orig_id,
-                          system->my_atoms[j].orig_id,
-                          system->my_atoms[k].orig_id,
-                          RAD2DEG(theta), e_ang );*/
-
-                        fprintf( out_control->eval,
-                                //"%6d%6d%6d%24.15e%24.15e%24.15e%24.15e%24.15e%24.15e\n",
-                                "%6d%6d%6d%12.4f%12.4f%12.4f%12.4f%12.4f%12.4f\n",
-                                system->my_atoms[i].orig_id,
-                                system->my_atoms[j].orig_id,
-                                system->my_atoms[k].orig_id,
-                                RAD2DEG(theta), theta_0, BOA_ij, BOA_jk,
-                                e_ang, data->my_en.e_ang );
-
-                        fprintf( out_control->epen,
-                                //"%6d%6d%6d%24.15e%24.15e%24.15e%24.15e%24.15e\n",
-                                "%6d%6d%6d%12.4f%12.4f%12.4f%12.4f%12.4f\n",
-                                system->my_atoms[i].orig_id,
-                                system->my_atoms[j].orig_id,
-                                system->my_atoms[k].orig_id,
-                                RAD2DEG(theta), BOA_ij, BOA_jk, e_pen,
-                                data->my_en.e_pen );
-
-                        fprintf( out_control->ecoa,
-                                //"%6d%6d%6d%24.15e%24.15e%24.15e%24.15e%24.15e\n",
-                                "%6d%6d%6d%12.4f%12.4f%12.4f%12.4f%12.4f\n",
-                                system->my_atoms[i].orig_id,
-                                system->my_atoms[j].orig_id,
-                                system->my_atoms[k].orig_id,
-                                RAD2DEG(theta), BOA_ij, BOA_jk,
-                                e_coa, data->my_en.e_coa );
+                            rvec_Add( ext_press_g[j], ext_press_l );
 #endif
 
-#if defined(TEST_FORCES)
-                        /* angle forces */
-                        Add_dBO( system, lists, j, pi, CEval1, workspace.f_ang );
-                        Add_dBO( system, lists, j, pk, CEval2, workspace.f_ang );
-                        Add_dDelta( system, lists, j,
-                                CEval3 + CEval7, workspace.f_ang );
+                            rvec_ScaledAdd( workspace.f[j], CEval8, p_ijk->dcos_dj );
 
-                        for( t = start_j; t < end_j; ++t )
-                        {
-                            pbond_jt = &bond_list.bond_list[t];
-                            bo_jt = &pbond_jt->bo_data;
-                            temp_bo_jt = bo_jt->BO;
-                            temp = CUBE( temp_bo_jt );
-                            pBOjt7 = temp * temp * temp_bo_jt;
+                            rvec_Scale( force, CEval8, p_ijk->dcos_dk );
+                            rvec_Add( pbond_jk->va_f, force );
+                            rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                            rvec_Add( ext_press_g[j], ext_press );
+#else
+                            rvec_Add( ext_press_g[j], ext_press_l );
+#endif
+#else
+                            /* terms not related to bond order derivatives are
+                             * added directly into forces and pressure vector/tensor */
+                            rvec_Scale( force, CEval8, p_ijk->dcos_di );
+                            atomic_rvecAdd( workspace.f[i], force );
+                            rvec_iMultiply( ext_press, pbond_ij->rel_box, force );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                            rvec_Add( ext_press_g[j], ext_press );
+#else
+                            rvec_Add( ext_press_g[j], ext_press_l );
+#endif
 
-                            Add_dBO( system, lists, j, t, pBOjt7 * CEval6,
-                                    workspace.f_ang );
-                            Add_dBOpinpi2( system, lists, j, t, CEval5, CEval5,
-                                    workspace.f_ang, workspace.f_ang );
-                        }
+                            rvec_ScaledAdd( workspace.f[j], CEval8, p_ijk->dcos_dj );
 
-                        rvec_ScaledAdd( workspace.f_ang[i], CEval8, p_ijk->dcos_di );
-                        rvec_ScaledAdd( workspace.f_ang[j], CEval8, p_ijk->dcos_dj );
-                        rvec_ScaledAdd( workspace.f_ang[k], CEval8, p_ijk->dcos_dk );
-                        /* end angle forces */
-
-                        /* penalty forces */
-                        Add_dDelta( system, lists, j, CEpen1, workspace.f_pen );
-                        Add_dBO( system, lists, j, pi, CEpen2, workspace.f_pen );
-                        Add_dBO( system, lists, j, pk, CEpen3, workspace.f_pen );
-                        /* end penalty forces */
-
-                        /* coalition forces */
-                        Add_dBO( system, lists, j, pi, CEcoa1 - CEcoa4,
-                                workspace.f_coa );
-                        Add_dBO( system, lists, j, pk, CEcoa2 - CEcoa5,
-                                workspace.f_coa );
-                        Add_dDelta( system, lists, j, CEcoa3, workspace.f_coa );
-                        Add_dDelta( system, lists, i, CEcoa4, workspace.f_coa );
-                        Add_dDelta( system, lists, k, CEcoa5, workspace.f_coa );
-                        /* end coalition forces */
+                            rvec_Scale( force, CEval8, p_ijk->dcos_dk );
+                            atomic_rvecAdd( workspace.f[k], force );
+                            rvec_iMultiply( ext_press, pbond_jk->rel_box, force );
+#if !defined(CUDA_ACCUM_ENERGY_ATOMIC)
+                            rvec_Add( ext_press_g[j], ext_press );
+#else
+                            rvec_Add( ext_press_g[j], ext_press_l );
 #endif
+#endif
+                        }
                     }
                 }
             }
@@ -546,6 +489,13 @@ CUDA_GLOBAL void Cuda_Valence_Angles_Part1( reax_atom *my_atoms,
 
         Set_End_Index( pi, num_thb_intrs, &thb_list );
     }
+
+#if defined(CUDA_ACCUM_ENERGY_ATOMIC)
+    atomicAdd( (double *) e_ang_g, (double) e_ang_l );
+    atomicAdd( (double *) e_coa_g, (double) e_coa_l );
+    atomicAdd( (double *) e_pen_g, (double) e_pen_l );
+    atomic_rvecAdd( *ext_press_g, ext_press_l );
+#endif
 }
 
 
diff --git a/PG-PuReMD/src/cuda/cuda_valence_angles.h b/PG-PuReMD/src/cuda/cuda_valence_angles.h
index d91387d2..74df6b45 100644
--- a/PG-PuReMD/src/cuda/cuda_valence_angles.h
+++ b/PG-PuReMD/src/cuda/cuda_valence_angles.h
@@ -42,8 +42,8 @@ CUDA_GLOBAL void Cuda_Estimate_Valence_Angles( reax_atom *, control_params *,
 
 
 /* calculates the theta angle between atom triplet i-j-k */
-CUDA_DEVICE static inline void Calculate_Theta( const rvec dvec_ji, real d_ji, rvec dvec_jk, real d_jk,
-        real * const theta, real * const cos_theta )
+CUDA_DEVICE static inline void Calculate_Theta( const rvec dvec_ji, real d_ji,
+        const rvec dvec_jk, real d_jk, real * const theta, real * const cos_theta )
 {
     assert( d_ji > 0.0 );
     assert( d_jk > 0.0 );
@@ -64,8 +64,9 @@ CUDA_DEVICE static inline void Calculate_Theta( const rvec dvec_ji, real d_ji, r
 
 
 /* calculates the derivative of the cosine of the angle between atom triplet i-j-k */
-CUDA_DEVICE static inline void Calculate_dCos_Theta( const rvec dvec_ji, real d_ji, rvec dvec_jk, real d_jk,
-        rvec * const dcos_theta_di, rvec * const dcos_theta_dj, rvec * const dcos_theta_dk )
+CUDA_DEVICE static inline void Calculate_dCos_Theta( const rvec dvec_ji,
+        real d_ji, const rvec dvec_jk, real d_jk, rvec * const dcos_theta_di,
+        rvec * const dcos_theta_dj, rvec * const dcos_theta_dk )
 {
     int t;
     real sqr_d_ji, sqr_d_jk, inv_dists, inv_dists3, dot_dvecs, Cdot_inv3;
diff --git a/PG-PuReMD/src/reax_types.h b/PG-PuReMD/src/reax_types.h
index ef2fbaa1..127b2578 100644
--- a/PG-PuReMD/src/reax_types.h
+++ b/PG-PuReMD/src/reax_types.h
@@ -84,6 +84,8 @@
 #endif
 /* aggregate atomic forces using atomic operations */
 #define CUDA_ACCUM_FORCE_ATOMIC
+/* aggregate atomic energies using atomic operations */
+#define CUDA_ACCUM_ENERGY_ATOMIC
 
 /* disable assertions if NOT compiling with debug support --
  * the definition (or lack thereof) controls how the assert macro is defined */
@@ -131,7 +133,7 @@
 
 #if defined(USE_REF_FORTRAN_REAXFF_CONSTANTS)
   /* transcendental constant pi */
-  #define PI (3.14159265)
+//  #define PI (3.14159265)
   /* unit conversion from ??? to kcal / mol */
   #define C_ELE (332.0638)
   /* Boltzmann constant, AMU * A^2 / (ps^2 * K) */
diff --git a/test/library/qmmm_amber/forces_charges.txt b/test/library/qmmm_amber/forces_charges.txt
new file mode 100644
index 00000000..fe88a529
--- /dev/null
+++ b/test/library/qmmm_amber/forces_charges.txt
@@ -0,0 +1,777 @@
+Total Energy            |Kinetic Energy          |Potential Energy        
+   -1374.311060684900440        0.000000000000000    -1374.311060684900440
+
+i     |F_x                     |F_y                     |F_z                     |Q                       
+     1         101.795785159104        -112.791218389056          91.729275100765           0.115792827421
+     2          74.441831586489        -127.881951035570         175.497941779944          -0.458827596916
+     3         -79.678635163780         275.299817782130          -6.125209056359           0.070840632741
+     4         -88.632872232707        -102.053723908406        -198.791581562968          -0.047478739049
+     5          15.609605985380          21.370352505907         -43.459224488185          -0.054830468036
+     6          12.891298453587          19.844796781149         -28.298438011388          -0.062644558024
+     7         -25.841707893576          17.405913183316           4.820262714472           0.067776819514
+     8           4.330130660676          14.498948069526         -13.261491776472           0.031530359055
+     9          -2.816499781569           2.454652467766           1.863859750108           0.055603650241
+    10          -3.265212674584          -0.626171560718           2.197754344043          -0.007073276704
+    11           1.569450698088           6.339172720895          -9.919553877391           0.054436086374
+    12          -8.913931526567         -10.682924389337          11.008195804094           0.090306161444
+    13           1.788942941122           1.415390304329          11.254019699132           0.056406471954
+    14          -1.923466479132          -0.666972779086          -1.149368816080           0.088161629986
+    15          -1.319583800108          -0.440845374930           1.296792972134          -0.834000000000
+    16           0.675543028589           0.121765607414          -0.550015463024           0.417000000000
+    17           0.738000809303           0.163411627921          -0.844842092094           0.417000000000
+    18          -0.697834778580          -0.880335779378           1.071039059692          -0.834000000000
+    19           0.238174324331           0.230471829704          -0.328026381719           0.417000000000
+    20           0.551310194132           0.540821392078          -0.667365158250           0.417000000000
+    21          -0.001507818490          -0.018421336054           0.008818580866          -0.834000000000
+    22          -0.000659147026           0.021065901842          -0.009921912712           0.417000000000
+    23           0.007025155658           0.046137962932          -0.020631530258           0.417000000000
+    24           0.005937754480          -0.015939054184           0.041505491902          -0.834000000000
+    25          -0.006573867985           0.026712714641          -0.079634537918           0.417000000000
+    26          -0.000418165561           0.001307002132          -0.003873860586           0.417000000000
+    27          -0.091751959010          -0.011419517522           0.081118676719          -0.834000000000
+    28           0.022480288619          -0.000282084491          -0.020265744212           0.417000000000
+    29           0.168808433594           0.025625054380          -0.158888645033           0.417000000000
+    30          -0.067184660158          -0.157636335109           0.060341885228          -0.834000000000
+    31           0.063222671761           0.113374708109          -0.053497578011           0.417000000000
+    32           0.006268945127           0.014668132846          -0.005967337396           0.417000000000
+    33           0.228532288950          -0.581601419919           0.557046037990          -0.834000000000
+    34          -0.081472817682           0.373237714699          -0.316439120156           0.417000000000
+    35          -0.191252315139           0.358866085543          -0.307855965855           0.417000000000
+    36          -0.083936575704          -0.053289821120           0.101793790283          -0.834000000000
+    37           0.021862599787           0.015376821532          -0.023183122487           0.417000000000
+    38           0.055982808400           0.024453596424          -0.059101353887           0.417000000000
+    39          -0.178700348066          -0.179072564979           0.017654436356          -0.834000000000
+    40           0.011486196070           0.010529310012          -0.001449331462           0.417000000000
+    41           0.050282798506           0.056898433706          -0.004128066251           0.417000000000
+    42          -0.983620194147           1.089073960669           0.626806119470          -0.834000000000
+    43           0.431204462226          -0.378513430781          -0.372943329812           0.417000000000
+    44           0.324161047261          -0.587291851177          -0.128877449867           0.417000000000
+    45           0.000010904533           0.000025770129          -0.000022669453           0.417000000000
+    46          -0.089543653440          -0.083803195323           0.059312910380          -0.834000000000
+    47           0.008196935416           0.006900305530          -0.004635010644           0.417000000000
+    48           0.115829626443           0.107697222585          -0.069589733815           0.417000000000
+    49          -0.038032016067          -0.124957045683           0.435439718413          -0.834000000000
+    50           0.021796902281           0.059696335719          -0.152646774236           0.417000000000
+    51           0.031096157214           0.033673891609          -0.176200474651           0.417000000000
+    52          -0.049181087800          -0.006652299240           0.165750618389          -0.834000000000
+    53           0.053361576970          -0.008036975414          -0.188197495142           0.417000000000
+    54           0.007086233140           0.000976195966          -0.030253242968           0.417000000000
+    55          -0.773136318983          -0.629643636841           0.300714515053          -0.834000000000
+    56           0.232703940711           0.206514377685          -0.071984653984           0.417000000000
+    57           0.529009597776           0.459468211802          -0.118830670859           0.417000000000
+    58           0.008835013078          -0.023345721431           0.028022691106          -0.834000000000
+    59          -0.022180174397           0.059538685884          -0.063201271754           0.417000000000
+    60          -0.005564985551           0.016349491376          -0.023505775278           0.417000000000
+    61          -0.350847270608           0.195762090476           0.372933630048          -0.834000000000
+    62           0.118109297250          -0.056456599179          -0.131166361191           0.417000000000
+    63           0.054389861958          -0.032285540050          -0.054700371420           0.417000000000
+    64          -0.568577826634          -1.767122408120           0.290674957325          -0.834000000000
+    65           0.247784509768           0.649481325260          -0.120975980763           0.417000000000
+    66           0.440799875917           0.910808765507          -0.005510560417           0.417000000000
+    67          -0.000605911543           0.000155562512           0.000601456366          -0.834000000000
+    68           0.000842718036          -0.000225008695          -0.000892660483           0.417000000000
+    69          -0.048805581315          -0.075283019773           0.137236584449          -0.834000000000
+    70           0.026680897537           0.028691887580          -0.053861760301           0.417000000000
+    71           0.015963431480           0.033256210873          -0.048190310078           0.417000000000
+    72          -0.386255021722          -0.761273488618           2.002083042167          -0.834000000000
+    73           0.089449756853           0.232476484061          -0.658889665506           0.417000000000
+    74           0.294491690533           0.374488118211          -0.824861522546           0.417000000000
+    75          -0.004997655577           0.001697958677           0.007505030369          -0.834000000000
+    76           0.000997172504          -0.000172303919          -0.001630209383           0.417000000000
+    77           0.017260726629          -0.009176133930          -0.030484004158           0.417000000000
+    78          -0.442538774434           0.136697743502           0.662395997113          -0.834000000000
+    79           0.377452577114          -0.079071081823          -0.622747428729           0.417000000000
+    80           0.124739709749          -0.031528070347          -0.199206861638           0.417000000000
+    81           0.000521175165           0.000075995231          -0.001086945367           0.417000000000
+    82           0.000000528359           0.000000250498          -0.000008079996           0.417000000000
+    83          -0.209058926347           0.201001723376           1.077553254957          -0.834000000000
+    84           0.138434414703          -0.093389479519          -0.880339502157           0.417000000000
+    85           0.068204991357          -0.171959614258          -0.544060960929           0.417000000000
+    86           0.590829606900          -0.654396660280           1.542548034258          -0.834000000000
+    87          -0.508847614472           0.370536533963          -0.890553344515           0.417000000000
+    88          -0.251099737095           0.402776254498          -0.648752078774           0.417000000000
+    89           0.000074492631           0.000015748039          -0.000052259325           0.417000000000
+    90           0.000013086342           0.000002034524          -0.000008017244           0.417000000000
+    91          -1.295983172838           0.135027441277           0.811813245094          -0.834000000000
+    92           0.557789776589          -0.109781723422          -0.296883803551           0.417000000000
+    93           0.622874195414          -0.155112363218          -0.488687913724           0.417000000000
+    94          -1.370319587579           0.643161275807           1.962332591384          -0.834000000000
+    95           0.552197409653          -0.352196800949          -1.182705185490           0.417000000000
+    96           0.635618741398          -0.552771202648          -0.737991072254           0.417000000000
+    97          -0.015959611649          -0.022608406429           0.000926530457          -0.834000000000
+    98           0.019303638442           0.034108664896          -0.001251339771           0.417000000000
+    99           0.000002352436           0.000003432362          -0.000000778642           0.417000000000
+   100          -0.011779446505          -0.049929036761           0.047780071268          -0.834000000000
+   101           0.025319077492           0.094800393251          -0.082454531431           0.417000000000
+   102           0.001411839899           0.011066105621          -0.009227341752           0.417000000000
+   103          -0.140062391878          -0.998735833279           0.702192318218          -0.834000000000
+   104           0.094315496486           0.658000327114          -0.353335121296           0.417000000000
+   105           0.165203300210           0.564054916210          -0.475555242114           0.417000000000
+   106           0.061740983797           0.347156779272          -0.006832762966          -0.834000000000
+   107          -0.003889576571          -0.134509516762           0.124565311304           0.417000000000
+   108          -0.016880122089          -0.204188817112           0.025488306705           0.417000000000
+   109           0.005273306137           0.033030581078           0.014268080973          -0.834000000000
+   110          -0.004998540676          -0.031159453470          -0.016453634299           0.417000000000
+   111          -0.010144692636          -0.060949846731          -0.024187785417           0.417000000000
+   112           0.807666262677           0.770313734183           0.326467632884          -0.834000000000
+   113          -0.270231090249          -0.293690762894          -0.167188836073           0.417000000000
+   114          -0.333146054130          -0.425119782367           0.086287680886           0.417000000000
+   115           0.212349031906           0.330971873505           0.212100717831          -0.834000000000
+   116          -0.055027753823          -0.096841317154          -0.069780279589           0.417000000000
+   117          -0.095389090898          -0.209533116053          -0.097161389528           0.417000000000
+   118           0.017969779697           0.053993922927           0.040664807594          -0.834000000000
+   119          -0.001449316522          -0.003471472637          -0.002540031549           0.417000000000
+   120          -0.009761603131          -0.031143346825          -0.028649844403           0.417000000000
+   121          -0.005013049000           0.012659569230           0.016854001154          -0.834000000000
+   122           0.000175616117          -0.000327196725          -0.000458317297           0.417000000000
+   123           0.006379152682          -0.015228524680          -0.016585748235           0.417000000000
+   124           0.000505120278           0.000499355135           0.000316697652          -0.834000000000
+   125          -0.000000145942          -0.000000176539          -0.000000109905           0.417000000000
+   126          -0.003345750780          -0.003146109016          -0.001878750278           0.417000000000
+   127           0.036535713942           0.014593039891           0.057078224347          -0.834000000000
+   128          -0.036953772385          -0.014731600295          -0.068733825765           0.417000000000
+   129          -0.036801749433          -0.013848160844          -0.046118894748           0.417000000000
+   130           0.020076850970           0.014427815563           0.012505325041          -0.834000000000
+   131          -0.002704766994          -0.002201928623          -0.001937977316           0.417000000000
+   132          -0.000220146277          -0.000142453760          -0.000107293033           0.417000000000
+   133          -0.001828946235           0.035750020731           0.149711670676          -0.834000000000
+   134          -0.013414169205          -0.040126557150          -0.160135592657           0.417000000000
+   135          -0.000989957770          -0.004779752087          -0.023624856970           0.417000000000
+   136           0.181012517384           1.472328946419           0.329367698086          -0.834000000000
+   137           0.009203133778          -0.639115584591          -0.229572579277           0.417000000000
+   138          -0.062870513222          -0.810827848293           0.258148293774           0.417000000000
+   139           0.155904037016          -0.061075688219           0.404686457703          -0.834000000000
+   140          -0.113919117433           0.068057911320          -0.347269148509           0.417000000000
+   141          -0.033254161007           0.023012549543          -0.100224201307           0.417000000000
+   142           0.018961383137           0.057808509151           0.003442271123          -0.834000000000
+   143          -0.011140769804          -0.052110541986          -0.002310199916           0.417000000000
+   144          -0.024803463385          -0.058649995030          -0.002848640820           0.417000000000
+   145          -0.000117206376          -0.000296516780          -0.000116817833           0.417000000000
+   146          -0.000145010383          -0.000423337802          -0.000092653552           0.417000000000
+   147           0.005802162464           0.035884081619           0.046763814626          -0.834000000000
+   148          -0.000034773464          -0.007186155183          -0.009399284021           0.417000000000
+   149          -0.001979732409          -0.006986891439          -0.010945144194           0.417000000000
+   150          -0.034742318872           0.081875533263           0.060995901674          -0.834000000000
+   151           0.011743614829          -0.020204788423          -0.015497252999           0.417000000000
+   152           0.048406676656          -0.139903566931          -0.110607534960           0.417000000000
+   153          -0.039463969790           0.046575193894           0.112828625559          -0.834000000000
+   154           0.013133639390          -0.020780207648          -0.039019717736           0.417000000000
+   155           0.018037582787          -0.027514509263          -0.080015151345           0.417000000000
+   156           0.000076091575           0.000095074796           0.000212165483          -0.834000000000
+   157          -0.001562066210          -0.001411120682          -0.003500555260           0.417000000000
+   158          -0.036332298914           0.041628878176           0.039798428301          -0.834000000000
+   159           0.062258872989          -0.070374749719          -0.082156548643           0.417000000000
+   160           0.009942345629          -0.010159076689          -0.010354628921           0.417000000000
+   161          -0.344871699727           0.423648633376           0.697510442653          -0.834000000000
+   162           0.256472495660          -0.222597423651          -0.477698246585           0.417000000000
+   163           0.095766227735          -0.117427749259          -0.207439619110           0.417000000000
+   164          -0.014795215754           0.489947236041           0.751136197519          -0.834000000000
+   165          -0.022087867026          -0.337063659491          -0.399857261235           0.417000000000
+   166          -0.004392241992          -0.126624918487          -0.197922516708           0.417000000000
+   167           0.907126799713           0.986980503014           1.575988776235          -0.834000000000
+   168          -0.512191793842          -0.494311828160          -0.549808752285           0.417000000000
+   169          -0.265689758048          -0.564644265212          -0.691244863972           0.417000000000
+   170           0.198702515492           0.072496922847           0.152652070645          -0.834000000000
+   171          -0.075418451225          -0.037446464833          -0.054256517821           0.417000000000
+   172          -0.217112167630          -0.073435344111          -0.156892192754           0.417000000000
+   173           0.189291601602           0.140493855829           0.579595193242          -0.834000000000
+   174          -0.097840893661          -0.026919957166          -0.281664977441           0.417000000000
+   175          -0.170469870030          -0.149238837859          -0.518459714464           0.417000000000
+   176          -0.001744893635           0.000444629537          -0.003065323249           0.417000000000
+   177           0.000230655012          -0.000970812974          -0.000637062945           0.417000000000
+   178           0.000051965130          -0.000314578976          -0.000143747542           0.417000000000
+   179          -0.241726966605           0.927228120866           0.550991959239          -0.834000000000
+   180           0.143518824382          -0.464993751602          -0.188722668686           0.417000000000
+   181           0.176408548736          -0.479426309084          -0.414953467144           0.417000000000
+   182           0.102442881176           0.172022787700          -0.013098440539          -0.834000000000
+   183          -0.063073132793          -0.072674004081          -0.007293158622           0.417000000000
+   184          -0.048905930418          -0.105424470271           0.036287860782           0.417000000000
+   185          -0.273246026377           0.119615079788          -0.958576729900          -0.834000000000
+   186           0.156778467231          -0.117977238705           0.749977301317           0.417000000000
+   187           0.343614203260           0.120010657656           0.589343690899           0.417000000000
+   188           0.333803961072          -0.051622086104           0.355114831495          -0.834000000000
+   189          -0.165532090471           0.039704938286          -0.224911571042           0.417000000000
+   190          -0.071686608660           0.015520351364          -0.074137209318           0.417000000000
+   191           0.007013845232          -0.002185094648           0.007223484847          -0.834000000000
+   192          -0.000000927253           0.000000208221          -0.000000967148           0.417000000000
+   193          -0.000408305916           0.000180857124          -0.000407811284           0.417000000000
+   194          -0.002793011861          -0.000967925271          -0.001775694011           0.417000000000
+   195          -0.000000004244          -0.000000001039          -0.000000001997           0.417000000000
+   196           1.860608440961          -0.435071203055           1.592528583861          -0.834000000000
+   197          -0.902118542312          -0.045832457025          -0.812459560506           0.417000000000
+   198          -0.852506011048           0.193311490953          -0.539359560919           0.417000000000
+   199          -0.000001250747           0.000005705033          -0.000002124746           0.417000000000
+   200          -0.608210333870           1.233438216561           0.033228865905          -0.834000000000
+   201           0.526326609811          -0.990882194778          -0.116083434046           0.417000000000
+   202           0.235687205315          -0.621473562640           0.139533293923           0.417000000000
+   203          -0.002544230446           0.006239143947           0.003458364744           0.417000000000
+   204          -0.027887339720          -0.192226071267          -0.072935635626          -0.834000000000
+   205           0.030029873962           0.083130158650           0.083870075361           0.417000000000
+   206           0.001812478342           0.099207544527           0.026592892441           0.417000000000
+   207           0.140650455998          -1.165311098783           0.328795338062          -0.834000000000
+   208          -0.107894367309           0.558809914379          -0.100441777651           0.417000000000
+   209           0.006346181450           0.708088189271          -0.151389217023           0.417000000000
+   210          -0.000000599548           0.000000466802           0.000000883710           0.417000000000
+   211           0.187101870728          -0.392418528398          -0.086318851453          -0.834000000000
+   212          -0.076439040274           0.165087496840           0.063664090783           0.417000000000
+   213          -0.066051637720           0.113746937924           0.015157336087           0.417000000000
+   214           0.000011333941          -0.000075911290          -0.000010090128          -0.834000000000
+   215           0.000009581982          -0.000012592922           0.000005751716          -0.834000000000
+   216          -0.000267911997           0.000265147118          -0.000058867695           0.417000000000
+   217          -0.006029862196           0.008041652996          -0.002022384277           0.417000000000
+   218          -0.002136711496           0.005260339697          -0.000511555583           0.417000000000
+   219           0.042110165243          -0.043044969657          -0.067088367021          -0.834000000000
+   220          -0.033089264589           0.035808386085           0.043089267094           0.417000000000
+   221           0.017565906950          -0.019225773495           0.023306087046           0.417000000000
+   222           0.649751962412          -0.851927324097           0.216377223664          -0.834000000000
+   223          -0.448706154352           0.506834999794          -0.166339966208           0.417000000000
+   224          -0.347952472007           0.486949606172          -0.019708248728           0.417000000000
+   225           0.099464810903          -0.199420359378          -0.142641975548          -0.834000000000
+   226           0.012384411073           0.012815500428           0.086558427397           0.417000000000
+   227          -0.071895962666           0.103949699710           0.078184225894           0.417000000000
+   228           0.039926762285          -0.033119857663           0.012516920864          -0.834000000000
+   229          -0.014129895826           0.009992014159          -0.003695512561           0.417000000000
+   230          -0.074119668519           0.065662576875          -0.027849581845           0.417000000000
+   231           0.034115020120          -0.131029457955           0.053324303077          -0.834000000000
+   232          -0.036059766608           0.094912970939          -0.043677100691           0.417000000000
+   233          -0.033213967793           0.165235161290          -0.060539704416           0.417000000000
+   234           0.212122332978          -0.188608852874          -0.079689659113          -0.834000000000
+   235          -0.051919980059           0.052766984738           0.013506647977           0.417000000000
+   236          -0.054922771535           0.041543990559           0.020651159494           0.417000000000
+   237           0.002313634871          -0.002444454211          -0.001873260274          -0.834000000000
+   238          -0.001302497454           0.001384484560           0.000818426536           0.417000000000
+   239          -0.057333766366          -0.180217219742           0.015905508353          -0.834000000000
+   240           0.006799897180           0.030942201698          -0.002200583585           0.417000000000
+   241           0.035655374754           0.100485220995          -0.017968727682           0.417000000000
+   242          -0.162265524525           0.644765730507          -0.545381218192          -0.834000000000
+   243           0.039051216555          -0.582117691292           0.209145025964           0.417000000000
+   244           0.075364422430          -0.239963421982           0.482654336683           0.417000000000
+   245           1.276020641555          -0.970417018456           0.636658794624          -0.834000000000
+   246          -0.514269712955           0.348025728430          -0.320937433431           0.417000000000
+   247          -0.710891240397           0.393481585921          -0.187354957060           0.417000000000
+   248           0.108159345515          -0.082187033187           0.023636548920          -0.834000000000
+   249          -0.025016282668           0.022787226483          -0.004601817043           0.417000000000
+   250          -0.038996125056           0.025038046900          -0.006681110240           0.417000000000
+   251           0.008570940278          -0.011738452553          -0.000678366181          -0.834000000000
+   252          -0.000043892077           0.000069606068           0.000002052509           0.417000000000
+   253          -0.000309697121           0.000366710172           0.000045401537           0.417000000000
+   254           0.145298898290          -0.177718027781           0.108094976951          -0.834000000000
+   255          -0.024531905922           0.030216812750          -0.021389873795           0.417000000000
+   256          -0.069871066899           0.070963013035          -0.039057446196           0.417000000000
+   257          -0.149588681439           0.339272956902          -0.581446756718          -0.834000000000
+   258          -0.057053524582          -0.025389092619           0.333050264462           0.417000000000
+   259          -0.057819622642           0.010614876140           0.142665471865           0.417000000000
+   260          -0.105328788694          -0.221773043294          -0.101967034007          -0.834000000000
+   261           0.038732510301           0.099569413706           0.045407672676           0.417000000000
+   262           0.023426964744           0.053630998934           0.011836537465           0.417000000000
+   263           0.098587051340          -0.457813874410          -0.005540453517          -0.834000000000
+   264          -0.014543292552           0.117611935653           0.004297121136           0.417000000000
+   265          -0.053390919100           0.186812944988           0.011433981545           0.417000000000
+   266          -0.000042241679          -0.000082885681          -0.000007858456          -0.834000000000
+   267           0.000159797124           0.000304688373          -0.000004015296           0.417000000000
+   268          -0.354258582573          -0.606312280314          -0.725003189665          -0.834000000000
+   269           0.125802910119           0.233874415242           0.212475817645           0.417000000000
+   270           0.104835417380           0.087144584702           0.519735895150           0.417000000000
+   271           0.018220971710          -0.712143311006          -1.625926493896          -0.834000000000
+   272           0.033630548757           0.200960808485           1.368412667724           0.417000000000
+   273           0.073040413412           0.511512006841           0.647647415197           0.417000000000
+   274           1.055026688862          -2.231481938879           0.612782156103          -0.834000000000
+   275          -0.625826496241           0.880962278247          -0.370957731118           0.417000000000
+   276          -0.301881678517           1.004686778868          -0.292795295353           0.417000000000
+   277           0.432917068082          -0.614058481224          -0.525511087789          -0.834000000000
+   278          -0.140253175613           0.290043098232           0.399327862726           0.417000000000
+   279          -0.165558355696           0.280855800330           0.139470278836           0.417000000000
+   280           0.081344192175           0.028473039210          -0.009079129936          -0.834000000000
+   281          -0.009924696539          -0.002626077782           0.001618031559           0.417000000000
+   282          -0.028572015526          -0.009653629443           0.000400156733           0.417000000000
+   283          -0.006951201371           0.000029633178           0.000783204502           0.417000000000
+   284           0.303983236789           0.006435901211          -0.019660930671          -0.834000000000
+   285          -0.150887169608          -0.001847819134          -0.006605693573           0.417000000000
+   286          -0.109542294901          -0.031010556274           0.049103505616           0.417000000000
+   287           0.469508388260          -0.115713658379          -0.044575379599          -0.834000000000
+   288          -0.147831181397          -0.012597684622           0.113531614862           0.417000000000
+   289          -0.209533101393           0.033015174262           0.010474433833           0.417000000000
+   290           0.027027635336          -0.004003229318          -0.007753691175          -0.834000000000
+   291          -0.082588173525           0.014531450237           0.023251471520           0.417000000000
+   292          -0.012242651392           0.001327904936           0.004863685572           0.417000000000
+   293           1.109788259872          -0.274390047549           0.011928276122          -0.834000000000
+   294          -0.544983646852           0.058584555871          -0.018051760421           0.417000000000
+   295          -0.425077175372           0.104955503878           0.028224485643           0.417000000000
+   296           0.002889506913           0.001289207187          -0.001982843573          -0.834000000000
+   297          -0.000034358314          -0.000014209240           0.000018938668           0.417000000000
+   298           0.000049067579          -0.000008700050           0.000022260902          -0.834000000000
+   299          -0.009775425915           0.001677215480          -0.004455864480           0.417000000000
+   300          -0.674797095271          -0.048693065442           0.134668997345          -0.834000000000
+   301           0.067866411265          -0.001876728990           0.002281770416           0.417000000000
+   302           0.292595051172          -0.028305619340          -0.044278021983           0.417000000000
+   303          -0.593207275365           0.247526776153          -0.038278560292          -0.834000000000
+   304           0.243649913893          -0.122727628624          -0.008190236768           0.417000000000
+   305           0.460857843240          -0.231865236930           0.100019516060           0.417000000000
+   306           0.005338762487          -0.000216291844          -0.003274762615          -0.834000000000
+   307          -0.029161379807           0.001400618866           0.019974301945           0.417000000000
+   308          -0.000009296308           0.000000974272           0.000006552451           0.417000000000
+   309           0.016410503883          -0.007899789637          -0.004786564257          -0.834000000000
+   310          -0.010690407543           0.003781877430           0.003161495154           0.417000000000
+   311          -0.000003262853           0.000001597662           0.000000805849           0.417000000000
+   312          -0.000540046426           0.000238020114          -0.000038663461           0.417000000000
+   313           0.112227027933          -0.059412511970           0.032801390295          -0.834000000000
+   314          -0.051277307641           0.030277010202          -0.015053604081           0.417000000000
+   315          -0.233218086242           0.116431600653          -0.076155665606           0.417000000000
+   316           0.026805727776           0.021321030073           0.005546127483          -0.834000000000
+   317          -0.012403448101          -0.007829187622          -0.002563759094           0.417000000000
+   318          -0.007252048830          -0.006293144113          -0.002456580822           0.417000000000
+   319          -0.036100746172           0.048207184728          -0.043730021150          -0.834000000000
+   320          -0.036794927613           0.011628955372           0.041856535235           0.417000000000
+   321           0.121366167983          -0.080305091347          -0.045770887921           0.417000000000
+   322           0.004485469650          -0.001678250753           0.000472385600          -0.834000000000
+   323          -0.035457421663           0.012941386211          -0.002831105463           0.417000000000
+   324          -0.000000049615           0.000000014251          -0.000000004387           0.417000000000
+   325           0.005975931790          -0.003151281550          -0.004230075181          -0.834000000000
+   326          -0.000800677327           0.000549211028           0.000616802652           0.417000000000
+   327          -0.005279480190           0.002689319429           0.002916831602           0.417000000000
+   328           0.954912270596           0.108105734150           0.170325528679          -0.834000000000
+   329          -0.489840856000          -0.143941334491          -0.058539636680           0.417000000000
+   330          -0.334347339118          -0.030917427713          -0.075209446849           0.417000000000
+   331           0.243845765317          -0.031251553370           0.125005816737          -0.834000000000
+   332          -0.159363769467           0.015201020395          -0.104942252453           0.417000000000
+   333          -0.259007344754           0.018256711737          -0.126611842006           0.417000000000
+   334           0.003069739059           0.003042881872          -0.001265858517          -0.834000000000
+   335          -0.000011146005          -0.000009322721           0.000004657371           0.417000000000
+   336          -0.018850255390          -0.017358723099           0.006828671549           0.417000000000
+   337          -0.268625471436          -0.134957225200          -0.143435772236          -0.834000000000
+   338           0.402155792814           0.257473555811           0.144952476156           0.417000000000
+   339           0.057572867059           0.008776468857           0.075913661170           0.417000000000
+   340          -0.000127985081          -0.000019874378           0.000062398605           0.417000000000
+   341          -0.562224016186           0.676452429235          -0.908522246673          -0.834000000000
+   342           0.229988830195          -0.335989696256           0.424775547227           0.417000000000
+   343           0.148941033717          -0.401677684529           0.712627155722           0.417000000000
+   344           0.160760063343           0.005777513469           0.028584330786          -0.834000000000
+   345          -0.052092124666          -0.006980930652          -0.008305796651           0.417000000000
+   346          -0.034957176524           0.000737407706          -0.007121407039           0.417000000000
+   347          -0.309072678016           0.370612991392          -1.195430223036          -0.834000000000
+   348           0.436150781833          -0.249773025276           1.005862536213           0.417000000000
+   349           0.236341716077          -0.090643342528           0.377966063864           0.417000000000
+   350          -0.372543281462           0.051337284419          -0.218679948589          -0.834000000000
+   351           0.246852229599          -0.002246874578           0.056531799999           0.417000000000
+   352           0.052956614944          -0.021404964668           0.073332394158           0.417000000000
+   353           0.013508292114           0.004792567714           0.003110186609          -0.834000000000
+   354          -0.000001159023          -0.000000360861          -0.000000249025           0.417000000000
+   355          -0.011196254609          -0.003590046962          -0.003112290371           0.417000000000
+   356           0.491656038577          -0.259667016022           0.344695935067          -0.834000000000
+   357          -0.091355159871           0.052162211078          -0.056741946338           0.417000000000
+   358          -0.246578734580           0.105106057373          -0.200737000302           0.417000000000
+   359          -0.364516866940          -0.120192341971          -0.092958420324          -0.834000000000
+   360           0.207858923082           0.095178953497           0.081453940708           0.417000000000
+   361           0.103639578944           0.034192936659           0.009679670050           0.417000000000
+   362           0.000000000000           0.000000000000          -0.000000000000           0.417000000000
+   363          -0.000568700334          -0.000451851023           0.000175467785          -0.834000000000
+   364           0.000006828301           0.000004742375          -0.000001389487           0.417000000000
+   365          -0.076005216345           0.037179903394          -0.009942432617          -0.834000000000
+   366          -0.016262562681           0.007131413343          -0.005577887931           0.417000000000
+   367           0.025119167954          -0.014868045375           0.002902688000           0.417000000000
+   368          -0.000000304081           0.000000016281           0.000000178244           0.417000000000
+   369           0.001981314905          -0.000696433098          -0.001000516188          -0.834000000000
+   370          -0.004650005116           0.000638517389           0.003868878556           0.417000000000
+   371          -0.000199714459           0.000067476450           0.000125600101           0.417000000000
+   372          -0.008176094182          -0.002121646500           0.007948819061          -0.834000000000
+   373          -0.000030175052           0.000133076545          -0.000968406866           0.417000000000
+   374           0.013480459945           0.000936874211           0.001918669643           0.417000000000
+   375           0.003408600832           0.006003006701          -0.007120174826          -0.834000000000
+   376          -0.004442955725           0.000169803869           0.000923646190           0.417000000000
+   377           0.050430232900          -0.016463123235           0.002747337528           0.417000000000
+   378           0.001788754221           0.000403977171           0.000086619791          -0.834000000000
+   379          -0.005465768665          -0.000902453476           0.000224710239           0.417000000000
+   380          -0.003726544730          -0.001152560502          -0.000246441228           0.417000000000
+   381           0.002688240423          -0.000992951498           0.000761875965          -0.834000000000
+   382          -0.000857887344           0.000215472065          -0.000225690589           0.417000000000
+   383          -0.000058230051           0.000024206932          -0.000013128778           0.417000000000
+   384          -0.169046781039           0.014621346866          -0.081294013431          -0.834000000000
+   385           0.054647431751          -0.004673179084           0.020744908376           0.417000000000
+   386           0.087063808458          -0.018145691175           0.029593700040           0.417000000000
+   387          -0.361480069985           0.166756385344           0.036285155816          -0.834000000000
+   388           0.218985060372          -0.105502866618          -0.049620539507           0.417000000000
+   389           0.216546272567          -0.118195760819           0.011060815292           0.417000000000
+   390          -0.348092161040           0.184472073773           0.175378579459          -0.834000000000
+   391           0.103696421178          -0.072135118317          -0.057306630159           0.417000000000
+   392           0.125031606205          -0.055851524742          -0.077235079777           0.417000000000
+   393          -0.443993837122           0.115200645991          -0.654960067541          -0.834000000000
+   394           0.052609186385          -0.100718352492           0.339750730727           0.417000000000
+   395           0.261366145967           0.006499775007           0.158856926449           0.417000000000
+   396          -0.033054128100           0.001362587068          -0.014235087148          -0.834000000000
+   397           0.062366253215           0.001926596447           0.024523654304           0.417000000000
+   398           0.066899965051           0.012976822652           0.023520768547           0.417000000000
+   399          -0.000008285408           0.000002944555          -0.000004058007           0.417000000000
+   400          -0.000280515198           0.000207333155           0.000037876449           0.417000000000
+   401           1.372520219650          -0.134538932953          -0.077354903974          -0.834000000000
+   402          -0.883729897460           0.004801866853          -0.050143464519           0.417000000000
+   403          -0.291259808814           0.041178778822           0.033041221175           0.417000000000
+   404          -0.009093119811           0.000749366263           0.002641854169          -0.834000000000
+   405           0.007748978297          -0.002756985180           0.002484774913           0.417000000000
+   406           0.004675920348           0.000338917432          -0.002266897149           0.417000000000
+   407          -0.000196177578           0.000063074096           0.000165446089          -0.834000000000
+   408           0.001669479935          -0.000308859483          -0.001341770327           0.417000000000
+   409          -0.000075645960           0.000073446909           0.000033119001          -0.834000000000
+   410           0.000113399367          -0.000080390874          -0.000083480561           0.417000000000
+   411           0.392238986922           0.093480029740          -0.509004599203          -0.834000000000
+   412          -0.425657889048           0.005296607502           0.389960532381           0.417000000000
+   413          -0.406471821714           0.017951629030           0.246213114891           0.417000000000
+   414          -0.026272582533          -0.000686534499           0.017159836620          -0.834000000000
+   415           0.086802058020          -0.002061181132          -0.046969972275           0.417000000000
+   416           0.000744378219           0.000012936481          -0.000417110801           0.417000000000
+   417          -0.000016910160          -0.000006756703           0.000006454925          -0.834000000000
+   418           0.010259731710           0.004334225242          -0.004266861075           0.417000000000
+   419          -0.745774850870           0.025512030094           0.209876235649          -0.834000000000
+   420           0.359042244267           0.037603822489          -0.110181883718           0.417000000000
+   421           0.444239750016          -0.036025638704          -0.037138409229           0.417000000000
+   422          -0.542564931855          -0.236002284212           0.154612057426          -0.834000000000
+   423           0.107555414777           0.057402983569          -0.028689736866           0.417000000000
+   424           0.401627453880           0.206342071764          -0.115485307231           0.417000000000
+   425          -1.946803731540           0.123925204984          -0.367809231491          -0.834000000000
+   426           0.710481459528          -0.014701733972           0.371285012341           0.417000000000
+   427           0.887715732703          -0.130995517101          -0.133762655353           0.417000000000
+   428          -0.016032465166          -0.011761854155          -0.003353666935          -0.834000000000
+   429           0.073933553890           0.052686033037           0.015555546133           0.417000000000
+   430           0.002280469132           0.001431583849           0.000340424444           0.417000000000
+   431          -0.417458646262          -0.337449394375          -0.219897115735          -0.834000000000
+   432           0.118417670017           0.116348818809           0.166294982283           0.417000000000
+   433           0.223981802901           0.201079363880           0.048234874424           0.417000000000
+   434          -0.000005607565          -0.000001560511          -0.000002466527           0.417000000000
+   435          -0.027446108298          -0.013236873564          -0.016216686406          -0.834000000000
+   436           0.011899645476           0.006404153892           0.005794311477           0.417000000000
+   437           0.003531790415          -0.000023148026           0.002264851130           0.417000000000
+   438          -0.016670006352           0.330949409223          -0.039829172461          -0.834000000000
+   439           0.011292231778          -0.107884637711          -0.012231767616           0.417000000000
+   440           0.026240387564          -0.226077895984          -0.040822376990           0.417000000000
+   441           0.000000375320           0.000000716702          -0.000000086904           0.417000000000
+   442           0.000236884001           0.016398623518           0.002770160701          -0.834000000000
+   443           0.000148820062          -0.004170368601          -0.000639104317           0.417000000000
+   444           0.000283287386          -0.007158242859          -0.001677346332           0.417000000000
+   445          -0.001824724484          -0.009456412927          -0.000790533885          -0.834000000000
+   446          -0.000670211706           0.004144450089           0.001265266765           0.417000000000
+   447           0.001633083214           0.002747437445          -0.001695250966           0.417000000000
+   448          -0.117537310303           0.746310454232          -0.213800769018          -0.834000000000
+   449           0.053334328439          -0.251859692226           0.015330739407           0.417000000000
+   450          -0.108878738054          -0.276595134592           0.414703555485           0.417000000000
+   451          -0.009388910469           0.010814308117           0.003344267545          -0.834000000000
+   452           0.003548538740          -0.002552280257          -0.001656022733           0.417000000000
+   453           0.005810849844          -0.009952780827           0.000619781506           0.417000000000
+   454          -0.013676261294           0.170426739262          -0.015259235181          -0.834000000000
+   455           0.011274664330          -0.074940245284           0.006586525384           0.417000000000
+   456           0.024022050254          -0.080520189736          -0.013866234503           0.417000000000
+   457           0.008927403433          -0.014293504994          -0.004982646689          -0.834000000000
+   458           0.048622811048          -0.048855608492          -0.003781736705           0.417000000000
+   459          -0.000044215898           0.000827144988           0.004746234751           0.417000000000
+   460          -0.000000765274           0.000000852070          -0.000000232133           0.417000000000
+   461          -0.000000311634           0.000000361686          -0.000000023202           0.417000000000
+   462          -0.031422263006           0.008065273253           0.014108482315          -0.834000000000
+   463           0.000993281709           0.003922122836          -0.007620743650           0.417000000000
+   464           0.050428619094          -0.028778131218           0.002309362931           0.417000000000
+   465           0.000160258604           0.007753106148           0.000266756145          -0.834000000000
+   466           0.001071570289          -0.008925938919          -0.001466217023           0.417000000000
+   467          -0.000497942004          -0.011090672747           0.000488657884           0.417000000000
+   468          -0.024085931594           0.050760744822           0.016552074070          -0.834000000000
+   469           0.010202269729          -0.046019163574          -0.011492990813           0.417000000000
+   470           0.009283425562          -0.012276069411          -0.006462164356           0.417000000000
+   471          -0.000000005004           0.000000010935           0.000000000349           0.417000000000
+   472          -0.000019475038           0.000053479436          -0.000005639660           0.417000000000
+   473           0.272218137231          -0.677990751889          -0.608653437704          -0.834000000000
+   474          -0.130956844974           0.169354613936           0.190022591496           0.417000000000
+   475          -0.060658550401           0.140854271176           0.275854337388           0.417000000000
+   476          -0.000000012825           0.000000016807           0.000000014994           0.417000000000
+   477          -0.077528303438           0.084987766635           0.021026826450          -0.834000000000
+   478           0.110933909471          -0.136938132117          -0.047696412094           0.417000000000
+   479           0.003177605541          -0.004352761420           0.003709444196           0.417000000000
+   480          -0.002302011349           0.007112633648          -0.003255966512          -0.834000000000
+   481           0.000783226007          -0.001957897830           0.001134061038           0.417000000000
+   482           0.000273133724          -0.000481220862          -0.000100494631          -0.834000000000
+   483          -0.002158491795           0.003300180491           0.000592709444           0.417000000000
+   484          -0.000247786554           0.000518511470           0.000149060666           0.417000000000
+   485           0.000034410249          -0.000107630352          -0.000047324452          -0.834000000000
+   486          -0.000006690883           0.000016673283           0.000009117410           0.417000000000
+   487           0.000373316723          -0.000631414142           0.000361571572          -0.834000000000
+   488           0.000778970589           0.000596386573          -0.001441482485           0.417000000000
+   489          -0.000027628022           0.000035151592          -0.000020119825           0.417000000000
+   490          -0.045522354245           0.120693913923          -0.020257499492          -0.834000000000
+   491           0.024328807654          -0.047306737774           0.003699198749           0.417000000000
+   492          -0.137004152217           0.064847433733           0.055577706945           0.417000000000
+   493          -0.057826147894           0.135261963408           0.061574027053          -0.834000000000
+   494           0.012890158894          -0.034652319150          -0.012125492740           0.417000000000
+   495           0.003877901894          -0.007975272384          -0.002366794709           0.417000000000
+   496          -0.002821572586           0.002775401160          -0.001135503882          -0.834000000000
+   497           0.000537181411           0.002823255327           0.001615196155           0.417000000000
+   498           0.000003667667           0.000025581567           0.000018497307           0.417000000000
+   499          -0.067498182820          -2.157237975189          -0.227533883219          -0.834000000000
+   500          -0.004899154869           1.036543782734           0.417658151042           0.417000000000
+   501           0.099069776987           0.706037406906           0.069870282519           0.417000000000
+   502          -0.108540959189           0.102104880723          -0.039501533536          -0.834000000000
+   503           0.054409765926          -0.039509953789           0.011791471861           0.417000000000
+   504           0.034956014611          -0.038395192063           0.007397143084           0.417000000000
+   505           0.467621481660          -0.570398904822           0.241320675903          -0.834000000000
+   506          -0.248012206366           0.354279172351          -0.102063605467           0.417000000000
+   507          -0.479033436797           0.539167097526          -0.237214196888           0.417000000000
+   508           0.060259866738          -0.176526543775           0.100172125255          -0.834000000000
+   509          -0.009784872504          -0.044030672337           0.003850323719           0.417000000000
+   510          -0.063183501522           0.252964794882          -0.135412804983           0.417000000000
+   511           0.252126375533          -0.584328006039           0.060731956375          -0.834000000000
+   512          -0.097233395490           0.284149805829          -0.070796071672           0.417000000000
+   513          -0.150248132195           0.478994885233           0.025309270576           0.417000000000
+   514           0.000330316804           0.039388938412          -0.011958365365          -0.834000000000
+   515           0.000903712578          -0.009915945555           0.003283737461           0.417000000000
+   516          -0.001078362958          -0.015222230323           0.006568113956           0.417000000000
+   517           0.006510263222           0.017099095162           0.001953501665          -0.834000000000
+   518          -0.000081649898          -0.000163146374          -0.000025358411           0.417000000000
+   519          -0.001390818854          -0.004404988737          -0.000887353612           0.417000000000
+   520          -0.000085220971          -0.000273129543           0.000017832361           0.417000000000
+   521          -0.000040526089          -0.000098280550           0.000008467209           0.417000000000
+   522          -0.006753719141           0.004810521592          -0.005987130601          -0.834000000000
+   523           0.000616553164          -0.000543839286           0.000545039985           0.417000000000
+   524           0.008576937999          -0.006780510419           0.009286145604           0.417000000000
+   525          -0.000739667748          -0.000682935462          -0.001062782117          -0.834000000000
+   526           0.000664740420           0.000769036382           0.000776876971           0.417000000000
+   527           0.000000489724           0.000000490660           0.000000534769          -0.834000000000
+   528          -0.000020397306          -0.000016338628          -0.000021760539           0.417000000000
+   529          -0.000420438667          -0.000520376968          -0.000760212221           0.417000000000
+   530           0.000077906763           0.000169970382           0.000269562858           0.417000000000
+   531           0.000126735988           0.000334427429           0.000378157876           0.417000000000
+   532           0.152912796645           0.388693776995           0.313519117055          -0.834000000000
+   533          -0.019655100645          -0.076620318245          -0.069366466673           0.417000000000
+   534          -0.048176259676          -0.102779390875          -0.067625572994           0.417000000000
+   535          -0.000221363568          -0.000268657244          -0.000576720978          -0.834000000000
+   536           0.000003959755           0.000008103372           0.000017073294           0.417000000000
+   537           0.000053016094          -0.000149496178          -0.000244125638          -0.834000000000
+   538           0.000453638061          -0.008888279481          -0.025541469620           0.417000000000
+   539          -0.002326557354          -0.002777020022          -0.002698626470          -0.834000000000
+   540          -0.000622834413           0.003892453807          -0.001207452747           0.417000000000
+   541           0.000001959832           0.000002310871           0.000002236958           0.417000000000
+   542           1.702209245813           0.402157227545           0.572313303023          -0.834000000000
+   543          -0.521752583120          -0.173842867893          -0.179993911516           0.417000000000
+   544          -0.895990847413          -0.204219871168          -0.572441841307           0.417000000000
+   545           1.201166711758           0.382868068249           1.914751482655          -0.834000000000
+   546          -0.489128297035           0.008504153829          -0.863291503979           0.417000000000
+   547          -0.561136336594          -0.353767972035          -1.298218201349           0.417000000000
+   548           0.147653457306           0.054204518220           0.048810354933          -0.834000000000
+   549          -0.063975776311          -0.038082113098          -0.031387011406           0.417000000000
+   550          -0.034174092974          -0.006732087904           0.009763716155           0.417000000000
+   551          -0.004826484108          -0.005961835570          -0.016887095368          -0.834000000000
+   552           0.007934703749           0.010649356903           0.024793021521           0.417000000000
+   553           0.000413679676           0.000349665554           0.001116568504           0.417000000000
+   554           0.000163650885          -0.000280313027          -0.000753268965          -0.834000000000
+   555          -0.000733665819           0.000871778379           0.003891086013           0.417000000000
+   556          -0.001447972244           0.003128690406           0.006990955597           0.417000000000
+   557           0.608833830897           1.900837155123           0.325796651105          -0.834000000000
+   558          -0.221914313329          -0.658101623378          -0.289402832691           0.417000000000
+   559          -0.575647724868          -1.303833747053          -0.411551191658           0.417000000000
+   560           0.024944627528           1.275475964320           3.271693698250          -0.834000000000
+   561          -0.006153972182          -0.537225388402          -1.136797115881           0.417000000000
+   562           0.115351164709          -0.273273387154          -1.610068560198           0.417000000000
+   563          -0.031146800618           0.489577825171           0.816380726536          -0.834000000000
+   564          -0.041776488444          -0.233376962729          -0.353588533140           0.417000000000
+   565           0.051463368619          -0.231455190882          -0.286315783551           0.417000000000
+   566          -0.000378667232          -0.000046436290          -0.000648264988          -0.834000000000
+   567           0.002060382905          -0.000085522757           0.003245405919           0.417000000000
+   568           0.067717953079          -0.073082622741           0.098139481596          -0.834000000000
+   569          -0.045576188207           0.049703316747          -0.074440640360           0.417000000000
+   570           0.020361773189           0.007000925669           0.041710486109           0.417000000000
+   571          -0.000397678220          -0.000132326599          -0.000045222637          -0.834000000000
+   572           0.003513251963           0.001316240347           0.000561165958           0.417000000000
+   573          -0.016060632534          -0.022544106866          -0.013115757904          -0.834000000000
+   574           0.005664087873           0.007187836942           0.003103518672           0.417000000000
+   575           0.017234669797           0.026665216781           0.016178492431           0.417000000000
+   576          -0.024404511982           0.007501231004          -0.031438903716          -0.834000000000
+   577           0.031623624702          -0.010601430271           0.035007724235           0.417000000000
+   578           0.004472016382          -0.002234250785           0.007435602401           0.417000000000
+   579          -0.000000213939          -0.000000052252          -0.000001291787          -0.834000000000
+   580           0.002955445790          -0.011649704835          -0.028873023433          -0.834000000000
+   581           0.000952491427           0.005156172545           0.015131331373           0.417000000000
+   582          -0.001386285582           0.003977344485           0.006524278082           0.417000000000
+   583          -0.013660142378          -0.041491701410          -0.005193751877          -0.834000000000
+   584          -0.136935484257           0.052730947438          -0.092447013034           0.417000000000
+   585          -0.015398458687           0.030090801901          -0.018647742002           0.417000000000
+   586          -2.280684704200           3.214930887578           1.632544292509          -0.834000000000
+   587           0.653781812093          -1.520075585908          -1.283835921313           0.417000000000
+   588           1.962689721247          -2.505997586926          -0.895782782686           0.417000000000
+   589          -0.133669247910           0.268278092045           0.155784282677          -0.834000000000
+   590           0.114128726085          -0.237910991767          -0.091640885382           0.417000000000
+   591           0.010613804899          -0.010063289703           0.008493432739           0.417000000000
+   592          -0.000371490107          -0.002237425857          -0.001432890231          -0.834000000000
+   593           0.000027658975           0.000256972243           0.000161111664           0.417000000000
+   594           0.002783531457           0.016455753911           0.008637629305           0.417000000000
+   595          -0.662449428423           0.613661091100           0.718921987118          -0.834000000000
+   596           0.611476073169          -0.566889885288          -0.595233896451           0.417000000000
+   597           0.232235948131          -0.297041739908          -0.299754112095           0.417000000000
+   598           0.000004911793          -0.000084889304          -0.000094283402          -0.834000000000
+   599           0.000000002962           0.000000035535           0.000000041146           0.417000000000
+   600           0.198797212240           0.139075646714          -0.176544975145          -0.834000000000
+   601          -0.235400421392          -0.235970141258           0.148430142637           0.417000000000
+   602          -0.017670038636          -0.008672648419           0.049288962990           0.417000000000
+   603           0.000011884367           0.000008714700           0.000003374192           0.417000000000
+   604           0.657801777727           0.905208100778          -1.400032982388          -0.834000000000
+   605          -0.510354038694          -0.932557362071           0.787115128735           0.417000000000
+   606          -0.566859442381          -0.491443105285           0.727078821083           0.417000000000
+   607           0.000022758815          -0.000004329357           0.000023998352           0.417000000000
+   608          -0.391278087459          -0.433152475224           0.264958752069          -0.834000000000
+   609           0.163044926308           0.259024150290          -0.147610377607           0.417000000000
+   610           0.095055042540           0.099494397695          -0.040911160082           0.417000000000
+   611           0.034222269128           0.033697803577          -0.011547888855          -0.834000000000
+   612          -0.004643353718          -0.005854879321           0.002566764215           0.417000000000
+   613          -0.015993088430          -0.027108773855           0.009072749764           0.417000000000
+   614           0.000096766063           0.000048969355          -0.000101178649          -0.834000000000
+   615          -0.004280044176          -0.001599892122           0.003884003610           0.417000000000
+   616          -0.467510284445          -1.863931927810           1.043884876100          -0.834000000000
+   617           0.068091143146           0.796959318017          -0.370461604955           0.417000000000
+   618           0.151228500702           0.696904873290          -0.534705761676           0.417000000000
+   619          -0.000369555484           0.000383210004          -0.001007982296          -0.834000000000
+   620           0.000135045066          -0.000193981490           0.000388055345           0.417000000000
+   621          -2.858060758613          -0.222133194173           1.672009511100          -0.834000000000
+   622           1.081461158761           0.207808681978          -0.560853927265           0.417000000000
+   623           1.141431137647          -0.120956556318          -0.767864888504           0.417000000000
+   624           0.149611444412          -0.394618862889           0.317749613483          -0.834000000000
+   625          -0.177778340594           0.481486953187          -0.400571306225           0.417000000000
+   626          -0.033656772853           0.038401855432          -0.034335933706           0.417000000000
+   627           0.003375292259           0.000918075189          -0.009897958402          -0.834000000000
+   628          -0.000794080464          -0.000193394479           0.003386096600           0.417000000000
+   629           0.038016837445          -0.011669256104          -0.039464271604          -0.834000000000
+   630          -0.014009275883          -0.009155722479           0.041339893203           0.417000000000
+   631          -0.007570382930          -0.011021391908           0.054332531353           0.417000000000
+   632          -0.233126089929           0.000289295611           0.203465603525          -0.834000000000
+   633           0.172308081731           0.033279447740          -0.186982225074           0.417000000000
+   634           0.058784217581           0.000318688243          -0.038500335382           0.417000000000
+   635           0.015791908765           0.047953305243          -0.051742668551          -0.834000000000
+   636          -0.018236790139          -0.039741056789           0.044506995138           0.417000000000
+   637          -0.006183792176          -0.012151419146           0.014053188536           0.417000000000
+   638           0.002048667171           0.002378975980          -0.002965672358          -0.834000000000
+   639          -0.000870745567          -0.000764074965           0.001094162446           0.417000000000
+   640          -0.005542694402          -0.006815035258           0.006942451808           0.417000000000
+   641          -0.162945905653          -0.692325621278           0.954944282173          -0.834000000000
+   642           0.098923052430           0.622901164772          -0.856006491027           0.417000000000
+   643          -0.000813124226           0.180074267977          -0.256372271977           0.417000000000
+   644          -0.018999296240           0.017794936569          -0.111854754664          -0.834000000000
+   645           0.004336479668          -0.002278243003           0.028790548738           0.417000000000
+   646           0.011996980885          -0.009849644137           0.042476957147           0.417000000000
+   647           0.009193782867           0.011730852295          -0.006587228112          -0.834000000000
+   648           0.001055439523           0.002148972580           0.005607798666           0.417000000000
+   649          -0.002768939887          -0.003666939618           0.002168225869           0.417000000000
+   650           0.120116832507          -0.204017743918           0.869302946022          -0.834000000000
+   651          -0.035410526589           0.076094153683          -0.187413229210           0.417000000000
+   652          -0.029175244643           0.035206867455          -0.182448971376           0.417000000000
+   653          -0.915866587738          -0.130690665120           2.374905109731          -0.834000000000
+   654           0.769975213724           0.130545826578          -1.309768373950           0.417000000000
+   655           0.286733113830           0.214964850704          -0.984292680991           0.417000000000
+   656          -0.047548417572          -0.034956886391           0.146454507540          -0.834000000000
+   657           0.083321088244           0.021400864303          -0.226361385196           0.417000000000
+   658          -0.001792456258           0.008953205535          -0.016951430821           0.417000000000
+   659          -0.000008250197          -0.000001340187           0.000026889929           0.417000000000
+   660          -0.000025362345          -0.000001504171           0.000031247599           0.417000000000
+   661          -0.000021008672           0.000049264781          -0.000062668494          -0.834000000000
+   662           0.000000001574          -0.000000006014           0.000000007377           0.417000000000
+   663          -0.053251718999           0.119678868452          -0.097897275320          -0.834000000000
+   664           0.035791869393          -0.058036883500           0.037507843215           0.417000000000
+   665           0.014219721843          -0.032017594390           0.031513286373           0.417000000000
+   666          -3.020915108444          -3.310253760354           2.267735476481          -0.834000000000
+   667           0.902295522088           1.428627732021          -0.895054147869           0.417000000000
+   668           1.570514730847           0.970723459337          -1.226695493738           0.417000000000
+   669          -0.440085104251          -0.335357207900           0.537447911442          -0.834000000000
+   670           0.195328847525           0.222260198953          -0.337448366986           0.417000000000
+   671           0.247859490072           0.207089018799          -0.240904970647           0.417000000000
+   672          -0.001978421086          -0.000412108970           0.002744302199           0.417000000000
+   673          -0.000025016649          -0.000361950269           0.000424664989           0.417000000000
+   674          -1.892955507484          -1.862288193530          -0.863944993521          -0.834000000000
+   675           0.610458336664           0.841365662226           0.225584179746           0.417000000000
+   676           1.175739774026           1.213493730963           0.075454008582           0.417000000000
+   677          -0.128374588870          -0.335645251614           0.031189022159          -0.834000000000
+   678           0.008282844788           0.045770573962          -0.003739400054           0.417000000000
+   679           0.038846445031           0.117271747295          -0.030499934923           0.417000000000
+   680           0.000059427830           0.000376494835          -0.000247085779          -0.834000000000
+   681          -0.001374854556          -0.006351424879           0.004728846887           0.417000000000
+   682          -0.074769885947           0.020264386089          -0.063809739922          -0.834000000000
+   683          -0.098434778284           0.104602363247          -0.099651369385           0.417000000000
+   684           0.052311872098          -0.030487867104           0.035368257315           0.417000000000
+   685           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   686           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   687           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   688           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   689           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   690           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   691           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   692           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   693           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   694           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   695           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   696           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   697           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   698           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   699           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   700           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   701           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   702           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   703           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   704           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   705           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   706           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   707           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   708           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   709           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   710           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   711           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   712           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   713           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   714           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   715           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   716           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   717           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   718           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   719           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   720           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   721           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   722           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   723           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   724           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   725           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   726           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   727           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   728           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   729           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   730           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   731           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   732           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   733           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   734           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   735           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   736           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   737           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   738           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   739           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   740           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   741           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   742           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   743           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   744           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   745           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   746           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   747           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   748           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   749           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   750           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   751           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   752           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   753           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   754           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   755           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   756           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   757           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   758           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   759           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   760           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   761           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   762           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   763           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   764           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   765           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   766           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   767           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   768           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   769           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   770           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   771           0.000000000000           0.000000000000           0.000000000000          -0.834000000000
+   772           0.000000000000           0.000000000000           0.000000000000           0.417000000000
+   773           0.000000000000           0.000000000000           0.000000000000           0.417000000000
diff --git a/test/library/qmmm_amber/fortran_stub/driver.F03 b/test/library/qmmm_amber/fortran_stub/driver.F03
index a61d3774..c097a977 100644
--- a/test/library/qmmm_amber/fortran_stub/driver.F03
+++ b/test/library/qmmm_amber/fortran_stub/driver.F03
@@ -69,7 +69,7 @@ contains
                                         ! Amber would set instead in real QM/MM simulation
                                         read (line, '(30x,3f10.5,1x,a5,6x,f10.5)', end=40, err=40) &
                                                 mm_pos_q(4*nmm+1), mm_pos_q(4*nmm+2), mm_pos_q(4*nmm+3), &
-                                                mm_types(nmm+1), mm_pos_q(4*nqm+4)
+                                                mm_types(nmm+1), mm_pos_q(4*nmm+4)
 
                                         nmm = nmm + 1
                                 endif
@@ -109,7 +109,7 @@ program driver
 #define stderr 0
 #endif
 
-        integer, parameter :: max_sim_steps = 3
+        integer, parameter :: max_sim_steps = 0
 
         character(len=1024), dimension(:), allocatable :: args
         character(len=1024) :: filename
@@ -182,12 +182,20 @@ program driver
         endif
         end do
 
-        do ix = 1, max_sim_steps
-                call get_reaxff_puremd_forces( max_sim_steps, ix, sim_box_info, &
-                        num_qm_atoms, qm_pos, qm_types_map, qm_q, num_mm_atoms, &
-                        mm_pos_q, mm_types_map, e_total, qm_f, mm_f )
+        call get_reaxff_puremd_forces( max_sim_steps, 0, sim_box_info, &
+                num_qm_atoms, qm_pos, qm_types_map, qm_q, num_mm_atoms, &
+                mm_pos_q, mm_types_map, e_total, qm_f, mm_f )
 
-                write (stdout, fmt=75) 'Sim. Step:', ix, 'Total energy:', e_total
+        write (stdout, fmt=75) 'Total energy:', e_total
+        write (stdout, *)
+        write (stdout, fmt=79) 'i', 'F_x', 'F_y', 'F_z', 'Q'
+        do ix = 1, num_qm_atoms
+                write (stdout, fmt=80) ix, qm_f(3 * (ix - 1) + 1), &
+                        qm_f(3 * (ix - 1) + 2), qm_f(3 * (ix - 1) + 3), qm_q(ix)
+        end do
+        do ix = 1, num_mm_atoms
+                write (stdout, fmt=80) ix + num_qm_atoms, mm_f(3 * (ix - 1) + 1), &
+                        mm_f(3 * (ix - 1) + 2), mm_f(3 * (ix - 1) + 3), mm_pos_q(4 * (ix - 1) + 3)
         end do
 
         deallocate(args)
@@ -201,5 +209,7 @@ program driver
         deallocate(mm_pos_q)
         deallocate(mm_f)
 
-        75 format (A10, 1X, I3, 1X, A13, 1X, ES24.15)
+        75 format (A13, 1X, F24.15)
+        79 format (A6, '|', A24, '|', A24, '|', A24, '|', A24)
+        80 format (I6, 1X, F24.15, 1X, F24.15, 1X, F24.15, 1X, F24.15)
 end program driver
diff --git a/test/library/qmmm_amber/fortran_stub/forces_charges.txt b/test/library/qmmm_amber/fortran_stub/forces_charges.txt
new file mode 100644
index 00000000..bf0d18f9
--- /dev/null
+++ b/test/library/qmmm_amber/fortran_stub/forces_charges.txt
@@ -0,0 +1,776 @@
+Total energy:    -1374.311060684903623
+
+     i|                     F_x|                     F_y|                     F_z|                       Q
+     1      101.795785159103403     -112.791218389056198       91.729275100765562        0.115792827420965
+     2       74.441831586487424     -127.881951035566928      175.497941779944568       -0.458827596916358
+     3      -79.678635163780541      275.299817782127434       -6.125209056360313        0.070840632740617
+     4      -88.632872232706347     -102.053723908404720     -198.791581562965433       -0.047478739049226
+     5       15.609605985380071       21.370352505906997      -43.459224488184844       -0.054830468036059
+     6       12.891298453586931       19.844796781148922      -28.298438011388235       -0.062644558024110
+     7      -25.841707893575201       17.405913183314592        4.820262714472239        0.067776819514187
+     8        4.330130660675830       14.498948069525134      -13.261491776471846        0.031530359055013
+     9       -2.816499781569538        2.454652467765156        1.863859750106969        0.055603650241363
+    10       -3.265212674584364       -0.626171560718239        2.197754344042865       -0.007073276703923
+    11        1.569450698087940        6.339172720894704       -9.919553877391289        0.054436086373693
+    12       -8.913931526567165      -10.682924389337582       11.008195804094409        0.090306161443704
+    13        1.788942941121586        1.415390304328931       11.254019699132716        0.056406471953649
+    14       -1.923466479131818       -0.666972779086753       -1.149368816080454        0.088161629986456
+    15       -1.319583800107266       -0.440845374929399        1.296792972133692        5.292260000000000
+    16        0.675543028588913        0.121765607413734       -0.550015463023671        4.905660000000000
+    17        0.738000809302813        0.163411627921033       -0.844842092094151        5.351760000000000
+    18       -0.697834778579487       -0.880335779377346        1.071039059692014        5.829160000000000
+    19        0.238174324330392        0.230471829704077       -0.328026381718985        6.541250000000000
+    20        0.551310194131938        0.540821392078033       -0.667365158250148        5.151060000000000
+    21       -0.001507818489752       -0.018421336053627        0.008818580865870        6.038760000000000
+    22       -0.000659147026087        0.021065901842085       -0.009921912711628        5.863530000000000
+    23        0.007025155657643        0.046137962931508       -0.020631530258210        5.476270000000000
+    24        0.005937754480085       -0.015939054183565        0.041505491902232       10.784549999999999
+    25       -0.006573867984874        0.026712714640778       -0.079634537918391       10.234260000000001
+    26       -0.000418165560755        0.001307002131661       -0.003873860586031       11.517749999999999
+    27       -0.091751959009878       -0.011419517522182        0.081118676718861        7.580290000000000
+    28        0.022480288618879       -0.000282084490824       -0.020265744212412        8.008780000000000
+    29        0.168808433593547        0.025625054380179       -0.158888645032520        6.816890000000000
+    30       -0.067184660158400       -0.157636335108828        0.060341885228351        4.617420000000000
+    31        0.063222671760531        0.113374708109263       -0.053497578011401        4.856260000000000
+    32        0.006268945127423        0.014668132846010       -0.005967337395798        5.240730000000000
+    33        0.228532288950245       -0.581601419918921        0.557046037990129        6.552740000000000
+    34       -0.081472817681716        0.373237714698963       -0.316439120156253        6.108260000000000
+    35       -0.191252315138734        0.358866085542691       -0.307855965854435        5.878240000000000
+    36       -0.083936575704029       -0.053289821120281        0.101793790283074        8.092700000000001
+    37        0.021862599786666        0.015376821531987       -0.023183122487369        7.780020000000000
+    38        0.055982808399861        0.024453596424413       -0.059101353886689        7.846700000000000
+    39       -0.178700348065892       -0.179072564979223        0.017654436356491        1.096200000000000
+    40        0.011486196069953        0.010529310012496       -0.001449331461634        1.295310000000000
+    41        0.050282798506192        0.056898433706161       -0.004128066250798        1.283590000000000
+    42       -0.983620194146529        1.089073960668541        0.626806119469049        4.015860000000000
+    43        0.431204462225368       -0.378513430781256       -0.372943329811419        4.624360000000000
+    44        0.324161047260786       -0.587291851176877       -0.128877449866240        3.666410000000000
+    45        0.000010904533110        0.000025770129227       -0.000022669453130        8.326610000000001
+    46       -0.089543653440113       -0.083803195322750        0.059312910380291        5.618590000000000
+    47        0.008196935415855        0.006900305530393       -0.004635010643697        5.715840000000000
+    48        0.115829626442594        0.107697222584493       -0.069589733814632        4.758930000000000
+    49       -0.038032016066978       -0.124957045682523        0.435439718412418        9.387710000000000
+    50        0.021796902280962        0.059696335719063       -0.152646774236311        9.444229999999999
+    51        0.031096157214296        0.033673891608992       -0.176200474650820        9.725190000000000
+    52       -0.049181087800176       -0.006652299240288        0.165750618388967       10.322690000000000
+    53        0.053361576969729       -0.008036975414172       -0.188197495142107        9.603930000000000
+    54        0.007086233139642        0.000976195966350       -0.030253242968143       11.078010000000001
+    55       -0.773136318982409       -0.629643636841290        0.300714515053361        2.957400000000000
+    56        0.232703940710627        0.206514377684647       -0.071984653983698        2.497970000000000
+    57        0.529009597776273        0.459468211802094       -0.118830670859379        2.395910000000000
+    58        0.008835013078452       -0.023345721431136        0.028022691106342        9.015029999999999
+    59       -0.022180174396589        0.059538685884092       -0.063201271754419        8.087149999999999
+    60       -0.005564985550849        0.016349491376452       -0.023505775277947        9.471840000000000
+    61       -0.350847270607992        0.195762090475561        0.372933630047434        6.230570000000000
+    62        0.118109297250021       -0.056456599178784       -0.131166361190491        7.045130000000000
+    63        0.054389861958203       -0.032285540049833       -0.054700371419826        6.458700000000000
+    64       -0.568577826634426       -1.767122408120227        0.290674957325003        2.550610000000000
+    65        0.247784509767648        0.649481325260381       -0.120975980762643        2.453910000000000
+    66        0.440799875917328        0.910808765506661       -0.005510560417715        2.207320000000000
+    67       -0.000605911543115        0.000155562511910        0.000601456365758        8.918990000000001
+    68        0.000842718036356       -0.000225008694507       -0.000892660482532        9.318410000000000
+    69       -0.048805581315027       -0.075283019772497        0.137236584448454        9.136250000000000
+    70        0.026680897537484        0.028691887579734       -0.053861760300959        8.966720000000000
+    71        0.015963431480250        0.033256210873479       -0.048190310077632        8.872249999999999
+    72       -0.386255021721743       -0.761273488617640        2.002083042165518        6.669870000000000
+    73        0.089449756852512        0.232476484061223       -0.658889665505225        7.579260000000000
+    74        0.294491690532600        0.374488118210814       -0.824861522545669        6.631090000000000
+    75       -0.004997655576839        0.001697958676925        0.007505030368824       10.313150000000000
+    76        0.000997172504198       -0.000172303919381       -0.001630209383040       10.775930000000001
+    77        0.017260726629111       -0.009176133930369       -0.030484004157807        9.875640000000001
+    78       -0.442538774433991        0.136697743501472        0.662395997112632        7.574660000000000
+    79        0.377452577114133       -0.079071081823414       -0.622747428729183        6.961670000000000
+    80        0.124739709749247       -0.031528070346852       -0.199206861638171        8.439209999999999
+    81        0.000521175165061        0.000075995231210       -0.001086945366856       11.263170000000001
+    82        0.000000528359259        0.000000250497899       -0.000008079996119       12.696389999999999
+    83       -0.209058926346587        0.201001723375834        1.077553254956371        8.190160000000001
+    84        0.138434414702459       -0.093389479519094       -0.880339502156105        7.437540000000000
+    85        0.068204991356525       -0.171959614257858       -0.544060960928483        8.008110000000000
+    86        0.590829606900120       -0.654396660279429        1.542548034256956        6.818580000000000
+    87       -0.508847614472170        0.370536533962709       -0.890553344514849        6.093510000000000
+    88       -0.251099737094869        0.402776254497934       -0.648752078773992        6.634890000000000
+    89        0.000074492631491        0.000015748039086       -0.000052259324528        6.072850000000000
+    90        0.000013086342410        0.000002034523928       -0.000008017243584        7.241130000000000
+    91       -1.295983172837285        0.135027441277250        0.811813245093759        4.197360000000000
+    92        0.557789776589205       -0.109781723421717       -0.296883803550787        3.744400000000000
+    93        0.622874195413708       -0.155112363218261       -0.488687913723848        4.731350000000000
+    94       -1.370319587577579        0.643161275806700        1.962332591382935        5.328210000000000
+    95        0.552197409652288       -0.352196800949072       -1.182705185489084        5.531500000000000
+    96        0.635618741397509       -0.552771202647405       -0.737991072253914        4.869670000000000
+    97       -0.015959611649088       -0.022608406429205        0.000926530456583        1.538960000000000
+    98        0.019303638442230        0.034108664895841       -0.001251339771322        1.607800000000000
+    99        0.000002352436488        0.000003432361967       -0.000000778641549        2.015900000000000
+   100       -0.011779446504819       -0.049929036760713        0.047780071267693        8.029830000000000
+   101        0.025319077492271        0.094800393250776       -0.082454531431140        7.190600000000000
+   102        0.001411839899115        0.011066105621368       -0.009227341751833        7.852120000000000
+   103       -0.140062391878011       -0.998735833278240        0.702192318217518        5.325090000000000
+   104        0.094315496486432        0.658000327113665       -0.353335121295528        4.383930000000000
+   105        0.165203300209815        0.564054916210073       -0.475555242114301        5.481310000000000
+   106        0.061740983797108        0.347156779271150       -0.006832762966632        3.322820000000000
+   107       -0.003889576571170       -0.134509516761727        0.124565311303828        2.561160000000000
+   108       -0.016880122088664       -0.204188817112123        0.025488306704742        3.425490000000000
+   109        0.005273306137279        0.033030581077968        0.014268080972970        5.525250000000000
+   110       -0.004998540676337       -0.031159453470199       -0.016453634299105        6.193360000000000
+   111       -0.010144692636284       -0.060949846730560       -0.024187785416532        4.708470000000000
+   112        0.807666262676423        0.770313734181767        0.326467632883352        4.226060000000000
+   113       -0.270231090248397       -0.293690762893401       -0.167188836072310        4.593110000000000
+   114       -0.333146054129646       -0.425119782366925        0.086287680885839        3.302190000000000
+   115        0.212349031905986        0.330971873504709        0.212100717830459        5.210720000000000
+   116       -0.055027753822987       -0.096841317153939       -0.069780279589103        6.049270000000000
+   117       -0.095389090897789       -0.209533116052810       -0.097161389527690        4.652080000000000
+   118        0.017969779697211        0.053993922927147        0.040664807593541        7.504080000000000
+   119       -0.001449316521936       -0.003471472636678       -0.002540031548943        7.971470000000000
+   120       -0.009761603131144       -0.031143346825431       -0.028649844403424        8.132070000000001
+   121       -0.005013049000331        0.012659569230348        0.016854001154203        9.764139999999999
+   122        0.000175616116949       -0.000327196724552       -0.000458317297342       10.282489999999999
+   123        0.006379152682118       -0.015228524680027       -0.016585748235158        8.898230000000000
+   124        0.000505120277971        0.000499355135316        0.000316697652278        4.617420000000000
+   125       -0.000000145941774       -0.000000176539205       -0.000000109905138        4.856260000000000
+   126       -0.003345750780294       -0.003146109015832       -0.001878750277584        5.240730000000000
+   127        0.036535713942416        0.014593039891317        0.057078224346519        9.675950000000000
+   128       -0.036953772384932       -0.014731600295309       -0.068733825765388        9.496510000000001
+   129       -0.036801749433091       -0.013848160843967       -0.046118894748112        8.815930000000000
+   130        0.020076850969509        0.014427815563007        0.012505325041336        6.443400000000000
+   131       -0.002704766994449       -0.002201928623085       -0.001937977316460        7.294420000000000
+   132       -0.000220146277049       -0.000142453759918       -0.000107293032849        6.486140000000000
+   133       -0.001828946235040        0.035750020730939        0.149711670676301       10.453360000000000
+   134       -0.013414169205471       -0.040126557150202       -0.160135592657365        9.720680000000000
+   135       -0.000989957769502       -0.004779752087111       -0.023624856969941       11.206220000000000
+   136        0.181012517383673        1.472328946417472        0.329367698084484        4.472950000000000
+   137        0.009203133778001       -0.639115584590281       -0.229572579276966        4.793880000000000
+   138       -0.062870513221989       -0.810827848292386        0.258148293774018        3.535660000000000
+   139        0.155904037015614       -0.061075688219332        0.404686457703004        9.180870000000001
+   140       -0.113919117432707        0.068057911319656       -0.347269148508940        8.556530000000000
+   141       -0.033254161006868        0.023012549542576       -0.100224201306671        9.906850000000000
+   142        0.018961383137425        0.057808509150770        0.003442271122660        1.096200000000000
+   143       -0.011140769803778       -0.052110541985972       -0.002310199915848        1.295310000000000
+   144       -0.024803463384762       -0.058649995029468       -0.002848640820042        1.283590000000000
+   145       -0.000117206376400       -0.000296516780368       -0.000116817833213        5.715840000000000
+   146       -0.000145010382782       -0.000423337802064       -0.000092653551561        2.497970000000000
+   147        0.005802162463509        0.035884081619355        0.046763814625874        9.478610000000000
+   148       -0.000034773464411       -0.007186155183229       -0.009399284020601        9.885130000000000
+   149       -0.001979732408743       -0.006986891439056       -0.010945144194096       10.196059999999999
+   150       -0.034742318871966        0.081875533263448        0.060995901674317        7.284210000000000
+   151        0.011743614828871       -0.020204788423375       -0.015497252999492        7.501210000000000
+   152        0.048406676655865       -0.139903566930586       -0.110607534959909        6.487870000000000
+   153       -0.039463969790426        0.046575193893918        0.112828625558503        9.872030000000001
+   154        0.013133639389915       -0.020780207647645       -0.039019717735687        9.762950000000000
+   155        0.018037582786592       -0.027514509262683       -0.080015151344962       10.021699999999999
+   156        0.000076091575330        0.000095074796155        0.000212165482847       11.289580000000001
+   157       -0.001562066209815       -0.001411120681936       -0.003500555259535       10.737080000000001
+   158       -0.036332298913858        0.041628878175907        0.039798428300896        7.114030000000000
+   159        0.062258872988545       -0.070374749718637       -0.082156548643233        7.060730000000000
+   160        0.009942345628666       -0.010159076688939       -0.010354628921483        6.792130000000000
+   161       -0.344871699726380        0.423648633375853        0.697510442652180        7.237960000000000
+   162        0.256472495659926       -0.222597423650409       -0.477698246584354        7.055470000000000
+   163        0.095766227734670       -0.117427749259074       -0.207439619109399        8.125600000000000
+   164       -0.014795215753890        0.489947236040778        0.751136197518344        7.605510000000000
+   165       -0.022087867026063       -0.337063659490313       -0.399857261234579        6.883370000000000
+   166       -0.004392241991851       -0.126624918487401       -0.197922516708349        8.381370000000000
+   167        0.907126799712811        0.986980503013421        1.575988776233412        5.804840000000000
+   168       -0.512191793841490       -0.494311828159557       -0.549808752283941        5.301210000000000
+   169       -0.265689758048153       -0.564644265211527       -0.691244863971515        5.908340000000000
+   170        0.198702515492245        0.072496922847266        0.152652070644667        6.740670000000000
+   171       -0.075418451225440       -0.037446464832945       -0.054256517820621        6.439550000000000
+   172       -0.217112167630128       -0.073435344110805       -0.156892192753754        6.011240000000000
+   173        0.189291601601809        0.140493855829268        0.579595193241346        8.634589999999999
+   174       -0.097840893660458       -0.026919957165900       -0.281664977441025        8.833679999999999
+   175       -0.170469870029535       -0.149238837858938       -0.518459714463503        7.722420000000000
+   176       -0.001744893634696        0.000444629537450       -0.003065323248745       10.816459999999999
+   177        0.000230655011580       -0.000970812973893       -0.000637062944507        7.930310000000000
+   178        0.000051965129966       -0.000314578976308       -0.000143747542273        6.790240000000000
+   179       -0.241726966604880        0.927228120865521        0.550991959237978        5.230900000000000
+   180        0.143518824381297       -0.464993751602071       -0.188722668685870        4.574910000000000
+   181        0.176408548735426       -0.479426309083663       -0.414953467143827        5.753060000000000
+   182        0.102442881175811        0.172022787699864       -0.013098440539026        1.538960000000000
+   183       -0.063073132792987       -0.072674004081218       -0.007293158621637        1.607800000000000
+   184       -0.048905930417687       -0.105424470270684        0.036287860782207        2.015900000000000
+   185       -0.273246026377863        0.119615079787182       -0.958576729899718        1.474450000000000
+   186        0.156778467231753       -0.117977238704804        0.749977301316809        1.550720000000000
+   187        0.343614203260723        0.120010657656097        0.589343690898568        0.607880000000000
+   188        0.333803961071363       -0.051622086103544        0.355114831494722        7.628870000000000
+   189       -0.165532090470484        0.039704938285953       -0.224911571041740        8.004400000000000
+   190       -0.071686608659853        0.015520351363987       -0.074137209318282        8.217630000000000
+   191        0.007013845231766       -0.002185094647883        0.007223484846819        9.251300000000001
+   192       -0.000000927252668        0.000000208221393       -0.000000967148277        9.910310000000001
+   193       -0.000408305915608        0.000180857124369       -0.000407811283867        9.293600000000000
+   194       -0.002793011860732       -0.000967925271106       -0.001775694011017        7.596820000000000
+   195       -0.000000004244174       -0.000000001039495       -0.000000001997462        6.967530000000000
+   196        1.860608440960173       -0.435071203054220        1.592528583859695        4.903620000000000
+   197       -0.902118542311118       -0.045832457025060       -0.812459560505187        5.060450000000000
+   198       -0.852506011046959        0.193311490952752       -0.539359560918864        4.609560000000000
+   199       -0.000001250747447        0.000005705033330       -0.000002124746464        5.506860000000000
+   200       -0.608210333869140        1.233438216560287        0.033228865904489       -4.415730000000000
+   201        0.526326609810169       -0.990882194777601       -0.116083434045528       -4.336880000000000
+   202        0.235687205314405       -0.621473562639673        0.139533293923762       -3.758240000000000
+   203       -0.002544230445919        0.006239143946983        0.003458364743655       -5.266690000000000
+   204       -0.027887339720386       -0.192226071267649       -0.072935635626010       -3.040110000000000
+   205        0.030029873962316        0.083130158650311        0.083870075361169       -3.228010000000000
+   206        0.001812478342466        0.099207544527479        0.026592892441342       -2.610670000000000
+   207        0.140650455998376       -1.165311098782633        0.328795338062464        2.960920000000000
+   208       -0.107894367309092        0.558809914379027       -0.100441777651170        2.188620000000000
+   209        0.006346181449797        0.708088189271302       -0.151389217023102        2.610410000000000
+   210       -0.000000599548110        0.000000466802468        0.000000883709713       -8.651109999999999
+   211        0.187101870727780       -0.392418528397959       -0.086318851453191       -1.863430000000000
+   212       -0.076439040274095        0.165087496839683        0.063664090783272       -2.792580000000000
+   213       -0.066051637719910        0.113746937924041        0.015157336086848       -1.714850000000000
+   214        0.000011333940992       -0.000075911290499       -0.000010090128349       -2.067230000000000
+   215        0.000009581981761       -0.000012592922137        0.000005751716276        2.284000000000000
+   216       -0.000267911997158        0.000265147117632       -0.000058867695378        3.051770000000000
+   217       -0.006029862195604        0.008041652995606       -0.002022384277297        1.919410000000000
+   218       -0.002136711495849        0.005260339697495       -0.000511555583350        1.440940000000000
+   219        0.042110165243245       -0.043044969656766       -0.067088367021237       -7.044900000000000
+   220       -0.033089264588755        0.035808386084757        0.043089267094027       -6.230330000000000
+   221        0.017565906950433       -0.019225773494863        0.023306087045649       -6.816770000000000
+   222        0.649751962412188       -0.851927324096881        0.216377223663774        2.133240000000000
+   223       -0.448706154351711        0.506834999793682       -0.166339966208352        2.645170000000000
+   224       -0.347952472007148        0.486949606171634       -0.019708248727773        1.308040000000000
+   225        0.099464810903487       -0.199420359378609       -0.142641975547753       -4.356480000000000
+   226        0.012384411072440        0.012815500428325        0.086558427397036       -4.262660000000000
+   227       -0.071895962665619        0.103949699710559        0.078184225894198       -3.957050000000000
+   228        0.039926762284723       -0.033119857662555        0.012516920864317        4.289060000000000
+   229       -0.014129895825869        0.009992014159021       -0.003695512560749        4.216650000000000
+   230       -0.074119668519354        0.065662576874479       -0.027849581844894        3.473060000000000
+   231        0.034115020119851       -0.131029457954568        0.053324303076533        5.109610000000000
+   232       -0.036059766607519        0.094912970939152       -0.043677100690686        5.262550000000000
+   233       -0.033213967792744        0.165235161289603       -0.060539704415713        4.349180000000000
+   234        0.212122332977852       -0.188608852873647       -0.079689659112630       -2.962320000000000
+   235       -0.051919980059053        0.052766984738030        0.013506647976740       -2.499540000000000
+   236       -0.054922771534831        0.041543990559093        0.020651159493700       -3.399830000000000
+   237        0.002313634870652       -0.002444454210856       -0.001873260274319       -5.700810000000000
+   238       -0.001302497453706        0.001384484559649        0.000818426536186       -4.836260000000000
+   239       -0.057333766366495       -0.180217219742321        0.015905508352600        2.042720000000000
+   240        0.006799897179689        0.030942201697986       -0.002200583585489        2.175510000000000
+   241        0.035655374754128        0.100485220994947       -0.017968727682319        2.926390000000000
+   242       -0.162265524525371        0.644765730506129       -0.545381218192566       -2.941030000000000
+   243        0.039051216554982       -0.582117691291035        0.209145025964669       -3.424630000000000
+   244        0.075364422430075       -0.239963421981031        0.482654336683461       -2.026700000000000
+   245        1.276020641554586       -0.970417018455765        0.636658794624161        3.657230000000000
+   246       -0.514269712954748        0.348025728429520       -0.320937433430479        4.422140000000000
+   247       -0.710891240396621        0.393481585920854       -0.187354957060298        2.985230000000000
+   248        0.108159345514691       -0.082187033186905        0.023636548919911        0.643600000000000
+   249       -0.025016282668149        0.022787226482604       -0.004601817042757        0.134700000000000
+   250       -0.038996125055940        0.025038046900208       -0.006681110240071        0.155000000000000
+   251        0.008570940278033       -0.011738452553356       -0.000678366181016       -1.528010000000000
+   252       -0.000043892077258        0.000069606068381        0.000002052509322       -1.347250000000000
+   253       -0.000309697120550        0.000366710172237        0.000045401536888       -2.012300000000000
+   254        0.145298898289754       -0.177718027780484        0.108094976951313        5.672100000000000
+   255       -0.024531905922066        0.030216812750039       -0.021389873795161        6.544370000000000
+   256       -0.069871066899035        0.070963013034491       -0.039057446196457        5.183980000000000
+   257       -0.149588681437955        0.339272956901585       -0.581446756717892       -2.097360000000000
+   258       -0.057053524582870       -0.025389092618504        0.333050264461613       -1.404080000000000
+   259       -0.057819622642352        0.010614876139785        0.142665471865072       -2.338160000000000
+   260       -0.105328788694524       -0.221773043294476       -0.101967034007432       -2.094900000000000
+   261        0.038732510301410        0.099569413706327        0.045407672676489       -2.475040000000000
+   262        0.023426964743891        0.053630998934267        0.011836537464829       -1.645920000000000
+   263        0.098587051340179       -0.457813874410281       -0.005540453516786       -0.025130000000000
+   264       -0.014543292551842        0.117611935653004        0.004297121136193       -0.324910000000000
+   265       -0.053390919099961        0.186812944987958        0.011433981544662       -0.707770000000000
+   266       -0.000042241679262       -0.000082885680712       -0.000007858456286       -1.136010000000000
+   267        0.000159797124064        0.000304688373255       -0.000004015296456       -0.198930000000000
+   268       -0.354258582573596       -0.606312280314270       -0.725003189664866       -0.373520000000000
+   269        0.125802910118781        0.233874415242275        0.212475817644587       -0.939720000000000
+   270        0.104835417379992        0.087144584702487        0.519735895150166       -0.840640000000000
+   271        0.018220971710327       -0.712143311006781       -1.625926493895282       -0.161680000000000
+   272        0.033630548756495        0.200960808486235        1.368412667722887       -0.263810000000000
+   273        0.073040413412203        0.511512006841806        0.647647415196525        0.226900000000000
+   274        1.055026688861519       -2.231481938877792        0.612782156103639        3.053920000000000
+   275       -0.625826496241319        0.880962278246141       -0.370957731117967        3.370570000000000
+   276       -0.301881678517114        1.004686778868037       -0.292795295353397        3.068550000000000
+   277        0.432917068081933       -0.614058481224396       -0.525511087788399       -0.285080000000000
+   278       -0.140253175613395        0.290043098232462        0.399327862725538       -0.398640000000000
+   279       -0.165558355696084        0.280855800330691        0.139470278835616       -0.801470000000000
+   280        0.081344192174733        0.028473039210381       -0.009079129935723       -0.456240000000000
+   281       -0.009924696539457       -0.002626077781665        0.001618031558952       -0.871610000000000
+   282       -0.028572015526392       -0.009653629443377        0.000400156732929        0.463980000000000
+   283       -0.006951201370738        0.000029633177657        0.000783204501596       -1.141390000000000
+   284        0.303983236788635        0.006435901211104       -0.019660930670593       -0.514780000000000
+   285       -0.150887169607621       -0.001847819133951       -0.006605693572854        0.399160000000000
+   286       -0.109542294900739       -0.031010556274160        0.049103505615530       -0.834310000000000
+   287        0.469508388259862       -0.115713658379216       -0.044575379598934       -0.469670000000000
+   288       -0.147831181397161       -0.012597684621834        0.113531614861787       -0.945660000000000
+   289       -0.209533101393492        0.033015174262096        0.010474433833198       -0.364470000000000
+   290        0.027027635335773       -0.004003229318380       -0.007753691174884       -3.511330000000000
+   291       -0.082588173525482        0.014531450237206        0.023251471519714       -2.992980000000000
+   292       -0.012242651392151        0.001327904936417        0.004863685572042       -4.377240000000000
+   293        1.109788259871302       -0.274390047548620        0.011928276122777        1.961820000000000
+   294       -0.544983646851377        0.058584555870650       -0.018051760421339        2.227580000000000
+   295       -0.425077175371590        0.104955503877671        0.028224485642500        1.189330000000000
+   296        0.002889506913405        0.001289207186508       -0.001982843572597       -5.122380000000000
+   297       -0.000034358314043       -0.000014209239884        0.000018938667753       -5.189020000000000
+   298        0.000049067578888       -0.000008700050134        0.000022260901830        6.836110000000000
+   299       -0.009775425914948        0.001677215479640       -0.004455864480158        6.484590000000000
+   300       -0.674797095270661       -0.048693065442154        0.134668997344487       -4.346430000000000
+   301        0.067866411264565       -0.001876728989614        0.002281770415995       -4.563060000000000
+   302        0.292595051171457       -0.028305619340042       -0.044278021983216       -4.376410000000000
+   303       -0.593207275364370        0.247526776153102       -0.038278560291814       -3.675350000000000
+   304        0.243649913892331       -0.122727628624398       -0.008190236768195       -4.400250000000000
+   305        0.460857843239295       -0.231865236930142        0.100019516059767       -2.957760000000000
+   306        0.005338762487379       -0.000216291844048       -0.003274762615487       -5.991260000000000
+   307       -0.029161379807470        0.001400618866010        0.019974301944522       -5.774260000000000
+   308       -0.000009296308195        0.000000974272388        0.000006552451486       -6.787600000000000
+   309        0.016410503883117       -0.007899789636646       -0.004786564257497       -3.403440000000000
+   310       -0.010690407542709        0.003781877430060        0.003161495154194       -3.512520000000000
+   311       -0.000003262852769        0.000001597661730        0.000000805849013       -3.253770000000000
+   312       -0.000540046426403        0.000238020113957       -0.000038663461260        3.326970000000000
+   313        0.112227027932931       -0.059412511969509        0.032801390294658        2.919920000000000
+   314       -0.051277307641101        0.030277010202327       -0.015053604080808        2.184960000000000
+   315       -0.233218086242225        0.116431600652766       -0.076155665606361        2.920870000000000
+   316        0.026805727775981        0.021321030073302        0.005546127482548        2.042720000000000
+   317       -0.012403448101034       -0.007829187622109       -0.002563759093546        2.175510000000000
+   318       -0.007252048830493       -0.006293144112578       -0.002456580822423        2.926390000000000
+   319       -0.036100746171761        0.048207184728190       -0.043730021149739       -6.161440000000000
+   320       -0.036794927612573        0.011628955372212        0.041856535234544       -6.214730000000000
+   321        0.121366167982808       -0.080305091346996       -0.045770887921202       -6.483340000000000
+   322        0.004485469649600       -0.001678250752773        0.000472385600086       -0.178690000000000
+   323       -0.035457421663160        0.012941386211196       -0.002831105462747       -0.317940000000000
+   324       -0.000000049615490        0.000000014251176       -0.000000004387440       -0.257020000000000
+   325        0.005975931789651       -0.003151281549724       -0.004230075181326       -6.037510000000000
+   326       -0.000800677326844        0.000549211027552        0.000616802652150       -6.220000000000000
+   327       -0.005279480190450        0.002689319429225        0.002916831602353       -5.149870000000000
+   328        0.954912270595291        0.108105734150142        0.170325528679257        2.981040000000000
+   329       -0.489840855998987       -0.143941334490804       -0.058539636679531        3.113070000000000
+   330       -0.334347339117773       -0.030917427712733       -0.075209446849366        2.822960000000000
+   331        0.243845765317015       -0.031251553369598        0.125005816736917        5.874060000000000
+   332       -0.159363769466539        0.015201020394900       -0.104942252453382        6.460520000000000
+   333       -0.259007344753720        0.018256711736790       -0.126611842005410        5.010730000000000
+   334        0.003069739059059        0.003042881871884       -0.001265858516859       -2.094900000000000
+   335       -0.000011146005033       -0.000009322720819        0.000004657370847       -2.475040000000000
+   336       -0.018850255389980       -0.017358723099172        0.006828671548509       -1.645920000000000
+   337       -0.268625471436465       -0.134957225199807       -0.143435772236302       -1.136010000000000
+   338        0.402155792814464        0.257473555811304        0.144952476155499       -1.317610000000000
+   339        0.057572867059323        0.008776468857620        0.075913661170100       -0.198930000000000
+   340       -0.000127985081474       -0.000019874377939        0.000062398604743       -5.345160000000000
+   341       -0.562224016185072        0.676452429235301       -0.908522246672035       -1.351120000000000
+   342        0.229988830194214       -0.335989696256359        0.424775547227047       -1.643680000000000
+   343        0.148941033716389       -0.401677684529235        0.712627155721190       -0.595320000000000
+   344        0.160760063342581        0.005777513468613        0.028584330785493        2.365840000000000
+   345       -0.052092124666331       -0.006980930652388       -0.008305796650844        2.384640000000000
+   346       -0.034957176523906        0.000737407705891       -0.007121407039380        3.151320000000000
+   347       -0.309072678016541        0.370612991391752       -1.195430223035319        0.618200000000000
+   348        0.436150781833420       -0.249773025275804        1.005862536212430        0.105190000000000
+   349        0.236341716076943       -0.090643342527676        0.377966063864183        0.021540000000000
+   350       -0.372543281462243        0.051337284418708       -0.218679948589043       -1.505200000000000
+   351        0.246852229599283       -0.002246874578542        0.056531799999417       -2.457010000000000
+   352        0.052956614943701       -0.021404964668371        0.073332394158173       -1.183480000000000
+   353        0.013508292113549        0.004792567713733        0.003110186608548        2.609460000000000
+   354       -0.000001159022635       -0.000000360860906       -0.000000249024646        2.542450000000000
+   355       -0.011196254609234       -0.003590046961899       -0.003112290370869        3.424480000000000
+   356        0.491656038576895       -0.259667016021298        0.344695935066502        5.875760000000000
+   357       -0.091355159871346        0.052162211078264       -0.056741946338020        6.364480000000000
+   358       -0.246578734580057        0.105106057372517       -0.200737000301763        6.450100000000000
+   359       -0.364516866939689       -0.120192341970517       -0.092958420323996       -1.241880000000000
+   360        0.207858923082373        0.095178953497101        0.081453940708044       -1.008100000000000
+   361        0.103639578943744        0.034192936658751        0.009679670049910       -0.801230000000000
+   362        0.000000000000001        0.000000000000000       -0.000000000000000        1.125100000000000
+   363       -0.000568700334151       -0.000451851023185        0.000175467784665        2.074700000000000
+   364        0.000006828300582        0.000004742374566       -0.000001389487327        1.428680000000000
+   365       -0.076005216345088        0.037179903393893       -0.009942432616908       -2.490920000000000
+   366       -0.016262562680945        0.007131413343023       -0.005577887931163       -3.041210000000000
+   367        0.025119167953794       -0.014868045374500        0.002902687999887       -1.757720000000000
+   368       -0.000000304081240        0.000000016280967        0.000000178243683        3.432060000000000
+   369        0.001981314905270       -0.000696433098384       -0.001000516188431        2.280850000000000
+   370       -0.004650005115574        0.000638517389289        0.003868878555755        1.999120000000000
+   371       -0.000199714458825        0.000067476450221        0.000125600100667        3.232460000000000
+   372       -0.008176094181927       -0.002121646499683        0.007948819061274       -6.722730000000000
+   373       -0.000030175051833        0.000133076545326       -0.000968406866477       -7.167210000000000
+   374        0.013480459944616        0.000936874210639        0.001918669642955       -7.397230000000000
+   375        0.003408600832503        0.006003006701023       -0.007120174825843       -0.066070000000000
+   376       -0.004442955725195        0.000169803868672        0.000923646190381        0.021950000000000
+   377        0.050430232899489       -0.016463123234634        0.002747337528454        0.277330000000000
+   378        0.001788754221150        0.000403977170964        0.000086619790810       -2.015670000000000
+   379       -0.005465768665322       -0.000902453476139        0.000224710238621       -1.513500000000000
+   380       -0.003726544730364       -0.001152560502102       -0.000246441228489       -2.381340000000000
+   381        0.002688240423107       -0.000992951497623        0.000761875965293       -3.887760000000000
+   382       -0.000857887344058        0.000215472064584       -0.000225690588731       -3.831240000000000
+   383       -0.000058230051065        0.000024206932426       -0.000013128777872       -3.550280000000000
+   384       -0.169046781039124        0.014621346865872       -0.081294013430512       -4.260440000000000
+   385        0.054647431750841       -0.004673179084117        0.020744908376115       -5.188320000000000
+   386        0.087063808457495       -0.018145691174934        0.029593700039677       -3.803630000000000
+   387       -0.361480069984289        0.166756385343553        0.036285155816004        0.750690000000000
+   388        0.218985060372112       -0.105502866617908       -0.049620539506472        1.599000000000000
+   389        0.216546272566835       -0.118195760818551        0.011060815291696        0.112690000000000
+   390       -0.348092161039936        0.184472073772582        0.175378579458716        3.283980000000000
+   391        0.103696421177519       -0.072135118316931       -0.057306630158806        3.529910000000000
+   392        0.125031606205051       -0.055851524741546       -0.077235079776766        4.117840000000000
+   393       -0.443993837121372        0.115200645991713       -0.654960067541077       -0.071230000000000
+   394        0.052609186384530       -0.100718352492507        0.339750730726813       -0.441840000000000
+   395        0.261366145966963        0.006499775006427        0.158856926449151       -0.265780000000000
+   396       -0.033054128099574        0.001362587068083       -0.014235087148086       -3.604210000000000
+   397        0.062366253215005        0.001926596447303        0.024523654304266       -3.678180000000000
+   398        0.066899965051071        0.012976822652222        0.023520768547217       -2.899690000000000
+   399       -0.000008285407544        0.000002944554963       -0.000004058007029       -5.696210000000000
+   400       -0.000280515198226        0.000207333155155        0.000037876449454       -0.579080000000000
+   401        1.372520219649839       -0.134538932952136       -0.077354903973175       -3.466280000000000
+   402       -0.883729897460074        0.004801866852392       -0.050143464519247       -3.864370000000000
+   403       -0.291259808814156        0.041178778821842        0.033041221174778       -3.848910000000000
+   404       -0.009093119810958        0.000749366262963        0.002641854168942       -6.456890000000000
+   405        0.007748978296953       -0.002756985179988        0.002484774913311       -7.181960000000000
+   406        0.004675920347606        0.000338917432220       -0.002266897149199       -6.640580000000000
+   407       -0.000196177578336        0.000063074096214        0.000165446089063        6.161500000000000
+   408        0.001669479934844       -0.000308859482801       -0.001341770326598        5.771290000000000
+   409       -0.000075645959907        0.000073446909200        0.000033119001302        6.405700000000000
+   410        0.000113399366856       -0.000080390874281       -0.000083480560815        6.227040000000000
+   411        0.392238986923057        0.093480029740014       -0.509004599202630       -1.074040000000000
+   412       -0.425657889048310        0.005296607502573        0.389960532380797       -0.910280000000000
+   413       -0.406471821714439        0.017951629030319        0.246213114891274       -1.893210000000000
+   414       -0.026272582532819       -0.000686534498757        0.017159836620044        4.873710000000000
+   415        0.086802058020091       -0.002061181132286       -0.046969972274704        4.065600000000000
+   416        0.000744378218773        0.000012936480523       -0.000417110801090        4.628050000000000
+   417       -0.000016910159626       -0.000006756703493        0.000006454924916        3.106540000000000
+   418        0.010259731710168        0.004334225241716       -0.004266861075235        3.127760000000000
+   419       -0.745774850870091        0.025512030093743        0.209876235649203        2.220770000000000
+   420        0.359042244267294        0.037603822488768       -0.110181883718056        2.406740000000000
+   421        0.444239750015863       -0.036025638704289       -0.037138409228909        1.487350000000000
+   422       -0.542564931854439       -0.236002284211561        0.154612057425821        2.266600000000000
+   423        0.107555414776899        0.057402983568685       -0.028689736866431        2.079590000000000
+   424        0.401627453879909        0.206342071764152       -0.115485307231308        2.431250000000000
+   425       -1.946803731539160        0.123925204985040       -0.367809231490730        1.958820000000000
+   426        0.710481459527489       -0.014701733971931        0.371285012341267        1.350470000000000
+   427        0.887715732702767       -0.130995517101024       -0.133762655352497        2.764490000000000
+   428       -0.016032465166067       -0.011761854155398       -0.003353666935122       -1.745230000000000
+   429        0.073933553889636        0.052686033036523        0.015555546133203       -1.472770000000000
+   430        0.002280469131856        0.001431583849380        0.000340424443557       -1.288040000000000
+   431       -0.417458646261752       -0.337449394374627       -0.219897115735352       -0.687840000000000
+   432        0.118417670017548        0.116348818808604        0.166294982282901       -1.398510000000000
+   433        0.223981802901367        0.201079363879658        0.048234874423668       -0.060480000000000
+   434       -0.000005607564644       -0.000001560510960       -0.000002466526777       -5.423350000000000
+   435       -0.027446108297985       -0.013236873563996       -0.016216686406198       -4.420620000000000
+   436        0.011899645476418        0.006404153892271        0.005794311477280       -3.589800000000000
+   437        0.003531790414839       -0.000023148025996        0.002264851129727       -4.545610000000000
+   438       -0.016670006352145        0.330949409222022       -0.039829172461000        3.217580000000000
+   439        0.011292231778366       -0.107884637711283       -0.012231767616148        2.993700000000000
+   440        0.026240387563701       -0.226077895984159       -0.040822376990003        3.896980000000000
+   441        0.000000375319563        0.000000716702058       -0.000000086904387        0.002790000000000
+   442        0.000236884001325        0.016398623518039        0.002770160701204        2.074700000000000
+   443        0.000148820061890       -0.004170368601283       -0.000639104316786        1.428680000000000
+   444        0.000283287385973       -0.007158242859077       -0.001677346331981        2.880020000000000
+   445       -0.001824724484085       -0.009456412927474       -0.000790533884607        1.012270000000000
+   446       -0.000670211705710        0.004144450088885        0.001265266765478        1.303950000000000
+   447        0.001633083213953        0.002747437444746       -0.001695250966334        0.080380000000000
+   448       -0.117537310302165        0.746310454231282       -0.213800769018916        2.834710000000000
+   449        0.053334328439165       -0.251859692225885        0.015330739407447        2.758620000000000
+   450       -0.108878738054227       -0.276595134591235        0.414703555485039        1.971670000000000
+   451       -0.009388910468808        0.010814308116545        0.003344267544597       -3.599520000000000
+   452        0.003548538740017       -0.002552280257246       -0.001656022732986       -3.778960000000000
+   453        0.005810849843530       -0.009952780826874        0.000619781506330       -4.459540000000000
+   454       -0.013676261293783        0.170426739261205       -0.015259235180946        0.799630000000000
+   455        0.011274664329620       -0.074940245283815        0.006586525384336       -0.013580000000000
+   456        0.024022050253666       -0.080520189735702       -0.013866234503231        0.859300000000000
+   457        0.008927403433261       -0.014293504994426       -0.004982646688560       -0.193750000000000
+   458        0.048622811048221       -0.048855608492151       -0.003781736705382       -0.553160000000000
+   459       -0.000044215897675        0.000827144987913        0.004746234751472        0.733190000000000
+   460       -0.000000765274028        0.000000852069880       -0.000000232133216       -3.554790000000000
+   461       -0.000000311634243        0.000000361686237       -0.000000023202493       -2.069250000000000
+   462       -0.031422263005475        0.008065273252652        0.014108482315264       -4.094600000000000
+   463        0.000993281708696        0.003922122836412       -0.007620743649951       -4.718940000000000
+   464        0.050428619094213       -0.028778131218083        0.002309362930553       -3.368620000000000
+   465        0.000160258603571        0.007753106148153        0.000266756145336       -2.657690000000000
+   466        0.001071570289058       -0.008925938919364       -0.001466217022635       -2.326670000000000
+   467       -0.000497942004427       -0.011090672746536        0.000488657884171       -3.469360000000000
+   468       -0.024085931593728        0.050760744821477        0.016552074069864       -1.713060000000000
+   469        0.010202269728845       -0.046019163573690       -0.011492990813432       -2.032950000000000
+   470        0.009283425562328       -0.012276069410701       -0.006462164356025       -2.278740000000000
+   471       -0.000000005003715        0.000000010934958        0.000000000348955       -1.297800000000000
+   472       -0.000019475038436        0.000053479436155       -0.000005639659765       -2.538390000000000
+   473        0.272218137230969       -0.677990751889352       -0.608653437704281        0.434880000000000
+   474       -0.130956844973574        0.169354613936348        0.190022591495635        0.603100000000000
+   475       -0.060658550401441        0.140854271176675        0.275854337387892        1.286280000000000
+   476       -0.000000012825366        0.000000016806700        0.000000014994312        4.182410000000000
+   477       -0.077528303437581        0.084987766634401        0.021026826449460        2.233080000000000
+   478        0.110933909471032       -0.136938132117344       -0.047696412094337        2.110970000000000
+   479        0.003177605540633       -0.004352761419909        0.003709444195757        2.732950000000000
+   480       -0.002302011349347        0.007112633648385       -0.003255966512213       -6.534800000000000
+   481        0.000783226006757       -0.001957897830144        0.001134061038207       -7.264230000000000
+   482        0.000273133724028       -0.000481220861517       -0.000100494631009        0.090370000000000
+   483       -0.002158491795467        0.003300180491419        0.000592709443943       -0.246400000000000
+   484       -0.000247786553793        0.000518511470415        0.000149060665622        0.724190000000000
+   485        0.000034410248936       -0.000107630352001       -0.000047324452225        2.135680000000000
+   486       -0.000006690882642        0.000016673282864        0.000009117409690        2.825720000000000
+   487        0.000373316722818       -0.000631414142180        0.000361571572353       -4.640880000000000
+   488        0.000778970588496        0.000596386573175       -0.001441482485054       -4.441790000000000
+   489       -0.000027628022388        0.000035151591738       -0.000020119825277       -5.553050000000000
+   490       -0.045522354244699        0.120693913922139       -0.020257499491763       -1.504210000000000
+   491        0.024328807653501       -0.047306737774166        0.003699198748983       -2.459010000000000
+   492       -0.137004152217034        0.064847433733130        0.055577706944783       -1.310150000000000
+   493       -0.057826147893572        0.135261963408239        0.061574027053171        3.839290000000000
+   494        0.012890158893693       -0.034652319150449       -0.012125492740119        3.513940000000000
+   495        0.003877901894151       -0.007975272384218       -0.002366794708589        4.673970000000000
+   496       -0.002821572585886        0.002775401159710       -0.001135503881537        3.292480000000000
+   497        0.000537181411499        0.002823255327126        0.001615196154920        2.597130000000000
+   498        0.000003667667210        0.000025581567207        0.000018497307465        4.064160000000000
+   499       -0.067498182820533       -2.157237975188928       -0.227533883218358       -1.773820000000000
+   500       -0.004899154869064        1.036543782734047        0.417658151041544       -0.889490000000000
+   501        0.099069776986857        0.706037406906231        0.069870282518655       -1.644030000000000
+   502       -0.108540959189328        0.102104880722406       -0.039501533535675       -5.646600000000000
+   503        0.054409765925610       -0.039509953788819        0.011791471860675       -5.271070000000000
+   504        0.034956014610476       -0.038395192062835        0.007397143083518       -5.057830000000000
+   505        0.467621481659883       -0.570398904822568        0.241320675902988       -4.024170000000000
+   506       -0.248012206366274        0.354279172351744       -0.102063605467148       -3.365160000000000
+   507       -0.479033436797129        0.539167097525846       -0.237214196888481       -3.981870000000000
+   508        0.060259866737924       -0.176526543774844        0.100172125254762       -4.516300000000000
+   509       -0.009784872504126       -0.044030672336720        0.003850323718979       -4.898490000000000
+   510       -0.063183501521919        0.252964794881632       -0.135412804983446       -4.927560000000000
+   511        0.252126375533139       -0.584328006039153        0.060731956375444       -2.314170000000000
+   512       -0.097233395489784        0.284149805829535       -0.070796071672181       -3.122740000000000
+   513       -0.150248132194833        0.478994885232776        0.025309270575973       -1.674090000000000
+   514        0.000330316803552        0.039388938412375       -0.011958365364700       -5.460660000000000
+   515        0.000903712577563       -0.009915945555234        0.003283737460593       -5.678650000000000
+   516       -0.001078362958017       -0.015222230323298        0.006568113955642       -6.307940000000000
+   517        0.006510263222126        0.017099095161716        0.001953501665450       -1.745230000000000
+   518       -0.000081649898016       -0.000163146373543       -0.000025358410749       -1.472770000000000
+   519       -0.001390818854235       -0.004404988736770       -0.000887353612275       -1.288040000000000
+   520       -0.000085220970549       -0.000273129542963        0.000017832361176       -0.060480000000000
+   521       -0.000040526088950       -0.000098280549545        0.000008467208764       -3.589800000000000
+   522       -0.006753719140784        0.004810521591808       -0.005987130601168       -8.371850000000000
+   523        0.000616553164270       -0.000543839286183        0.000545039985488       -8.215020000000001
+   524        0.008576937999399       -0.006780510419363        0.009286145604346       -8.665910000000000
+   525       -0.000739667748407       -0.000682935462276       -0.001062782117331       -6.601200000000000
+   526        0.000664740420180        0.000769036382159        0.000776876970981       -6.007820000000000
+   527        0.000000489723750        0.000000490659989        0.000000534769033       -7.653280000000000
+   528       -0.000020397305595       -0.000016338627850       -0.000021760539466       -7.768610000000000
+   529       -0.000420438667214       -0.000520376967687       -0.000760212220652       -6.938870000000000
+   530        0.000077906763416        0.000169970381977        0.000269562858096      -10.766719999999999
+   531        0.000126735987668        0.000334427429464        0.000378157875649       -9.806179999999999
+   532        0.152912796644453        0.388693776994787        0.313519117054635       -6.876050000000000
+   533       -0.019655100645462       -0.076620318245108       -0.069366466672689       -7.620590000000000
+   534       -0.048176259676319       -0.102779390874679       -0.067625572994152       -6.622630000000000
+   535       -0.000221363567527       -0.000268657243550       -0.000576720977754       -9.166850000000000
+   536        0.000003959755165        0.000008103372010        0.000017073294494       -9.843410000000000
+   537        0.000053016094390       -0.000149496177822       -0.000244125637820      -10.994619999999999
+   538        0.000453638060728       -0.008888279480708       -0.025541469620101      -10.042999999999999
+   539       -0.002326557353584       -0.002777020022365       -0.002698626469784       -8.838550000000000
+   540       -0.000622834412794        0.003892453806863       -0.001207452746713       -8.002730000000000
+   541        0.000001959832335        0.000002310871030        0.000002236957965       -8.710310000000000
+   542        1.702209245812768        0.402157227544879        0.572313303022355       -4.840610000000000
+   543       -0.521752583120079       -0.173842867893264       -0.179993911516381       -5.158520000000000
+   544       -0.895990847412936       -0.204219871168063       -0.572441841306995       -5.506220000000000
+   545        1.201166711757936        0.382868068249180        1.914751482654754       -6.812470000000000
+   546       -0.489128297034825        0.008504153829201       -0.863291503979072       -7.304450000000000
+   547       -0.561136336593787       -0.353767972034755       -1.298218201348908       -6.587460000000000
+   548        0.147653457306039        0.054204518220489        0.048810354932651       -5.970120000000000
+   549       -0.063975776311267       -0.038082113097670       -0.031387011406292       -6.200190000000000
+   550       -0.034174092974212       -0.006732087904403        0.009763716154822       -5.227710000000000
+   551       -0.004826484107869       -0.005961835569682       -0.016887095367767      -10.991470000000000
+   552        0.007934703749109        0.010649356902545        0.024793021520569      -10.223699999999999
+   553        0.000413679675544        0.000349665554222        0.001116568503698      -11.356059999999999
+   554        0.000163650884600       -0.000280313027200       -0.000753268964849       -9.991490000000001
+   555       -0.000733665818640        0.000871778379365        0.003891086013039       -9.745559999999999
+   556       -0.001447972243771        0.003128690406327        0.006990955597499       -9.157629999999999
+   557        0.608833830896516        1.900837155121658        0.325796651103923       -4.417400000000000
+   558       -0.221914313328614       -0.658101623377556       -0.289402832690450       -5.334390000000000
+   559       -0.575647724867512       -1.303833747052484       -0.411551191657074       -4.404270000000000
+   560        0.024944627527747        1.275475964320155        3.271693698248402       -6.339750000000000
+   561       -0.006153972181605       -0.537225388402367       -1.136797115880362       -7.006690000000000
+   562        0.115351164708826       -0.273273387153832       -1.610068560197219       -6.791690000000000
+   563       -0.031146800617663        0.489577825171225        0.816380726535266       -8.108350000000000
+   564       -0.041776488443667       -0.233376962728651       -0.353588533139971       -7.985710000000000
+   565        0.051463368619009       -0.231455190881550       -0.286315783550456       -7.871480000000000
+   566       -0.000378667231553       -0.000046436289727       -0.000648264987986      -11.142230000000000
+   567        0.002060382904902       -0.000085522757186        0.003245405919027      -10.630300000000000
+   568        0.067717953078847       -0.073082622741259        0.098139481596340       -8.986409999999999
+   569       -0.045576188207352        0.049703316747136       -0.074440640360559       -9.058820000000001
+   570        0.020361773188839        0.007000925668854        0.041710486108484       -9.802410000000000
+   571       -0.000397678219575       -0.000132326598563       -0.000045222637038       -8.165860000000000
+   572        0.003513251962539        0.001316240346793        0.000561165957495       -8.012919999999999
+   573       -0.016060632533759       -0.022544106865597       -0.013115757903585       -3.854000000000000
+   574        0.005664087872595        0.007187836941735        0.003103518672395       -3.183760000000000
+   575        0.017234669797414        0.026665216781499        0.016178492431189       -3.390400000000000
+   576       -0.024404511981975        0.007501231003616       -0.031438903715566       -9.618240000000000
+   577        0.031623624701734       -0.010601430271069        0.035007724235339       -8.853330000000000
+   578        0.004472016382104       -0.002234250784928        0.007435602400720      -10.290229999999999
+   579       -0.000000213938740       -0.000000052252252       -0.000001291786823      -12.631869999999999
+   580        0.002955445789763       -0.011649704835017       -0.028873023433233      -11.003909999999999
+   581        0.000952491427315        0.005156172544880        0.015131331372804      -11.076079999999999
+   582       -0.001386285581975        0.003977344485086        0.006524278082223      -10.921290000000001
+   583       -0.013660142378109       -0.041491701409661       -0.005193751877120       -7.603370000000000
+   584       -0.136935484256761        0.052730947437845       -0.092447013034401       -6.731100000000000
+   585       -0.015398458686719        0.030090801900495       -0.018647742001948       -8.091480000000001
+   586       -2.280684704199402        3.214930887577100        1.632544292506779       -4.427240000000000
+   587        0.653781812092823       -1.520075585907676       -1.283835921312151       -4.966790000000000
+   588        1.962689721246697       -2.505997586925963       -0.895782782685134       -3.672340000000000
+   589       -0.133669247910182        0.268278092044918        0.155784282676606       -7.113970000000000
+   590        0.114128726085263       -0.237910991766935       -0.091640885381566       -6.172410000000000
+   591        0.010613804898928       -0.010063289702567        0.008493432739520       -7.504180000000000
+   592       -0.000371490106900       -0.002237425857424       -0.001432890231261       -5.798040000000000
+   593        0.000027658974794        0.000256972242692        0.000161111663694       -6.089640000000000
+   594        0.002783531456759        0.016455753911440        0.008637629305435       -4.858220000000000
+   595       -0.662449428422768        0.613661091099604        0.718921987117248       -6.869760000000000
+   596        0.611476073168548       -0.566889885287825       -0.595233896450518       -6.033420000000000
+   597        0.232235948130837       -0.297041739908155       -0.299754112094752       -7.048430000000000
+   598        0.000004911792688       -0.000084889304263       -0.000094283401639       -8.401759999999999
+   599        0.000000002962256        0.000000035535404        0.000000041146283       -8.647420000000000
+   600        0.198797212239951        0.139075646713382       -0.176544975145526       -3.551910000000000
+   601       -0.235400421391555       -0.235970141257892        0.148430142636728       -3.357910000000000
+   602       -0.017670038635666       -0.008672648418524        0.049288962990271       -3.703940000000000
+   603        0.000011884367009        0.000008714700256        0.000003374191887       -2.496460000000000
+   604        0.657801777726127        0.905208100777097       -1.400032982388093       -1.900500000000000
+   605       -0.510354038693768       -0.932557362070799        0.787115128735531       -2.261830000000000
+   606       -0.566859442380366       -0.491443105284532        0.727078821083377       -2.022920000000000
+   607        0.000022758815159       -0.000004329357306        0.000023998352078       -9.904900000000000
+   608       -0.391278087458744       -0.433152475224281        0.264958752068864       -5.035060000000000
+   609        0.163044926308265        0.259024150289760       -0.147610377607309       -5.044780000000000
+   610        0.095055042539538        0.099494397695480       -0.040911160082483       -4.513580000000000
+   611        0.034222269128113        0.033697803576552       -0.011547888854554       -5.473270000000000
+   612       -0.004643353718348       -0.005854879320884        0.002566764214598       -5.749790000000000
+   613       -0.015993088429931       -0.027108773854845        0.009072749763537       -5.316110000000000
+   614        0.000096766063372        0.000048969354717       -0.000101178648981       -9.502700000000001
+   615       -0.004280044175998       -0.001599892122417        0.003884003610179       -8.808840000000000
+   616       -0.467510284445166       -1.863931927809848        1.043884876099687       -4.671740000000000
+   617        0.068091143145752        0.796959318017408       -0.370461604954662       -4.438200000000000
+   618        0.151228500702026        0.696904873289788       -0.534705761675487       -5.616420000000000
+   619       -0.000369555483705        0.000383210004465       -0.001007982295780      -11.313650000000001
+   620        0.000135045065788       -0.000193981490232        0.000388055344748      -11.047890000000001
+   621       -2.858060758611877       -0.222133194172157        1.672009511099692       -4.717190000000000
+   622        1.081461158760355        0.207808681978010       -0.560853927264765       -4.796740000000000
+   623        1.141431137646332       -0.120956556317738       -0.767864888503479       -5.275380000000000
+   624        0.149611444412245       -0.394618862889249        0.317749613483633       -6.439360000000000
+   625       -0.177778340593607        0.481486953186949       -0.400571306224956       -6.138650000000000
+   626       -0.033656772852640        0.038401855432552       -0.034335933706241       -6.790880000000000
+   627        0.003375292259101        0.000918075188511       -0.009897958401889      -11.456200000000001
+   628       -0.000794080464410       -0.000193394479113        0.003386096599844      -11.832340000000000
+   629        0.038016837444791       -0.011669256103525       -0.039464271603706       -9.509020000000000
+   630       -0.014009275882806       -0.009155722479315        0.041339893202753      -10.157760000000000
+   631       -0.007570382929585       -0.011021391907860        0.054332531353027       -9.948499999999999
+   632       -0.233126089929407        0.000289295610762        0.203465603524517       -7.492460000000000
+   633        0.172308081730765        0.033279447740201       -0.186982225073506       -7.586010000000000
+   634        0.058784217581317        0.000318688243053       -0.038500335381624       -7.124830000000000
+   635        0.015791908764951        0.047953305242514       -0.051742668550907       -8.748780000000000
+   636       -0.018236790139482       -0.039741056788747        0.044506995138482       -8.147620000000000
+   637       -0.006183792176198       -0.012151419145670        0.014053188535737       -9.030360000000000
+   638        0.002048667170739        0.002378975980168       -0.002965672357818       -9.260410000000000
+   639       -0.000870745567416       -0.000764074964840        0.001094162445623       -9.301750000000000
+   640       -0.005542694402298       -0.006815035257573        0.006942451807674       -8.337790000000000
+   641       -0.162945905652564       -0.692325621278213        0.954944282172970       -7.440850000000000
+   642        0.098923052430367        0.622901164772176       -0.856006491026413       -6.788690000000000
+   643       -0.000813124226427        0.180074267976775       -0.256372271976686       -8.183800000000000
+   644       -0.018999296240202        0.017794936569004       -0.111854754664136      -10.355549999999999
+   645        0.004336479667715       -0.002278243002953        0.028790548737841      -11.090510000000000
+   646        0.011996980884549       -0.009849644137114        0.042476957146940      -10.354600000000000
+   647        0.009193782866540        0.011730852295155       -0.006587228111944       -3.854000000000000
+   648        0.001055439522930        0.002148972579764        0.005607798665684       -3.183760000000000
+   649       -0.002768939886898       -0.003666939617861        0.002168225869093       -3.390400000000000
+   650        0.120116832506907       -0.204017743917567        0.869302946022013       -9.016050000000000
+   651       -0.035410526588705        0.076094153682970       -0.187413229209774       -9.428310000000000
+   652       -0.029175244643092        0.035206867454588       -0.182448971375654       -9.748810000000001
+   653       -0.915866587737797       -0.130690665119795        2.374905109730449       -7.180090000000000
+   654        0.769975213724169        0.130545826577490       -1.309768373949379       -6.417460000000000
+   655        0.286733113829698        0.214964850704283       -0.984292680990359       -7.599780000000000
+   656       -0.047548417572141       -0.034956886390518        0.146454507539665       -9.495120000000000
+   657        0.083321088243900        0.021400864302944       -0.226361385196351       -9.093050000000000
+   658       -0.001792456257894        0.008953205535033       -0.016951430821112      -10.067440000000000
+   659       -0.000008250197490       -0.000001340186841        0.000026889929414      -10.542520000000000
+   660       -0.000025362345207       -0.000001504171045        0.000031247598555      -10.449740000000000
+   661       -0.000021008671861        0.000049264780969       -0.000062668493885      -10.294430000000000
+   662        0.000000001574089       -0.000000006014436        0.000000007377109      -10.452510000000000
+   663       -0.053251718999074        0.119678868451530       -0.097897275319889       -7.401410000000000
+   664        0.035791869393301       -0.058036883499977        0.037507843214989       -6.814950000000000
+   665        0.014219721843127       -0.032017594390360        0.031513286372967       -8.264740000000000
+   666       -3.020915108443974       -3.310253760352892        2.267735476480613       -3.707350000000000
+   667        0.902295522088323        1.428627732020240       -0.895054147868653       -4.089580000000000
+   668        1.570514730846484        0.970723459336427       -1.226695493738042       -4.280190000000000
+   669       -0.440085104250784       -0.335357207900161        0.537447911441637       -6.952720000000000
+   670        0.195328847525031        0.222260198953268       -0.337448366985451       -7.224460000000000
+   671        0.247859490071765        0.207089018798567       -0.240904970646926       -6.231990000000000
+   672       -0.001978421086248       -0.000412108970393        0.002744302199189       -8.601500000000000
+   673       -0.000025016648692       -0.000361950269331        0.000424664988519      -10.124150000000000
+   674       -1.892955507483657       -1.862288193530141       -0.863944993520516       -1.519360000000000
+   675        0.610458336663620        0.841365662226024        0.225584179745723       -1.588150000000000
+   676        1.175739774026278        1.213493730963131        0.075454008581298       -2.391750000000000
+   677       -0.128374588870405       -0.335645251614280        0.031189022159357       -2.702850000000000
+   678        0.008282844788410        0.045770573961852       -0.003739400054261       -2.496460000000000
+   679        0.038846445031167        0.117271747295096       -0.030499934923293       -3.656110000000000
+   680        0.000059427829889        0.000376494835198       -0.000247085779361       -8.098929999999999
+   681       -0.001374854555670       -0.006351424879241        0.004728846887297       -8.127170000000000
+   682       -0.074769885947109        0.020264386089333       -0.063809739921754       -7.399710000000000
+   683       -0.098434778284052        0.104602363247176       -0.099651369385328       -6.910990000000000
+   684        0.052311872097535       -0.030487867103501        0.035368257315226       -6.825370000000000
+   685        0.000000000000000        0.000000000000000        0.000000000000000        8.635899999999999
+   686        0.000000000000000        0.000000000000000        0.000000000000000        9.496340000000000
+   687        0.000000000000000        0.000000000000000        0.000000000000000        9.012810000000000
+   688        0.000000000000000        0.000000000000000        0.000000000000000       11.747460000000000
+   689        0.000000000000000        0.000000000000000        0.000000000000000       11.928220000000000
+   690        0.000000000000000        0.000000000000000        0.000000000000000       12.833950000000000
+   691        0.000000000000000        0.000000000000000        0.000000000000000       13.742880000000000
+   692        0.000000000000000        0.000000000000000        0.000000000000000        6.726180000000000
+   693        0.000000000000000        0.000000000000000        0.000000000000000        5.618590000000000
+   694        0.000000000000000        0.000000000000000        0.000000000000000        4.758930000000000
+   695        0.000000000000000        0.000000000000000        0.000000000000000        2.957400000000000
+   696        0.000000000000000        0.000000000000000        0.000000000000000        2.395910000000000
+   697        0.000000000000000        0.000000000000000        0.000000000000000       11.977670000000000
+   698        0.000000000000000        0.000000000000000        0.000000000000000       11.771260000000000
+   699        0.000000000000000        0.000000000000000        0.000000000000000       11.965320000000000
+   700        0.000000000000000        0.000000000000000        0.000000000000000        7.732290000000000
+   701        0.000000000000000        0.000000000000000        0.000000000000000        7.814800000000000
+   702        0.000000000000000        0.000000000000000        0.000000000000000        5.622190000000000
+   703        0.000000000000000        0.000000000000000        0.000000000000000        6.336600000000000
+   704        0.000000000000000        0.000000000000000        0.000000000000000       -5.695180000000000
+   705        0.000000000000000        0.000000000000000        0.000000000000000       -6.458580000000000
+   706        0.000000000000000        0.000000000000000        0.000000000000000       -9.259610000000000
+   707        0.000000000000000        0.000000000000000        0.000000000000000       -9.609059999999999
+   708        0.000000000000000        0.000000000000000        0.000000000000000       -2.268980000000000
+   709        0.000000000000000        0.000000000000000        0.000000000000000       -2.430460000000000
+   710        0.000000000000000        0.000000000000000        0.000000000000000        1.612550000000000
+   711        0.000000000000000        0.000000000000000        0.000000000000000        2.485140000000000
+   712        0.000000000000000        0.000000000000000        0.000000000000000       -6.313790000000000
+   713        0.000000000000000        0.000000000000000        0.000000000000000       -1.317610000000000
+   714        0.000000000000000        0.000000000000000        0.000000000000000       -1.349160000000000
+   715        0.000000000000000        0.000000000000000        0.000000000000000       -0.852160000000000
+   716        0.000000000000000        0.000000000000000        0.000000000000000       -4.971830000000000
+   717        0.000000000000000        0.000000000000000        0.000000000000000        7.136820000000000
+   718        0.000000000000000        0.000000000000000        0.000000000000000        3.766450000000000
+   719        0.000000000000000        0.000000000000000        0.000000000000000        3.117710000000000
+   720        0.000000000000000        0.000000000000000        0.000000000000000       -5.543180000000000
+   721        0.000000000000000        0.000000000000000        0.000000000000000       -6.485230000000000
+   722        0.000000000000000        0.000000000000000        0.000000000000000        0.296920000000000
+   723        0.000000000000000        0.000000000000000        0.000000000000000        0.002790000000000
+   724        0.000000000000000        0.000000000000000        0.000000000000000        2.880020000000000
+   725        0.000000000000000        0.000000000000000        0.000000000000000        4.108620000000000
+   726        0.000000000000000        0.000000000000000        0.000000000000000        3.640810000000000
+   727        0.000000000000000        0.000000000000000        0.000000000000000       -6.605600000000000
+   728        0.000000000000000        0.000000000000000        0.000000000000000       -6.644380000000000
+   729        0.000000000000000        0.000000000000000        0.000000000000000       -0.441520000000000
+   730        0.000000000000000        0.000000000000000        0.000000000000000        0.467410000000000
+   731        0.000000000000000        0.000000000000000        0.000000000000000        7.103050000000000
+   732        0.000000000000000        0.000000000000000        0.000000000000000        7.242050000000000
+   733        0.000000000000000        0.000000000000000        0.000000000000000        3.616350000000000
+   734        0.000000000000000        0.000000000000000        0.000000000000000       -5.245640000000000
+   735        0.000000000000000        0.000000000000000        0.000000000000000       -6.084870000000000
+   736        0.000000000000000        0.000000000000000        0.000000000000000        0.296920000000000
+   737        0.000000000000000        0.000000000000000        0.000000000000000        1.125100000000000
+   738        0.000000000000000        0.000000000000000        0.000000000000000       -2.822110000000000
+   739        0.000000000000000        0.000000000000000        0.000000000000000       -1.985890000000000
+   740        0.000000000000000        0.000000000000000        0.000000000000000        3.780350000000000
+   741        0.000000000000000        0.000000000000000        0.000000000000000        3.208030000000000
+   742        0.000000000000000        0.000000000000000        0.000000000000000       -6.835910000000000
+   743        0.000000000000000        0.000000000000000        0.000000000000000        2.134110000000000
+   744        0.000000000000000        0.000000000000000        0.000000000000000       -0.687840000000000
+   745        0.000000000000000        0.000000000000000        0.000000000000000       -1.398510000000000
+   746        0.000000000000000        0.000000000000000        0.000000000000000       -4.420620000000000
+   747        0.000000000000000        0.000000000000000        0.000000000000000       -4.545610000000000
+   748        0.000000000000000        0.000000000000000        0.000000000000000       -7.473150000000000
+   749        0.000000000000000        0.000000000000000        0.000000000000000      -10.658300000000001
+   750        0.000000000000000        0.000000000000000        0.000000000000000       -9.634660000000000
+   751        0.000000000000000        0.000000000000000        0.000000000000000      -11.276350000000001
+   752        0.000000000000000        0.000000000000000        0.000000000000000      -11.967430000000000
+   753        0.000000000000000        0.000000000000000        0.000000000000000       -8.926290000000000
+   754        0.000000000000000        0.000000000000000        0.000000000000000      -13.140770000000000
+   755        0.000000000000000        0.000000000000000        0.000000000000000      -13.120469999999999
+   756        0.000000000000000        0.000000000000000        0.000000000000000       -9.209870000000000
+   757        0.000000000000000        0.000000000000000        0.000000000000000       -2.702850000000000
+   758        0.000000000000000        0.000000000000000        0.000000000000000       -3.656110000000000
+   759        0.000000000000000        0.000000000000000        0.000000000000000      -10.221550000000001
+   760        0.000000000000000        0.000000000000000        0.000000000000000      -10.206920000000000
+   761        0.000000000000000        0.000000000000000        0.000000000000000       -9.359230000000000
+   762        0.000000000000000        0.000000000000000        0.000000000000000      -12.086140000000000
+   763        0.000000000000000        0.000000000000000        0.000000000000000      -12.153910000000000
+   764        0.000000000000000        0.000000000000000        0.000000000000000      -11.042389999999999
+   765        0.000000000000000        0.000000000000000        0.000000000000000      -11.164500000000000
+   766        0.000000000000000        0.000000000000000        0.000000000000000      -11.139790000000000
+   767        0.000000000000000        0.000000000000000        0.000000000000000      -11.141360000000001
+   768        0.000000000000000        0.000000000000000        0.000000000000000      -10.162400000000000
+   769        0.000000000000000        0.000000000000000        0.000000000000000       -9.436180000000000
+   770        0.000000000000000        0.000000000000000        0.000000000000000       -9.761530000000000
+   771        0.000000000000000        0.000000000000000        0.000000000000000      -10.909630000000000
+   772        0.000000000000000        0.000000000000000        0.000000000000000      -10.890829999999999
+   773        0.000000000000000        0.000000000000000        0.000000000000000       -8.075450000000000
diff --git a/test/library/qmmm_amber/fortran_stub/reaxff_puremd.F03 b/test/library/qmmm_amber/fortran_stub/reaxff_puremd.F03
index dfa29adb..7920792d 100644
--- a/test/library/qmmm_amber/fortran_stub/reaxff_puremd.F03
+++ b/test/library/qmmm_amber/fortran_stub/reaxff_puremd.F03
@@ -213,7 +213,7 @@ contains
 
                         ! 0.001 threshold for valence angle interactions
                         keyword = "thb_cutoff" // char(0)
-                        values = "0.001" // char(0)
+                        values = "0.005" // char(0)
                         ret = set_control_parameter( handle, c_loc(keyword), c_loc(values) )
                         if ( ret /= 0_c_int ) stop "ERROR: set_control_parameter"
 
diff --git a/test/library/qmmm_amber/fortran_stub/run_sim.bash b/test/library/qmmm_amber/fortran_stub/run_sim.bash
index 6e7d96eb..6a21ea2e 100644
--- a/test/library/qmmm_amber/fortran_stub/run_sim.bash
+++ b/test/library/qmmm_amber/fortran_stub/run_sim.bash
@@ -7,5 +7,6 @@ PROG="./driver"
 BGF_FILE="../AVE/fort.3"
 NUM_QM_ATOMS="14"
 NUM_MM_ATOMS="759"
+LOG_FILE="forces_charges.txt"
 
-"${PROG}" "${BGF_FILE}" "${NUM_QM_ATOMS}" "${NUM_MM_ATOMS}"
+"${PROG}" "${BGF_FILE}" "${NUM_QM_ATOMS}" "${NUM_MM_ATOMS}" > "${LOG_FILE}"
diff --git a/test/library/qmmm_amber/tester_AVE.py b/test/library/qmmm_amber/tester_AVE.py
index f76f6e6f..62ef0978 100644
--- a/test/library/qmmm_amber/tester_AVE.py
+++ b/test/library/qmmm_amber/tester_AVE.py
@@ -363,7 +363,7 @@ if __name__ == '__main__':
     setup_qmmm = lib.setup_qmmm
     setup_qmmm.argtypes = [c_int, POINTER(c_int), POINTER(c_double),
             c_int, POINTER(c_int), POINTER(c_double), POINTER(c_double),
-            POINTER(c_double), c_char_p, c_char_p]
+            c_char_p, c_char_p]
     setup_qmmm.restype = c_void_p
 
     simulate = lib.simulate
@@ -436,11 +436,16 @@ if __name__ == '__main__':
     qm_types = (c_int * num_qm_atoms)(*types[0:num_qm_atoms])
     qm_p = (c_double * (3 * num_qm_atoms))(*p[0:(3 * num_qm_atoms)])
     mm_types = (c_int * num_mm_atoms)(*types[num_qm_atoms:])
-    mm_p = (c_double * (3 * num_mm_atoms))(*p[(3 * num_qm_atoms):])
-    mm_q = (c_double * num_mm_atoms)(*q[num_qm_atoms:])
+    p_q = []
+    for i in range(num_mm_atoms):
+        p_q.append(p[3 * (num_qm_atoms + i)])
+        p_q.append(p[3 * (num_qm_atoms + i) + 1])
+        p_q.append(p[3 * (num_qm_atoms + i) + 2])
+        p_q.append(q[num_qm_atoms + i])
+    mm_p_q = (c_double * (4 * num_mm_atoms))(*p_q)
 
     handle = setup_qmmm(c_int(num_qm_atoms), qm_types, qm_p,
-            c_int(num_mm_atoms), mm_types, mm_p, mm_q, sim_box_info,
+            c_int(num_mm_atoms), mm_types, mm_p_q, sim_box_info,
             b"AVE/ffield", None)
 
     d = {
-- 
GitLab