Skip to content

Commit

Permalink
Merge pull request #304 from njoy/303-acer/dosfix
Browse files Browse the repository at this point in the history
acer standalone iopt=7 fix
  • Loading branch information
whaeck authored Aug 14, 2023
2 parents 4d987aa + 05046fd commit 81164e6
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 5 deletions.
1 change: 1 addition & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Given here are some release notes for NJOY2016. Each release is made through a f
## [NJOY2016.72](https://github.com/njoy/NJOY2016/pull/xxx)
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.

## [NJOY2016.71](https://github.com/njoy/NJOY2016/pull/301)
This update adds the new MF7 MT451 (thermal scattering general information) ENDF format to MODER so that this module will be able to interpret the new MF7 section. No other capability in NJOY2016 currently uses the information in this section.
Expand Down
10 changes: 9 additions & 1 deletion src/acecm.f90
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,15 @@ subroutine mtname(mt,name,izai)
'(n,xhe3) ','(n,xa) '/)
character(10)::hndf10(1)='damage '

if (iverf.ge.6) then
!-- default name value is blank unless reset below.
name=''

!--when iverf=-1 the endf version used to create this file is
! unknown. we assume it comes from version 6 but if the file
! originated from version 5 or earlier the name assigned here
! might be incorrect.

if (iverf.ge.6.or.iverf.eq.-1) then
if (mt.ge.201.and.mt.le.207) then
name=hndf9(mt-200)
else if (mt.eq.444) then
Expand Down
2 changes: 1 addition & 1 deletion src/acedo.f90
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ subroutine dosfix(itype,nin,nout,ndir,iprint,nplot,mcnpx,&
read(nin,'(8i9)')&
len2,za,nxs3,ntr,nxsd(1:12),&
lone,jxs2,mtr,jxs4,jxs5,lsig,sigd,jxsd(1:14),end,jxsd2(1:10)
n=(lone+3)/4
n=(len2+3)/4
l=0
do i=1,n
read (nin,'(4e20.0)') (xss(l+j),j=1,4)
Expand Down
17 changes: 15 additions & 2 deletions src/acepa.f90
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,7 @@ subroutine phoprt(hk)
!-------------------------------------------------------------------
! Print ACE photon interaction data from memory.
!-------------------------------------------------------------------
use endf ! provides iverf
use mainio ! provides nsyso
! externals
character(70)::hk
Expand Down Expand Up @@ -840,6 +841,11 @@ subroutine phoprt(hk)
iabs=icoh+nes
ipair=iabs+nes
ihtng=lhnm-1

!--if this is a stand-alone acer iopt=7 job then iverf retains
! its default -1 value and the values written as natural logs
! need to be converted back to real numbers prior to printing.

do i=1,nes
if (mod(i,57).eq.1) write(nsyso,'(''1''/&
&'' i'',8x,''energy'',4x,''incoherent'',&
Expand All @@ -849,18 +855,23 @@ subroutine phoprt(hk)
&4x,''----------'',4x,''----------'')')
col(1)=blank
x=xss(ieg+i)
if (iverf.eq.-1.and.x.ne.zero) x=exp(x)
if (x.ne.zero) write(col(1),'(1p,e14.4)') x
col(2)=blank
x=xss(iinc+i)
if (iverf.eq.-1.and.x.ne.zero) x=exp(x)
if (x.ne.zero) write(col(2),'(1p,e14.4)') x
col(3)=blank
x=xss(icoh+i)
if (iverf.eq.-1.and.x.ne.zero) x=exp(x)
if (x.ne.zero) write(col(3),'(1p,e14.4)') x
col(4)=blank
x=xss(iabs+i)
if (iverf.eq.-1.and.x.ne.zero) x=exp(x)
if (x.ne.zero) write(col(4),'(1p,e14.4)') x
col(5)=blank
x=xss(ipair+i)
if (iverf.eq.-1.and.x.ne.zero) x=exp(x)
if (x.ne.zero) write(col(5),'(1p,e14.4)') x
col(6)=blank
x=xss(ihtng+i)
Expand Down Expand Up @@ -906,6 +917,7 @@ subroutine phoout(itype,nout,ndir,mcnpx,hk,izn,awn)
!-------------------------------------------------------------------
! Write photo-atomic ACE data to output and directory files.
!-------------------------------------------------------------------
use endf ! provides iverf
use util ! provides openz,closz,error
use acecm ! provides write routines
! externals
Expand Down Expand Up @@ -941,11 +953,12 @@ subroutine phoout(itype,nout,ndir,mcnpx,hk,izn,awn)
len2,z,nes,nflo,nxsd(1:12),&
eszg,jinc,jcoh,jflo,lhnm,jxsd(1:27)

!--eszg block
!--eszg block.
! convert to natural log, if not already done, prior to writing
l=eszg
n=5*nes
do i=1,n
if (xss(l).ne.0.) xss(l)=log(xss(l))
if (xss(l).ne.0..and.iverf.ne.-1) xss(l)=log(xss(l))
call typen(l,nout,2)
l=l+1
enddo
Expand Down
2 changes: 1 addition & 1 deletion src/endf.f90
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module endf

!--Public variables
integer,public::npage=306
integer,public::iverf
integer,public::iverf=-1
real(kr),public::c1h,c2h
integer,public::l1h,l2h,n1h,n2h,math,mfh,mth,nsh,nsp,nsc
real(kr),public::thr6
Expand Down

0 comments on commit 81164e6

Please sign in to comment.