Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ Given here are some release notes for NJOY2016. Each release is made through a f
This update fixes the following issues:
- GROUPR output now correctly distinguishes between level numbers and isomeric numbers when extracting nuclide production.
- LEAPR now sets the EMAX value in MF1 MT451 to be equal to the B(4) value in MF7 MT4.
- PURR now uses quicksort instead of bubble sort, which leads to a significant speedup in this module. This change should have no effect on the values of the probability table.
- ACER now correctly handles discrete primary gammas in File 6 for the ENDF/B-VIII.1 release, which uses a different format than JEFF and JENDL libraries.

In addition, this update added the following features and changes:
- Added optional card9a to GROUPR to support extracting MF=9 and MF=10 production channels with resulting level numbers greater than 9.

The cmake files were simplified to allow for the use of LLVM's flang compiler. A minor update was mode to GROUPR as well to allow for compilation with LLVM flang.
- Two group structures were added to GROUPR (the apollo 99-group structure and the ecco 1962-group structure). The shem epm 295-group structure and shem cea/epm 361-group structure were updated as well.

## [NJOY2016.78](https://github.com/njoy/NJOY2016/pull/361)
This update fixes the following issues:
Expand Down
65 changes: 61 additions & 4 deletions src/acefc.f90
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ module acefc
integer::mt103,mt104,mt105,mt106,mt107
integer::mpmin,mpmax,mdmin,mdmax,mtmin,mtmax,m3min,m3max,m4min,m4max

!-- adding variables to hold the library and version
integer::nlib,lrel,nver

! record parameters for Type-2 binary files
integer::ner,nbw

