There appear to be duplicate implementations of Romberg integration in the colors module -- one in colors_utils.f90, and the other in support_funcs.f90. I'm guessing that this isn't intentional?
Also, both of these duplicates use a Romberg algorithm that assumes uniformly spaced abscissae; however, given that an array of abscissa values is passed into the routines (in the x array), this algorithm is inappropriate, and will give incorrect results when x is non-uniform.
There appear to be duplicate implementations of Romberg integration in the colors module -- one in colors_utils.f90, and the other in support_funcs.f90. I'm guessing that this isn't intentional?
Also, both of these duplicates use a Romberg algorithm that assumes uniformly spaced abscissae; however, given that an array of abscissa values is passed into the routines (in the x array), this algorithm is inappropriate, and will give incorrect results when x is non-uniform.