Is this the proper way to add air resistance to a ball?

Can anyone tell me if this is the proper way to add air drag to my rigidbody(rb)?
Here is my code:

    private void FixedUpdate()
        //Cd = 0.24f                        // drag coefficient of a golf ball
        //A = Pi*radius*radius              // crossSectionalArea of sphere in [m^2]
        //ad.p = 1.225f                     // air density in [kg/m^3]
        float A = b.crossSectionalArea;     
        Vector3 v;
        //_P.AirResistance = 0.5f * Cd * A * v * v * ρ
        v.x = -_P.AirResistance(b.Cd, A, rb.velocity.x, ad.p);
        v.y = -_P.AirResistance(b.Cd, A, rb.velocity.y, ad.p);
        v.z = -_P.AirResistance(b.Cd, A, rb.velocity.z, ad.p);
        rb.AddForce(v.x, v.y, v.z);

I did an experiment to add gravity.

rb.AddForce(Physics.gravity * rb.mass);

This worked exactly as unity's gravity.
The air drag seams to be a little on the strong side?
Also: Is there a air drag simulator that I can test my results against?


Figured it out one issue: The force needs to work in the opposite direction to the velocity.
I corrected this by Mathf.Abs(velocity.x) on of the velocities being squared. Are there still issues?