Merge pull request #407 from paulromano/double-constants

Make sure all real literal constants are 64-bit
This commit is contained in:
Sterling Harper 2015-07-05 11:53:12 -06:00
commit e6675b7d1e
35 changed files with 363 additions and 356 deletions

View file

@ -1,6 +1,6 @@
module ace_header
use constants, only: MAX_FILE_LEN
use constants, only: MAX_FILE_LEN, ZERO
use endf_header, only: Tab1
use list_header, only: ListInt
@ -167,12 +167,12 @@ module ace_header
type Nuclide0K
character(10) :: nuclide ! name of nuclide, e.g. U-238
character(16) :: scheme = 'ares' ! target velocity sampling scheme
character(10) :: name ! name of nuclide, e.g. 92235.03c
character(10) :: name_0K ! name of 0K nuclide, e.g. 92235.00c
real(8) :: E_min = 0.01e-6 ! lower cutoff energy for res scattering
real(8) :: E_max = 1000.0e-6 ! upper cutoff energy for res scattering
character(10) :: nuclide ! name of nuclide, e.g. U-238
character(16) :: scheme = 'ares' ! target velocity sampling scheme
character(10) :: name ! name of nuclide, e.g. 92235.03c
character(10) :: name_0K ! name of 0K nuclide, e.g. 92235.00c
real(8) :: E_min = 0.01e-6_8 ! lower cutoff energy for res scattering
real(8) :: E_max = 1000.0e-6_8 ! upper cutoff energy for res scattering
end type Nuclide0K
@ -204,7 +204,7 @@ module ace_header
! threshold for S(a,b) treatment (usually ~4 eV)
real(8) :: threshold_inelastic
real(8) :: threshold_elastic = 0.0
real(8) :: threshold_elastic = ZERO
! Inelastic scattering data
integer :: n_inelastic_e_in ! # of incoming E for inelastic
@ -258,7 +258,7 @@ module ace_header
type NuclideMicroXS
integer :: index_grid ! index on nuclide energy grid
integer :: index_temp ! temperature index for nuclide
real(8) :: last_E = 0.0 ! last evaluated energy
real(8) :: last_E = ZERO ! last evaluated energy
real(8) :: interp_factor ! interpolation factor on nuc. energy grid
real(8) :: total ! microscropic total xs
real(8) :: elastic ! microscopic elastic scattering xs

View file

@ -44,6 +44,7 @@ contains
subroutine read_cmfd_xml()
use constants, only: ZERO, ONE
use error, only: fatal_error, warning
use global
use output, only: write_message
@ -103,7 +104,7 @@ contains
cmfd % indices(4) = ng - 1 ! sets energy group dimension
else
if(.not.allocated(cmfd % egrid)) allocate(cmfd % egrid(2))
cmfd % egrid = (/0.0_8,20.0_8/)
cmfd % egrid = [ ZERO, 20.0_8 ]
cmfd % indices(4) = 1 ! one energy group
end if
@ -111,7 +112,7 @@ contains
if (check_for_node(node_mesh, "albedo")) then
call get_node_array(node_mesh, "albedo", cmfd % albedo)
else
cmfd % albedo = (/1.0, 1.0, 1.0, 1.0, 1.0, 1.0/)
cmfd % albedo = [ ONE, ONE, ONE, ONE, ONE, ONE ]
end if
! Get acceleration map

View file

@ -27,7 +27,7 @@ module constants
! adjusted. Modifying constants in other sections may cause the code to fail.
! Monoatomic ideal-gas scattering treatment threshold
real(8), parameter :: FREE_GAS_THRESHOLD = 400.0
real(8), parameter :: FREE_GAS_THRESHOLD = 400.0_8
! Significance level for confidence intervals
real(8), parameter :: CONFIDENCE_LEVEL = 0.95_8
@ -63,15 +63,18 @@ module constants
real(8), parameter :: &
PI = 3.1415926535898_8, & ! pi
MASS_NEUTRON = 1.008664916, & ! mass of a neutron in amu
MASS_PROTON = 1.007276466812, & ! mass of a proton in amu
AMU = 1.660538921e-27, & ! 1 amu in kg
N_AVOGADRO = 0.602214129, & ! Avogadro's number in 10^24/mol
K_BOLTZMANN = 8.6173324e-11, & ! Boltzmann constant in MeV/K
MASS_NEUTRON = 1.008664916_8, & ! mass of a neutron in amu
MASS_PROTON = 1.007276466812_8, & ! mass of a proton in amu
AMU = 1.660538921e-27_8, & ! 1 amu in kg
N_AVOGADRO = 0.602214129_8, & ! Avogadro's number in 10^24/mol
K_BOLTZMANN = 8.6173324e-11_8, & ! Boltzmann constant in MeV/K
INFINITY = huge(0.0_8), & ! positive infinity
ZERO = 0.0_8, &
HALF = 0.5_8, &
ONE = 1.0_8, &
TWO = 2.0_8
TWO = 2.0_8, &
THREE = 3.0_8, &
FOUR = 4.0_8
! ============================================================================
! GEOMETRY-RELATED CONSTANTS
@ -317,13 +320,13 @@ module constants
OUT_FRONT = 4, &
IN_TOP = 5, &
OUT_TOP = 6
! Tally trigger types and threshold
integer, parameter :: &
VARIANCE = 1, &
RELATIVE_ERROR = 2, &
STANDARD_DEVIATION = 3
STANDARD_DEVIATION = 3
! Global tallY parameters
integer, parameter :: N_GLOBAL_TALLIES = 4
integer, parameter :: &

View file

@ -96,7 +96,7 @@ contains
end do GENERATION_LOOP
call finalize_batch()
if (satisfy_triggers) exit BATCH_LOOP
end do BATCH_LOOP
@ -220,12 +220,12 @@ contains
! Calculate combined estimate of k-effective
if (master) call calculate_combined_keff()
! Check_triggers
if (master) call check_triggers()
#ifdef MPI
call MPI_BCAST(satisfy_triggers, 1, MPI_LOGICAL, 0, &
MPI_COMM_WORLD, mpi_err)
MPI_COMM_WORLD, mpi_err)
#endif
if (satisfy_triggers .or. &
(trigger_on .and. current_batch == n_max_batches)) then
@ -544,7 +544,7 @@ contains
! If the user did not specify how many mesh cells are to be used in
! each direction, we automatically determine an appropriate number of
! cells
n = ceiling((n_particles/20)**(1.0/3.0))
n = ceiling((n_particles/20)**(ONE/THREE))
! copy dimensions
m % n_dimension = 3

View file

