Skip to content

Commit

Permalink
Merge pull request #335 from njoy/develop
Browse files Browse the repository at this point in the history
NJOY2016.75
  • Loading branch information
whaeck authored Apr 30, 2024
2 parents a0a3340 + 8eb1348 commit e35894e
Show file tree
Hide file tree
Showing 79 changed files with 377,800 additions and 100 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ContinuousIntegration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
run: |
which ${{matrix.vFortran}}
${{matrix.vFortran}} --version
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: mkdir bin
run: mkdir bin
- name: cmake
Expand Down
10 changes: 10 additions & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
# Release Notes—NJOY2016
Given here are some release notes for NJOY2016. Each release is made through a formal [Pull Request](https://github.com/njoy/NJOY2016/pulls) made on GitHub. There are links in this document that point to each of those Pull Requests, where you can see in great details the changes that were made. Often the Pull Requests are made in response to an [issue](https://github.com/njoy/NJOY2016/issues). In such cases, links to those issues are also given.

## [NJOY2016.75](https://github.com/njoy/NJOY2016/pull/xxx)
This update fixes the following issues:
- Corrected a typo in the gateff subroutine in thermr (changed 1220 into 1200, see issue #76)

In addition, this update made added the following features and changes:
- A small change to the NXS array for continuous energy and photonuclear ACE files (iopt = 1 and 5): in both cases, the isomeric state S, atom number Z and mass number A are now stored in NXS(9), NXS(10) and NXS(11) respectively.
- A new input option for acer was introduced for setting the zaid identifier of the continuous energy and photonuclear ACE files (iopt = 1 and 5):
- use za in the zaid regardless of the metastable state of the nuclide (default, this is how NJOY has always worked)
- use the metastable zaid rules (MCNP 6.3 or lower) in which we use za for ground state nuclides and use za + 300 + s * 100 for metastable nuclides (Am242 and Am242m are exceptions to this rule, for these we use 95642 and 95242 respectively)

## [NJOY2016.74](https://github.com/njoy/NJOY2016/pull/327)
This update fixes the following issues:
- Correct the Euler-Mascheroni constant (this has an influence on the Coulomb wave functions and therefore influences LRF=7 evaluations that have charged particle channels)
Expand Down
30 changes: 30 additions & 0 deletions docs/testDescription.md
Original file line number Diff line number Diff line change
Expand Up @@ -381,3 +381,33 @@ Tests 75 was added to track an issue found in ACER when multiple temperatures we
[[input](https://raw.githubusercontent.com/njoy/NJOY2016/master/tests/76/input)]

Tests 76 was added to track a few CCCCR issues. Unfortunately, these issues were related to a binary file so we cannot verify the content of the file just yet. At the very least, we now have a test to verify if CCCCR actually runs (there was previously a crash on this input).

## Test Problem 78

[[input](https://raw.githubusercontent.com/njoy/NJOY2016/master/tests/78/input)]

Tests 78 was added to track an ACER issue for heating numbers in photonuclear file. When calculating heating numbers based on ENDF LAW=2, ACER assumed that the yield of the secondary particle is always 1, which is correct in all cases except when MT5 is used as a lumped reaction.

## Test Problem 79

[[input](https://raw.githubusercontent.com/njoy/NJOY2016/master/tests/79/input)]

Tests 79 was added to track an issue in HEATR when calculating the average outgoing energy from a distribution that uses multiple interpolation ranges in TAB1 records. Mainly nuclides using MF5 instead of MF6 are impacted by this change (e.g. Sn119 and Sn122 from ENDF/B-VIII.0).

## Test Problem 80

[[input](https://raw.githubusercontent.com/njoy/NJOY2016/master/tests/80/input)]

Tests 80 was added to track an issue in LEAPR that caused an inifite loop to occur when the beta grid contains very small values.

## Test Problem 81

[[input](https://raw.githubusercontent.com/njoy/NJOY2016/master/tests/81/input)]

Tests 81 was added as a test for background R-matrix elements that were added to the ENDF/B-VIII.1 Sr88 evaluation.

## Test Problem 82

[[input](https://raw.githubusercontent.com/njoy/NJOY2016/master/tests/82/input)]

Tests 82 was added to track the new ZAID options in ACER added in NJOY2016.75.
70 changes: 44 additions & 26 deletions src/acefc.f90
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module acefc
real(kr)::aw0,tz

! parameters for continuous nxs block
integer::len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,nxsd(8)
integer::len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,is,iz,ia,nxsd(5)

! parameters for continuous jxs block
integer::esz,nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw,dlw,&
Expand Down Expand Up @@ -85,7 +85,7 @@ module acefc
contains

subroutine acetop(nendf,npend,ngend,nace,ndir,iprint,itype,mcnpx,&
suff,hk,izn,awn,matd,tempd,newfor,iopp,ismooth,thin)
suff,hk,izn,awn,matd,tempd,newfor,iopp,ismooth,thin,izaoption)
!--------------------------------------------------------------------
! Prepare an ACE fast continuous file.
!--------------------------------------------------------------------
Expand All @@ -94,7 +94,7 @@ subroutine acetop(nendf,npend,ngend,nace,ndir,iprint,itype,mcnpx,&
use endf ! provides endf routines and variables
! externals
integer::nendf,npend,ngend,nace,ndir,iprint,itype,matd,newfor,iopp,ismooth,i
integer::mcnpx
integer::mcnpx,izaoption
real(kr)::suff
character(70)::hk
integer::izn(16)
Expand Down Expand Up @@ -205,7 +205,7 @@ subroutine acetop(nendf,npend,ngend,nace,ndir,iprint,itype,mcnpx,&
call atend(mscr,0)

!--load ace data into memory.
call acelod(mscr,suff,matd,tempd,newfor,mcnpx,ismooth)
call acelod(mscr,suff,matd,tempd,newfor,mcnpx,ismooth,izaoption)

!--print ace file.
if (iprint.gt.0) call aceprt(hk)
Expand Down Expand Up @@ -286,17 +286,25 @@ subroutine first(nendf,npend,nout,nethr,itab,matd,tempd,newfor,iopp)
call contio(npend,0,0,scr,nb,nw)
if (math.ne.matd)&
call error('first','desired temperature not found.',' ')
za=scr(1)
za=nint(za)
za=nint(scr(1))
awr=scr(2)
nxp=n2h
jscr=7
if (iverf.ge.5) call contio(npend,0,0,scr(jscr),nb,nw)
if (iverf.ge.5) jscr=jscr+6
if (iverf.eq.6) call contio(npend,0,0,scr(jscr),nb,nw)
if (iverf.eq.6) jscr=jscr+6
is=0
if (iverf.ge.5) then
call contio(npend,0,0,scr(jscr),nb,nw)
jscr=jscr+6
is=nint(scr(10)) ! endf-5 and endf-6 both store liso
endif
if (iverf.eq.6) then
call contio(npend,0,0,scr(jscr),nb,nw)
jscr=jscr+6
endif
awi=1
izai=1
izaid=nint(scr(1))
ia=mod(izaid,1000)
iz=(izaid-ia)/1000
if (iverf.eq.6) then
awi=scr(13)
nlib=nint(scr(17))
Expand Down Expand Up @@ -4879,7 +4887,7 @@ subroutine gamout(ngend,nendf,nout,nf12c,matd)
return
end subroutine gamout

subroutine acelod(nin,suff,matd,tempd,newfor,mcnpx,ismooth)
subroutine acelod(nin,suff,matd,tempd,newfor,mcnpx,ismooth,izaoption)
!-------------------------------------------------------------------
! Load data in ace format from the input file.
!-------------------------------------------------------------------
Expand All @@ -4888,7 +4896,7 @@ subroutine acelod(nin,suff,matd,tempd,newfor,mcnpx,ismooth)
use util ! repoz,dater,error,skiprz,sigfig
use endf ! provides endf routines and variables
! externals
integer::nin,matd,newfor,mcnpx,ismooth
integer::nin,matd,newfor,mcnpx,ismooth,izaoption
real(kr)::suff,tempd
! internals
integer::nwscr,nnu,nnup,kfis,mtnr,mtntr,i,nnud,nnf
Expand Down Expand Up @@ -4918,18 +4926,28 @@ subroutine acelod(nin,suff,matd,tempd,newfor,mcnpx,ismooth)
nnex=0
nwscr=1000000
allocate(scr(nwscr))
do i=1,8
do i=1,5
nxsd(i)=0
enddo
do i=1,2
jxsd(i)=0
enddo
call repoz(nin)
iza=nint(za)
iza=izaid
aw0=awr
write(hm,'('' mat'',i4)') matd
tz=tempd*bk/emev
zaid=iza+suff
zaid=izaid+suff
if (izaoption.eq.1.and.is.gt.0) then
zaid=izaid+300+100*is+suff
endif
if (izaoption.eq.1.and.izaid.eq.95242) then
if (is.eq.0) then
zaid=izaid+400+suff
elseif (is.eq.1) then
zaid=izaid+suff
endif
endif
if (mcnpx.eq.0) then
if (izai.eq.1) then
write(hz,'(f9.2,''c'')') zaid
Expand Down Expand Up @@ -4968,7 +4986,6 @@ subroutine acelod(nin,suff,matd,tempd,newfor,mcnpx,ismooth)
endif
endif
ntrp=ntrpp
izaid=nint(za)
call dater(hdt)
hd=' '//hdt

Expand Down Expand Up @@ -11076,9 +11093,10 @@ subroutine aceprt(hk)
&6x,''* *'',9x,''ntrp'',i10/&
&6x,''* processed by *'',8x,''ntype'',i10/&
&6x,''* *'',9x,''ndnf'',i10/&
&6x,''* njoy *'',10x,''esz'',i10/&
&6x,''* *'',11x,''nu'',i10/&
&6x,''***********************'',10x,''mtr'',i10/&
&6x,''* njoy *'',12x,''z'',i10/&
&6x,''* *'',12x,''a'',i10/&
&6x,''***********************'',12x,''s'',i10/&
&39x,''esz'',i10/40x,''nu'',i10/39x,''mtr'',i10/&
&39x,''lqr'',i10/39x,''tyr'',i10/38x,''lsig'',i10/&
&39x,''sig'',i10/38x,''land'',i10/39x,''and'',i10/&
&38x,''ldlw'',i10//39x,''dlw'',i10/39x,''gpd'',i10/&
Expand All @@ -11089,7 +11107,7 @@ subroutine aceprt(hk)
&37x,''dndat'',i10/38x,''ldnd'',i10/39x,''dnd'',i10/&
&37x,''ptype'',i10/38x,''ntro'',i10/37x,''ploct'',i10///&
&6x,''hk---'',a70)')&
hz,aw0,tz,hd,hm,len2,nes,ntr,nr,ntrp,ntype,ndnf,esz,&
hz,aw0,tz,hd,hm,len2,nes,ntr,nr,ntrp,ntype,ndnf,iz,ia,is,esz,&
nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw,dlw,gpd,mtrp,lsigp,&
sigp,landp,andp,ldlwp,dlwp,yp,fis,end,iurpt,nud,dndat,ldnd,&
dnd,ptype,ntro,ploct,hk
Expand Down Expand Up @@ -12938,7 +12956,7 @@ subroutine aceout(itype,nace,ndir,hk,izn,awn,mcnpx)
endif
write(nout,'(4(i7,f11.0))') (izn(i),awn(i),i=1,16)
write(nout,'(8i9)')&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,(nxsd(i),i=1,8),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,is,iz,ia,(nxsd(i),i=1,5),&
esz,nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw,dlw,&
gpd,mtrp,lsigp,sigp,landp,andp,ldlwp,dlwp,yp,fis,end,&
iurpt,nud,dndat,ldnd,dnd,(jxsd(i),i=1,2),ptype,ntro,ploct
Expand All @@ -12956,14 +12974,14 @@ subroutine aceout(itype,nace,ndir,hk,izn,awn,mcnpx)
if (mcnpx.eq.0) then
write(nout) hz(1:10),aw0,tz,hd,hk,hm,&
(izn(i),awn(i),i=1,16),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,(nxsd(i),i=1,8),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,is,iz,ia,(nxsd(i),i=1,5),&
esz,nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw,dlw,&
gpd,mtrp,lsigp,sigp,landp,andp,ldlwp,dlwp,yp,fis,end,&
iurpt,nud,dndat,ldnd,dnd,(jxsd(i),i=1,2),ptype,ntro,ploct
else
write(nout) hz(1:13),aw0,tz,hd,hk,hm,&
(izn(i),awn(i),i=1,16),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,(nxsd(i),i=1,8),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,is,iz,ia,(nxsd(i),i=1,5),&
esz,nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw,dlw,&
gpd,mtrp,lsigp,sigp,landp,andp,ldlwp,dlwp,yp,fis,end,&
iurpt,nud,dndat,ldnd,dnd,(jxsd(i),i=1,2),ptype,ntro,ploct
Expand Down Expand Up @@ -13926,7 +13944,7 @@ subroutine acefix(nin,itype,nout,ndir,iprint,nplot,suff,&
endif
read (nin,'(4(i7,f11.0))') (izo(i),awo(i),i=1,16)
read (nin,'(8i9)')&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,(nxsd(i),i=1,8),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,is,iz,ia,(nxsd(i),i=1,5),&
esz,nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw,dlw,&
gpd,mtrp,lsigp,sigp,landp,andp,ldlwp,dlwp,yp,fis,end,&
iurpt,nud,dndat,ldnd,dnd,(jxsd(i),i=1,2),ptype,ntro,ploct
Expand Down Expand Up @@ -14004,13 +14022,13 @@ subroutine acefix(nin,itype,nout,ndir,iprint,nplot,suff,&
else if (itype.eq.2) then
if (mcnpx.eq.0) then
read(nin) hz(1:10),aw0,tz,hd,hko,hm,(izo(i),awo(i),i=1,16),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,(nxsd(i),i=1,8),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,is,iz,ia,(nxsd(i),i=1,5),&
esz,nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw,dlw,&
gpd,mtrp,lsigp,sigp,landp,andp,ldlwp,dlwp,yp,fis,end,&
iurpt,nud,dndat,ldnd,dnd,(jxsd(i),i=1,2),ptype,ntro,ploct
else
read(nin) hz(1:13),aw0,tz,hd,hko,hm,(izo(i),awo(i),i=1,16),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,(nxsd(i),i=1,8),&
len2,izaid,nes,ntr,nr,ntrp,ntype,ndnf,is,iz,ia,(nxsd(i),i=1,5),&
esz,nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw,dlw,&
gpd,mtrp,lsigp,sigp,landp,andp,ldlwp,dlwp,yp,fis,end,&
iurpt,nud,dndat,ldnd,dnd,(jxsd(i),i=1,2),ptype,ntro,ploct
Expand Down
Loading

0 comments on commit e35894e

Please sign in to comment.