fission_rate_module.f90 File Reference

Count the amount of fission rates in half-life format. More...

Go to the source code of this file.

Data Types

type  fission_rate_module::fissionrate_type
 fission rate type, designed to save fragment distribution at initialization More...
 
type  fission_rate_module::fragtype
 

Modules

module  fission_rate_module
 Module to deal with fission reactions.
 

Functions/Subroutines

subroutine, public fission_rate_module::init_fission_rates ()
 Initialize the fission reactions. More...
 
subroutine, private fission_rate_module::reorder_fragments ()
 Reorder the fission fragments. More...
 
subroutine, private fission_rate_module::write_reac_verbose_out ()
 Write the amount of individual reactions to the out. More...
 
subroutine, private fission_rate_module::read_binary_fission_reaction_data (path)
 Read the fission reactions and fragment distributions from a binary file. More...
 
subroutine, public fission_rate_module::output_binary_fission_reaction_data (path)
 Save the fission data to a unformatted binary file. More...
 
subroutine, public fission_rate_module::merge_fission_rates (rrate_array, rrate_length, fiss_count)
 Merge fission rates with larger array. More...
 
subroutine, private fission_rate_module::modify_halflifes (rrate, rrate_length, fissrate_in, nfiss_in)
 Modifies half lifes of beta decays to include fission. More...
 
subroutine, private fission_rate_module::count_fission_rates ()
 Count the amount of fission rates. More...
 
subroutine, private fission_rate_module::count_fission_rates_reaclib_format (fission_rate_file, count_rates)
 Count the amount of fission rates in reaclib format. More...
 
subroutine, private fission_rate_module::count_fission_rates_halflife_format (fission_rate_file, count_rates)
 
subroutine, private fission_rate_module::count_fission_rates_probability_format (fission_rate_file, count_rates, nr_cols)
 
subroutine fission_rate_module::add_fission_fragments ()
 Initializes the rates with fragments. More...
 
subroutine, private fission_rate_module::read_fission_rates ()
 Read the fission rates, splitted into different types of fission. More...
 
subroutine, private fission_rate_module::read_fission_rates_reaclib_format (fission_path, reac_type, start_idx)
 
subroutine, private fission_rate_module::read_fission_rates_probability_format (fission_path, reac_type, start_idx)
 
subroutine, private fission_rate_module::read_fission_rates_halflife_format (fission_path, reac_type, start_idx)
 
subroutine, private fission_rate_module::fiss_dist (fissrate_inout)
 Determines fission fragment mass distribution as described in Panov et al. 2001. More...
 
subroutine, private fission_rate_module::kodtakdist (fissrate_inout)
 Kodama-Takahashi distribution. More...
 
subroutine fission_rate_module::read_fiss_fragment_file (file, fragment_array)
 
subroutine fission_rate_module::file_fiss_frag (fissrate_inout, missing_frags)
 Fill the rates with the correct fragments. More...
 
subroutine, private fission_rate_module::abla_nfiss (pos, mass, pnr, neutfission, qval)
 Calculates the (neutron-induced) fission fragment mass distribution according to the ABLA07 model: Kelic, Ricciardi, & Schmidt (arXiv:0906.4193) More...
 
subroutine, private fission_rate_module::abla_betafiss (pos, mass, pnr, betafission, qval)
 Calculates the (beta-delayed and spontaneous) fission fragment mass distribution according to the ABLA07 model: Kelic, Ricciardi, & Schmidt (arXiv:0906.4193) More...
 

Variables

type(fissionrate_type), dimension(:), allocatable, public fission_rate_module::fissrate
 Array storing fission reactions. More...
 
real(r_kind), dimension(:,:), allocatable, private fission_rate_module::beta_delayed_fiss_probs
 
integer, private fission_rate_module::amount_cols
 Amount of columns in the beta-delayed fission file. More...
 
character(len= *), parameter, private fission_rate_module::fiss_binary_name ='fiss_rates.windat'
 Name of the binary file containing the fission rates. More...
 
type(fragtype), dimension(:), allocatable, private fission_rate_module::fissfrags_n_induced
 Array storing fragment distributions of neutron-induced fission from file. More...
 
type(fragtype), dimension(:), allocatable, private fission_rate_module::fissfrags_spontaneous
 Array storing fragment distributions of spontaneous fission from file. More...
 
type(fragtype), dimension(:), allocatable, private fission_rate_module::fissfrags_beta_delayed
 Array storing fragment distributions of beta-delayed fission from file. More...
 
integer, parameter, public fission_rate_module::fiss_neglect =5
 Amount of fission fragments not to be neglected. More...
 
integer, public fission_rate_module::nfiss
 Amount of fission rates. More...
 
integer, private fission_rate_module::nfiss_spont
 Amount of spontaneous fission rates. More...
 
integer, private fission_rate_module::nfiss_n_ind
 Amount of neutron induced fission rates. More...
 
integer, private fission_rate_module::nfiss_bdel
 Amount of beta-delayed fission rates. More...
 
integer, private fission_rate_module::nufiss
 total number of fission neutrons More...
 
integer, private fission_rate_module::n_nf
 
integer, private fission_rate_module::n_bf
 
integer, private fission_rate_module::n_sf
 Amount of individual reactions. More...
 

