Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 38 additions & 16 deletions src/groupr.f90
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ subroutine groupr
real(kr),parameter::zero=0

!--initialize
nwscr=10000
nwscr=20000
nfscr=10
nflx=11
nend2=12
Expand Down Expand Up @@ -618,6 +618,20 @@ subroutine groupr
if (mfd.gt.36.and.mfd.lt.10000000) go to 381
if (mfd.ge.12.and.mfd.le.18.and.igg.eq.0)&
call error('groupr','photons not allowed with igg=0.',' ')
if ((mfd.eq.26.and.mtdp.eq.18) .or. &
(mfd.eq.26.and.mtdp.eq.19) .or. &
(mfd.eq.26.and.mtdp.eq.20) .or. &
(mfd.eq.26.and.mtdp.eq.21) .or. &
(mfd.eq.26.and.mtdp.eq.38) .or. &
(mfd.eq.36.and.mtdp.eq.18) .or. &
(mfd.eq.36.and.mtdp.eq.19) .or. &
(mfd.eq.36.and.mtdp.eq.20) .or. &
(mfd.eq.36.and.mtdp.eq.21) .or. &
(mfd.eq.36.and.mtdp.eq.38)) then
call mess('groupr','no heavy residual with fission',&
'skipping this input request')
go to 365
endif
if (mfd.eq.0) go to 590
if (mtdp.eq.-1000) go to 382
read(strng,'(15a4)') (mtname(i),i=1,15)
Expand Down Expand Up @@ -962,6 +976,7 @@ subroutine groupr
deallocate(egn)
deallocate(egg)
deallocate(wtbuf)
deallocate(scr)
if (allocated(wght)) deallocate(wght)
if (allocated(temp)) deallocate(temp)
if (allocated(sigz)) deallocate(sigz)
Expand Down Expand Up @@ -7440,7 +7455,7 @@ subroutine getmf6(ans,ed,enext,idisc,yld,eg,ng,nl,iglo,ng2,nq,&
integer::mfn,nb,nw,lct3,ik,nne,ne,int,nss
integer::ie,ilo,jlo,jhi,ii,nn,nnn,langn,lepn,idis,jzap
integer::nk,jzad,lang,lep,i,npsx,irr,npp,nmu,l1
integer::j,iss,ip,ir,jgmax,jj,jg,ndlo,nplo,nclo,nphi,nchi
integer::j,iss,ip,ir,jgmax,jj,jg,ndlo,nplo,nclo,nphi,nchi,ndx
integer::llo,lhi,iz,l,iy,max,nc,lf
real(kr)::zad,elo,ehi,apsx,enow,eihi,ep,epnext,en
real(kr)::pspmax,yldd,el,eh,e0,g0,e1,e2,test,pe,disc102
Expand All @@ -7463,6 +7478,7 @@ subroutine getmf6(ans,ed,enext,idisc,yld,eg,ng,nl,iglo,ng2,nq,&
real(kr),parameter::eps=0.02e0_kr
real(kr),parameter::zero=0
real(kr),parameter::alight=5
real(kr),parameter::emin=1.e-5_kr
integer,parameter::ntmp=2000000
save nne,ne,int
save jlo,elo,jhi,ehi,terml
Expand Down Expand Up @@ -7619,13 +7635,16 @@ subroutine getmf6(ans,ed,enext,idisc,yld,eg,ng,nl,iglo,ng2,nq,&
&1p,e10.3)')tmp(ilo+1)
endif
endif
if (ismooth.gt.0.and.jzap.eq.1.and.lep.eq.1) then
ncyc=nint(tmp(ilo+3))+2
ndx=nint(tmp(ilo+2))
nx=nint(tmp(ilo+4))
n=nint(tmp(ilo+5))
ex=40
if (ismooth.gt.0.and.jzap.eq.1.and.lep.eq.1.and.&
ndx.eq.0.and.tmp(ilo+6).le.emin.and.&
tmp(ilo+7).gt.zero.and.tmp(ilo+6+ncyc).gt.ex) then
fx=.8409
ex=40
ncyc=nint(tmp(ilo+3))+2
cx=tmp(ilo+6+ncyc)*tmp(ilo+7)
nx=nint(tmp(ilo+4))
n=nint(tmp(ilo+5))
do while (n.gt.2)
cxx=cx+tmp(ilo+7+ncyc)*(tmp(ilo+6+2*ncyc)-tmp(ilo+6+ncyc))
if (abs(cxx/tmp(ilo+6+2*ncyc)**1.5&
Expand Down Expand Up @@ -7662,14 +7681,11 @@ subroutine getmf6(ans,ed,enext,idisc,yld,eg,ng,nl,iglo,ng2,nq,&
tmp(ilo+5)=n
enddo
l=ilo+6+nx
else if (ismooth.gt.0.and.jzap.eq.1.and.lep.eq.2) then
ncyc=nint(tmp(ilo+3))+2
nx=nint(tmp(ilo+4))
n=nint(tmp(ilo+5))
else if (ismooth.gt.0.and.jzap.eq.1.and.lep.eq.2.and.n.gt.3.and.&
ndx.eq.0) then
write(nsyso,'('' extending lin-lin as sqrt(E) below'',&
&1p,e10.2,'' eV for E='',e10.2,'' eV'')')&
tmp(ilo+6+ncyc),tmp(ilo+1)
ex=40
fx=0.50
nn=0
cx=(tmp(ilo+6+ncyc)-tmp(ilo+6))*(tmp(ilo+7+ncyc)+tmp(ilo+7))/2
Expand Down Expand Up @@ -9593,7 +9609,7 @@ subroutine getfle(e,enext,idis,fle,nle,lcd,matd,mfd,mtd,nin)
character(60)::strng
integer,parameter::mxlg=65
real(kr)::flo(mxlg),fhi(mxlg)
integer,parameter::ncmax=1000
integer,parameter::ncmax=7000
real(kr)::fls(ncmax)
real(kr),parameter::emax=1.e10_kr
real(kr),parameter::small=1.e-10_kr
Expand Down Expand Up @@ -10221,7 +10237,7 @@ subroutine getgfl(ed,enext,idis,gfl,nl,nlg,ng,mat,mf,mt,nin)
li=nint(b(3))
ltt=nint(b(4))
ni=nint(b(6))
ntmp=10000
ntmp=20000
allocate(tmp(ntmp))
enext=emax

Expand Down Expand Up @@ -11034,7 +11050,8 @@ subroutine conver(nin,nout,nscr)
if (irr26.ne.1) then
if (mth.le.iabs(mf4r(6,irr26-1))+1) itest=1
endif
if (mth.ne.18) then ! exclude fission for residual production
if (mth.ne.18.and.mth.ne.19.and.mth.ne.20.and.&
mth.ne.21.and.mth.ne.38) then ! exclude fission for residual production
if (itest.eq.1) then
if (mf4r(6,irr26-1).lt.0) irr26=irr26-1
mf4r(6,irr26)=-mth
Expand Down Expand Up @@ -11617,7 +11634,7 @@ subroutine conver(nin,nout,nscr)
go to 790
755 continue
if (imf26.eq.1) go to 756
if (mth.eq.18) go to 790 ! skip fission in a>4 production
if (mth.eq.18.or.mth.eq.19.or.mth.eq.20.or.mth.eq.21.or.mth.eq.38) go to 790 ! skip fission in a>4 production
if (mth.eq.iabs(mf6p(6,imf26-1))) go to 790
if (mth.gt.iabs(mf6p(6,imf26-1))+1) go to 756
if (mf6p(6,imf26-1).lt.0) imf26=imf26-1
Expand Down Expand Up @@ -11723,6 +11740,7 @@ subroutine conver(nin,nout,nscr)
mf4r(4,irr24)=0
mf4r(5,irr25)=0
mf4r(6,irr26)=0
deallocate(scr)
return
end subroutine conver

Expand Down Expand Up @@ -11813,6 +11831,8 @@ subroutine getsed(ed,enext,idis,sed,eg,ng,nk,matd,mfd,mtd,nin)
call moreio(nin,0,0,tmp(l),nb,nw)
l=l+nw
enddo
if (l.gt.ntmp) call error('getsed',&
'exceeded tmp storage',' ')
do ip=2,np
delta=abs(tmp(ln+2*ip)-tmp(ln+2*ip-2))
if (delta.ge.eps*tmp(ln+2*ip-2)) then
Expand All @@ -11832,6 +11852,8 @@ subroutine getsed(ed,enext,idis,sed,eg,ng,nk,matd,mfd,mtd,nin)
call moreio(nin,0,0,tmp(l),nb,nw)
l=l+nw
enddo
if (l.gt.ntmp) call error('getsed',&
'exceeded tmp storage',' ')
!extend lowest delayed bin using sqrt(e) shape
if (ismooth.gt.0.and.mtd.eq.455.and.&
nint(tmp(l1+7)).eq.1) then
Expand Down
Loading