From 838bb351fcf7ac6b75287475eedb898f508a8843 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 19 Mar 2012 14:07:27 -0400 Subject: [PATCH] Added option to change random number seed based on cmfd_parallel branch. --- docs/source/usersguide/input.rst | 8 ++++++++ src/global.F90 | 3 +++ src/initialize.F90 | 6 +++--- src/input_xml.F90 | 4 ++++ src/random_lcg.F90 | 4 +++- src/xml-fortran/templates/settings_t.xml | 1 + 6 files changed, 22 insertions(+), 4 deletions(-) diff --git a/docs/source/usersguide/input.rst b/docs/source/usersguide/input.rst index 55072f24fa..3e0aec34e7 100644 --- a/docs/source/usersguide/input.rst +++ b/docs/source/usersguide/input.rst @@ -404,6 +404,14 @@ sub-elements and can be set to either "off" or "on". *Default*: on +``seed`` Element +---------------- + +The ``seed`` element is used to set the seed used for the linear congruential +pseudo-random number generator. + + *Default*: 1 + ``source`` Element ------------------ diff --git a/src/global.F90 b/src/global.F90 index c64ebedc9d..5fadb2e1af 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -211,6 +211,9 @@ module global ! Message used in message/warning/fatal_error character(MAX_LINE_LEN) :: message + ! Random number seed + integer(8) :: seed = 1_8 + ! Problem type integer :: problem_type = PROB_CRITICALITY diff --git a/src/initialize.F90 b/src/initialize.F90 index 3d3719b48d..3275c1c282 100644 --- a/src/initialize.F90 +++ b/src/initialize.F90 @@ -72,15 +72,15 @@ contains call header("INITIALIZATION", level=1) end if - ! Initialize random number generator - call initialize_prng() - ! set up dictionaries call create_dictionaries() ! Read XML input files call read_input_xml() + ! Initialize random number generator + call initialize_prng() + ! Set up universe structures call prepare_universes() diff --git a/src/input_xml.F90 b/src/input_xml.F90 index c1257855e1..2837fd1ebf 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -68,6 +68,7 @@ contains cross_sections_ = "" verbosity_ = 0 energy_grid_ = "union" + seed_ = 0_8 ! Parse settings.xml file call read_xml_file_settings_t(filename) @@ -112,6 +113,9 @@ contains call fatal_error() end if + ! Copy random number seed if specified + if (seed_ > 0) seed = seed_ + ! Energy grid methods select case (energy_grid_) case ('nuclide') diff --git a/src/random_lcg.F90 b/src/random_lcg.F90 index 674be52122..694885c013 100644 --- a/src/random_lcg.F90 +++ b/src/random_lcg.F90 @@ -49,7 +49,9 @@ contains subroutine initialize_prng() - prn_seed0 = 1_8 + use global, only: seed + + prn_seed0 = seed prn_seed = prn_seed prn_mult = 2806196910506780709_8 prn_add = 1_8 diff --git a/src/xml-fortran/templates/settings_t.xml b/src/xml-fortran/templates/settings_t.xml index 4b450f5724..dbe8bd6226 100644 --- a/src/xml-fortran/templates/settings_t.xml +++ b/src/xml-fortran/templates/settings_t.xml @@ -32,6 +32,7 @@ +