Changed TY to multiplicity and added scatter_in_cm.

This commit is contained in:
Paul Romano 2012-05-18 07:55:30 +07:00
parent 05c4f8cdb3
commit b63daf82ca
4 changed files with 16 additions and 15 deletions

View file

@ -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))

View file

@ -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?

View file

@ -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

View file

@ -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