Skip to content

Commit

Permalink
Merge pull request #280 from njoy/fix/fendl32
Browse files Browse the repository at this point in the history
Fix/fendl32
  • Loading branch information
whaeck authored Feb 7, 2023
2 parents 3704cdc + f69719e commit c9688af
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 25 deletions.
8 changes: 5 additions & 3 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# 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.69](https://github.com/njoy/NJOY2016/pull/xxx)
## [NJOY2016.69](https://github.com/njoy/NJOY2016/pull/281)
This update fixes a number of minor issues:
- PURR now writes Bondarenko data obtained from the probability tables to MF2 MT152 instead of the Bondarenko data obtained from the direct sampled cross sections (for very low dilutions, the Bondarenko data obtained using these two methods does not align, with the direct sampled data leading to extremely low P1 values). When comparing with the Bondarenko data at low dilutions obtained with UNRESR, the Bondarenko data obtained from the probability table directly seems to be the best.
- MF6 LAW=2 represents discrete two body scattering in which only angular distribution data is given (knowing that the outgoing energy of the secondary particle can be determined through kinematics when the angle is known). When calculating heating numbers based on LAW=2, ACER assumes that the yield of the secondary particle is 1, which is correct in all cases except when MT5 is used as a lumped reaction. Heating numbers in ACER for photonuclear files using LAW=2 in an MT5 entry are now correctly multiplied by the yield. A warning message is printed out whenever this situation is detected. Test 78 was added as part of this correction.
- Previously, ERRORR would segfault for LRF=7 resonance evaluations when MF33 was present without MF32. A check for this situation now avoids this.
- Fixed an issue in GROUPR when reading some of the FENDL3.2 evaluations.

A few compiler warnings have been resolved as well (unused variables). For source files that were corrected in this way, the remaining warnings relate to equality comparisons for real values, unused dummy arguments in subroutines and potential 0 indices into arrays (in all cases, if statements prevented this from happening).

