anchor.diff:          &   0.0, 0.0, 0.0, 0.0, 0.0,  &
           &   0.07, 0.18, 0.29, 0.39, 0.45, 0.50, 0.55, 0.61, 0.70, 0.73, 0.76, 0.80, 0.80]
           
  -        real(dp) :: lgP1, lgP2, width
  +        real(dp) :: lgP1, lgP2, width, Xsum
           
           Ntab = size(lgP)
           allocate(X(HZ90_number,Ntab))
  
positive.code:             end where
          end do
          
      end subroutine HZ90
      
  
  end module composition_models
  
negative.code:     
  contains
      
      subroutine HZ90(lgP, Yion, Xneut, charged_ids, ncharged, ion_info)
          use const_def
          use nucchem_def
          use nucchem_lib
          real(dp), intent(in), dimension(:) :: lgP
          real(dp), intent(out), dimension(:,:) :: Yion
          real(dp), intent(out), dimension(:) :: Xneut
          integer, intent(out), dimension(HZ90_number) :: charged_ids
          integer, intent(out) :: ncharged
          type(composition_info_type), dimension(:) :: ion_info
          integer, dimension(max_nnuclib) :: network_indcs
          
          real(dp), allocatable, dimension(:,:) :: X
          integer :: Ntab, i, indx, n_indx, indx1, indx2
          integer, dimension(HZ90_number) :: indcs
          integer, parameter :: number_layers = 17
  