If z is a scalar, result is a scalar double precision distance modulus in magnitudes. If z is an array, result is a double precision array with the distance modulus in magnitudes for each z value.
The function calc_dm returns -1000 if the passed parameters describe a bouncing universe (see section V below).