anchor.diff:      ! determine A and Q
       A = nuc % awr
       Q = rxn % Q_value
  -    
  +
       ! determine secondary energy distribution law
       law = rxn % edist % law
   
  
positive.code:     select case (rxn % MT)
      case (ELASTIC)
         call elastic_scatter(p, nuc, rxn)
      case (N_2ND, N_2N, N_3N, N_2NA, N_3NA, N_2N2A, N_4N, N_2NP, N_3NP)
         call n_xn(p, nuc, rxn)
      case (N_NA, N_N3A, N_NP, N_N2A, N_ND, N_NT, N_N3HE, &
           & N_NT2A, N_N2P, N_NPA, N_N1 : N_NC)
         call inelastic_scatter(p, nuc, rxn)
      case (N_FISSION, N_F, N_NF, N_2NF, N_3NF)
         call n_fission_event(p, nuc, rxn)
  
negative.code:     type(Nuclide),  pointer :: nuc
      type(Reaction), pointer :: rxn
  
      integer :: n_secondary ! number of secondary particles
      integer :: law         ! secondary energy distribution law
      real(8) :: A           ! atomic weight ratio of nuclide
  