From d69dee4f7f0336af7441e5cc8b93ce963a6e1c5c Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 16 Dec 2011 17:46:01 -0600 Subject: [PATCH] Change structure of UrrData. --- src/cross_section.F90 | 21 ++++++++++++--------- src/cross_section_header.F90 | 9 +++++++-- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/cross_section.F90 b/src/cross_section.F90 index 1ab4e41d51..fde72e51b9 100644 --- a/src/cross_section.F90 +++ b/src/cross_section.F90 @@ -1089,7 +1089,6 @@ contains if (JXS23 /= 0) then nuc % urr_present = .true. allocate(nuc % urr_data) - allocate(nuc % urr_data % params(6)) lc = JXS23 else nuc % urr_present = .false. @@ -1097,16 +1096,20 @@ contains end if ! read parameters - nuc % urr_data % params(1) = int(XSS(lc)) ! # of incident energies - nuc % urr_data % params(2) = int(XSS(lc + 1)) ! # of probabilities - nuc % urr_data % params(3) = int(XSS(lc + 2)) ! interpolation parameter - nuc % urr_data % params(4) = int(XSS(lc + 3)) ! inelastic competition flag - nuc % urr_data % params(5) = int(XSS(lc + 4)) ! other absorption flag - nuc % urr_data % params(6) = int(XSS(lc + 5)) ! factors flag + nuc % urr_data % n_energy = int(XSS(lc)) + nuc % urr_data % n_prob = int(XSS(lc + 1)) + nuc % urr_data % interp = int(XSS(lc + 2)) + nuc % urr_data % inelastic_flag = int(XSS(lc + 3)) + nuc % urr_data % absorption_flag = int(XSS(lc + 4)) + if (int(XSS(lc + 5)) == 0) then + nuc % urr_data % multiply_smooth = .false. + else + nuc % urr_data % multiply_smooth = .true. + end if ! allocate incident energies and probability tables - N = nuc % urr_data % params(1) - M = nuc % urr_data % params(2) + N = nuc % urr_data % n_energy + M = nuc % urr_data % n_prob allocate(nuc % urr_data % energy(N)) allocate(nuc % urr_data % prob(N,6,M)) diff --git a/src/cross_section_header.F90 b/src/cross_section_header.F90 index f2a64e306f..3eaf6d4462 100644 --- a/src/cross_section_header.F90 +++ b/src/cross_section_header.F90 @@ -51,11 +51,16 @@ module cross_section_header end type Reaction !=============================================================================== -! URRDATA contains unresolved resonance data. +! URRDATA contains probability tables for the unresolved resonance range. !=============================================================================== type UrrData - integer, allocatable :: params(:) + integer :: n_energy ! # of incident neutron energies + integer :: n_prob ! # of probabilities + integer :: interp ! inteprolation (2=lin-lin, 5=log-log) + integer :: inelastic_flag ! inelastic competition flag + integer :: absorption_flag ! other absorption flag + logical :: multiply_smooth ! multiply by smooth cross section? real(8), allocatable :: energy(:) real(8), allocatable :: prob(:,:,:) end type UrrData