## [NJOY2016.68](https://github.com/njoy/NJOY2016/pull/264)
This update fixes a number of minor issues:
Expand Down Expand Up @@ -69,8 +72,7 @@ This release addresses issue [\#201](https://github.com/njoy/NJOY2016/issues/201
## [NJOY2016.63](https://github.com/njoy/NJOY2016/pull/193)
This fixes a bug in ERRORR when using the `999` option. When using this option, the input and output tapes are not closed in Fortran. This causes problems in NJOY21 as the output from ERRORR isn't completely written to disk before the next module starts. This update simply closes files `nitape` and `notape` which resolves the issue.

In addition, some logic statements in the GROUPR conver and ACER convr subroutines have been corrected to fix failures in the test
suite when building in Debug mode.
In addition, some logic statements in the GROUPR conver and ACER convr subroutines have been corrected to fix failures in the test suite when building in Debug mode.

## [NJOY2016.62](https://github.com/njoy/NJOY2016/pull/191)
This adds a number of changes to NJOY2016 contributed by Toshihiko Kawano, Bob McFarlane, IAEA and CIEMAT. In particular, the following changes were made:
Expand Down
6 changes: 3 additions & 3 deletions src/errorr.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3723,7 +3723,7 @@ subroutine rpxlc0(nwscr,a)
integer::nwscr
real(kr)::a(nwscr)
! internals
integer::nl,iloc,nrs,i,nr,ig,j,loop,igind,inow,id,ig1,ig2,ij,ii,k
integer::nl,iloc,nrs,i,nr,ig,j,loop,igind,inow,id,ig1,ig2,ij,ii
integer::nb,nw,jd
integer,parameter::maxnls=10
integer,parameter::maxe=600000
Expand Down Expand Up @@ -4098,7 +4098,7 @@ subroutine rpxlc12(nwscr,a,iest,ieed)
integer::nwscr,iest,ieed
real(kr)::a(nwscr)
! internals
integer::nb,nw,lru1,lrf1,lb,i,ig,ig2,il,ii2,ii1,ipp,j,k
integer::nb,nw,lru1,lrf1,lb,i,ig,ig2,il,ii2,ii1,ipp,j
integer::loopm,loopn,loop,ns,nrs1,nsmax,ipos,l1,l2,l3
integer::lb2,lldum,igind,ipara,itmp,ilnum,ind,ii
integer::imess,inow,jj,lll,nrs
Expand Down Expand Up @@ -4773,7 +4773,7 @@ subroutine rpxunr(a,amur,mxlru2,iest,ieed,nwscr)
integer::mxlru2,iest,ieed,nwscr
real(kr)::a(nwscr),amur(3,mxlru2)
! internals
integer::nb,nw,l1,l2,l3,nl,ig,i,j,k,ig2,ii,igind,njs,inow
integer::nb,nw,l1,l2,l3,nl,ig,i,j,ig2,ii,igind,njs,inow
integer::loop,loopn,l0
integer,parameter::maxb=4000
integer,parameter::mxnpar=100
Expand Down
90 changes: 72 additions & 18 deletions src/groupr.f90
Original file line number Diff line number Diff line change
Expand Up @@ -6430,7 +6430,7 @@ subroutine getyld(e,enext,idis,yld,mat,mf,mt,lfs,itape)
integer::idis,mat,mf,mt,lfs,itape,i,nr,nc
real(kr)::e,enext,yld,term
! internals
integer::mft,nb,nw,nk,ik,lnu,iza,lnd,izn,lfn,ip,ir,na,loc
integer::mft,nb,nw,nk,ik,lnu,iza,lnd,izn,lfn,ip,ir,na,loc,ll
integer::ntmp
real(kr),dimension(:),allocatable::tmp
real(kr),parameter::emax=1.e10_kr
Expand Down Expand Up @@ -6459,12 +6459,23 @@ subroutine getyld(e,enext,idis,yld,mat,mf,mt,lfs,itape)
if (mt.eq.455) go to 110
lnd=0
if (lnu.ne.1) go to 130
call listio(itape,0,0,tmp(loc),nb,nw)
ll=loc
call listio(itape,0,0,tmp(ll),nb,nw)
na=nw
do while (nb.ne.0)
ll=ll+nw
call moreio(itape,0,0,tmp(ll),nb,nw)
na=na+nw
enddo
enext=emax
go to 190
110 continue
call listio(itape,0,0,tmp(loc),nb,nw)
ll=loc
call listio(itape,0,0,tmp(ll),nb,nw)
do while (nb.ne.0)
ll=ll+nw
call moreio(itape,0,0,tmp(ll),nb,nw)
enddo
lnd=nint(tmp(loc+4))
if (lnd.gt.8) call error('getyld','illegal lnd.',' ')
do i=1,lnd
Expand Down Expand Up @@ -7441,7 +7452,7 @@ subroutine getmf6(ans,ed,enext,idisc,yld,eg,ng,nl,iglo,ng2,nq,&
integer,dimension(nssm)::iyss,izss,jjss
integer,dimension(maxss)::jloss
real(kr),dimension(:),allocatable::tmp
integer,parameter::ncmax=350
integer,parameter::ncmax=1000
real(kr),parameter::emax=1.e10_kr
real(kr),parameter::small=1.e-10_kr
real(kr),parameter::shade=1.1999e0_kr
Expand Down Expand Up @@ -9576,12 +9587,12 @@ subroutine getfle(e,enext,idis,fle,nle,lcd,matd,mfd,mtd,nin)
real(kr)::e,enext,fle(*)
! internals
integer::iso,lidp,ltt,iraw,ir,nne,ne,int,nlo,nhi,ltt3,lttn
integer::nb,nwc,lvt,i,nlmax,il
integer::nb,nwc,lvt,i,nlmax,il,ll
real(kr)::elo,ehi
character(60)::strng
integer,parameter::mxlg=65
real(kr)::flo(mxlg),fhi(mxlg)
integer,parameter::ncmax=350
integer,parameter::ncmax=1000
real(kr)::fls(ncmax)
real(kr),parameter::emax=1.e10_kr
real(kr),parameter::small=1.e-10_kr
Expand Down Expand Up @@ -9639,14 +9650,24 @@ subroutine getfle(e,enext,idis,fle,nle,lcd,matd,mfd,mtd,nin)
! read in raw data at first two incident energies.
! retrieve or compute legendre coefficients.
iraw=1+nwc
if (ltt.eq.1) call listio(nin,0,0,fls(iraw),nb,nwc)
if (ltt.eq.2) call tab1io(nin,0,0,fls(iraw),nb,nwc)
ll=iraw
if (ltt.eq.1) call listio(nin,0,0,fls(ll),nb,nwc)
if (ltt.eq.2) call tab1io(nin,0,0,fls(ll),nb,nwc)
do while (nb.ne.0)
ll=ll+nwc
call moreio(nin,0,0,fls(ll),nb,nwc)
enddo
elo=fls(iraw+1)
nlo=nle
if (lidp.ge.0) fls(iraw+3)=lidp
call getco(flo,nlo,lcd,fls(iraw),lct,ltt,idis)
if (ltt.eq.1) call listio(nin,0,0,fls(iraw),nb,nwc)
if (ltt.eq.2) call tab1io(nin,0,0,fls(iraw),nb,nwc)
ll=iraw
if (ltt.eq.1) call listio(nin,0,0,fls(ll),nb,nwc)
if (ltt.eq.2) call tab1io(nin,0,0,fls(ll),nb,nwc)
do while (nb.ne.0)
ll=ll+nwc
call moreio(nin,0,0,fls(ll),nb,nwc)
enddo
ehi=fls(iraw+1)
nhi=nle
if (lidp.ge.0) fls(iraw+3)=lidp
Expand Down Expand Up @@ -9691,8 +9712,13 @@ subroutine getfle(e,enext,idis,fle,nle,lcd,matd,mfd,mtd,nin)
else if (nne.eq.ne) then
call error('getfle','desired energy above highest given.',' ')
endif
if (ltt.eq.1) call listio(nin,0,0,fls(iraw),nb,nwc)
if (ltt.eq.2) call tab1io(nin,0,0,fls(iraw),nb,nwc)
ll=iraw
if (ltt.eq.1) call listio(nin,0,0,fls(ll),nb,nwc)
if (ltt.eq.2) call tab1io(nin,0,0,fls(ll),nb,nwc)
do while (nb.ne.0)
ll=ll+nwc
call moreio(nin,0,0,fls(ll),nb,nwc)
enddo
ehi=fls(iraw+1)
nhi=nle
if (lidp.ge.0) fls(iraw+3)=lidp
Expand Down Expand Up @@ -9788,6 +9814,9 @@ subroutine getaed(aed,e,enext,idis,nl,nq,mat,mf,mt,nin,nlg)
call tab1io(nin,0,0,p,nb,nw)
itt=-l1h
law=l2h
do while (nb.ne.0)
call moreio(nin,0,0,p,nb,nw)
enddo

!--incoherent elastic or inelastic with E-E'-mu ordering
if (law.eq.1) then
Expand Down Expand Up @@ -10806,7 +10835,7 @@ subroutine conver(nin,nout,nscr)
integer::mt0,mt0old,nb,nw,jzar,lg,n,kk,k,kp1,l,lm1,mtl,no455
integer::nnu,lnu,mf,mt,l1,l2,n1,n2,nk,jzap,ne,ltp,nm
integer::m1,m2,mtnow,mttst,nn
integer::ltt,lcd,nl
integer::ltt,lcd,nl,ll
real(kr)::g,ei,eja,ejb,e1,enext,p,za2,za,ysum,yy,tsave,w,elow,etop,enxt,x
character(60)::strng
integer::ngam(440)
Expand Down Expand Up @@ -11125,7 +11154,12 @@ subroutine conver(nin,nout,nscr)
lg=l2h
g=1
l2flg=1
call listio(nin,0,0,scr,nb,nw)
ll=1
call listio(nin,0,0,scr(ll),nb,nw)
do while (nb.ne.0)
ll=ll+nw
call moreio(nin,0,0,fls(ll),nb,nw)
enddo

!--make sure mt0 is correct for this range of mt's.
if (mth.ge.51.and.mth.le.90.and.mt0.ne.49) mt0=49
Expand Down Expand Up @@ -11441,10 +11475,20 @@ subroutine conver(nin,nout,nscr)
spi=c1h
ne=n2h
do ie=1,ne
call listio(nin,0,0,scr,nb,nw)
ll=1
call listio(nin,0,0,scr(ll),nb,nw)
ltp=l1h
do while (nb.ne.0)
ll=ll+nw
call moreio(nin,0,0,scr(ll),nb,nw)
enddo
if (ltp.le.2) then
call listio(0,nout,nscr,scr,nb,nw)
ll=1
call listio(0,nout,nscr,scr(ll),nb,nw)
do while (nb.ne.0)
ll=ll+nw
call moreio(0,nout,nscr,scr(ll),nb,nw)
enddo
else
e1=c2h
call getsig(e1,enext,idis,sig,1,1)
Expand All @@ -11464,7 +11508,12 @@ subroutine conver(nin,nout,nscr)
do il=1,nl
scr(6+il)=fl(il)
enddo
call listio(0,nout,nscr,scr,nb,nw)
ll=1
call listio(0,nout,nscr,scr(ll),nb,nw)
do while (nb.ne.0)
ll=ll+nw
call moreio(0,nout,nscr,scr(ll),nb,nw)
enddo
endif
enddo
izap=-izap
Expand Down Expand Up @@ -11586,7 +11635,12 @@ subroutine conver(nin,nout,nscr)
ik=0
do while (ik.lt.nk)
ik=ik+1
call listio(nin,0,0,scr,nb,nw)
ll=1
call listio(nin,0,0,scr(ll),nb,nw)
do while (nb.ne.0)
ll=ll+nw
call moreio(nin,0,0,scr(ll),nb,nw)
enddo
izan=nint(c1h)
imf=l1h
iis=l2h
Expand Down
2 changes: 1 addition & 1 deletion src/vers.f90
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ module version
implicit none
private
character(8),public::vers='2016.69'
character(8),public::vday='xxXxx22'
character(8),public::vday='07Feb22'
end module version

0 comments on commit c9688af

Please sign in to comment.