                     pvel.x = vel.x + angvel.y * ri.z - angvel.z * ri.y;
                     pvel.y = vel.y + angvel.z * ri.x - angvel.x * ri.z;
                     pvel.z = vel.z + angvel.x * ri.y - angvel.y * ri.x;
-                    pvel.w = 0.0;
+                    pvel.w = 0.0f;
                     
                     float4 fc;
                     fc.x = massone * (pvel.x - old_vel.x) / dt_half - pforce.x;
                     fc.y = massone * (pvel.y - old_vel.y) / dt_half - pforce.y;
                     fc.z = massone * (pvel.z - old_vel.z) / dt_half - pforce.z; 
                     
-                    float pvirial = 0.5 * (old_pos.x * fc.x + old_pos.y * fc.y + old_pos.z * fc.z) / 3.0;
+                    float pvirial = 0.5f * (old_pos.x * fc.x + old_pos.y * fc.y + old_pos.z * fc.z) / 3.0f;
                            
                     // accumulate from the first integration part into particle net virial
                     pvirial += virial;

    
    int idx_body = -1;
    
    float dt_half = 0.5 * deltaT; 
    float4 boxsize = *new_box;
    float4 invboxsize;
    invboxsize.x = 1.0 / boxsize.x;
    invboxsize.y = 1.0 / boxsize.y;
    invboxsize.z = 1.0 / boxsize.z;
     
    if (group_idx < n_group_bodies)
        {

                    pvel.x = vel.x + angvel.y * ri.z - angvel.z * ri.y;
                    pvel.y = vel.y + angvel.z * ri.x - angvel.x * ri.z;
                    pvel.z = vel.z + angvel.x * ri.y - angvel.y * ri.x;
                    pvel.w = 0.0f;
                    
                    float4 fc;
                    fc.x = massone * (pvel.x - old_vel.x) / dt_half - pforce.x;
                    fc.y = massone * (pvel.y - old_vel.y) / dt_half - pforce.y;
                    fc.z = massone * (pvel.z - old_vel.z) / dt_half - pforce.z; 
                    
                    float pvirial = 0.5f * (old_pos.x * fc.x + old_pos.y * fc.y + old_pos.z * fc.z) / 3.0f;
                    
                    // write out the results (MEM_TRANSFER: ? bytes)
                    pdata_pos[idx_particle_index] = ppos;
