From acd0a507e64b163f37f76b46ebe5e6c6e6c2fd60 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 19 Dec 2014 14:47:13 -0500 Subject: [PATCH] Allow fixed source calculations with fissionable materials --- src/ace.F90 | 18 +++++------------- src/physics.F90 | 2 +- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/ace.F90 b/src/ace.F90 index 584254149d..b3d23f2a8f 100644 --- a/src/ace.F90 +++ b/src/ace.F90 @@ -94,7 +94,7 @@ contains & scheme) nuclides(i_nuclide) % E_min = nuclides_0K(n) % E_min nuclides(i_nuclide) % E_max = nuclides_0K(n) % E_max - if (.not. already_read % contains(nuclides(i_nuclide) % & + if (.not. already_read % contains(nuclides(i_nuclide) % & & name_0K)) then i_listing = xs_listing_dict % get_key(nuclides(i_nuclide) % & & name_0K) @@ -369,14 +369,6 @@ contains call read_unr_res(nuc) end if - ! Currently subcritical fixed source calculations are not allowed. Thus, - ! if any fissionable material is found in a fixed source calculation, - ! abort the run. - if (run_mode == MODE_FIXEDSOURCE .and. nuc % fissionable) then - call fatal_error("Cannot have fissionable material in a fixed source & - &run.") - end if - ! for fissionable nuclides, precalculate microscopic nu-fission cross ! sections so that we don't need to call the nu_total function during ! cross section lookups (except if we're dealing w/ 0K data for resonant @@ -444,7 +436,7 @@ contains ! Skip total and absorption XSS_index = XSS_index + 2*NE - + ! Continue reading elastic scattering and heating nuc % elastic_0K = get_real(NE) @@ -480,13 +472,13 @@ contains ! Read data from XSS -- only the energy grid, elastic scattering and heating ! cross section values are actually read from here. The total and absorption ! cross sections are reconstructed from the partial reaction data. - + XSS_index = 1 nuc % energy = get_real(NE) - + ! Skip total and absorption XSS_index = XSS_index + 2*NE - + ! Continue reading elastic scattering and heating nuc % elastic = get_real(NE) diff --git a/src/physics.F90 b/src/physics.F90 index 3439a83905..e90d95c9cc 100644 --- a/src/physics.F90 +++ b/src/physics.F90 @@ -90,7 +90,7 @@ contains ! change when sampling fission sites. The following block handles all ! absorption (including fission) - if (nuc % fissionable) then + if (nuc % fissionable .and. run_mode == MODE_EIGENVALUE) then call sample_fission(i_nuclide, i_reaction) call create_fission_sites(p, i_nuclide, i_reaction) end if