Skip to content
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

Feature/mf34 subsubsection #306

Merged
merged 10 commits into from
Sep 7, 2023
1 change: 1 addition & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Given here are some release notes for NJOY2016. Each release is made through a f
This update fixes the following issues:
- Fixed an issue in GROUPR related to an error coming up in production matrix calculations. Depending on when a user asks for a production matrix associated to a reaction, it is possible that the reference frame of the previous reaction is used instead (caused by erronously defining an already declared global variable as local with a "save" attribute). In some circumstances, this causes NJOY2016 to error out (with a message related to unsupported reference frames). No test results had to be updated due to this change.
- Fixed issues in acer to properly print already existing dosimetry and photoatomic ace files when running a stand-alone acer iopt=7 job.
- The meaning of legord and ifissp in the ERRORR input file has been repurposed when mfcov=34. The values now represent the L,L1 values of the MF34 sub-subsection to be calculated (instead of the first one). By default, the L=1,L1=1 sub-subsection will be calculated which in almost all cases will correspond to the first sub-subsection in the MF34 data (as a result, the default behaviour of NJOY2016 will not change).
- Increased allocation of arrays to accommodate ENDF/B-VIII.1 evaluations.

## [NJOY2016.71](https://github.com/njoy/NJOY2016/pull/301)
Expand Down
50 changes: 35 additions & 15 deletions src/errorr.f90
Original file line number Diff line number Diff line change
Expand Up @@ -229,14 +229,14 @@ subroutine errorr
! (mf=32) (default=1)
! 0 = area sensitivity method
! 1 = 1% sensitivity method
! legord legendre order for calculating covariances (default=1)
! l Legendre order for reaction MT (default=1)
! (if mfcov is not 34, legord is ignored)
! ifissp subsection of the fission spectrum covariance
! matrix to process (default=-1 which means process
! l1/ifissp if mfcov is 34: Legendre order for reaction MT1 (default=1)
! if mfcov is 35: matrix to process (default=-1 which means process
! the subsection that includes efmean). The value
! for ifissp that appears in njoy's standard output
! will equal the subsection containing efmean.
! (if mfcov is not 35, ifissp is ignored)
! (if mfcov is not 34 or 35, l1/ifissp is ignored)
! efmean incident neutron energy (eV). Process the covar-
! iance matrix subsection whose energy interval in-
! cludes efmean. if ifissp=-1 and efmean is not
Expand Down Expand Up @@ -515,16 +515,21 @@ subroutine errorr
mfcov=33
irespr=1
legord=1
ifissp=-1
ifissp=-1000
isru=0
dap=0
read(nsysi,*) iread,mfcov,irespr,legord,ifissp,efmean,dap
if (mfcov.eq.35.and.ifissp.eq.-1000) ifissp=-1
if (mfcov.eq.34.and.ifissp.eq.-1000) ifissp=1

!--only allow legord=1 at this time
if (legord.ne.1) then
write(strng,'(''reset legord from '',i2,'' to 1'')')legord
call mess('errorr',strng,'')
legord=1
if (mfcov.eq.34.and.legord.lt.0) then
write(strng,'(''Legendre order l for mf34 cannot be less than zero'')')
call error('errorr',strng,' ')
endif
if (mfcov.eq.34.and.ifissp.lt.0) then
write(strng,'(''Legendre order l1 for mf34 cannot be less than zero'')')
call error('errorr',strng,' ')
endif

!--input check for legal and/or consistent options
Expand Down Expand Up @@ -681,8 +686,12 @@ subroutine errorr
'('' irespr processing option for mf=33 ... '',i10)') irespr
if (isru.ne.0) write(nsyso,&
'('' user dap for scat radius unc override '',f11.4)') dap
if (mfcov.eq.34) write(nsyso,&
'('' legendre order for mf=34 ............. '',i10)') legord
if (mfcov.eq.34) then
write(nsyso,&
'('' legendre order l for mf=34 ........... '',i10)') legord
write(nsyso,&
'('' legendre order l1 for mf=34 .......... '',i10)') ifissp
endif
if (mfcov.eq.35) then
write(nsyso,&
'('' igflag ............................... '',i10/&
Expand Down Expand Up @@ -1771,7 +1780,7 @@ subroutine covcal
integer::jh,loci,lt,lb,locip4,locip6,nk1,k,k2,locnec,nl1
integer::ifloc,nlt,nk,nlt1,locl,lend,loclp4,loclp6
integer::l2,m,m2,jgend,ih,ibase,ij,kmtb,isrrr,namx
integer::mat2,mt2,nlg1,nlg2,ld,ld1,izap,izero
integer::mat2,mt2,nlg1,nlg2,ld,ld1,izap,izero,ifoundmf34
real(kr)::eg,xcv,time,de,flux,dne
character(70)::strng,strng2
integer,parameter::locm=100
Expand All @@ -1784,6 +1793,7 @@ subroutine covcal
real(kr),parameter::zero=0

!--initialize
ifoundmf34=0
izero=0
nscr2=13
if (ngout.lt.0) nscr2=-nscr2
Expand Down Expand Up @@ -2051,7 +2061,8 @@ subroutine covcal
320 continue
if (iok.eq.0) go to 600
if (mfcov.eq.34) then
if (ld.gt.legord.or.ld1.gt.legord) go to 650
if (.not.(ld.eq.legord.and.ld1.eq.ifissp)) go to 650
ifoundmf34=1
endif

!--retrieve sigma for mt1, either from ngout or sig.
Expand Down Expand Up @@ -2363,6 +2374,12 @@ subroutine covcal
660 continue
call asend(0,nscr1)

!--check if we found the MF34 l,l1 sub-subsection
if (mfcov.eq.34.and.ifoundmf34.eq.0) then
write(strng,'(''no sub-subsection for l='',i2,'' and l1='',i2)') legord,ifissp
call error('covcal',strng,'in mf=34.')
endif

!--close loop over sections of mfcov
go to 140
700 continue
Expand Down Expand Up @@ -5653,7 +5670,11 @@ subroutine grpav4(mprint)
z(6)=ig
z(7)=ans(1,1)
do i=1,legord
z(i+7)=ans(i,2)
if (ans(i,2).lt.1e-30) then
z(i+7)=0.
else
z(i+7)=ans(i,2)
endif
enddo
nwds=legord+7
call listio(0,nscr4,0,z,nb,nwds)
Expand Down Expand Up @@ -6049,7 +6070,6 @@ subroutine rdlgnd(nscr4,matd,mtd,npl,b,alp)
return
end subroutine rdlgnd


subroutine fssigc(ncg,ncm,nun,csig,cflx,b,egt,flux,sig)
!--------------------------------------------------------------------
! Calculate the coarse group fission spectrum chi.
Expand Down
2 changes: 1 addition & 1 deletion tests/15/input
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ errorr
-21 0 91 27 0 0 /
9237 3 6 1 1 /
1 300./
0 34 1 1 -1 /
0 34 1 1 1 /
--
-- make mf31 plot file.
covr
Expand Down
Loading