-
Notifications
You must be signed in to change notification settings - Fork 99
ENDF/B-VIII.1 Discrete primary gamma format discrepancy handling in ACER #391
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
e144957
2f519e5
71f3a9c
1fdf647
5b1ed5e
b51ec8e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -45,6 +45,11 @@ module acefc | |
| integer::mt103,mt104,mt105,mt106,mt107 | ||
| integer::mpmin,mpmax,mdmin,mdmax,mtmin,mtmax,m3min,m3max,m4min,m4max | ||
|
|
||
| !-- Modification Jan 2026 by A. Lewis | ||
| !-- adding variables to hold the library and version | ||
| integer::nlib,lrel,nver | ||
| !-- end of Jan 2026 modification | ||
|
|
||
| ! record parameters for Type-2 binary files | ||
| integer::ner,nbw | ||
|
|
||
|
|
@@ -152,6 +157,11 @@ 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) | ||
| !-- Modification Jan 2026 by A. Lewis | ||
| !-- get library | ||
| nlib = n1h | ||
| !-- end of Jan 2026 edit | ||
|
|
||
| call contio(nendf,0,0,b,nb,nw) | ||
| if (n1h.ne.0) then | ||
| iverf=4 | ||
|
|
@@ -162,6 +172,13 @@ subroutine acetop(nendf,npend,ngend,nace,ndir,iprint,itype,mcnpx,& | |
| endif | ||
| write(nsyso,'(/'' using endf-'',i1,'' format'')') iverf | ||
|
|
||
| !-- Modification Jan 2026 by A. Lewis | ||
| !-- get library release | ||
| call contio(nendf,0,0,b,nb,nw) | ||
| lrel = l1h | ||
| nver=n2h | ||
| !-- end of Jan 2026 edit | ||
|
|
||
| !--assign scratch files | ||
| mscr=10 | ||
| mscr=iabs(mscr) | ||
|
|
@@ -8669,6 +8686,23 @@ subroutine acelpp(next,matd,ngmt,nin) | |
| 'reset to 1.e-5 eV') | ||
| ep=1.e-5_kr | ||
| endif | ||
| !-- Modification Jan 2026 A. Lewis | ||
| !-- 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 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 ENDF-8.1 discrete primary gamma ',& | ||
| 'format by converting to JENDL format') | ||
| endif | ||
| endif | ||
| !-- end of Jan 2026 modification | ||
| if (law.eq.2) ep=ep-awr*ei/(awr+1) | ||
| dise(ki)=ep | ||
| if (ki.gt.1) then | ||
|
|
@@ -8691,6 +8725,20 @@ subroutine acelpp(next,matd,ngmt,nin) | |
| 'reset to 1.e-5 eV') | ||
| ep=1.e-5_kr | ||
| endif | ||
| !-- Modification Jan 2026 A. Lewis | ||
| !-- 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 | ||
| !-- end of Jan 2026 modification | ||
| if (law.eq.2) ep=ep-awr*ei/(awr+1) | ||
| if (ki.gt.1.) then | ||
| if (ep.eq.scr(5+2*(ki-1)))& | ||
|
|
@@ -8703,7 +8751,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 | ||
|
|
@@ -8827,8 +8875,17 @@ 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 | ||
| !-- Modification Jan 2026 A. Lewis | ||
| !-- 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 | ||
| !-- end of Jan 2026 modification | ||
| endif | ||
| enddo | ||
| elseif (nd0.ne.0.and.nd.ne.nd0) then | ||
| !--if nd=0 then must insert all discrete photons | ||
|
|
@@ -8865,7 +8922,17 @@ 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 | ||
| !-- Modification Jan 2026 A. Lewis | ||
| !-- 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 | ||
| ! end of Jan 2026 modification | ||
| endif | ||
| if (law.eq.2)ep=ep+ei*awr/(awr+1) | ||
| scr(5+2*m)=ep | ||
| scr(6+2*m)=zero | ||
|
|
||
| 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}" ) |
| 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 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you can remove the modification comments (begin and end)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
they've all been removed