@ -1141,8 +1141,8 @@ contains
z = coord % xyz(3)
! determine oncoming edge
x0 = sign(lat % pitch(1) * 0.5_8, u)
y0 = sign(lat % pitch(2) * 0.5_8, v)
x0 = sign(lat % pitch(1) * HALF, u)
y0 = sign(lat % pitch(2) * HALF, v)
! left and right sides
if (abs(x - x0) < FP_PRECISION) then
@ -1179,7 +1179,7 @@ contains
end if
if (lat % is_3d) then
z0 = sign(lat % pitch(3) * 0.5_8, w)
z0 = sign(lat % pitch(3) * HALF, w)
! top and bottom sides
if (abs(z - z0) < FP_PRECISION) then
@ -1212,8 +1212,8 @@ contains
end do
! Compute velocities along the hexagonal axes.
beta_dir = u*sqrt(3.0_8)/2.0_8 + v/2.0_8
gama_dir = u*sqrt(3.0_8)/2.0_8 - v/2.0_8
beta_dir = u*sqrt(THREE)/TWO + v/TWO
gama_dir = u*sqrt(THREE)/TWO - v/TWO
! Note that hexagonal lattice distance calculations are performed
! using the particle's coordinates relative to the neighbor lattice
@ -1223,13 +1223,13 @@ contains
! of hex lattices.
! Upper right and lower left sides.
edge = -sign(lat % pitch(1)/2.0_8, beta_dir) ! Oncoming edge
if (beta_dir > 0.0) then
edge = -sign(lat % pitch(1)/TWO, beta_dir) ! Oncoming edge
if (beta_dir > ZERO) then
xyz_t = lat % get_local_xyz(parent_coord % xyz, i_xyz+[1, 0, 0])
else
xyz_t = lat % get_local_xyz(parent_coord % xyz, i_xyz+[-1, 0, 0])
end if
beta = xyz_t(1)*sqrt(3.0_8)/2.0_8 + xyz_t(2)/2.0_8
beta = xyz_t(1)*sqrt(THREE)/TWO + xyz_t(2)/TWO
if (abs(beta - edge) < FP_PRECISION) then
d = INFINITY
else if (beta_dir == ZERO) then
@ -1246,13 +1246,13 @@ contains
end if
! Lower right and upper left sides.
edge = -sign(lat % pitch(1)/2.0_8, gama_dir) ! Oncoming edge
if (gama_dir > 0.0) then
edge = -sign(lat % pitch(1)/TWO, gama_dir) ! Oncoming edge
if (gama_dir > ZERO) then
xyz_t = lat % get_local_xyz(parent_coord % xyz, i_xyz+[1, -1, 0])
else
xyz_t = lat % get_local_xyz(parent_coord % xyz, i_xyz+[-1, 1, 0])
end if
gama = xyz_t(1)*sqrt(3.0_8)/2.0_8 - xyz_t(2)/2.0_8
gama = xyz_t(1)*sqrt(THREE)/TWO - xyz_t(2)/TWO
if (abs(gama - edge) < FP_PRECISION) then
d = INFINITY
else if (gama_dir == ZERO) then
@ -1271,8 +1271,8 @@ contains
end if
! Upper and lower sides.
edge = -sign(lat % pitch(1)/2.0_8, v) ! Oncoming edge
if (v > 0.0) then
edge = -sign(lat % pitch(1)/TWO, v) ! Oncoming edge
if (v > ZERO) then
xyz_t = lat % get_local_xyz(parent_coord % xyz, i_xyz+[0, 1, 0])
else
xyz_t = lat % get_local_xyz(parent_coord % xyz, i_xyz+[0, -1, 0])
@ -1296,7 +1296,7 @@ contains
! Top and bottom sides.
if (lat % is_3d) then
z0 = sign(lat % pitch(2) * 0.5_8, w)
z0 = sign(lat % pitch(2) * HALF, w)
if (abs(z - z0) < FP_PRECISION) then
d = INFINITY
@ -1317,10 +1317,10 @@ contains
end if
end select LAT_TYPE
if (d_lat < 0.0) then
if (d_lat < ZERO) then
call handle_lost_particle(p, "Particle " // trim(to_str(p % id)) &
&//" had a negative distance to a lattice boundary. d = " &
&//trim(to_str(d_lat)))
//" had a negative distance to a lattice boundary. d = " &
//trim(to_str(d_lat)))
end if
end if LAT_COORD

View file

@ -1,5 +1,7 @@
module geometry_header
use constants, only: HALF, TWO, THREE
implicit none
!===============================================================================
@ -29,7 +31,7 @@ module geometry_header
integer :: outer ! universe to tile outside the lat
logical :: is_3d ! Lattice has cells on z axis
integer, allocatable :: offset(:,:,:,:) ! Distribcell offsets
contains
procedure(are_valid_indices_), deferred :: are_valid_indices
@ -121,7 +123,7 @@ module geometry_header
character(len=52) :: name = "" ! User-defined name
integer :: type ! Type of surface
real(8), allocatable :: coeffs(:) ! Definition of surface
integer, allocatable :: &
integer, allocatable :: &
neighbor_pos(:), & ! List of cells on positive side
neighbor_neg(:) ! List of cells on negative side
integer :: bc ! Boundary condition
@ -141,7 +143,7 @@ module geometry_header
integer :: material ! Material within cell (0 for universe)
integer :: n_surfaces ! Number of surfaces within
integer, allocatable :: offset (:) ! Distribcell offset for tally counter
integer, allocatable :: &
integer, allocatable :: &
& surfaces(:) ! List of surfaces bounding cell -- note that
! parentheses, union, etc operators will be listed
! here too
@ -189,7 +191,7 @@ contains
real(8), intent(in) :: global_xyz(3)
integer :: i_xyz(3)
real(8) :: xyz(3) ! global_xyz alias
real(8) :: xyz(3) ! global_xyz alias
xyz = global_xyz
@ -209,7 +211,7 @@ contains
real(8), intent(in) :: global_xyz(3)
integer :: i_xyz(3)
real(8) :: xyz(3) ! global_xyz alias
real(8) :: xyz(3) ! global_xyz alias
real(8) :: alpha ! Skewed coord axis
real(8) :: xyz_t(3) ! Local xyz
real(8) :: dists(4) ! Squared distances from cell centers
@ -220,16 +222,16 @@ contains
! Index z direction.
if (this % is_3d) then
i_xyz(3) = ceiling((xyz(3) - this % center(3))/this % pitch(2) + 0.5_8)&
&+ this % n_axial/2
i_xyz(3) = ceiling((xyz(3) - this % center(3))/this % pitch(2) + HALF)&
+ this % n_axial/2
else
i_xyz(3) = 1
end if
! Convert coordinates into skewed bases. The (x, alpha) basis is used to
! find the index of the global coordinates to within 4 cells.
alpha = xyz(2) - xyz(1) / sqrt(3.0_8)
i_xyz(1) = floor(xyz(1) / (sqrt(3.0_8) / 2.0_8 * this % pitch(1)))
alpha = xyz(2) - xyz(1) / sqrt(THREE)
i_xyz(1) = floor(xyz(1) / (sqrt(THREE) / TWO * this % pitch(1)))
i_xyz(2) = floor(alpha / this % pitch(1))
! Add offset to indices (the center cell is (i_x, i_alpha) = (0, 0) but
@ -279,12 +281,12 @@ contains
xyz = global_xyz
local_xyz(1) = xyz(1) - (this % lower_left(1) + &
&(i_xyz(1) - 0.5_8)*this % pitch(1))
(i_xyz(1) - HALF)*this % pitch(1))
local_xyz(2) = xyz(2) - (this % lower_left(2) + &
&(i_xyz(2) - 0.5_8)*this % pitch(2))
(i_xyz(2) - HALF)*this % pitch(2))
if (this % is_3d) then
local_xyz(3) = xyz(3) - (this % lower_left(3) + &
&(i_xyz(3) - 0.5_8)*this % pitch(3))
(i_xyz(3) - HALF)*this % pitch(3))
else
local_xyz(3) = xyz(3)
end if
@ -304,14 +306,14 @@ contains
! x_l = x_g - (center + pitch_x*cos(30)*index_x)
local_xyz(1) = xyz(1) - (this % center(1) + &
&sqrt(3.0_8) / 2.0_8 * (i_xyz(1) - this % n_rings) * this % pitch(1))
sqrt(THREE) / TWO * (i_xyz(1) - this % n_rings) * this % pitch(1))
! y_l = y_g - (center + pitch_x*index_x + pitch_y*sin(30)*index_y)
local_xyz(2) = xyz(2) - (this % center(2) + &
&(i_xyz(2) - this % n_rings) * this % pitch(1) + &
&(i_xyz(1) - this % n_rings) * this % pitch(1) / 2.0_8)
(i_xyz(2) - this % n_rings) * this % pitch(1) + &
(i_xyz(1) - this % n_rings) * this % pitch(1) / TWO)
if (this % is_3d) then
local_xyz(3) = xyz(3) - this % center(3) &
&+ (this % n_axial/2 - i_xyz(3) + 1) * this % pitch(2)
+ (this % n_axial/2 - i_xyz(3) + 1) * this % pitch(2)
else
local_xyz(3) = xyz(3)
end if

View file

@ -243,8 +243,8 @@ module global
! VARIANCE REDUCTION VARIABLES
logical :: survival_biasing = .false.
real(8) :: weight_cutoff = 0.25
real(8) :: weight_survive = 1.0
real(8) :: weight_cutoff = 0.25_8
real(8) :: weight_survive = ONE
! ============================================================================
! HDF5 VARIABLES

View file

