store_neutrons Subroutine

public subroutine store_neutrons(rate, orbit_class)

Store neutron rate in neutron

Arguments

Type IntentOptional AttributesName
real(kind=Float64), intent(in) :: rate

Neutron rate [neutrons/sec]

integer, intent(in), optional :: orbit_class

Orbit class ID


Called by

proc~~store_neutrons~~CalledByGraph proc~store_neutrons store_neutrons proc~neutron_mc neutron_mc proc~neutron_mc->proc~store_neutrons proc~neutron_f neutron_f proc~neutron_f->proc~store_neutrons program~fidasim fidasim program~fidasim->proc~neutron_mc program~fidasim->proc~neutron_f

Contents

Source Code


Source Code

subroutine store_neutrons(rate, orbit_class)
    !+ Store neutron rate in [[libfida:neutron]]
    real(Float64), intent(in)     :: rate
        !+ Neutron rate [neutrons/sec]
    integer, intent(in), optional :: orbit_class
        !+ Orbit class ID

    integer :: iclass

    if(present(orbit_class)) then
        iclass = min(orbit_class,particles%nclass)
    else
        iclass = 1
    endif

    !$OMP ATOMIC UPDATE
    neutron%rate(iclass)= neutron%rate(iclass) + rate
    !$OMP END ATOMIC

end subroutine store_neutrons