anchor.diff:    subroutine quadratic(coeff_a, coeff_b, coeff_c, sol)
       implicit none
   
  -    real(kind=x_precision), intent(in)                     :: coeff_a,coeff_b,coeff_c
  -    real(kind=x_precision), intent(out)                    :: sol
  -    real(kind=x_precision)                                 :: sol_1 = 0.0d0
  -    real(kind=x_precision)                                 :: sol_2 = 0.0d0
  -    real(kind=x_precision)                                 :: delta = 0.0d0
  +    real(kind=x_precision), intent(in)  :: coeff_a,coeff_b,coeff_c
  +    real(kind=x_precision), intent(out) :: sol
  +    real(kind=x_precision)              :: sol_1 = 0.0d0
  +    real(kind=x_precision)              :: sol_2 = 0.0d0
  +    real(kind=x_precision)              :: delta = 0.0d0
       !------------------------------------------------------------------------
   
       delta          = coeff_b**2 - 4_x_precision * coeff_a * coeff_c
  
positive.code:   real(kind=x_precision) function dichotomy(Smin, Smax, eps, T, omega, optical_depth)
      implicit none
  
      real(kind=x_precision),intent(inout)                     :: Smin,Smax
      real(kind=x_precision),intent(in)                        :: eps
      real(kind=x_precision),intent(in)                        :: T
      real(kind=x_precision),intent(in)                        :: omega
      integer,intent(in)                                       :: optical_depth
  
      real(kind=x_precision)                                   :: f_min
      real(kind=x_precision)                                   :: f_max
      real(kind=x_precision)                                   :: f_center
      real(kind=x_precision)                                   :: S_center = 0._x_precision
      integer                                                  :: j = 0
  
      !-------------------------------------------------------------------------
      ! N-> Number of iterations for the dichotomy
  
negative.code:   subroutine build_s_curve(sigma_real_thick, sigma_real_thin, temp_real_thick, nb_it, index_scp, sigma_real, temp_real)
      implicit none
  
      integer                                  ,intent(in)  :: nb_it
      real(kind = x_precision),dimension(nb_it),intent(in)  :: sigma_real_thick
      real(kind = x_precision),dimension(nb_it),intent(in)  :: sigma_real_thin
      real(kind = x_precision),dimension(nb_it),intent(in)  :: temp_real_thick
      integer                                  ,intent(in)  :: index_scp
      !real(kind = x_precision),dimension(:),allocatable,intent(out) :: sigma_real
      !real(kind = x_precision),dimension(:),allocatable,intent(out) :: temp_real
      real(kind = x_precision),dimension(nb_it),intent(out) :: sigma_real
  