Moved unresolved resonance data into new derived type UrrData.

This commit is contained in:
Paul Romano 2011-09-13 20:53:22 -04:00
parent b0d355ff0a
commit 509dfdb4e6
2 changed files with 26 additions and 17 deletions

View file

@ -937,7 +937,8 @@ contains
! check if URR data is present
if (JXS23 /= 0) then
nuc % urr_present = .true.
allocate(nuc % urr_params(6))
allocate(nuc % urr_data)
allocate(nuc % urr_data % params(6))
loc = JXS23
else
nuc % urr_present = .false.
@ -945,27 +946,27 @@ contains
end if
! read parameters
nuc % urr_params(1) = XSS(loc) ! # of incident energies
nuc % urr_params(2) = XSS(loc + 1) ! # of probabilities
nuc % urr_params(3) = XSS(loc + 2) ! interpolation parameter
nuc % urr_params(4) = XSS(loc + 3) ! inelastic competition flag
nuc % urr_params(5) = XSS(loc + 4) ! other absorption flag
nuc % urr_params(6) = XSS(loc + 5) ! factors flag
nuc % urr_data % params(1) = XSS(loc) ! # of incident energies
nuc % urr_data % params(2) = XSS(loc + 1) ! # of probabilities
nuc % urr_data % params(3) = XSS(loc + 2) ! interpolation parameter
nuc % urr_data % params(4) = XSS(loc + 3) ! inelastic competition flag
nuc % urr_data % params(5) = XSS(loc + 4) ! other absorption flag
nuc % urr_data % params(6) = XSS(loc + 5) ! factors flag
! allocate incident energies and probability tables
N = nuc % urr_params(1)
M = nuc % urr_params(2)
allocate(nuc % urr_energy(N))
allocate(nuc % urr_prob(N,6,M))
N = nuc % urr_data % params(1)
M = nuc % urr_data % params(2)
allocate(nuc % urr_data % energy(N))
allocate(nuc % urr_data % prob(N,6,M))
! read incident energies
XSS_index = loc + 6
nuc % urr_energy = get_real(N)
nuc % urr_data % energy = get_real(N)
! read probability tables
do i = 1, N
do j = 1, 6
nuc % urr_prob(i,j,1:M) = get_real(M)
nuc % urr_data % prob(i,j,1:M) = get_real(M)
end do
end do

View file

@ -48,6 +48,16 @@ module cross_section_header
type(DistEnergy) :: edist ! Secondary energy distribution
end type Reaction
!===============================================================================
! URRDATA contains unresolved resonance data.
!===============================================================================
type UrrData
integer, allocatable :: params(:)
real(8), allocatable :: energy(:)
real(8), allocatable :: prob(:,:,:)
end type UrrData
!===============================================================================
! NUCLIDE contains all the data for an ACE-format continuous-energy cross
! section. The ACE format (A Compact ENDF format) is used in MCNP and several
@ -88,10 +98,8 @@ module cross_section_header
type(DistEnergy), allocatable :: nu_d_edist(:)
! Unresolved resonance data
logical :: urr_present
integer, allocatable :: urr_params(:)
real(8), allocatable :: urr_energy(:)
real(8), allocatable :: urr_prob(:,:,:)
logical :: urr_present
type(UrrData), pointer :: urr_data => null()
! Reactions
integer :: n_reaction