anchor.diff:      
   contains
       
  -    subroutine HZ90(lgP, X)
  +    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(:,:), allocatable :: X
  +        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
  
positive.code:             end where
          end do
          
      end subroutine HZ90
      
  
  end module composition_models
  
negative.code:         &   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, Xsum
          
          Ntab = size(lgP)
          allocate(X(HZ90_number,Ntab))
  