Detailed Description

Count the amount of fission rates in half-life format.

Read the fission distribution from a file.

Read fission rates in half-life format.

Read the fission rates in probability format.

Reads fission rates in Reaclib format.

Count the amount of fission rates in probability format.

The error file code for this file is W19. Contains the module fission_rate_module

This subroutine counts the amount of fission rates in half-life format and stores the result in count_rates. This is necessary to allocate the fission array with the correct length. The subroutine can be called for spontaneous and beta-delayed fission. An example of an entry can be:

th198 4.760787e-09 kh20 th199 2.808520e-08 kh20 th200 2.841403e-08 kh20 ...} where the first columns gives the nucleus, the second the halflife in seconds and the third the source. Note that in this format, no beta-delayed neutrons can be specified.

Author
M. Reichert
Date
30.05.24

This subroutine counts the amount of fission rates in probability format and stores the result in count_rates. This is necessary to allocate the fission array with the correct length. The subroutine can be called for beta-delayed fission. An example of an entry can be:

pa291 mp18 0.000 0.008 0.000 0.015 0.000 0.018 0.000 0.025 0.000 0.003 pa292 mp18 0.000 0.001 0.002 0.000 0.004 0.000 0.006 0.000 0.018 0.000 pa293 mp18 0.239 0.001 0.000 0.009 0.000 0.010 0.000 0.014 0.000 0.009 ...} where the first line of an entry gives nucleus name and the source. The second line gives the probabilities of the fission channels (i.e., P0nf, P1nf, ...). Note that there is a maximum number of columns (i.e., neutron emission) set to 30 here. Throughout the file, the amount of possible channels have to stay the same, but they can be different for two different files. For example, for Panov et al. 2005 the file could look like:

u259 pa05 0.990 u260 pa05 0.020 u261 pa05 0.990 ...}.

Author
M. Reichert
Date
30.05.24

This subroutine reads the fission rates that are specified in the file parameter_class::fission_rates. Fission rates are implemented with the same fits and a similar format as usual reaclib rates (see reaclib_rate_module::read_reaclib). An example looks like:

th256 ms99w 0.00000E+00 1.988512E-02 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 th257 ms99w 0.00000E+00 -1.483947E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 ...} The chapter structure is the same as in reaclib, but only the parent nucleus has an entry. The products are given by the respective fission fragment distribution.

Returns
fissrate filled with fission rates
Author
M. Eichler

Edited:

  • 25.01.21 (MR): Moved from init_network to this new independent subroutine
  • 27.05.24 (MR): Moved initializing fragments to independent subroutine

This subroutine reads fission rates in probability format and stores the result in count_rates. The subroutine can be called for beta-delayed fission and will throw an error for other types of fission. An example of an entry can be:

pa291 mp18 0.000 0.008 0.000 0.015 0.000 0.018 0.000 0.025 0.000 0.003 pa292 mp18 0.000 0.001 0.002 0.000 0.004 0.000 0.006 0.000 0.018 0.000 pa293 mp18 0.239 0.001 0.000 0.009 0.000 0.010 0.000 0.014 0.000 0.009 ...} where the first line of an entry gives nucleus name and the source. The second line gives the probabilities of the fission channels (i.e., P0nf, P1nf, ...). Note that there is a maximum number of columns (i.e., neutron emission) set to 30 here. Throughout the file, the amount of possible channels have to stay the same, but they can be different for two different files. For example, for Panov et al. 2005 the file could look like:

u259 pa05 0.990 u260 pa05 0.020 u261 pa05 0.990 ...}.

Author
M. Reichert
Date
31.05.24

This subroutine reads fission rates in half-life format. The subroutine can be called for spontaneous and beta-delayed fission and throws an error otherwise. An example of an entry can be:

th198 4.760787e-09 kh20 th199 2.808520e-08 kh20 th200 2.841403e-08 kh20 ...} where the first columns gives the nucleus, the second the halflife in seconds and the third the source. Note that in this format, no beta-delayed neutrons can be specified.

Author
M. Reichert
Date
30.05.24

The fission distribution is read from a file and stored in the fragment_array. The default file contains the fission distribution according to Mumpower et al. (2020). However, the format has been modified compared to the original publication. An example of the file looks like:

93 220 574 0 0 0 019 048 1.96607e-06 020 048 2.24289e-05 020 049 1.88041e-05 020 050 7.65944e-06 } The first line contains the Z, A and number of the fissioning nucleus. The next line is a dummy line. Then followed by Z, A and the yield Y(Z,A). Note that \(\sum Y(Z,A) \cdot A \) should be the mass number of the parent nucleus. Furthermore, \(\sum Y(Z,A) = 2\) in case 2 fragments are created. A large part of the subroutine deals with the problem what to do if the fragment is not included in the network. In case of a nucleus heavier than the ones contained in the network, the fragment is split into a lighter isotope plus neutrons. For lighter nuclei where neutrons would be necessary to create a nucleus that is in the network, the neutrons are "borrowed" from the heaviest fragment. This latter case should almost never happen. If the remapping fails for some reason, an error will be raised.

See also
Mumpower et al. (2020).
Author
M. Reichert
Date
14.02.23

Definition in file fission_rate_module.f90.