Expand Down Expand Up @@ -152,6 +155,9 @@ subroutine acetop(nendf,npend,ngend,nace,ndir,iprint,itype,mcnpx,&
call repoz(nendf)
call tpidio(nendf,0,0,b,nb,nw)
call contio(nendf,0,0,b,nb,nw)
!-- get library
nlib = n1h

call contio(nendf,0,0,b,nb,nw)
if (n1h.ne.0) then
iverf=4
Expand All @@ -162,6 +168,11 @@ subroutine acetop(nendf,npend,ngend,nace,ndir,iprint,itype,mcnpx,&
endif
write(nsyso,'(/'' using endf-'',i1,'' format'')') iverf

!-- get library release
call contio(nendf,0,0,b,nb,nw)
lrel = l1h
nver=n2h

!--assign scratch files
mscr=10
mscr=iabs(mscr)
Expand Down Expand Up @@ -8669,6 +8680,25 @@ subroutine acelpp(next,matd,ngmt,nin)
'reset to 1.e-5 eV')
ep=1.e-5_kr
endif
!-- ENDF-8.1 formats primary gamma energy as the outgoing
!-- energy at each incident energy. JENDL (and JEFF) format
!-- them as the binding energy. NJOY expects the binding
!-- energy so this logic changes the value if the evaluation
!-- is from ENDF-8.1. This will hopefully be resolved before
!-- the next ENDF release.
if (law.eq.1.and.ep.lt.zero) then
if (nlib.eq.0.and.nver.eq.8.and.lrel.eq.1) then
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add a warning for the user to check the format to be sure it is done correctly for non-ENDF evaluations?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a message in the else block that the gammas are assumed to follow the JENDL format

!-- convert to the (negated) binding energy value
ep=ep+ei*awr/(awr+1)
call mess('acelpp',&
'Handling MF6 ENDF-8.1 discrete primary gamma ',&
'format by converting to JENDL format')
else
call mess('acelpp',&
'Handling MF6 discrete primary gammas by ',&
'assuming the JENDL-5.0 format.')
endif
endif
if (law.eq.2) ep=ep-awr*ei/(awr+1)
dise(ki)=ep
if (ki.gt.1) then
Expand All @@ -8691,6 +8721,18 @@ subroutine acelpp(next,matd,ngmt,nin)
'reset to 1.e-5 eV')
ep=1.e-5_kr
endif
!-- ENDF-8.1 formats primary gamma energy as the outgoing
!-- energy at each incident energy. JENDL (and JEFF) format
!-- them as the binding energy. NJOY expects the binding
!-- energy so this logic changes the value if the evaluation
!-- is from ENDF-8.1. This will hopefully be resolved before
!-- the next ENDF release
if (law.eq.1.and.ep.lt.zero) then
if (nlib.eq.0.and.nver.eq.8.and.lrel.eq.1) then
!-- convert to the (negated) binding energy value
ep=ep+ei*awr/(awr+1)
endif
endif
if (law.eq.2) ep=ep-awr*ei/(awr+1)
if (ki.gt.1.) then
if (ep.eq.scr(5+2*(ki-1)))&
Expand All @@ -8703,7 +8745,7 @@ subroutine acelpp(next,matd,ngmt,nin)
!--found a new discrete energy. insert it into
!--the existing dise array, making sure to
!--maintain a highest to lowest energy order.
if (abs(scr(5+2*ki)).gt.abs(dise(1))) then
if (abs(ep).gt.abs(dise(1))) then
do m=nd0,1,-1
dise(m+1)=dise(m)
enddo
Expand Down Expand Up @@ -8827,8 +8869,15 @@ subroutine acelpp(next,matd,ngmt,nin)
!--photon.
if (nd0.ne.0.and.nd.eq.nd0) then
do nn=1,nd
if (law.eq.1.and.scr(5+2*nn).lt.zero)&
scr(5+2*nn)=-scr(5+2*nn)+ei*awr/(awr+1)
if (law.eq.1.and.scr(5+2*nn).lt.zero) then
!-- if ENDF8.1, don't need to convert to gamma energy
!-- from binding energy - just negate
if (nlib.eq.0.and.nver.eq.8.and.lrel.eq.1) then
scr(5+2*nn)=-scr(5+2*nn)
else
scr(5+2*nn)=-scr(5+2*nn)+ei*awr/(awr+1)
endif
endif
enddo
elseif (nd0.ne.0.and.nd.ne.nd0) then
!--if nd=0 then must insert all discrete photons
Expand Down Expand Up @@ -8865,7 +8914,15 @@ subroutine acelpp(next,matd,ngmt,nin)
!--to account for the incident neutron energy.
do m=nd0,1,-1
ep=dise(m)
if (law.eq.1.and.ep.lt.zero)ep=-ep+ei*awr/(awr+1)
if (law.eq.1.and.ep.lt.zero) then
!-- if ENDF8.1, don't need to convert to gamma energy
!-- from binding energy - just negate
if (nlib.eq.0.and.nver.eq.8.and.lrel.eq.1) then
ep=-ep
else
ep=-ep+ei*awr/(awr+1)
endif
endif
if (law.eq.2)ep=ep+ei*awr/(awr+1)
scr(5+2*m)=ep
scr(6+2*m)=zero
Expand Down
12 changes: 12 additions & 0 deletions tests/87/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/input"
"${CMAKE_CURRENT_BINARY_DIR}/input" COPYONLY )

configure_file("${CMAKE_CURRENT_SOURCE_DIR}/referenceTape41"
"${CMAKE_CURRENT_BINARY_DIR}/referenceTape41" COPYONLY )

configure_file("${RESOURCES}/n-078_Pt_190-ENDF8.1.endf"
"${CMAKE_CURRENT_BINARY_DIR}/tape20" COPYONLY )

add_test( NAME "Test87"
COMMAND ${Python3_EXECUTABLE} "../execute.py"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" )
31 changes: 31 additions & 0 deletions tests/87/input
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
-- n-078_Pt_190_converted ACE file
moder
20 -21
reconr
-21 -22/
'reconr/pendf tape for ENDF81 Pt190'/
7825 0/
.001/
0 /
broadr
-21 -22 -23/
7825 1 0 0/
.001/
293.6/
0/
purr
-21 -23 -24/
7825 1 1 20 4 1 2/
293.6 /
1.e10 /
0/
moder
-24 34
acer
-21 -24 0 41 42
1 0 1 .10 /
'fast acer tape for n-078_Pt_190_converted' /
7825 293.6 /
/
/
stop
Loading
Loading