Skip to content

Commit 1dbce78

Browse files
authored
Add logic in groupr to handle excited index > 9
1 parent 765d918 commit 1dbce78

File tree

1 file changed

+42
-2
lines changed

1 file changed

+42
-2
lines changed

src/groupr.f90

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,13 @@ subroutine groupr
202202
! mtname description of section to be processed
203203
! repeat for all reactions desired
204204
! mfd=0/ terminates this temperature/material.
205+
! card9a Extended residual format (mfd = -1 only)
206+
! file The file (MF) to extract data from
207+
! section The section (MT) to extract data from
208+
! zaid The ZZZAAA value of the residual
209+
! m The metastable (file = 3, 6) or excited level (file = 9, 10)
210+
! number
211+
!
205212
! card10
206213
! matd next mat number to be processed
207214
! matd=0/ terminates groupr run.
@@ -313,6 +320,9 @@ subroutine groupr
313320
! subsection from file 10
314321
! 40000000 fission product production (mtd=18 only)
315322
! subsection from file 10
323+
! -1 Use extended format (card9a) from the following
324+
! line, ignoring the rest of card9. Useful when
325+
! m > 9.
316326
!
317327
! mtd meaning
318328
! --- -------
@@ -343,11 +353,12 @@ subroutine groupr
343353
use util ! provides openz,timer,repoz,skiprz,error,mess,closz
344354
! internals
345355
integer::nwscr,nb,nw,itend,nwds,i,itemp,nz
346-
integer::ngnp1,nggp1,np,loc,ngi,mtdp,iauto,izam,j,ibase
356+
integer::ngnp1,nggp1,np,loc,ngi,mtdp,iauto,iza,izam,j,ibase
347357
integer::iaddmt,iglo,nq,ig1,ig,nll,ig2lo,it,iz,il,igzero
348358
integer::naed,ng2,nl,idis,lim,nlg,ng2g,mfdn,jzam
349359
integer::itmp
350360
real(kr)::time,za,tempin,eps,diff,ee,first,en
361+
real(kr)::fzam
351362
real(kr)::enext,elo,ehi,yld,test
352363
real(kr),dimension(:,:),allocatable::flux,sig
353364
character(4)::mtname(15)
@@ -602,6 +613,7 @@ subroutine groupr
602613
lfs=0
603614
isom=0
604615
izam=0
616+
fzam=0.0_kr
605617
if (mtd+mtdp.lt.0) go to 400
606618
if (iauto.eq.0) go to 365
607619
call nextr(iauto,matd,mfd,mtdp,scr)
@@ -610,7 +622,7 @@ subroutine groupr
610622
mtdp=-1000
611623
strng=' '
612624
read(nsysi,*) mfd,mtdp,strng
613-
if (mfd.lt.0.or.mfd.eq.1.or.mfd.eq.2.or.mfd.eq.4) go to 381
625+
if (mfd.lt.-1.or.mfd.eq.1.or.mfd.eq.2.or.mfd.eq.4) go to 381
614626
if (mfd.eq.7.or.mfd.eq.9.or.mfd.eq.11) go to 381
615627
if (mfd.eq.14.or.mfd.eq.15) go to 381
616628
if (mfd.gt.18.and.mfd.lt.21) go to 381
@@ -619,6 +631,7 @@ subroutine groupr
619631
if (mfd.ge.12.and.mfd.le.18.and.igg.eq.0)&
620632
call error('groupr','photons not allowed with igg=0.',' ')
621633
if (mfd.eq.0) go to 590
634+
if (mfd.eq.-1) go to 383
622635
if (mtdp.eq.-1000) go to 382
623636
read(strng,'(15a4)') (mtname(i),i=1,15)
624637
go to 390
@@ -633,6 +646,29 @@ subroutine groupr
633646
write(strng,'(''auto finds no reactions for mf='',i3)') mfd
634647
call mess('groupr',strng,' ')
635648
go to 365
649+
383 continue
650+
! Read card9a format and down-convert
651+
read(nsysi,*) mfd, mtdp, iza, lfs
652+
if (mtdp.ge.0) mtd=mtdp
653+
isom=lfs
654+
select case(mfd)
655+
case(3)
656+
mfd=10000000
657+
case(6)
658+
mfd=20000000
659+
case(9)
660+
mfd=30000000
661+
case(10)
662+
mfd=40000000
663+
case default
664+
write(strng,'(''illegal file ='',i3)') mfd
665+
call error('groupr',strng,' ')
666+
end select
667+
mfd = mfd + iza*10
668+
izam = iza*1000 + lfs
669+
izar = iza
670+
fzam = real(iza, kind=kr) + real(lfs, kind=kr) / 1000.0_kr
671+
go to 400
636672
390 continue
637673
if (mtdp.ge.0) mtd=mtdp
638674
! -- if auto processing, already have level number (lfs) and isomer
@@ -832,6 +868,10 @@ subroutine groupr
832868
mth=mtd
833869
scr(1)=za
834870
scr(2)=izam
871+
if (fzam /= 0) then
872+
! Write extended format ZZZAAA.SSS format.
873+
scr(2) = fzam
874+
end if
835875
scr(3)=nl
836876
scr(4)=nz
837877
scr(5)=lrflag

0 commit comments

Comments
 (0)