@ -1796,11 +1796,11 @@ contains
case ('g/cc', 'g/cm3')
mat % density = -val
case ('kg/m3')
mat % density = -0.001 * val
mat % density = -0.001_8 * val
case ('atom/b-cm')
mat % density = val
case ('atom/cm3', 'atom/cc')
mat % density = 1.0e-24 * val
mat % density = 1.0e-24_8 * val
case default
call fatal_error("Unkwown units '" // trim(units) &
&// "' specified on material " // trim(to_str(mat % id)))

View file

@ -1,6 +1,6 @@
module math
use constants, only: PI, ONE, TWO, ZERO
use constants
use random_lcg, only: prn
implicit none
@ -41,27 +41,27 @@ contains
q = sqrt(-TWO*log(p))
z = (((((c(1)*q + c(2))*q + c(3))*q + c(4))*q + c(5))*q + c(6)) / &
((((d(1)*q + d(2))*q + d(3))*q + d(4))*q + 1.)
((((d(1)*q + d(2))*q + d(3))*q + d(4))*q + ONE)
elseif (p <= 1. - p_low) then
elseif (p <= ONE - p_low) then
! Rational approximation for central region
q = p - 0.5
q = p - HALF
r = q*q
z = (((((a(1)*r + a(2))*r + a(3))*r + a(4))*r + a(5))*r + a(6))*q / &
(((((b(1)*r + b(2))*r + b(3))*r + b(4))*r + b(5))*r + 1.)
(((((b(1)*r + b(2))*r + b(3))*r + b(4))*r + b(5))*r + ONE)
else
! Rational approximation for upper region
q = sqrt(-2*log(1. - p))
q = sqrt(-TWO*log(ONE - p))
z = -(((((c(1)*q + c(2))*q + c(3))*q + c(4))*q + c(5))*q + c(6)) / &
((((d(1)*q + d(2))*q + d(3))*q + d(4))*q + 1.)
((((d(1)*q + d(2))*q + d(3))*q + d(4))*q + ONE)
endif
! Refinement based on Newton's method
#ifndef NO_F2008
z = z - (0.5 * erfc(-z/sqrt(TWO)) - p) * sqrt(TWO*PI) * exp(0.5*z*z)
z = z - (HALF * erfc(-z/sqrt(TWO)) - p) * sqrt(TWO*PI) * exp(HALF*z*z)
#endif
end function normal_percentile
@ -86,13 +86,13 @@ contains
! For one degree of freedom, the t-distribution becomes a Cauchy
! distribution whose cdf we can invert directly
t = tan(PI*(p - 0.5))
t = tan(PI*(p - HALF))
elseif (df == 2) then
! For two degrees of freedom, the cdf is given by 1/2 + x/(2*sqrt(x^2 +
! 2)). This can be directly inverted to yield the solution below
t = TWO*sqrt(TWO)*(p - 0.5)/sqrt(ONE - 4.*(p - 0.5)**2)
t = TWO*sqrt(TWO)*(p - HALF)/sqrt(ONE - FOUR*(p - HALF)**2)
else
@ -102,12 +102,12 @@ contains
! 16 (4), pp. 1123-1132 (1987).
n = real(df,8)
k = 1./(n - 2.)
k = ONE/(n - TWO)
z = normal_percentile(p)
z2 = z * z
t = sqrt(n*k) * (z + (z2 - 3.)*z*k/4. + ((5.*z2 - 56.)*z2 + &
75.)*z*k*k/96. + (((z2 - 27.)*3.*z2 + 417.)*z2 - 315.) &
*z*k*k*k/384.)
t = sqrt(n*k) * (z + (z2 - THREE)*z*k/FOUR + ((5._8*z2 - 56._8)*z2 + &
75._8)*z*k*k/96._8 + (((z2 - 27._8)*THREE*z2 + 417._8)*z2 - 315._8) &
*z*k*k*k/384._8)
end if
@ -134,7 +134,7 @@ contains
case(1)
pnx = x
case(2)
pnx = 1.5_8 * x * x - 0.5_8
pnx = 1.5_8 * x * x - HALF
case(3)
pnx = 2.5_8 * x * x * x - 1.5_8 * x
case(4)
@ -199,37 +199,37 @@ contains
rn(3) = ONE*sqrt(w2m1) * cos(phi)
case (2)
! l = 2, m = -2
rn(1) = 0.288675134594813_8 * (-3.0_8 * w**2 + 3.0_8) * sin(TWO*phi)
rn(1) = 0.288675134594813_8 * (-THREE * w**2 + THREE) * sin(TWO*phi)
! l = 2, m = -1
rn(2) = 1.73205080756888_8 * w*sqrt(w2m1) * sin(phi)
! l = 2, m = 0
rn(3) = 1.5_8 * w**2 - 0.5_8
rn(3) = 1.5_8 * w**2 - HALF
! l = 2, m = 1
rn(4) = 1.73205080756888_8 * w*sqrt(w2m1) * cos(phi)
! l = 2, m = 2
rn(5) = 0.288675134594813_8 * (-3.0_8 * w**2 + 3.0_8) * cos(TWO*phi)
rn(5) = 0.288675134594813_8 * (-THREE * w**2 + THREE) * cos(TWO*phi)
case (3)
! l = 3, m = -3
rn(1) = 0.790569415042095_8 * (w2m1)**(3.0_8/TWO) * sin(3.0_8 * phi)
rn(1) = 0.790569415042095_8 * (w2m1)**(THREE/TWO) * sin(THREE * phi)
! l = 3, m = -2
rn(2) = 1.93649167310371_8 * w*(w2m1) * sin(TWO*phi)
! l = 3, m = -1
rn(3) = 0.408248290463863_8*sqrt(w2m1)*((15.0_8/TWO)*w**2 - 3.0_8/TWO) * &
rn(3) = 0.408248290463863_8*sqrt(w2m1)*((15.0_8/TWO)*w**2 - THREE/TWO) * &
sin(phi)
! l = 3, m = 0
rn(4) = 2.5_8 * w**3 - 1.5_8 * w
! l = 3, m = 1
rn(5) = 0.408248290463863_8*sqrt(w2m1)*((15.0_8/TWO)*w**2 - 3.0_8/TWO) * &
rn(5) = 0.408248290463863_8*sqrt(w2m1)*((15.0_8/TWO)*w**2 - THREE/TWO) * &
cos(phi)
! l = 3, m = 2
rn(6) = 1.93649167310371_8 * w*(w2m1) * cos(TWO*phi)
! l = 3, m = 3
rn(7) = 0.790569415042095_8 * (w2m1)**(3.0_8/TWO) * cos(3.0_8* phi)
rn(7) = 0.790569415042095_8 * (w2m1)**(THREE/TWO) * cos(THREE* phi)
case (4)
! l = 4, m = -4
rn(1) = 0.739509972887452_8 * (w2m1)**2 * sin(4.0_8*phi)
! l = 4, m = -3
rn(2) = 2.09165006633519_8 * w*(w2m1)**(3.0_8/TWO) * sin(3.0_8* phi)
rn(2) = 2.09165006633519_8 * w*(w2m1)**(THREE/TWO) * sin(THREE* phi)
! l = 4, m = -2
rn(3) = 0.074535599249993_8 * (w2m1)*((105.0_8/TWO)*w**2 - 15.0_8/TWO) * &
sin(TWO*phi)
@ -245,7 +245,7 @@ contains
rn(7) = 0.074535599249993_8 * (w2m1)*((105.0_8/TWO)*w**2 - 15.0_8/TWO) * &
cos(TWO*phi)
! l = 4, m = 3
rn(8) = 2.09165006633519_8 * w*(w2m1)**(3.0_8/TWO) * cos(3.0_8* phi)
rn(8) = 2.09165006633519_8 * w*(w2m1)**(THREE/TWO) * cos(THREE* phi)
! l = 4, m = 4
rn(9) = 0.739509972887452_8 * (w2m1)**2 * cos(4.0_8*phi)
case (5)
@ -254,8 +254,8 @@ contains
! l = 5, m = -4
rn(2) = 2.21852991866236_8 * w*(w2m1)**2 * sin(4.0_8*phi)
! l = 5, m = -3
rn(3) = 0.00996023841111995_8 * (w2m1)**(3.0_8/TWO)* &
((945.0_8 /TWO)*w**2 - 105.0_8/TWO) * sin(3.0_8*phi)
rn(3) = 0.00996023841111995_8 * (w2m1)**(THREE/TWO)* &
((945.0_8 /TWO)*w**2 - 105.0_8/TWO) * sin(THREE*phi)
! l = 5, m = -2
rn(4) = 0.0487950036474267_8 * (w2m1)*((315.0_8/TWO)*w**3 - 105.0_8/TWO*w) * &
sin(TWO*phi)
@ -271,8 +271,8 @@ contains
rn(8) = 0.0487950036474267_8 * (w2m1)* &
((315.0_8/TWO)*w**3 - 105.0_8/TWO*w) * cos(TWO*phi)
! l = 5, m = 3
rn(9) = 0.00996023841111995_8 * (w2m1)**(3.0_8/TWO)* &
((945.0_8 /TWO)*w**2 - 105.0_8/TWO) * cos(3.0_8*phi)
rn(9) = 0.00996023841111995_8 * (w2m1)**(THREE/TWO)* &
((945.0_8 /TWO)*w**2 - 105.0_8/TWO) * cos(THREE*phi)
! l = 5, m = 4
rn(10) = 2.21852991866236_8 * w*(w2m1)**2 * cos(4.0_8*phi)
! l = 5, m = 5
@ -286,8 +286,8 @@ contains
rn(3) = 0.00104990131391452_8 * (w2m1)**2 * &
((10395.0_8/TWO)*w**2 - 945.0_8/TWO) * sin(4.0_8*phi)
! l = 6, m = -3
rn(4) = 0.00575054632785295_8 * (w2m1)**(3.0_8/TWO) * &
((3465.0_8/TWO)*w**3 - 945.0_8/TWO*w) * sin(3.0_8*phi)
rn(4) = 0.00575054632785295_8 * (w2m1)**(THREE/TWO) * &
((3465.0_8/TWO)*w**3 - 945.0_8/TWO*w) * sin(THREE*phi)
! l = 6, m = -2
rn(5) = 0.0345032779671177_8 * (w2m1) * &
((3465.0_8/8.0_8)*w**4 - 945.0_8/4.0_8 * w**2 + 105.0_8/8.0_8) * sin(TWO*phi)
@ -303,8 +303,8 @@ contains
rn(9) = 0.0345032779671177_8 * (w2m1) * &
((3465.0_8/8.0_8)*w**4 -945.0_8/4.0_8 * w**2 + 105.0_8/8.0_8) * cos(TWO*phi)
! l = 6, m = 3
rn(10) = 0.00575054632785295_8 * (w2m1)**(3.0_8/TWO) * &
((3465.0_8/TWO)*w**3 - 945.0_8/TWO*w) * cos(3.0_8*phi)
rn(10) = 0.00575054632785295_8 * (w2m1)**(THREE/TWO) * &
((3465.0_8/TWO)*w**3 - 945.0_8/TWO*w) * cos(THREE*phi)
! l = 6, m = 4
rn(11) = 0.00104990131391452_8 * (w2m1)**2 * &
((10395.0_8/TWO)*w**2 - 945.0_8/TWO) * cos(4.0_8*phi)
@ -324,9 +324,9 @@ contains
rn(4) = 0.000548293079133141_8 * (w2m1)**2* &
((45045.0_8/TWO)*w**3 - 10395.0_8/TWO*w) * sin(4.0_8*phi)
! l = 7, m = -3
rn(5) = 0.00363696483726654_8 * (w2m1)**(3.0_8/TWO)* &
rn(5) = 0.00363696483726654_8 * (w2m1)**(THREE/TWO)* &
((45045.0_8/8.0_8)*w**4 - 10395.0_8/4.0_8 * w**2 + 945.0_8/8.0_8)* &
sin(3.0_8*phi)
sin(THREE*phi)
! l = 7, m = -2
rn(6) = 0.025717224993682_8 * (w2m1)* &
((9009.0_8/8.0_8)*w**5 -3465.0_8/4.0_8 * w**3 + (945.0_8/8.0_8)*w)* &
@ -346,9 +346,9 @@ contains
((9009.0_8/8.0_8)*w**5 -3465.0_8/4.0_8 * w**3 + (945.0_8/8.0_8)*w)* &
cos(TWO*phi)
! l = 7, m = 3
rn(11) = 0.00363696483726654_8 * (w2m1)**(3.0_8/TWO)* &
rn(11) = 0.00363696483726654_8 * (w2m1)**(THREE/TWO)* &
((45045.0_8/8.0_8)*w**4 - 10395.0_8/4.0_8 * w**2 + 945.0_8/8.0_8)* &
cos(3.0_8*phi)
cos(THREE*phi)
! l = 7, m = 4
rn(12) = 0.000548293079133141_8 * (w2m1)**2 * &
((45045.0_8/TWO)*w**3 - 10395.0_8/TWO*w) * cos(4.0_8*phi)
@ -374,8 +374,8 @@ contains
rn(5) = 0.000316557156832328_8 * (w2m1)**2* &
((675675.0_8/8.0_8)*w**4 - 135135.0_8/4.0_8 * w**2 + 10395.0_8/8.0_8) * sin(4.0_8*phi)
! l = 8, m = -3
rn(6) = 0.00245204119306875_8 * (w2m1)**(3.0_8/TWO)* &
((135135.0_8/8.0_8)*w**5 - 45045.0_8/4.0_8 * w**3 + (10395.0_8/8.0_8)*w) * sin(3.0_8*phi)
rn(6) = 0.00245204119306875_8 * (w2m1)**(THREE/TWO)* &
((135135.0_8/8.0_8)*w**5 - 45045.0_8/4.0_8 * w**3 + (10395.0_8/8.0_8)*w) * sin(THREE*phi)
! l = 8, m = -2
rn(7) = 0.0199204768222399_8 * (w2m1)* &
((45045.0_8/16.0_8)*w**6- 45045.0_8/16.0_8 * w**4 + &
@ -396,9 +396,9 @@ contains
45045.0_8/16.0_8 * w**4 + (10395.0_8/16.0_8)*w**2 - &
315.0_8/16.0_8) * cos(TWO*phi)
! l = 8, m = 3
rn(12) = 0.00245204119306875_8 * (w2m1)**(3.0_8/TWO)* &
rn(12) = 0.00245204119306875_8 * (w2m1)**(THREE/TWO)* &
((135135.0_8/8.0_8)*w**5 - 45045.0_8/4.0_8 * w**3 + &
(10395.0_8/8.0_8)*w) * cos(3.0_8*phi)
(10395.0_8/8.0_8)*w) * cos(THREE*phi)
! l = 8, m = 4
rn(13) = 0.000316557156832328_8 * (w2m1)**2*((675675.0_8/8.0_8)*w**4 - &
135135.0_8/4.0_8 * w**2 + 10395.0_8/8.0_8) * cos(4.0_8*phi)
@ -431,9 +431,9 @@ contains
rn(6) = 0.000196320414650061_8 * (w2m1)**2*((2297295.0_8/8.0_8)*w**5 - &
675675.0_8/4.0_8 * w**3 + (135135.0_8/8.0_8)*w) * sin(4.0_8*phi)
! l = 9, m = -3
rn(7) = 0.00173385495536766_8 * (w2m1)**(3.0_8/TWO)* &
rn(7) = 0.00173385495536766_8 * (w2m1)**(THREE/TWO)* &
((765765.0_8/16.0_8)*w**6 - 675675.0_8/16.0_8 * w**4 + &
(135135.0_8/16.0_8)*w**2 - 3465.0_8/16.0_8) * sin(3.0_8*phi)
(135135.0_8/16.0_8)*w**2 - 3465.0_8/16.0_8) * sin(THREE*phi)
! l = 9, m = -2
rn(8) = 0.0158910431540932_8 * (w2m1)*((109395.0_8/16.0_8)*w**7- &
135135.0_8/16.0_8 * w**5 + (45045.0_8/16.0_8)*w**3 - 3465.0_8/16.0_8 * w)* &
@ -452,9 +452,9 @@ contains
135135.0_8/16.0_8 * w**5 + (45045.0_8/16.0_8)*w**3 - 3465.0_8/ 16.0_8 * w) * &
cos(TWO*phi)
! l = 9, m = 3
rn(13) = 0.00173385495536766_8 * (w2m1)**(3.0_8/TWO)*((765765.0_8/16.0_8)*w**6 - &
rn(13) = 0.00173385495536766_8 * (w2m1)**(THREE/TWO)*((765765.0_8/16.0_8)*w**6 - &
675675.0_8/16.0_8 * w**4 + (135135.0_8/16.0_8)*w**2 - 3465.0_8/16.0_8)* &
cos(3.0_8*phi)
cos(THREE*phi)
! l = 9, m = 4
rn(14) = 0.000196320414650061_8 * (w2m1)**2*((2297295.0_8/8.0_8)*w**5 - &
675675.0_8/4.0_8 * w**3 + (135135.0_8/8.0_8)*w) * cos(4.0_8*phi)
@ -494,9 +494,9 @@ contains
11486475.0_8/16.0_8 * w**4 + (2027025.0_8/16.0_8)*w**2 - &
45045.0_8/16.0_8) * sin(4.0_8*phi)
! l = 10, m = -3
rn(8) = 0.00127230170115096_8 * (w2m1)**(3.0_8/TWO)* &
rn(8) = 0.00127230170115096_8 * (w2m1)**(THREE/TWO)* &
((2078505.0_8/16.0_8)*w**7 - 2297295.0_8/16.0_8 * w**5 + &
(675675.0_8/16.0_8)*w**3 - 45045.0_8/16.0_8 * w) * sin(3.0_8*phi)
(675675.0_8/16.0_8)*w**3 - 45045.0_8/16.0_8 * w) * sin(THREE*phi)
! l = 10, m = -2
rn(9) = 0.012974982402692_8 * (w2m1)*((2078505.0_8/128.0_8)*w**8 - &
765765.0_8/32.0_8 * w**6 + (675675.0_8/64.0_8)*w**4 - &
@ -517,9 +517,9 @@ contains
765765.0_8/32.0_8 * w**6 + (675675.0_8/64.0_8)*w**4 -&
45045.0_8/32.0_8 * w**2 + 3465.0_8/128.0_8) * cos(TWO*phi)
! l = 10, m = 3
rn(14) = 0.00127230170115096_8 * (w2m1)**(3.0_8/TWO)* &
rn(14) = 0.00127230170115096_8 * (w2m1)**(THREE/TWO)* &
((2078505.0_8/16.0_8)*w**7 - 2297295.0_8/16.0_8 * w**5 + &
(675675.0_8/16.0_8)*w**3 - 45045.0_8/16.0_8 * w) * cos(3.0_8*phi)
(675675.0_8/16.0_8)*w**3 - 45045.0_8/16.0_8 * w) * cos(THREE*phi)
! l = 10, m = 4
rn(15) = 0.000128521880085575_8 * (w2m1)**2*((14549535.0_8/16.0_8)*w**6 - &
11486475.0_8/16.0_8 * w**4 + (2027025.0_8/16.0_8)*w**2 - &

View file

@ -597,13 +597,13 @@ contains
if (r > ONE) then
! equally likely N-4 middle bins
j = int(r) + 2
elseif (r > 0.6) then
elseif (r > 0.6_8) then
! second to last bin has relative probability of 0.4
j = n_energy_out - 1
elseif (r > 0.5) then
elseif (r > HALF) then
! last bin has relative probability of 0.1
j = n_energy_out
elseif (r > 0.1) then
elseif (r > 0.1_8) then
! second bin has relative probability of 0.4
j = 2
else
@ -818,8 +818,8 @@ contains
case ('dbrc')
E_red = sqrt((awr * E) / kT)
E_low = (((E_red - 4.0_8)**2) * kT) / awr
E_up = (((E_red + 4.0_8)**2) * kT) / awr
E_low = (((E_red - FOUR)**2) * kT) / awr
E_up = (((E_red + FOUR)**2) * kT) / awr
! find lower and upper energy bound indices
! lower index
@ -872,8 +872,8 @@ contains
case ('ares')
E_red = sqrt((awr * E) / kT)
E_low = (((E_red - 4.0_8)**2) * kT) / awr
E_up = (((E_red + 4.0_8)**2) * kT) / awr
E_low = (((E_red - FOUR)**2) * kT) / awr
E_up = (((E_red + FOUR)**2) * kT) / awr
! find lower and upper energy bound indices
! lower index

View file

@ -46,7 +46,7 @@ contains
end subroutine run_plot
!===============================================================================
! POSITION_RGB computes the red/green/blue values for a given plot with the
! POSITION_RGB computes the red/green/blue values for a given plot with the
! current particle's position
!===============================================================================
@ -56,12 +56,12 @@ contains
type(ObjectPlot), pointer, intent(in) :: pl
integer, intent(out) :: rgb(3)
integer, intent(out) :: id
logical :: found_cell
integer :: level
type(Cell), pointer :: c => null()
type(LocalCoord), pointer :: coord => null()
call deallocate_coord(p % coord0 % next)
p % coord => p % coord0
@ -77,7 +77,7 @@ contains
coord => coord % next
level = level + 1
end do
if (.not. found_cell) then
! If no cell, revert to default color
rgb = pl % not_found % rgb
@ -107,7 +107,7 @@ contains
id = -1
end if
end if
end subroutine position_rgb
!===============================================================================
@ -141,31 +141,31 @@ contains
if (pl % basis == PLOT_BASIS_XY) then
in_i = 1
out_i = 2
xyz(1) = pl % origin(1) - pl % width(1) / 2.0
xyz(2) = pl % origin(2) + pl % width(2) / 2.0
xyz(1) = pl % origin(1) - pl % width(1) / TWO
xyz(2) = pl % origin(2) + pl % width(2) / TWO
xyz(3) = pl % origin(3)
else if (pl % basis == PLOT_BASIS_XZ) then
in_i = 1
out_i = 3
xyz(1) = pl % origin(1) - pl % width(1) / 2.0
xyz(1) = pl % origin(1) - pl % width(1) / TWO
xyz(2) = pl % origin(2)
xyz(3) = pl % origin(3) + pl % width(2) / 2.0
xyz(3) = pl % origin(3) + pl % width(2) / TWO
else if (pl % basis == PLOT_BASIS_YZ) then
in_i = 2
out_i = 3
xyz(1) = pl % origin(1)
xyz(2) = pl % origin(2) - pl % width(1) / 2.0
xyz(3) = pl % origin(3) + pl % width(2) / 2.0
xyz(2) = pl % origin(2) - pl % width(1) / TWO
xyz(3) = pl % origin(3) + pl % width(2) / TWO
end if
! allocate and initialize particle
call p % initialize()
p % coord % xyz = xyz
p % coord % uvw = (/ 0.5, 0.5, 0.5 /)
p % coord % uvw = [ HALF, HALF, HALF ]
p % coord % universe = BASE_UNIVERSE
do y = 1, img % height
call progress % set_value(dble(y)/dble(img % height)*100.)
call progress % set_value(dble(y)/dble(img % height)*100)
do x = 1, img % width
! get pixel color
@ -201,10 +201,10 @@ contains
! DRAW_MESH_LINES draws mesh line boundaries on an image
!===============================================================================
subroutine draw_mesh_lines(pl, img)
type(ObjectPlot), pointer, intent(in) :: pl
type(Image), intent(inout) :: img
logical :: in_mesh
integer :: out_, in_ ! pixel location
integer :: r, g, b ! RGB color for meshlines pixels
@ -221,13 +221,13 @@ contains
real(8) :: xyz_ll(3) ! lower left xyz
real(8) :: xyz_ur(3) ! upper right xyz
type(StructuredMesh), pointer :: m => null()
m => pl % meshlines_mesh
r = pl % meshlines_color % rgb(1)
g = pl % meshlines_color % rgb(2)
b = pl % meshlines_color % rgb(3)
select case (pl % basis)
case(PLOT_BASIS_XY)
outer = 1
@ -243,10 +243,10 @@ contains
xyz_ll_plot = pl % origin
xyz_ur_plot = pl % origin
xyz_ll_plot(outer) = pl % origin(1) - pl % width(1) / 2.0
xyz_ll_plot(inner) = pl % origin(2) - pl % width(2) / 2.0
xyz_ur_plot(outer) = pl % origin(1) + pl % width(1) / 2.0
xyz_ur_plot(inner) = pl % origin(2) + pl % width(2) / 2.0
xyz_ll_plot(outer) = pl % origin(1) - pl % width(1) / TWO
xyz_ll_plot(inner) = pl % origin(2) - pl % width(2) / TWO
xyz_ur_plot(outer) = pl % origin(1) + pl % width(1) / TWO
xyz_ur_plot(inner) = pl % origin(2) + pl % width(2) / TWO
width = xyz_ur_plot - xyz_ll_plot
@ -259,24 +259,24 @@ contains
! check if we're in the mesh for this ijk
if (i > 0 .and. i <= m % dimension(outer) .and. &
j > 0 .and. j <= m % dimension(inner)) then
! get xyz's of lower left and upper right of this mesh cell
xyz_ll(outer) = m % lower_left(outer) + m % width(outer) * (i - 1)
xyz_ll(inner) = m % lower_left(inner) + m % width(inner) * (j - 1)
xyz_ur(outer) = m % lower_left(outer) + m % width(outer) * i
xyz_ur(inner) = m % lower_left(inner) + m % width(inner) * j
! map the xyz ranges to pixel ranges
frac = (xyz_ll(outer) - xyz_ll_plot(outer)) / width(outer)
outrange(1) = int(frac * real(img % width, 8))
frac = (xyz_ur(outer) - xyz_ll_plot(outer)) / width(outer)
outrange(2) = int(frac * real(img % width, 8))
frac = (xyz_ur(inner) - xyz_ll_plot(inner)) / width(inner)
inrange(1) = int((1. - frac) * real(img % height, 8))
inrange(1) = int((ONE - frac) * real(img % height, 8))
frac = (xyz_ll(inner) - xyz_ll_plot(inner)) / width(inner)
inrange(2) = int((1. - frac) * real(img % height, 8))
inrange(2) = int((ONE - frac) * real(img % height, 8))
! draw lines
do out_ = outrange(1), outrange(2)
@ -295,11 +295,11 @@ contains
call set_pixel(img, outrange(2) - plus, in_, r, g, b)
end do
end do
end if
end do
end do
end subroutine draw_mesh_lines
!===============================================================================
@ -350,7 +350,7 @@ contains
subroutine create_3d_dump(pl)
type(ObjectPlot), pointer :: pl
integer :: x, y, z ! voxel location indices
integer :: rgb(3) ! colors (red, green, blue) from 0-255
integer :: id ! id of cell or material
@ -361,14 +361,14 @@ contains
! compute voxel widths in each direction
vox = pl % width/dble(pl % pixels)
! initial particle position
ll = pl % origin - pl % width / 2.0
ll = pl % origin - pl % width / TWO
! allocate and initialize particle
call p % initialize()
p % coord0 % xyz = ll
p % coord0 % uvw = (/ 0.5, 0.5, 0.5 /)
p % coord0 % uvw = [ HALF, HALF, HALF ]
p % coord0 % universe = BASE_UNIVERSE
! Open binary plot file for writing
@ -378,11 +378,11 @@ contains
! write plot header info
write(UNIT_PLOT) pl % pixels, vox, ll
! move to center of voxels
ll = ll + vox / 2.0
! move to center of voxels
ll = ll + vox / TWO
do x = 1, pl % pixels(1)
call progress % set_value(dble(x)/dble(pl % pixels(1))*100.)
call progress % set_value(dble(x)/dble(pl % pixels(1))*100)
do y = 1, pl % pixels(2)
do z = 1, pl % pixels(3)
@ -394,20 +394,20 @@ contains
! advance particle in z direction
p % coord0 % xyz(3) = p % coord0 % xyz(3) + vox(3)
end do
! advance particle in y direction
p % coord0 % xyz(2) = p % coord0 % xyz(2) + vox(2)
p % coord0 % xyz(3) = ll(3)
end do
! advance particle in y direction
p % coord0 % xyz(1) = p % coord0 % xyz(1) + vox(1)
p % coord0 % xyz(2) = ll(2)
p % coord0 % xyz(3) = ll(3)
end do
close(UNIT_PLOT)

View file

@ -4,6 +4,7 @@ module trigger
use mpi
#endif
use constants
use global
use string, only: to_str
use output, only: warning, write_message
@ -30,7 +31,7 @@ contains
character(len=52) :: name ! "eigenvalue" or tally score
integer :: n_pred_batches ! predicted # batches to satisfy all triggers
! Checks if current_batch is one for which the triggers must be checked
if (current_batch < n_batches .or. (.not. trigger_on)) return
if (mod((current_batch - n_batches), n_batch_interval) /= 0 .and. &
@ -39,24 +40,24 @@ contains
! Check the trigger and output the result
call check_tally_triggers(max_ratio, tally_id, name)
! When trigger threshold is reached, write information
! When trigger threshold is reached, write information
if (satisfy_triggers) then
call write_message("Triggers satisfied for batch " // &
trim(to_str(current_batch)))
! When trigger is not reached write convergence info for user
elseif (name == "eigenvalue") then
call write_message("Triggers unsatisfied, max unc./thresh. is " // &
trim(to_str(max_ratio)) // " for " // trim(name))
else
call write_message("Triggers unsatisfied, max unc./thresh. is " // &
call write_message("Triggers unsatisfied, max unc./thresh. is " // &
trim(to_str(max_ratio)) // " for " // trim(name) // &
" in tally " // trim(to_str(tally_id)))
end if
end if
! If batch_interval is not set, estimate batches till triggers are satisfied
if (pred_batches .and. .not. satisfy_triggers) then
! Estimate the number of remaining batches to convergence
! The prediction uses the fact that tally variances are proportional
! to 1/N where N is the number of the batches/particles
@ -65,9 +66,9 @@ contains
n_pred_batches = n_batch_interval + n_batches
! Write the predicted number of batches for the user
if (n_pred_batches > n_max_batches) then
if (n_pred_batches > n_max_batches) then
call warning("The estimated number of batches is " // &
trim(to_str(n_pred_batches)) // &
trim(to_str(n_pred_batches)) // &
" -- greater than max batches. ")
else
call write_message("The estimated number of batches is " // &
@ -98,8 +99,8 @@ contains
integer :: n_order ! loop index for moment orders
integer :: nm_order ! loop index for Ynm moment orders
real(8) :: uncertainty ! trigger uncertainty
real(8) :: std_dev = 0.0 ! trigger standard deviation
real(8) :: rel_err = 0.0 ! trigger relative error
real(8) :: std_dev = ZERO ! trigger standard deviation
real(8) :: rel_err = ZERO ! trigger relative error
real(8) :: ratio ! ratio of the uncertainty/trigger threshold
type(TallyObject), pointer :: t ! tally pointer
type(TriggerObject), pointer :: trigger ! tally trigger
@ -115,8 +116,8 @@ contains
! Check eigenvalue trigger
if (run_mode == MODE_EIGENVALUE) then
if (keff_trigger % trigger_type /= 0) then
select case (keff_trigger % trigger_type)
case(VARIANCE)
select case (keff_trigger % trigger_type)
case(VARIANCE)
uncertainty = k_combined(2) ** 2
case(STANDARD_DEVIATION)
uncertainty = k_combined(2)
@ -124,7 +125,7 @@ contains
uncertainty = k_combined(2) / k_combined(1)
end select
! If uncertainty is above threshold, store uncertainty ratio
! If uncertainty is above threshold, store uncertainty ratio
if (uncertainty > keff_trigger % threshold) then
satisfy_triggers = .false.
if (keff_trigger % trigger_type == VARIANCE) then
@ -133,11 +134,11 @@ contains
ratio = uncertainty / keff_trigger % threshold
end if
if (max_ratio < ratio) then
max_ratio = ratio
max_ratio = ratio
name = "eigenvalue"
end if
end if
end if
end if
end if
end if
end if
! Compute uncertainties for all tallies, scores with triggers
@ -153,10 +154,10 @@ contains
trigger => t % triggers(s)
! Initialize trigger uncertainties to zero
trigger % std_dev = 0.
trigger % rel_err = 0.
trigger % variance = 0.
trigger % std_dev = ZERO
trigger % rel_err = ZERO
trigger % variance = ZERO
! Surface current tally triggers require special treatment
if (t % type == TALLY_SURFACE_CURRENT) then
call compute_tally_current(t, trigger)
@ -178,9 +179,9 @@ contains
j = j - 1
else
if (j == t % n_filters) exit find_bin
end if
end if
end do find_bin
if (t % n_filters > 0) then
filter_index = sum((max(matching_bins(1:t%n_filters),1) - 1) * &
t % stride) + 1
@ -193,13 +194,13 @@ contains
! Initialize score bin index
NUCLIDE_LOOP: do n = 1, t % n_nuclide_bins
select case(t % score_bins(trigger % score_index))
case (SCORE_SCATTER_PN, SCORE_NU_SCATTER_PN)
score_index = score_index - 1
do n_order = 0, t % moment_order(trigger % score_index)
score_index = score_index + 1
@ -207,17 +208,17 @@ contains
score_index, filter_index, t)
if (trigger % variance < variance) then
trigger % variance = std_dev ** 2
trigger % variance = std_dev ** 2
end if
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
end do
case (SCORE_SCATTER_YN, SCORE_NU_SCATTER_YN, SCORE_FLUX_YN, &
SCORE_TOTAL_YN)
@ -242,32 +243,32 @@ contains
end do
end do
case default
call get_trigger_uncertainty(std_dev, rel_err, &
score_index, filter_index, t)
if (trigger % variance < variance) then
trigger % variance = std_dev ** 2
trigger % variance = std_dev ** 2
end if
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
end select
select case (t % triggers(s) % type)
case(VARIANCE)
select case (t % triggers(s) % type)
case(VARIANCE)
uncertainty = trigger % variance
case(STANDARD_DEVIATION)
uncertainty = trigger % std_dev
case default
uncertainty = trigger % rel_err
end select
if (uncertainty > t % triggers(s) % threshold) then
satisfy_triggers = .false.
@ -275,8 +276,8 @@ contains
ratio = sqrt(uncertainty / t % triggers(s) % threshold)
else
ratio = uncertainty / t % triggers(s) % threshold
end if
end if
if (max_ratio < ratio) then
max_ratio = ratio
name = t % triggers(s) % score_name
@ -297,7 +298,7 @@ contains
! COMPUTE_TALLY_CURRENT computes the current for a surface current tally with
! precision trigger(s).
!===============================================================================
subroutine compute_tally_current(t, trigger)
integer :: i ! mesh index for x
@ -310,8 +311,8 @@ contains
integer :: n ! number of incoming energy bins
integer :: filter_index ! index in results array for filters
logical :: print_ebin ! should incoming energy bin be displayed?
real(8) :: rel_err = 0.0 ! temporary relative error of result
real(8) :: std_dev = 0.0 ! temporary standard deviration of result
real(8) :: rel_err = ZERO ! temporary relative error of result
real(8) :: std_dev = ZERO ! temporary standard deviration of result
type(TallyObject), pointer :: t ! surface current tally
type(TriggerObject) :: trigger ! surface current tally trigger
type(StructuredMesh), pointer :: m ! surface current mesh
@ -350,10 +351,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = std_dev**2
@ -362,10 +363,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -377,22 +378,22 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
matching_bins(i_filter_surf) = OUT_RIGHT
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -404,10 +405,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -417,10 +418,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -432,10 +433,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -444,10 +445,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -459,10 +460,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -471,10 +472,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -486,10 +487,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -498,10 +499,10 @@ contains
filter_index = &
sum((matching_bins(1:t % n_filters) - 1) * t % stride) + 1
call get_trigger_uncertainty(std_dev, rel_err, 1, filter_index, t)
if (trigger % std_dev < std_dev) then
if (trigger % std_dev < std_dev) then
trigger % std_dev = std_dev
end if
if (trigger % rel_err < rel_err) then
if (trigger % rel_err < rel_err) then
trigger % rel_err = rel_err
end if
trigger % variance = trigger % std_dev**2
@ -539,11 +540,11 @@ contains
std_dev = sqrt((tally_result % sum_sq / n - mean * mean) / (n - 1))
! Compute the relative error if the mean is non-zero
if (mean == 0.) then
rel_err = 0.
if (mean == ZERO) then
rel_err = ZERO
else
rel_err = std_dev / mean
end if
end if
end subroutine get_trigger_uncertainty

View file

@ -14,7 +14,7 @@ tally 1:
3.894180E+01
1.517824E+02
3.528006E+01
1.246309E+02
1.246308E+02
2.863448E+01
8.222321E+01
2.125384E+01

View file

@ -1,5 +1,5 @@
k-combined:
1.170519E+00 8.422959E-03
1.170519E+00 8.422960E-03
tally 1:
1.078122E+01
1.170828E+01
@ -47,7 +47,7 @@ tally 2:
6.213554E+00
1.946061E+00
7.376629E+01
2.729167E+02
2.729166E+02
5.253400E+01
1.385018E+02
6.438590E+00

View file

@ -1,2 +1,2 @@
k-combined:
1.092203E+00 1.990175E-02
1.092203E+00 1.990176E-02

View file

@ -1,2 +1,2 @@
k-combined:
8.085745E-01 9.674582E-03
8.085745E-01 9.674599E-03

View file

@ -1 +1 @@
f5873c6ca03a2c75f5094b7297059285788bb93c450466606914805cdb24fd2664c3872ed42a8c6665a272070ab6b08b0a53b02612bcd993e10329aec2f1d313
6008cf2ba8eecaaa5a600fa337cf54cef018e98bdba8e3bd26c6f44587376a838d5bc5e86301b2e308f9eb248e3efafd45a5336f4023d962d7921d158a621e0c

View file

@ -264,7 +264,7 @@ tally 1:
5.320317E-01
2.267827E-01
9.971891E-01
5.070903E-01
5.070904E-01
7.088786E-02
5.025089E-03
3.601108E-02
@ -298,7 +298,7 @@ tally 1:
1.145124E+00
4.571704E-01
1.135664E+00
4.319757E-01
4.319756E-01
8.875810E-02
7.878000E-03
7.494206E-02

View file

@ -1687,7 +1687,7 @@ tally 1:
0.000000E+00
0.000000E+00
0.000000E+00
4.206688E-02
4.206687E-02
1.769622E-03
2.760907E-02
7.622607E-04
@ -1810,7 +1810,7 @@ tally 1:
0.000000E+00
0.000000E+00
8.032141E-03
6.451528E-05
6.451529E-05
1.897802E-01
3.601652E-02
0.000000E+00
@ -2232,7 +2232,7 @@ tally 1:
0.000000E+00
0.000000E+00
1.103939E-01
1.218682E-02
1.218681E-02
1.828427E-01
1.294521E-02
0.000000E+00
@ -2577,8 +2577,8 @@ tally 1:
0.000000E+00
0.000000E+00
0.000000E+00
7.905315E-02
6.249401E-03
7.905316E-02
6.249402E-03
6.679360E-01
1.650894E-01
7.539474E-02
@ -2616,7 +2616,7 @@ tally 1:
1.107212E+00
3.413570E-01
7.306165E-02
5.338005E-03
5.338004E-03
0.000000E+00
0.000000E+00
0.000000E+00
@ -2840,9 +2840,9 @@ tally 1:
0.000000E+00
0.000000E+00
1.935296E-02
3.745372E-04
4.914513E-02
2.415244E-03
3.745370E-04
4.914514E-02
2.415245E-03
3.076980E-01
3.868177E-02
2.022942E-01
@ -2875,10 +2875,10 @@ tally 1:
0.000000E+00
0.000000E+00
0.000000E+00
7.698117E-02
5.106927E-03
7.698116E-02
5.106926E-03
6.397704E-01
2.487692E-01
2.487693E-01
0.000000E+00
0.000000E+00
0.000000E+00
@ -3124,7 +3124,7 @@ tally 1:
8.227568E-02
6.769287E-03
2.170015E-02
4.708967E-04
4.708966E-04
1.342835E-01
1.803205E-02
0.000000E+00
@ -3139,8 +3139,8 @@ tally 1:
0.000000E+00
1.408666E-01
1.984341E-02
2.912092E-02
8.480282E-04
2.912093E-02
8.480284E-04
0.000000E+00
0.000000E+00
0.000000E+00
@ -3193,8 +3193,8 @@ tally 1:
0.000000E+00
2.698309E-01
5.659690E-02
7.539544E-03
5.684472E-05
7.539545E-03
5.684475E-05
0.000000E+00
0.000000E+00
0.000000E+00
@ -3357,7 +3357,7 @@ tally 1:
2.499121E-01
5.858178E-01
1.482815E-01
4.753060E-02
4.753061E-02
2.259158E-03
0.000000E+00
0.000000E+00
@ -3594,7 +3594,7 @@ tally 1:
0.000000E+00
0.000000E+00
1.275913E-02
8.900080E-05
8.900081E-05
7.974141E-02
3.206666E-03
0.000000E+00
@ -3701,10 +3701,10 @@ tally 1:
0.000000E+00
0.000000E+00
0.000000E+00
2.224856E-01
2.224855E-01
3.374440E-02
9.939442E-02
9.879251E-03
9.939443E-02
9.879253E-03
0.000000E+00
0.000000E+00
0.000000E+00
@ -3769,10 +3769,10 @@ tally 1:
0.000000E+00
0.000000E+00
0.000000E+00
2.394141E-02
5.731913E-04
2.394140E-02
5.731908E-04
2.225881E-01
4.954544E-02
4.954545E-02
0.000000E+00
0.000000E+00
0.000000E+00
@ -3797,8 +3797,8 @@ tally 1:
0.000000E+00
0.000000E+00
0.000000E+00
5.232219E-03
2.737612E-05
5.232218E-03
2.737611E-05
2.699331E-01
7.286389E-02
0.000000E+00
@ -3887,8 +3887,8 @@ tally 1:
3.750508E-02
4.494863E-01
2.020380E-01
1.524812E-02
2.325052E-04
1.524811E-02
2.325049E-04
0.000000E+00
0.000000E+00
5.591708E-01
@ -4281,7 +4281,7 @@ tally 1:
0.000000E+00
3.933218E-02
1.547021E-03
4.824740E-02
4.824739E-02
2.327811E-03
0.000000E+00
0.000000E+00
@ -4465,8 +4465,8 @@ tally 1:
6.344565E-02
4.457955E-01
9.943168E-02
4.346781E-03
1.889451E-05
4.346780E-03
1.889450E-05
0.000000E+00
0.000000E+00
0.000000E+00
@ -4585,7 +4585,7 @@ tally 1:
1.026482E-01
5.456703E-01
1.139540E-01
5.551968E-01
5.551969E-01
1.452833E-01
2.630569E-01
2.654789E-02
@ -5166,7 +5166,7 @@ tally 1:
4.295071E-01
9.355140E-02
1.311425E-03
1.719837E-06
1.719836E-06
0.000000E+00
0.000000E+00
0.000000E+00
@ -5612,7 +5612,7 @@ tally 1:
0.000000E+00
0.000000E+00
2.913120E-03
8.486267E-06
8.486266E-06
9.098084E-02
8.277514E-03
0.000000E+00
@ -6108,9 +6108,9 @@ tally 1:
1.475983E-02
2.178526E-04
1.747711E+00
8.535010E-01
8.535011E-01
7.461108E-02
5.566813E-03
5.566814E-03
0.000000E+00
0.000000E+00
0.000000E+00
@ -6453,7 +6453,7 @@ tally 1:
0.000000E+00
1.194798E-01
1.427541E-02
2.732160E-03
2.732161E-03
7.464701E-06
0.000000E+00
0.000000E+00
@ -6604,11 +6604,11 @@ tally 1:
0.000000E+00
0.000000E+00
2.362808E-01
5.091358E-02
7.208809E-03
5.196693E-05
5.091357E-02
7.208810E-03
5.196695E-05
5.757630E-01
2.687940E-01
2.687941E-01
9.778317E-02
4.820693E-03
0.000000E+00
@ -7349,8 +7349,8 @@ tally 1:
1.915958E-04
2.060666E-01
4.246344E-02
9.954400E-04
9.909008E-07
9.954401E-04
9.909010E-07
7.940105E-02
6.304526E-03
0.000000E+00

View file

@ -1,2 +1,2 @@
k-combined:
1.042387E+00 1.575316E-01
1.042388E+00 1.575316E-01

View file

@ -1,2 +1,2 @@
k-combined:
2.831017E-01 2.269866E-02
2.831014E-01 2.269849E-02

View file

@ -1,2 +1,2 @@
k-combined:
9.670751E-01 1.903257E-02
9.605085E-01 8.180822E-03

View file

@ -1,2 +1,2 @@
k-combined:
2.984064E-01 3.464414E-03
2.984064E-01 3.464413E-03

View file

@ -1,2 +1,2 @@
k-combined:
2.276055E+00 3.186525E-03
2.276055E+00 3.186526E-03

View file

@ -1,2 +1,2 @@
k-combined:
2.276020E+00 2.831786E-03
2.280812E+00 5.087968E-03

View file

@ -8,7 +8,7 @@ tally 1:
0.000000E+00
0.000000E+00
9.094323E-01
1.773089E-01
1.773090E-01
tally 2:
1.081920E+00
2.404883E-01

View file

@ -46,7 +46,7 @@ tally 2:
5.069422E-02
-2.045060E-01
2.197889E-01
1.307603E-01
1.307602E-01
5.938649E-02
-3.317004E-01
1.359233E-01
@ -54,7 +54,7 @@ tally 2:
7.528253E-02
7.685982E-02
4.559715E-02
-4.668783E-02
-4.668784E-02
4.065614E-02
1.447872E-01
5.538956E-02
@ -67,7 +67,7 @@ tally 2:
-3.028859E-01
3.382353E-02
-2.320613E-01
2.845905E-02
2.845904E-02
8.038034E-02
3.466746E-02
1.766484E-01
@ -90,17 +90,17 @@ tally 2:
2.704386E+01
-1.955516E-01
9.789273E-03
4.070150E-02
4.070149E-02
3.530892E-02
-1.446334E-01
3.374966E-02
-4.072015E-02
-4.072014E-02
1.407320E-02
1.056190E-01
2.144988E-02
-1.491728E-01
1.699068E-02
3.130539E-02
3.130540E-02
4.945783E-03
-1.706770E-01
6.943395E-03
@ -121,17 +121,17 @@ tally 2:
9.919028E-02
1.278789E-02
-1.274511E-01
9.357942E-03
9.357943E-03
-9.037073E-02
4.686665E-03
-7.895199E-03
8.526809E-03
-2.071828E-02
5.844892E-03
-2.071827E-02
5.844891E-03
-1.422877E-02
2.008170E-03
-7.787500E-02
9.642363E-03
9.642362E-03
-6.105504E-02
7.600775E-03
-1.249117E-01
@ -141,20 +141,20 @@ tally 2:
-9.171222E-02
4.220465E-03
8.798390E-02
5.037482E-03
5.037483E-03
4.366496E-02
8.411743E-03
1.605678E-02
6.994512E-03
6.994511E-03
-2.179875E-02
1.352098E-03
1.116755E-01
7.354423E-03
7.354424E-03
9.995739E-02
9.710025E-03
9.710026E-03
3.010324E-02
1.179938E-02
2.175816E-02
2.175815E-02
1.281441E-03
2.374886E-02
6.943432E-03
@ -188,7 +188,7 @@ tally 2:
4.811523E-01
-4.932440E-01
1.789106E-01
-3.705747E-02
-3.705746E-02
5.517840E-01
7.049764E-01
4.243943E-01
@ -196,7 +196,7 @@ tally 2:
2.014189E-01
-5.420278E-01
1.201572E-01
7.606098E-02
7.606099E-02
1.451071E-01
2.244026E-01
7.628680E-02
@ -206,7 +206,7 @@ tally 2:
1.958724E-01
-3.799191E-01
2.258678E-01
-5.909625E-01
-5.909624E-01
2.940322E-01
-6.336238E-01
1.272552E-01
@ -232,7 +232,7 @@ tally 2:
2.482914E-01
2.924945E+01
1.782032E+02
5.986907E-01
5.986908E-01
4.163713E-01
3.376452E-01
1.744277E-01
@ -258,7 +258,7 @@ tally 2:
5.960686E-02
-9.968550E-02
4.039270E-02
-1.235292E-02
-1.235291E-02
2.805714E-01
-7.494860E-02
2.838999E-02
@ -281,7 +281,7 @@ tally 2:
7.284620E-01
1.871262E-01
1.360134E-01
9.437336E-03
9.437335E-03
-3.088199E-01
2.292832E-02
-2.543226E-01
@ -306,39 +306,39 @@ tally 2:
2.067319E+01
2.381967E-01
4.786935E-02
-1.924307E-02
-1.924308E-02
4.029344E-02
3.179175E-02
2.098033E-02
-1.652307E-02
-1.652308E-02
9.391525E-03
-5.733037E-02
1.788394E-02
-5.733039E-02
1.788395E-02
4.942155E-02
1.206623E-03
1.874859E-02
1.874861E-02
1.917059E-02
-1.179838E-01
2.185564E-02
-9.270518E-03
-9.270508E-03
1.659002E-02
7.496510E-02
7.496511E-02
6.849931E-03
-1.004441E-01
4.570271E-03
-9.899603E-02
-9.899601E-02
1.027435E-02
-9.963859E-02
-9.963860E-02
4.686519E-03
-1.740638E-02
3.936514E-02
2.520348E-02
2.520349E-02
5.900520E-03
1.227791E-03
6.173783E-03
-3.068441E-02
6.867403E-03
-7.765653E-02
6.867402E-03
-7.765654E-02
1.399383E-02
7.333551E-02
4.139444E-03
@ -348,29 +348,29 @@ tally 2:
4.918888E-03
-1.106116E-01
1.143785E-02
7.254492E-03
1.337966E-03
7.254477E-03
1.337965E-03
2.365948E-01
2.473485E-02
5.176646E-02
1.514750E-03
-8.723609E-02
2.395099E-03
-8.723610E-02
2.395100E-03
-1.010207E-01
1.081070E-02
-5.113298E-02
6.053279E-03
-1.601115E-01
8.304230E-03
-5.105346E-03
-5.105345E-03
5.079654E-03
-8.894549E-02
2.505026E-03
-1.023874E-01
4.311776E-03
7.972835E-02
7.972837E-02
1.178305E-02
-2.560943E-02
-2.560942E-02
4.101793E-03
2.312203E-02
3.036209E-03
@ -382,7 +382,7 @@ tally 2:
1.400732E+00
4.934620E-01
7.673322E-01
-2.964444E-02
-2.964442E-02
2.262500E-01
-2.225956E-01
4.872938E-01
@ -418,15 +418,15 @@ tally 2:
2.484316E-01
-2.258513E-01
8.839687E-02
-9.307566E-01
-9.307565E-01
4.802462E-01
1.108577E-01
4.451362E-02
4.451363E-02
1.118965E+00
5.173979E-01
4.314600E-01
5.176751E-02
-2.864060E-01
-2.864059E-01
9.159895E-02
-4.471918E-01
1.743046E-01

View file

@ -116,7 +116,7 @@ tally 2:
5.215322E-04
1.571095E-02
9.166057E-04
7.226989E-03
7.226990E-03
3.683499E-04
-2.456165E-02
1.571441E-04
@ -154,7 +154,7 @@ tally 2:
6.914145E-05
-5.873760E-03
2.229738E-04
6.666510E-03
6.666511E-03
1.394147E-04
-3.245528E-03
1.550876E-04
@ -192,7 +192,7 @@ tally 2:
6.688120E-03
-8.231311E-02
2.743044E-02
1.172791E-02
1.172790E-02
1.089457E-02
-1.545389E-01
2.655167E-02
@ -201,7 +201,7 @@ tally 2:
2.773254E-02
1.070478E-02
-2.522703E-02
1.136506E-02
1.136507E-02
-1.287564E-02
4.969443E-03
3.471629E-02
@ -277,34 +277,34 @@ tally 2:
5.659008E-03
4.488733E-04
-1.625829E-02
2.325229E-04
2.325228E-04
2.554220E-02
7.666018E-04
-2.251672E-02
7.703442E-04
-8.302473E-03
-8.302474E-03
2.748216E-04
-7.692439E-02
2.167893E-03
7.267773E-03
7.781908E-04
7.267774E-03
7.781907E-04
6.821338E-03
9.518921E-04
9.518920E-04
-2.203951E-02
2.214610E-03
2.052514E-02
3.756195E-04
-4.158574E-02
9.330261E-04
-4.158575E-02
9.330262E-04
-3.000932E-02
4.584914E-04
-2.247072E-02
2.519845E-04
1.589401E-02
2.302726E-04
-7.793790E-04
-7.793787E-04
1.588955E-04
-4.634908E-03
-4.634907E-03
5.395803E-04
-1.193817E-02
1.674419E-04
@ -368,7 +368,7 @@ tally 2:
4.167797E-01
-4.347270E-01
3.702158E-01
-7.344612E-02
-7.344613E-02
5.940699E-02
1.081217E+00
4.070812E-01
@ -377,7 +377,7 @@ tally 2:
2.656115E-01
8.561866E-02
-1.286933E-01
8.347413E-02
8.347414E-02
1.258195E-01
3.329577E-02
-3.751107E-01
@ -406,7 +406,7 @@ tally 2:
5.017106E-02
2.266133E-01
1.131899E-01
7.161674E-04
7.161662E-04
3.345992E-02
-1.987041E-01
1.381432E-01

View file

@ -1,2 +1,2 @@
k-combined:
3.034005E-01 5.499078E-03
3.034005E-01 5.499077E-03

View file

@ -610,7 +610,7 @@ tally 1:
1.264629E-03
5.949953E-07
4.409634E-03
5.032697E-06
5.032698E-06
0.000000E+00
0.000000E+00
0.000000E+00

View file

@ -1,2 +1,2 @@
k-combined:
3.109090E-01 5.807934E-03
3.109090E-01 5.807935E-03

View file

@ -729,7 +729,7 @@ tally 1:
1.477216E-05
2.698876E-03
3.931578E-06
7.470783E-03
7.470784E-03
2.887854E-05
0.000000E+00
0.000000E+00
@ -1210,7 +1210,7 @@ tally 1:
3.278961E-03
7.369638E-06
7.462474E-03
2.983181E-05
2.983182E-05
0.000000E+00
0.000000E+00
0.000000E+00
@ -1690,7 +1690,7 @@ tally 1:
9.790439E-04
2.045088E-06
5.377302E-03
1.508922E-05
1.508923E-05
0.000000E+00
0.000000E+00
0.000000E+00

View file

@ -1,5 +1,5 @@
k-combined:
9.851940E-01 4.283951E-03
9.851940E-01 4.283950E-03
tally 1:
1.972289E+01
2.779778E+01

View file

@ -1,5 +1,5 @@
k-combined:
9.851940E-01 4.283951E-03
9.851940E-01 4.283950E-03
tally 1:
1.972289E+01
2.779778E+01

View file

@ -1,5 +1,5 @@
k-combined:
9.824135E-01 6.844128E-03
9.824135E-01 6.844127E-03
tally 1:
1.408810E+01
1.985836E+01