@@ -202,6 +202,13 @@ subroutine groupr
202
202
! mtname description of section to be processed
203
203
! repeat for all reactions desired
204
204
! 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
+ !
205
212
! card10
206
213
! matd next mat number to be processed
207
214
! matd=0/ terminates groupr run.
@@ -313,6 +320,9 @@ subroutine groupr
313
320
! subsection from file 10
314
321
! 40000000 fission product production (mtd=18 only)
315
322
! 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.
316
326
!
317
327
! mtd meaning
318
328
! --- -------
@@ -343,11 +353,12 @@ subroutine groupr
343
353
use util ! provides openz,timer,repoz,skiprz,error,mess,closz
344
354
! internals
345
355
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
347
357
integer :: iaddmt,iglo,nq,ig1,ig,nll,ig2lo,it,iz,il,igzero
348
358
integer :: naed,ng2,nl,idis,lim,nlg,ng2g,mfdn,jzam
349
359
integer :: itmp
350
360
real (kr):: time,za,tempin,eps,diff,ee,first,en
361
+ real (kr):: fzam
351
362
real (kr):: enext,elo,ehi,yld,test
352
363
real (kr),dimension (:,:),allocatable :: flux,sig
353
364
character (4 ):: mtname(15 )
@@ -602,6 +613,7 @@ subroutine groupr
602
613
lfs= 0
603
614
isom= 0
604
615
izam= 0
616
+ fzam= 0.0_kr
605
617
if (mtd+ mtdp.lt. 0 ) go to 400
606
618
if (iauto.eq. 0 ) go to 365
607
619
call nextr(iauto,matd,mfd,mtdp,scr)
@@ -610,7 +622,7 @@ subroutine groupr
610
622
mtdp=- 1000
611
623
strng= ' '
612
624
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
614
626
if (mfd.eq. 7.or .mfd.eq. 9.or .mfd.eq. 11 ) go to 381
615
627
if (mfd.eq. 14.or .mfd.eq. 15 ) go to 381
616
628
if (mfd.gt. 18.and .mfd.lt. 21 ) go to 381
@@ -619,6 +631,7 @@ subroutine groupr
619
631
if (mfd.ge. 12.and .mfd.le. 18.and .igg.eq. 0 )&
620
632
call error(' groupr' ,' photons not allowed with igg=0.' ,' ' )
621
633
if (mfd.eq. 0 ) go to 590
634
+ if (mfd.eq. - 1 ) go to 383
622
635
if (mtdp.eq. - 1000 ) go to 382
623
636
read (strng,' (15a4)' ) (mtname(i),i= 1 ,15 )
624
637
go to 390
@@ -633,6 +646,29 @@ subroutine groupr
633
646
write (strng,' ('' auto finds no reactions for mf='' ,i3)' ) mfd
634
647
call mess(' groupr' ,strng,' ' )
635
648
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
636
672
390 continue
637
673
if (mtdp.ge. 0 ) mtd= mtdp
638
674
! -- if auto processing, already have level number (lfs) and isomer
@@ -832,6 +868,10 @@ subroutine groupr
832
868
mth= mtd
833
869
scr(1 )= za
834
870
scr(2 )= izam
871
+ if (fzam /= 0 ) then
872
+ ! Write extended format ZZZAAA.SSS format.
873
+ scr(2 ) = fzam
874
+ end if
835
875
scr(3 )= nl
836
876
scr(4 )= nz
837
877
scr(5 )= lrflag
0 commit comments