diff --git a/src/ace.F90 b/src/ace.F90 index af256c9e2..b3f4fc09b 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -639,10 +639,11 @@ contains ! Store elastic scattering cross-section on reaction one rxn => nuc % reactions(1) - rxn % MT = 2 - rxn % Q_value = ZERO - rxn % TY = 1 - rxn % IE = 1 + rxn % MT = 2 + rxn % Q_value = ZERO + rxn % multiplicity = 1 + rxn % IE = 1 + rxn % scatter_in_cm = .true. rxn % has_angle_dist = .false. rxn % has_energy_dist = .false. allocate(rxn % sigma(nuc % n_grid)) @@ -666,9 +667,10 @@ contains rxn % has_energy_dist = .false. ! read MT number, Q-value, and neutrons produced - rxn % MT = int(XSS(LMT + i - 1)) - rxn % Q_value = XSS(JXS4 + i - 1) - rxn % TY = int(XSS(JXS5 + i - 1)) + rxn % MT = int(XSS(LMT + i - 1)) + rxn % Q_value = XSS(JXS4 + i - 1) + rxn % multiplicity = abs(nint(XSS(JXS5 + i - 1))) + rxn % scatter_in_cm = (nint(XSS(JXS5 + i - 1)) < 0) ! read starting energy index LOCA = int(XSS(LXS + i - 1)) diff --git a/src/ace_header.F90 b/src/ace_header.F90 index f3e305c39..81635a68d 100644 --- a/src/ace_header.F90 +++ b/src/ace_header.F90 @@ -41,8 +41,9 @@ module ace_header type Reaction integer :: MT ! ENDF MT value real(8) :: Q_value ! Reaction Q value - integer :: TY ! Number of neutrons released + integer :: multiplicity ! Number of neutrons released integer :: IE ! Starting energy grid index + logical :: scatter_in_cm ! scattering system in center-of-mass? real(8), allocatable :: sigma(:) ! Cross section values logical :: has_angle_dist ! Angle distribution present? logical :: has_energy_dist ! Energy distribution present? diff --git a/src/output.F90 b/src/output.F90 index 389e7ca78..1e4054351 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -285,7 +285,7 @@ contains write(ou,*) 'Reaction ' // reaction_name(rxn % MT) write(ou,*) ' MT = ' // to_str(rxn % MT) write(ou,*) ' Q-value = ' // to_str(rxn % Q_value) - write(ou,*) ' TY = ' // to_str(rxn % TY) + write(ou,*) ' Multiplicity = ' // to_str(rxn % multiplicity) write(ou,*) ' Starting index = ' // to_str(rxn % IE) if (rxn % has_energy_dist) then write(ou,*) ' Energy: Law ' // to_str(rxn % edist % law) @@ -829,8 +829,8 @@ contains end if write(unit_,'(3X,A11,1X,F8.3,2X,I4,2X,I6,1X,I11,1X,I11)') & - reaction_name(rxn % MT), rxn % Q_value, rxn % TY, rxn % IE, & - size_angle, size_energy + reaction_name(rxn % MT), rxn % Q_value, rxn % multiplicity, & + rxn % IE, size_angle, size_energy ! Accumulate data size size_total = size_total + size_angle + size_energy diff --git a/src/physics.F90 b/src/physics.F90 index 9446609a0..65a4ede20 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -1059,7 +1059,6 @@ contains 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 real(8) :: E_in ! incoming energy @@ -1093,7 +1092,7 @@ contains ! if scattering system is in center-of-mass, transfer cosine of scattering ! angle and outgoing energy from CM to LAB - if (rxn % TY < 0) then + if (rxn % scatter_in_cm) then E_cm = E ! determine outgoing energy in lab @@ -1120,8 +1119,7 @@ contains p % mu = mu ! change weight of particle based on multiplicity - n_secondary = abs(rxn % TY) - p % wgt = n_secondary * p % wgt + p % wgt = rxn % multiplicity * p % wgt end subroutine inelastic_scatter