JAERI-Data/Code 99-048

60
JAERI-Data/Code 99-048

Transcript of JAERI-Data/Code 99-048

JAERI-Data/Code99-048

This report is issued irregularly.

Inquiries about availability of the reports should be addressed to Research Information

Division, Department of Intellectual Resources, Japan Atomic Energy Research Institute,

Tokai-mura, Naka-gun, Ibaraki-ken, 319-1195, Japan.

© J a p a n Atomic Energy Research Institute, 1999

JAERI-Data/Code 99-048

Development of Automatic Editing System for MCNP Library "autonj"

Fujio MAEKAWA, Kiyoshi SAKURAT1, KazuakiKOSAKO*1, Etsuo KUME+2)

Nobuo KAWASAKI*2, Yasushi N0MURA+3 and Yoshitaka NAITO*3

Center for Neutron Science

Tokai Research Establishment

Japan Atomic Energy Research Institute

Tokai-mura, Naka-gun, Ibaraki-ken

(Received November 15, 1999)

As an activity of the MCNP High-Temperature Library Production Working Group

under the Nuclear Code Evaluation Special Committee of Nuclear Code Committee, the

automatic editing system for MCNP library "autonj" was developed. The autonj includes

the NJOY-97 code as its main body, and is a system that enables us to easily produce

cross section libraries for MCNP from evaluated nuclear data files such as JENDL-3.2.

A temperature dependent library at six temperature points based on JENDL-3.2 was

produced by using autonj. The autonj system and the temperature dependent library

were installed on the JAERI AP3000 computer.

Keywords : autonj, MCNP, NJOY, JENDL-3.2, Temperature Dependent, AP3000

+1 Nuclear Safety Research Center+2 Center for Promotion of Computational Science and Engineering+3 Department of Fuel Cycle Safety Research

*' Sumitomo Atomic Energy Industries, Ltd.

*2 FUJITSU, Ltd.

*3 NAIS, Ltd.

JAERI-Data/Code 99-048

Contents

1. Introduction 1

2. autonj System 2

2.1 Outline of the System 2

2.2 NJOY97Code 3

2.3 Processing Conditions 4

2.4 Installation of autonj 7

2.5 Execution of autonj - 8

3. Verification Calculation 10

3.1 Benchmark Problems " 10

3.2 Comparisons of Calculated Results 10

4. Temperature Dependent Libraries 12

4.1 Production of the Library 12

4.2 Verification of the Library 12

5. Utilization on the JAERI AP3000 System 14

5.1 Places of Installation and File Names 14

5.2 HowtoUtilize — 15

5.3 How to Obtain Evaluated Nuclear Data File JENDL-3.2 16

6. S u m m a r y •••; 18

Acknowledgment 18

References 19

Appendix A Local Patch File "uphp45" for NJOY97.45/SAE 35

Appendix B An example of Batch Excution of autonj on AP3000 52

iv

JAERI-Data/Code 99-048

2.2 autonj-pub.tar

drwxrwxrwx-rw-rw-rw-drwxrwxrwx

drwxrwxrwx

Utility:-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—

autonj-test:-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—

njoy:-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r---rw-r—r—-rw-r—r—-rw-r—r—-rw-r—r—

21212

111111

111111111111

1111

111111111111

111111111111

fujiofujiofujiofujiofujio

fujiofujiofujiofujiofujiofujio

fujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujio

fujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujiofujio

usersusersusersusersusers

usersusersusersusersusersusers

usersusersusersusersusersusersusersusersusersusersusersusers

usersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusersusers

10248806400

1024167441024

168483096228954614475212792

2744336858

4853794182

636473144631039741782

1356482625

3512289782

354349

11795761343322820801554881209163417641138646742470829643481624682019805838442112144338840200380387000207432367736406782063141201425734660076356556170366

JulJulJulJanJul

JanJanJanJanJanJan

DecDecDecDecDecDecDecDecDecDecDecDec

JanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJanJan

3131312931

191919191929

111112111411151015111515

19191919191919191919191919191919191919191919191919191919

21:4421:3821:45199921:45

199919991999199919991999

199819981998199819981998199819981998199819981998

1999199919991999199919991999199919991999199919991999199919991999199919991999199919991999199919991999199919991999

Utilityautonj-pub.tarautonj-testautonj.shnjoy

awr-listmakxsf.fmatlist.fmklxsd.fmkxsdir.fnj-inp.f

C_l.1stC_l.ncnCu_l.1stCu_l.mcnFe_l.1stFe_l .menSigl.1stSigl.menSinl.1stSinl .menfpl8.1stfpl8.men

Make-hpMake-sunacer.fbroadr.fccccr.fcovr.fdtfr.ferrorr.fgaminr.fgaspr.fgroupr.fheatr.fleapr. fmatxsr.fmixr.fmoder.fnjoy.fplotr.fpowr.fpurr.freconr.fresxsr.fthermr.funresr.fup45uphp45viewr.fwimsr.f

- 21 -

: 2.3 autonj

file namfi

aceflautonj.shautonj-countautonj_dummyautonj-matlistautonj-nowautonj-stopautonj-xsdirfsxlb32*inp-autonjinputmakxsfjdmatlist_ldmkxsdir_ldmklxsd_ldnjoy/xnjoynj-inp_ldoutputspecstape*tape91tape92tprintUitlity/awr-listUtihty/makxsf.fUtdlity/matlist^Utility/mkxsdir.fUtility/mklxsdfUtility/nj-inpfxsdir.fsxlb32*

Hirartnry name

ACE-FILEJENDL-evalJ3R2njoyOUT-FILEUtility

mmment

a single type-1 library integrated aUACE-files [temporary, formatted].a C-shell script file for executing the autonj system [permanent, formatted].a file included count number of processed nuclides by NJOY97 [scratch, formatted].a dummy file stored the non-displayed message [scratch, formatted].a file stored the processing nuclides and the file names [scratch, formatted].a file included now processing nuclide name [scratch, formatted].a file included an error message from autonj [temporary, formatted].a directory file of single type-1 library integrated allACE-files [temporary, formatted].a default name of MCNP continuous energy neutron cross section library [optional, formatted & unformatted].user input data file for the autonj [temporary, formatted].an input data file for NJOY97.45/SAE [scratch, formatted].MAKXSF execution file [scratch, unformatted].MATLIST execution file [scratch, unformatted].MKXSDIR execution file [scratch, unformatted].MK1XSD execution file [scratch, unformatted].NJOY97.457SAE execution file [permanent, unformatted].NJ-INP execution file [scratch, unformatted].an output list file by NJOY97.45/SAE [scratch, formatted].an input data file for MAKXSF [scratch, formatted].interface files by each module in NJOY97 [scratch, formatted & unformatted].a nuclide of ACE-type cross section file by NJOY97 [scratch, formatted].a nuclide of directory file by NJOY97 [scratch, formatted].an output list file by MAKXSF [scratch, formatted].a file stored the atomic weight ratios for directory file [permanent, formatted].MAKXSF fortran source program [permanent, formatted].MATLIST fortran source program [permanent, formatted].MKXSDIR fortran source program [permanent, formatted].MK1XSD fortran source program [permanent, formatted].NJ-INP fortran source program [permanent, formatted].a default name of directory file of MCNP library, fexlb322 [optional, formatted].

mmmfmt.

to be stored the ACE-type cross section files (ace.#) and directory files (dir.#) by NJOY97 [optional, formatted].to be stored the evaluated nuclear data files uncompressed from the compressed files [scratch, formatted].stored the JENDL-3.2 files (j32fB3##) with ENDF-6 format [permanent, formatted].stored the NJOY97.45/SAE fortran source programs (*.f), the makefile (Make*) and the patch files (up*) [permanent, formatted].to be stored the compressed output list files (out.#.Z) by NJOY97 [optional, formatted].sotred utility programs above [permanent, formatted]

hp2» autonj.sh

autonj automatic production system of a mcnp cross sectionlibrary from JENDL by the NJOY97 code.

Please select your computer environment.HP = HP9000-series, HP-C-seriesSUN = Sun SparcStation4/5

= > HP

Please select an input mode.0 = input from a file.1 = interactive input on this terminal.==========> l

Please select the option of using disk space (or producing files)0 = minimum disk size (mcnp library)1 = medium disk size (mcnp library and output list)2 = maximum disk size (library, list and ace file)(maximum size is about 1.4 GB for JENDL-3.2.)(If blank, default size is minimum.)==========> 0

Please enter the path name where JENDL file are located.(When you finish entering all file names, please enter a blank.)(If a directory name is given, all files in the directory areprocessed. Only one directory name is allowed. The lastcharacter must not be a slash (/).)==========> J3R2

list of files in the directory aboveJ3R2/j32f6301J3R2/j32f6302J3R2/j32f6303J3R2/j32f6304J3R2/j32f6305J3R2/j32f6306J3R2/j32f6307J3R2/j32f6308J3R2/j32f6309J3R2/j32f6310J3R2/j32f6311J3R2/j32f6312J3R2/j32f6313J3R2/j32f6314

Please enter the MAT numbers of nuclides that you want to process.(If blank, all nuclides contained in the specified files are

processed.)

Please enter the processing temperature with NJOY97.(If blank, default temperature is 293 K.)(for example: 300 < 300 kelvin)( 27C < 27 Celsius = 300.15 K)==========> 293

Please enter a library identification number in zaid for MCNP.(It corresponds to the "suff" parameter in input data of NJOY/ACER.)(It must be integer with two degits.)(If blank, default identification number is 38. (If Fe, 26000.38c))==========> 80

Please enter a tolerance of pointwise cross section data.(The unit of tolerance is [%].)(If blank, default tolerance is 0.2 %.)==========> 0.2

Please enter the maximum number of discrete gamma-ray energies.(It must be less than 1000 for MCNP-4B or 200 for the previous version.)(If blank, default number is 1000.)

Please enter the general name of nuclear data file.(It will be a part of the "hk" in input data of NJOY/ACER.)(Maximum 16 characters.)(If blank, the name will be prepaired from the nuclear data file.)(for example: jendl-3.2 )

( + 1 + . )==========> JENDL-3.2

Please enter types of MCNP cross section library.(If blank, default type of library is Type-2.)1 = Type-1 (text format)2 = Type-2 (binary format)

12 = Type-1 and Type-2==========> 12

Please enter a file name of the MCNP cross section library.(Maximum 7 characters.)(When the given name is "fsxlib2", the complete name is "fsxlib21",if it is Type-1.)

M 2.2 autonj

COen

A NJOY97.45/SAE ffl D—* ;i//\° y ̂ 7 T -i ;!Aiphp45"

*ident hp* i

*/ machine-dependent changes to njoy97*/ for hp9000/735 workstations using hpux-9.05*/ be sure to use "*set sw"./*d njoy.280,281

data lab/'saei ' /data mx/'hp735 ' /

*/ provide machine-specific fatal error exit*d njoy.337,338

stop 77*/ elapsed time*d njoy.485

dimension tarray(2)c return user time plus system time

time=etime(tarray)*/ date*d njoy.495

dimension iarray(3)call idate(iarray)iarray(3)=iarray(3)-1900write(hdate,•(i2,lh/,i2,lh/,i2)') iarray(2),iarray(l),iarray(3)

*/ wall clock time*d njoy.508

character*24 sdatecall fdate(sdate)htime=sdate(12:19)

*/ machine constants for slatec functions*d njoy.4884,4895*d njoy.4900,5306cc machine constants for linux g77 with "*set sw"c

dmach(l)=2.22507385d-308dmach(2)=1.79769313d+308dmach(3)=1.11022302d-16dmach(4)=2.22044605d-16dmach(5)=0.30103001d+0

*/ random number generator*d njoy.5721,5722

rann=rand()*/* f•ident sael*, ^*/ change of primary dimension size*/ njoy97.45 version* j*/*d up27.21

common/astore/a(150000)*d up27.23

data namax/150000/, nidmax/27/*d up27.25

common/astore/a(150000)*d up27.27

common/astore/a(150000)*d up27.29

common/astore/a(150000)•d up27.31

common/astore/a(150000)*d up27.33

common/astore/a(150000)*d up27.35

common/astore/a(150000)*d up27.37

common/astore/a(150000)*d up27.39

common/astore/a(150000)*d up27.41

common/astore/a(150000)*d up27.43

common/astore/a(150000)*d up27.45

common/astore/a(150000)*/*d heatr.90

common/hstore/a(150000)*d heatr.98

namax=15000*/*d groupr.242

common/gstore/a(150000)*d groupr.268

iamax=150000*/*d dtfr.107

common/dstore/a(20000),sig(35000)*d dtfr.114

data nwamax/20000/,nwsmax/35000/•d dtfr.892

common/dstore/x(3500),y(3500),z(455),a(47545)*/• /

•ident sae2ir I _

*/ modification for njoy97.45*/ by k.kosako (saei)it ) _,

• /

*d up30.141 '(''need '',i7,'' more words for id '',a4,'', (iamax='',i82 '')'')') need,id,iamax

*/•i groupr.2981

save igl,ngl,nq*i groupr.3587

lfs=0*d groupr.3611

if (lfs.le.l) go to 150*d groupr.3907

save ifirst,nyl,nf1,nk,igmin*d groupr.4941

save eps,xc,ndnow.npnow,ncnow,elmax,e,epmax,na*d groupr.5166

save efirst,nl,inow,lnow,mnow,ncnow,na,enow*i groupr.5635

save elo,ehi,intt*d groupr.62 99

dimension p(21)*d groupr.6681

save li,iloca,lcd,lct,ltt

>tn

SSIpo00

ICO

*d groupr.7092save awr,ipd,ird,loca

*/*/ groupr : in lo=2, correct process when there is loss discrete*/ inelastic level*i groupr.7224

common/mainio/nsysi,nsyso,nsyse,ntty*i groupr.7232

common/lo21ol/alo21(30100),losmth(40)*/*d groupr.7243*/ imax=250•i groupr.72 69

lossmt=0*d groupr.7441,7489

if (mtO.eq.O) then

call mess('conver','convert photon transition probability '//& 'arrays (lo=2)','to photon yields (lo=l) of mf12.')

if (mth.ne.51.and.mth.ne.601.and.mth.ne.651.and.mth.ne.701.& and.mth.ne.751.and.mth.ne.801) then

if (mth.gt.51.and.mth.le.90) thenlossmt=mth-51mt0=50

elseif (mth.gt.601.and.mth.le.640) thenlossmt=mth-601mt0=600

elseif (mth.gt.651.and.mth.le.690) thenlossmt=mth-651mt0=650

elseif (mth.gt.701.and.mth.le.740) thenlossmt=mth-701mtO=700

elseif (mth.gt.751.and.mth.le.790) thenlossmt=mth-751mt0=750

elseif (mth.gt.801.and.mth.le.840) thenlossmt=mth-801mtO=8OO

endifdo i=l,lossmt

losmth(i)=i+mt0enddo

endifelse

if (mth.eq. 51.or.mth.eq.601.or.mth.eq.651.or.mth.eq.701.or.& mth.eq.751.or.mth.eq.801) then

else

if (mth.ne.mtO+1) thenlsmt0=mth-mt0-ldo i=l,lsmt0

losmth(lossmt+i)=mt0+ienddoIossmt=lossmt+lsmt0

endifendif

endifmt0=mthnt=n2ha(ie+j-l)=a(iscr)esns=a(iscr)ysum=0.il=iscr+6

do 1004 i=l,ntif (lg.eq.l) then

i2=il+2*(i-l)tp=a(i2+l)SP=1.

elseif (lg.eq.2) theni2=il+3*(i-l)tp=a(i2+l)gp=a(i2+2)

endifa(iaa+i-1)=tpa(ir+i-l)=gpa(ieg+i-l)=esns-a(i2)a(ies+i-l)=esnsa(iy+i-l)=tp*gp

1004 ysum=ysum+a(iy+i-1)if (j.eq.2) then

irx=lmax+lalo21(l)=irx

elseii=nint(alo21(j-2))ntn=nint(alo21(ii))irx=ii+ntn*3+lalo21(j-l)=irx

endifalo21(irx)=ntdo i=l,nt

alo21(irx+(i-l)*3+l)=a(ieg+i-l)alo21(irx+(i-1)*3+2)=a(ies+i-1)alo21(irx+i*3)=a(iy+i-1)

enddoif (j.eq.2) go to 1014ntup=nt

c loop over ns-levelsdo 1008 i=l,ntif (lg.eq.l) then

i2=il+2*(i-l)gp=l.

elseif (lg.eq.2) theni2=il+3*(i-l)gp=a(i2+2)

endifesi=a(i2)tp=a(i2+l)if (esi.eq.0.) go to 1008

c loop over previous ns-levelsdo 1007 k=2,j-lresi=esi/a(ie+k-1)-1.if (abs(resi).le.2.e-4) then

ii=nint(alo21(k-l))ntn=nint(alo21(ii))if (ntup+ntn.gt.lmax) then

write(strng,' (' 'required='' , i6, '' lmax='',i6)')& ntup+ntn,lmax

call error!'conver','gamma transition levels was lack.& ' ')

endifdo n=ntup+1,ntup+ntn

alo21(irx+(n-l)*3+l)=alo21(ii+(n-ntup-l)*3+l)alo21(irx+(n-l)*3+2)=alo21(ii+(n-ntup-1)*3+2)alo21(irx+n*3)=alo21(ii+(n-ntup)*3)*tp*gpa(ieg+n-l)=alo21(irx+(n-l)*3+l)a(ies+n-l)=alo21(irx+(n-l)*3+2)a(iy+n-l)=alo21(irx+n*3)

Is

o00

I

ysum=ysum+a(iy+n-1)enddontup=ntup+ntngo to 1008

endif1007 continue1008 continuec collapse duplicated gamma energies

nd=0do 1012 n=l,ntup-lif (n+nd.gt.ntup-1) go to 1013es i i =a(ieg+n-1)do 1011 k=n+l,ntup

1009 if (k+nd.gt.ntup) go to 1012resii=esii/a(ieg+k-1)-1.if (abs(resii).le.2.e-4) then

nd=nd+la(iy+n-l)=a(iy+n-1)+a(iy+k-l)alo21(irx+n*3)=a(iy+n-l)if (k.lt.ntup) then

do l=k,ntup-nd-lalo21(irx+(l-l)*3+l)=alo21(irx+l«3+l)alo21(irx+(l-l)*3+2)=alo21(irx+l*3+2)alo21(irx+l*3)=alo21(irx+(1+1)*3)a(ieg+l-l)=a(ieg+l)a(ies+l-l)=a(ies+l)

alo21(irx+l*3+l)=0.alo21(irx+l*3+2)=0.alo21(irx+(l+l)*3)=0.

enddogo to 1009

endifendif

1011 continue1012 continue1013 ntup=ntup-nd

if (nt.ne.ntup) thenalo21(irx)=ntupnt=ntup

endif1014 continue

l=nt*d groupr.7532

a(iscr+8)=esns*d groupr.7548

a(iscr+8)=esns*i groupr.7849

if (lossmt.gt.0) write(nsyso,'(& ' ' message from conver no given mt numbers in lo=2& ''were as follows:''4 /2 6x,''(number of mt ='',i4, ' ' ) ' '& /(26x,10i5>)•)

=l,lossmt)*/

lossmt,(losmth(i),

*i broadr.429mt4i=0

*i broadr.658if (mth.eq.4) then

do 278 i=l,nnncall findafi,tt,ntx,inew,a(ibufn),nbuf)if (tt(l).le.thnmax) then

b9=0.0d+0do 277 j=l,nreac

277 if (mtr(j).ge.51.and.mtr(j).le.90) b9=b9+tt(j+1)if (b9.gt.O.) go to 279call getunx(1,tt(1),en,sun,a)if (sun.gt.0.) go to 279

elsecall getylltt(1),enext,idis,sun.nscrl,a(ib))if (sun.gt.0.) go to 279

endif27 8 continue279 continue

endif*/*/ acer : neutron yield (mf=l, mt=452,456) of nr>l*i acer.1248

if (int.eq.l) then

b(2)=a(iy+l)call loada(ne,b,2,itape,a(ibuf),nbuf)

endif*d acer.1270150 if (int.eq.2) then

ne=ne+l

b(2)=a(iy+l)go to 175

endifxm=(a(ix+i-l)+a(ix+i-2))/2

*i acer.1284175 continue

*i acer.1302if (int.eq.l) b(2)=a(iy+l)

*/*d acer.205

nned=40*/*/ acer : bug fix to read the mf=6,lf=7 format•i acer.2058

if (lf.eq.7) go to 116*d acer.2066*d acer.2074,2075

ne=n2hdo 1118 ie=l,ne

•d acer.2077,2078nmu=n2hdo 1117 imu=l,nmu

*/*/ acer : double precision constants for accurate numericals*d acer.2705

delmuf=0.02d+0*d acer.2707

a(iamu)=-1.d+0•i acer.2710

a(iamu+50)=0.0d+0a(iamu+mmfne)=1.0d+0

•d acer.2731sum=0.0d+0

•d acer.2735,2738c for the 100 subinterval case, and from mu=-l to amumid, we don'tc print it if the area in any subinterval is negative,c for the 1000 subinterval case, we print a non fatal diagnosticc if the area in any subinterval is negative.*d acer.2739

>tnJO

1oo

if (iloop.eq.l.or.a(iprob+j-l).gt.O.) go to 240*d acer.2755

a(iamu)=-l.d+0*d acer.2757

do 270 j=2,mfmid*i acer.2759

a (mfmid+iamu) =amumid*/*/ acer : reject the zero angular probability bin*d acer.2997,3000

do 125 il=l,np125 if (a(2*il+ibase).gt.O.) go to 126

il = l126 if (il.eq.np.and.int.ge.2) il=il-l

i2=0do 130 i=il,npi2=i2+lamu(i2)=a(2*i-l+ibase)p(i2)=a(2«i+ibase)

130 continueif (il.gt.l) np=np-il+l

*/*/ acer : adjustment of the format statements*d acer.2742

1,el2.5 /25x,''e='• , el2 . 5 ,

at e=' ',el2.4/mt='',i3,'' int='•,i2)')

at e='',el2.4/mt=11,i3,'1 int='

at e='',el2.4/mt='',i3,'' int=

M2) •)

• ,12) ')

1 ' mt=' '

1 ' mf=' '

2 Ip,el2.5, ' ' and ",el2.5,",*d acer.3048,3050

3 25x,''is off by '',lp,el2.5,'4 25x,''mat='',i4,'' mf=11,i2,1

5 areal,e,mat,mf,mt,int*d acer.3108,3110

3 25x,''is off by '',lp,el2.5,'4 25x,''mat='',i4,'' mf='',i2,'5 areal,e,mat,mf,mt,int

*d acer.3153,31553 25x,''is off by '',lp,el2.5,'4 25x,''mat='',i4,'' mf='',i2,'5 areal,e,mat,mf,mt,int

•d acer.32843 25x,''area='',lp,el2.5,'' mat='•,i4,'' mf='',i2,

•d acer.32912 ''bins, '',/25x,''area='',lp,el2.5,'' mat='',i4,

*/*/ acer : in lo=2, correct process when there is loss discrete*/ inelastic level*i acer.3714

common/lo21ol/alo21(30100),losmth(40)character*60 strng

*/*d acer.3727*/ imax=2 50*i acer.3727

lmax=100*d acer.3732,3734

call reservf'eg',lmax,ieg,a)call reserv('es',lmax,ies,a)call reservl'y',lmax,iy,a)

*i acer.3786mt0=0lossmt=0

*d acer.3885,3888writelnsyso,'(6 '' message from convr integrated photon production'h '' cross section do not match to the total.''& /26x, " a £ = " , i 2 , " mt='',i3,'' e= ' ' , Ip,el2 . 5,& '.', endf yield=' ' , el2 . 5 , ' ' , integrated yield= •', el2 . 5

& /26x,''difference[%]='',el2.5)')& mfd,mtd,a(l+2*i-l),a(iyold-1+i),a(l+2*i),diff

•d acer.3928,3976if (mtO.eq.O) then

j=2call mess('convr','convert photon transition probability '//

& 'arrays (lo=2)','to photon yields (lo=l) of mf12.')if (mth.ne.51.and.mth.ne.601.and.mth.ne.651.and.mth.ne.701.

& and.mth.ne.751.and.mth.ne.801) thenif (mth.gt.51.and.mth.le.90> then

lossmt=mth-51mt0=50

elseif (mth.gt.601.and.mth.le.640) thenlossmt=mth-6 01mt 0=600

elseif (mth.gt.651.and.mth.le.690) thenlossmt=mth-651mt0=650

elseif (mth.gt.701.and.mth.le.740) thenlossmt=mth-7 01mt0=700

elseif (mth.gt.751.and.mth.le.790) thenlossmt=mth-7 51mt0=750

elseif (mth.gt.801.and.mth.le.840) thenlossmt=mth-801mt0=800

endifdo i=l,lossmt

losmth{i)=i+rat0enddo

endifelse

if (mth.eq. 51.or.mth.eq.601.or.mth.eq.651.or.mth.eq.701.or.& mth.eq.751.or.mth.eq.801) then

j=2else

j = j + lif (mth.ne.mtO+1) then

Ismt0=mth-mt0-ldo i=l,lsmt0

losmth(lossmt+i)=mt0+ienddoIossmt=lossmt+lsmt0

endifendif

endifmt0=mthnt=n2ha(ie+j-l)=a(iscr)esns=a(iscr)ysum=0.d+0il=iscr+6do 1004 i=l,ntif (lg.eq.l) then

i2=il+2*(i-l)tp=a(i2+l)gp=l.

elseif (lg.eq.2) theni2=il+3*(i-l)tp=a(i2+l)gp=a(i2+2)

endifa(iaa+i-l)=tp

>

in2

IOJ

a(ir+i-l)=gpa(ieg+i-1)=esns-a(i2)a(ies+i-l)=esnsa(iy+i-l)=tp*gpysum=ysum+a (iy+i-1)

1004 continueif (j.eq.2) then

irx=lmax+lalo21(l)=irx

elseii=nint(alo21(j-2))ntn=nint(alo21(ii))irx=ii+ntn*3+lalo21(j-l)=irx

endi £alo21(irx)=ntdo i=l,nt

alo21(irx+(i-l)*3+l>=a(ieg+i-1)alo21(irx+(i-1)*3+2)=a(ies+i-1)alo21(irx+i*3)=a(iy+i-1)

enddoif (j.eq.2| go to 1014ntup=nt

c loop over ns-levelsdo 1008 i=l,ntif (lg.eq.l) then

i2=il+2*(i-l)gp=l.

elseif (lg.eq.2) theni2=il+3*(i-1)gp=a(i2+2)

endifesi=a(i2)tp=a(i2+l)if (esi.eq.0.) go to 1008

c loop over previous ns-levelsdo 1007 k=2,j-lresi=esi/a(ie+k-l)-1.if (abs(resi).le.2.e-4) then

ii=nint(alo21(k-l))ntn=nint(alo21(ii))if (ntup+ntn.gt.lmax) then

write(strng,'(''required='',i6,'' lmax='',i6)')& ntup+ntn,lmax

call error('convr','gamma transition levels was lack.& • •)

endifdo n=ntup+l,ntup+ntn

alo21(irx+(n-l)*3+l)=alo21(ii+(n-ntup-l)*3+l)alo21(irx+(n-l)*3+2)=alo21(ii+(n-ntup-l)*3+2)alo21(irx+n*3)=alo21(ii+(n-ntup)*3)*tp*gpa(ieg+n-l)=alo21(irx+(n-l)*3+l)a(ies+n-l)=alo21(irx+(n-l)*3+2)a(iy+n-1)=alo21(i rx+n* 3)ysum=ysum+a(iy+n-1)

enddontup=ntup+ntngo to 1008

endif1007 continue1008 continuec collapse duplicated gamma energies

nd=0do 1012 n=l,ntup-l

if (n+nd.gt.ntup-1) go to 1013esii=a(ieg+n-1)do 1011 k=n+l,ntup

1009 if (k+nd.gt.ntup) go to 1012resii=esii/a(ieg+k-l)-1.if (abs(resii).le.2.e-4) then

nd=nd+la(iy+n-1)=a(iy+n-1)+a(iy+k-l)alo21(irx+n*3)=a(iy+n-1)if (k.lt.ntup) then

do l=k,ntup-nd-1alo21(irx+(l-l)*3+l)=alo21(irx+l*3+l)alo21(irx+(l-l)*3+2)=alo21(irx+l*3+2)alo21(irx+l*3)=alo21(irx+(l+l)*3)a(ieg+l-l)=a(ieg+l)a{ies+l-l)=a(ies+l)

alo21(irx+l*3+l)=0.alo21(irx+l*3+2)=0.alo21(irx+(l+l)*3)=0.

enddogo to 1009

endifendif

1011 continue1012 continue1013 ntup=ntup-nd

if (nt.ne.ntup) thenalo21(irx)=ntupnt=ntup

endif1014 continue

l=nt*d acer.4019

a{iscr+8)=esns*d acer.4035

a(iscr+8)=esns*i acer.4151

if (lossmt.gt.0) write(nsyso,'(& ' ' message from convr no given mt numbers in lo-2& ''were as follows:''& /2 6x,''(number of mt = 1 1,i4, 1 1) 1 1

& /(26x,10i5))')& lossmt,(losmth(i),i=l,lossmt)

*/*d acer.5710

if (gyl.eq.0.) thenxss(next+ngyl+j)=0.

elsexss(next+ngyl+j)=sigfig(y/gyl,7,0)

endif*/*d acer.6479

akal=2.d+0*fbarc*(1.d+0-4.d+0*fbarc**2.d+0/3.d+0)if (abs(akal).lt.5.d-3) akal=5.d-3

5̂26

I6oo

7 reconr : add the output message of resonance energy region andI modify the process by upper energy of unresolved resonanceI region (eresg) for zr-0 (jendl-3.2)d reconr.95

common/reslim/eres1,eresr,eresh,eresu,eresm,eresgi reconr.225

eresg=9.d9d reconr.482

common/reslim/eresl,eresr,eresh,eresu,eresm.eresg*i reconr.529c eresg is highest unresolved upper bound*i reconr.53 4

eresg=0.d+0*i reconr.590

if (eh.gt.eresg) eresg=eh•i reconr.917

write(nsyso,'(&/'' energy range of resonance parameters (ev)''

&/'' lowest resonance lower bound (eresl) '',lpel2.5&/'' highest resonance upper bound (eresh) ' ' , el2.5i/ ' ' highest resolved upper bound (eresr) ' ' , el2 . 5&/ ' ' lowest unresolved lower bound (eresu) '' , el2.5&/ ' ' lowest unresolved upper bound (eresm) .......'', el2. 5&/ ' ' highest unresolved upper bound (eresg) '', el2 . 5&/ ' ' the number of isotopes with resonance ' ' , il2&/ ' ' the number of total subsections ' ' , il2 ) ')& eresl,eresh,eresr,eresu,eresm,eresg,nis,nsect

*d reconr.933if (e.ge.(1+eps)*eresg) go to 390

•d reconr.944,9452 5x,Ip,2el2.3)') eresu,minleresr,eresg)

395 if (eresm.ge.eresg) go to 396*d reconr.948

2 5x,Ip,2el2.3)') eresm,eresg396 if (eresg.ge.eresr) return

writetnsyso,'(/1 ' ' mat has resolved-smooth overlap in range' '/2 5x,Ip,2el2.3)') eresg,eresr

*d reconr.1197common/reslim/eresl,eresr,eresh,eresu,eresm,eresg

*d reconr.1596common/reslim/eresl,eresr,eresh,eresu,eresm,eresg

*d reconr.1873common/reslim/eresl,eresr,eresh,eresu,eresm,eresg

*d reconr.1924if (e.ge.eresg) return

*d reconr.3513common/reslim/eresl,eresr,eresh,eresu,eresm.eresg

*d reconr.3763common/reslim/eresl,eresr,eresh,eresu,eresm,eresg

*/*/ heatr : process of mf=6,law=4 and skip unused mt in mf=6*d heatr.333

common/hmf6t/awpmt6(320),i6,mt6(320),i6g,mt6no(320)*i heatr.491

awpmt6(ii6)=0.d+0*i heatr.497

law=12h*i heatr.503

if (law.eq.4) thenmt6no(ii6)= -abs(ik-1)awpmt6(ii6)=c2hgo to 609

endif*d heatr.519*d heatr.556

if (abs(mt6no(ii6)),gt.0) thencall mess('hinit',strng,

& 'but, two-body recoil was already desired.1)elseif (rat.eq.102) then

*d heatr.642

common/hmf6t/awpmt6(320),i6,mt6(320),i6g,mt6no(320)•i heatr.1125

if (irec.eq.O) thenif (abs(mt6no(i6g)).eq.j6) irec=abs(mt6noIi6g))

elsej = j 6-irecif (j.gt.O) then

jl=0310 jl=jl+l

if (jl.gt.j) go to 316call tablio(nend6,0,0,alia),nb,nw)law=12hif (law.eq.1.or.law.eq.2.or.law.eq.5) then

call tab2io(nend6,0,0,a(ia),nb,nw)neO=n2hdo 312 ie=l,ne0call Iistio(nend6,0,0,a(ia),nb,nw)

311 if (nb.eq.0) go to 312call moreio(nend6,0,0,a(ia),nb,nw)go to 311

312 continueelseif (law.eq.6) then

call contio(nend6,0,0,a(ia),nb,nw)elseif (law.eq.7) then

call tab2io(nend6,0,0,a(ia),nb,nw)neO=n2hdo 315 ie=l,ne0call tablio(nend6,0,0,a(ia),nb,nw)nmu=n2hdo 314 imu=l,nmucall tablio(nend6,0,0,a(ia),nb,nw)

313 if (nb.eq.0) go to 314call moreio(nend6,0,0,a(ia),nb,nw)go to 313

314 continue315 continue

endifgo to 310

316 continueendifirec=0

endif*d heatr.1134

if Imt6no(i6g).gt.0) then*i heatr.2183

common/hmf6t/awpmt6(320),i6,mt6(320),i6g,mt6no(320)*d heatr.2208

call repoz(nin)*i heatr.2254

if (irec.gt.O.and.awpmt6(i6g).gt.0.) thenawp=awpmt 6(i 6g)

elselall=0

endif*d heatr.2293

if (irec.gt.0.and.lall.eq.0) ap=awr+l-awp*/*d heatr.2796

save small,xc,ndnow.npnow.ncnow,elmax,e,epmax,na*d heatr.3020

. save efirst.nl,inow.mnow,lnow,ncnow,na,enow

*/ heatr : in lo=2, correct process when there is loss discrete

Si8-

o00

*/ inelastic level*i heatr.3817

common/mainio/nsysi,nsyso,nsyse,nttycommon/proj/izap,awrpcommon/lo21ol/alo21(30100),losmth(40)

*/*d heatr.3827*/ imax=2 50*i heatr.3834

mt0=0lossmt^O

*d heatr.3888,3936if (mtO.eq.O) then

j = 2call mess('hconvr','convert photon transition probability '//

& 'arrays (lo=2)','to photon yields (lo=l) of mf12.')if (mth.ne.51.and.mth.ne.601.and.mth.ne.651.and.mth.ne.701.

& and.mth.ne.751.and.mth.ne.801) thenif (mth.gt.51.and.mth.le.90) then

lossmt=mth-51mt0=50

elseif (mth.gt.601.and.mth.le.640) thenlossmt=mth-601mt0=600

elseif (mth.gt.651.and.mth.le.690) thenlossmt=mth-651mt0=650

elseif (mth.gt.701.and.mth.le.740) thenlossmt=mth-701mt0=700

elseif (mth.gt.751.and.mth.le.790) thenlossmt=mth-751mt0=750

elseif (mth.gt.801.and.mth.le.840) thenlossmt=mth-801mtO=8OO

endi fdo i=l,lossmt

losmth(i)=i+mt0enddo

endifelse

if (mth.eq. 51.or.mth.eq.601.or.mth.eq.651.or.mth.eq.701.or.& mth.eq.751.or.mth.eq.801) then

d=2else

j=j + lif imth.ne.mt0+l) then

lsmt0=mth-mt0-ldo i=l,lsmt0

Iosmth{lossmt+i)=mt0+ienddoIossmt=lossmt+lsmt0

endifendif

endifmt0=mthnt=n2ha(ie+j-l)=a(iscr)esns=a(iscr)ysum=0.il=iscr+6do 1004 i=l,ntif (lg.eq.l) then

tp=a(i2+l)gp=l.

elseif (lg.eq.2) theni2=il+3*(i-l)tp=a(i2+l)gp=a(i2+2)

endifa(iaa+i-1)=tpa(ir+i-l)=gpa(ieg+i-l)=esns-a(i2)a(ies+i-l)=esnsa(iy+i-l)=tp*gp

1004 ysum=ysum+a(iy+i-l)if (j.eq.2) then

irx=lmax+lalo21(l)=irx

elseii=nint(alo21(j-2))ntn=nint(alo21(ii))irx=ii+ntn*3+lalo21(j-l)=irx

endifalo21(irx)=ntdo i=l,nt

x+(i-l)*3+l)=a(ieg+i-l)x+(i-l)*3+2)=a(ies+i-l)

alo21(irx+i*3)=a(iy+i-l)enddoif (j.eq.2) go to 1014ntup=ntloop over ns-levelsdo 1008 i=l,ntif (lg.eq.l) then

i2=il+2*(i-l)gp=l.

elseif (lg.eq.2) theni2=il+3*(i-l)gp=a(i2+2)

endifesi=a(i2)tp=a(i2+l)if (esi.eq.0.) go to 1008loop over previous ns-levelsdo 1007 k=2,j-1resi=esi/a(ie+k-l)-1.if (abs(resi),le.2.e-4) then

ii=nint(alo21(k-l))ntn=nint(alo21(ii))if (ntup+ntn.gt.lmax) then

write(strng,' (' 'reguired='' , i6, ' ' lmax='',i6)')& ntup+ntn,lmax

call error!'hconvr','gamma transition levels was lack.& ' ' )

endifdo n=ntup+l,ntup+ntn

alo21(irx+(n-l)*3+l)=alo21(ii+(n-ntup-l)*3+l)alo21(irx+(n-1)*3+2)=alo21(ii+(n-ntup-1)*3+2)alo21(irx+n*3)=alo21(ii+(n-ntup)*3)*tp*gpa(ieg+n-l)=alo21(irx+(n-1)*3+l)a(ies+n-l)=alo21(irx+(n-l)*3+2)a(iy+n-l)=alo21(irx+n*3)ysum=ysum+a{iy+n-1)

enddontup=ntup+ntn

PI50

s

otx

go to 1008endif

1007 continue1008 continuec collapse duplicated gamma energies

nd=0do 1012 n=l,ntup-lif (n+nd.gt.ntup-1) go to 1013esii=a(ieg+n-1)do 1011 k=n+l,ntup

1009 if (k+nd.gt.ntup) go to 1012resii=esii/a(ieg+k-1)-1.if (abs(resii),le.2.e-4) then

nd=nd+la ( iy+n-1) =a ( iy+n-1) +a (iy+k-1)alo21(irx+n*3)=a(iy+n-l)if (k.It.ntup) then

do l=k,ntup-nd-lalo21(irx+(l-l)*3+l)=alo21(irx+l*3+l)alo21(irx+(l-l)*3+2)=alo21(irx+l*3+2)alo21(irx+l*3)=alo21(irx+(l+l)*3)a(ieg+1-1)=a(ieg+1)a(ies+l-l)=a(ies+l)

•ident sae3it t

second modification for NJOY97.45(since njoy91)

alo21(irx+l*3+l)=0.alo21(irx+l*3+2>=0.alo21(irx+(l+l)*3)=0.

enddogo to 1009

endifendif

1011 continue1012 continue1013 ntup=ntup-nd

if (nt.ne.ntup) thenalo21(irx)=ntupnt=ntup

endif1014 continue

l=nt*d heatr.3979

a(iscr+8)=esns*d heatr.3995

a(iscr+8)=esns*i heatr.4083

if (lossmt.gt.0) write(nsyso,'(& '' message from hconvr no given mt numbers in lo=2& ''were as follows:''& /2 6x,'•(number of mt ='',i4,'')''& /(26x,10i5))•)& lossmt,(losmth(i),i=l,lossmt)

*/*/ heatr : set projectile data for mf=l,mt=456=452*d heatr.4023

izap=lawrp=l.d+0if (iverf.lt.6) go to 552call contio(nin,nout,nscr,a(iscr),nb,nw)call contio(nin,nout,nscr,a(iscr),nb,nw)izap=nlh/10awrp=clh

552 call tosendtnin,nout,nscr,a(iscr))*/*/

*/*/*/*/*/ acer : for nr>l in law 7, convert from probability to histogram*/ form, and fix the bug of tablio and moreio.•d acer.2969

dimension a(10),nbt0(10),jntO(10)*i acer.3187

now=nw+1*d acer.3189

call moreio(0,nout,0,a(now),nb,nw)now=now+nw

*i acer.3215now=nw+l

•d acer.3217call moreio(0,nout,0,a(now),nb,nw)now=now+nw

*i acer.3221c but, if nre > 1, convert probabilities to histogram form.*d acer.3223,3228

div=4.0d+0nd=nint(div)do 600 imu=l,nmucall tablio(nin,0,0,a,nb,nw)nre=nlhnpe=n2hif (nre.eq.l) then

call tablio(0,nout,0,a,nb,nw)610 if (nb.eq.0) go to 600

call moreio(nin,nout,0,a,nb,nw)go to 610

elsenow=nw+1

620 if (nb.eq.0) go to 63 0call moreio(nin,0,0,a(now),nb,nw)now=now+nwgo to 62 0

630 nw=now-lkbase=nwdo 640 i=l,4

640 a(kbase+i)=a(i)amuj =a(2)do 650 i=l,nrenbtO(i)=nint(a(2*i+5))

650 jnt0(i)=nint(a(2*i+6))ibase=2*nre+6jbase=kbase+8jr=ljp=Odo 670 i=l,npe-lif (i.gt.nbtO(jr)) jr=jr+lint=jnt0(jr)if (int.eq.l) then

jp=jp+la(jbase+2*jp-l)=a(ibase+2*i-l)a(jbase+2*jp) =a(ibase+2*i)

elseel=a(ibase+2*i-l)e2=a(ibase+2*(i+1)-1)pl=a(ibase+2*i>p2=a(ibase+2*(i + D )

>mJO

i00

CO

I

e3=elp3=plif (int.eq.2.or.int.eq.4) then

de=(e2-el)/divelse

de=log(e2/el)/divdb=log(el)

endifdo 660 j=l,ndif (int.eq.2.or.int.eq.4) then

e4=el+de*jelse

e4=exp{db+de*j)endifcall terpl(el.pl,e2,p2,e4,p4,int)PP=0.5d+0*(p3+p4)jp=jp+la(jbase+2«jp-l)=e3a(jbase+2*jp) =ppe3=e4p3=p4

660 continueendif

670 continueJP=JP+1a(jbase+2*jp-1)=a(ibase+2*npe-l)a(jbase+2*jp) =0.0d+0a(kbase+5)=1a(kbase+6)=jpa(kbase+7)=jpa(kbase+8)=lel=0.0d+0e2=l.d+llir=lip=2call intega(f2,el,e2,a(kbase+l),ip,ir)if (f2.gt.O.) then

do 680 i=l,jp680 a(jbase+2*i)=a(jbase+2*i)/f2

endifwrite(nsyso,'(

& /'' message from pttab probabilities of law 7 convert11

& (• to histogram form, for nr>l.''& /25x, •'e='• ,lp,el2.5, ' ' mu= ' ' , el2 . 5, • • mf=1',i2,1' nt=",& i3)')& e,amuj,mf,mt

if (abs(f2-l).gt.0.015) write(nsyso,'(& '' message from pttab integrated probability in11,& •• histohgram form is '',lp,el2.5,'• (criteria is 1.5%)."')'S. ) f2

l=kbase+lcall tablio(0,nout,0,a(l),nb,nw)

690 l = l+nwif (nb.eq.0) go to 700call moreio(0,nout,0,a(1),nb,nw)go to 690

700 continueendif

600 continue*i acer.5895542 jscr=jscr+nw

if (nb.eq.0) go to 543call moreio(nin,0,0,a(jscr),nb,nw)go to 542

543 continue

/ acer : bug fix the case of iopp (detailed photon option) is/ zero, while gamma production data exists,i acer.3683

if (iopp.eq.0) go to 330

/ groupr : check the number of subsections in gamma production/ data, for careless miss in nuclear data file,i groupr.3893

common/mainio/nsysi,nsyso,nsyse,nttyi groupr.4085

if (nyl.ne.nfl) thenwrite(nsyso,'(/'' *** refere below error message --> '',

4 '• mt='',i4,'' nyl(mfl2) = >',i4, •• nf1(mfl4) = • ' , i4) ' )& mtd.nyl.nfl

call error!'getff ,& ' number of subsections are different in gamma production.',& 'yield and angular distr.')endif

i groupr.4090if (nk.ne.l) then

write(nsyso,'!/'' *** refere below error message --> '',& '' mt=' ',i4, '' nyl(mfl2) = '',i4,' ' nk(mfl5) = '' , i4)')& mtd,nyl,nk

call error!'getff' ,& ' number of subsections are not allowed in gamma production.'& 'now, only nk=l for mf=15.')endif

*/ groupr : addition of fns 125/40 group structure*i groupr.129c * 18 fns 12 5-group structure*i groupr.143z * 11 fns 40-group structure*i groupr.1250= 18 fns 12 5-group structure*i groupr.1264

dimension egl8n(126)*i groupr.1386

data (egl8n(i),i=l,50)& / 1.0010d-05, 3.2241d-01, 5.3156d-01,

2.3823d+002.9023d+013.5357d+022.0346d+037.1016d+032.1874d+044.0867d+047.6349d+04

S> 1.4264d+05, 1.6163d+05,data (egl8n(i),i=51,100)& / 2.6649d+05, 3.0197d+05& 4.9786d+05,

9.3013d+05,1.7377d+06,2.3752d+06,3.2465d+06,4.4374d+06,6.0652d+06,8.2902d+06,

3.9278d+00, 6.4758d+00,4.7850d+01,5.8293d+02,2.6125d+03,9.1186d+03,2.4787d+04,4.6308d+04,8.6515d+04,

5.6415d+05,1.0540d+06,1.8498d+06,2.5284d+06,3.4559d+06,4.7236d+06,6.4564d+06,8.8249d+06,

.8891d+01,9.6110d+02,3.3546d+03,1.1709d+04,2.8087d+04,5.2474d+04,9.8035d+04,1.8315d+05,

8.7640d-01, 1.4449d+00,1.0677d+01, 1.7603d+01,1.3007d+02,1.2341d+03,4.3073d+03,1.5034d+04,3.1827d+04,5.9461d+04,1.1109d+05,2.0754d+05,

2.1445d+02,1.5846d+03,5.5307d+03,1.9304d+04,3.6065d+04,6.7378d+04,1.2588d+05,2.3517d+05 /

1.0317d+07, 1.0480d+07, 1.0645d+07, 1

3.4217d+05, 3.8774d+05, 4.3936d+05,6.3927d+05, 7.2438d+05, 8.2084d+05,1.1943d+06, 1.3533d+06, 1.5335d+06,1.9691d+06, 2.0961d+06, 2.2313d+06,2.6914d+06, 2.8650d+06,3.6787d+06, 3.9160d+06,5.0282d+06, 5.3525d+06,6.8728d+06, 7.3161d+06,9.3940d+06, 9.9999d+06,

0812d+07,

.0498d+06,4.1686d+06,5.6978d+06,7.7879d+06,1.0157d+07,1.0983d+07

>s6

oVO

ooo

data (egl8n(i),i=101,126)k I 1.1156d+07, 1.1331d+07, 1.1510d+07, 1.1691d+07, 1.1875d+07,

I

*d

•i

&&&S.&

1.1.1.1.1.

groupr.1 :

2062d+07,3042dn4102di5248dn6487dn1509

1200,1000groupr. 1687

1-07,•07,>-07,• 0 7

1.2252d+07,1.3248d+07,1.4324d+07,1.5488d+07,

,1300,1300,1350)

1.2445d+07,1.3456d+07,1.4550d+07,1.57323+07,

, ign

1111

.2641d+07,

.3668d+07,

.4779d+07,

.5980d+07,

1111

.2840d

.3883d

.5012d

+07,+07,+07,

.6231d+07,/

c ***fns 125-group structure1350 ng=125

do ig=l,12 6eg(ig)=egl8n(ig)

enddogo to 1900

*i groupr.1730if (ign.eq.18) writelnsyso,'!/1 '' neutron group structure fns 12 5-group' ')

*i groupr.1755c 11 fns 40-group structure*d groupr.17 64

dimension eg8(39),eglO(43),egll(41)*i groupr.1802

data egll2.0000d+04,1.0000d+04,

8.0000d+04,4.0000d+05,8.0000d+05,1.3750d+06,2.5000d+06,5.0000d+06,7.5000d+06,1.4000d+07

OOOOd+05,0000d+05,

9.0000d+05,1.5000d+06,3.0000d+06,5.5000d+06,8.0000d+06,

3.0000d+04,1.5000d+05,5.2000d+05,1.0000d+06,1.7500d+06,3.5000d+06,6.0000d+06,9.0000d+06,

4.5000d+04,2.0000d+05,6.0000d+05,1.1250d+06,2.0000d+06,4.0000d+06,6.5000d+06,1.0000d+07,

6.0000d+04,3.0000d+05,7.0000d+05,1.2500d+06,2,2500d+06,4.5000d+06,7.0000d+06,1.2000d+07,

*d groupr.1841go to (100,200,300,400,500,600,700,800,800,850,870),igg

•i groupr.1912cc ***fns 40-group structure870 ngg=40

do ig=l,41egg(ig)=egll(ig)

enddogo to 900

*i groupr.1935if (igg.eg.11) writelnsyso,'(/1 ' ' gamma group structure fns 42-group' ' ) ' )

*/ gaminr : upper energy limit of photon weight extends to 100 MeV*i gaminr.70c * 4 1/e + rolloffs (to 100 mev) **i gaminr.702c 4 1/e + rolloffs (to 100 mev)*d gaminr.710

dimension wtl(16),wt2(18)*i gaminr.713

data wt2/0.,0.,0.,0.,l.,4.,4.,5.,l.e3,l.e-4,l.e5,l.,1 l.e7,l.e-2,l.e8,l.e-3,3.e8,l.e-5/

*i gaminr.721if (iwt.eq.4) go to 140

*i gaminr.737cc ***l/e with high and low energy rolloffs (to lOOmev)140 writelnsyso,'(/'• weight function 1/e with rolloffs'',

& '• (to 100 mev)'')')

do i=l,18wght(i)=wt2(i)

enddoreturn

*/*/ gaminr : addition of fns 40 group structure*d gaminr.64c * 10 vitamin-j 42-group structure *c * 11 fns 40-group structure **i gaminr.504c 11 fns 40-group structure*d gaminr.513

dimension eg8(39),egl0(43),egll(41)*i gaminr.551

data egll& / 1.0000d+04, 2.0000d+04, 3.0000d+04, 4.5000d+04, 6.0000d+04,& 8.0000d+04, 1.0000d+05, 1.5000d+05, 2.0000d+05, 3.0000d+05,& 4.0000d+05, 5.0000d+05, 5.2000d+05, 6.0000d+05, 7.0000d+05,& 8.0000d+05, 9.0000d+05, 1.0000d+06, 1.1250d+06, 1.2500d+06,U 1.3750d+06, 1.5000d+06, 1.7500d+06, 2.0000d+06, 2.2500d+06,& 2.5000d+06, 3.0000d+06, 3.5000d+06, 4.0000d+06, 4.5000d+06,L 5.0000d+06, 5.5000d+06, 6.0000d+06, 6.5000d+06, 7.0000d+06,£. 7.5000d+06, 8.0000d+06, 9.00O0d+O6, 1.0000d+07, 1.2000d+07,& 1.4000d+07 /

*d gaminr.590go to (100,200,300,400,500,600,700,800,800,850,870),igg

*i gaminr.661cc ***fns 40-group structure870 ngg=40

do ig=l,41egg(ig)=egll(ig)

enddogo to 900

*i gaminr.684if (igg.eq.ll) write(nsyso,'(/1 '' gamma group structure fns 40-group11)')

*/«/*ident sae4*/*/ third modification for NJOY97.45*/ (since njoy94)*/*/*/ njoy : modification of error message.*d njoy.2438,2439

if (nwords.eq.0) thenstrng=•reserved identification = '//identcall error{'reserv','requested reserv of zero words.',strng)

endif*/*/ njoy : remove the smallest value from the error function.*i njoy.2739

if (erfc.lt.1.0d-250) erfc=0.d+0*/*/ errorr : bug fix for error check.*d errorr.291,292

if (nga.gt.nwi)1 call error('errorr',•too many reaction indexes for s.grpav.1,2 ' ')

*/*/ errorr : adjust the array size for merging the energy boundaries*/ in 0-16 of jendl-3.2.

>fflsi?5a.

ooo

I

*d errorr.528data nxmax/200/, irmax/60/

*/*/ errorr : escape to accumulate extra covariance in union energy structure*/ exceeded the final group boundary.*i errorr.1993

if (egtjg.ge.egn(ngn+l)) go to 380*/*/ heatr : fix a bug of format statement.*d heatr.2265

write(strng,'(''no distribution for mt'',i3,'' particle '',i4)')*/•/ acer : no process mt=203-207 in jendl fusion file.*/ Be carefull about usage of this condition!*/*i acer.1815*/ if (mt.ge.203.and.mt.le.207) go to 260*/*/ acer : bug fix for print of maximum energy of gamma production data.*i acer.7405

if (m.gt.O) n=nint(xss(loct+m-l))*/*/ moder : correspond to covariance with the unresolved resonance*/ subsection format, U-235 of jendl-3.2.*i moder.1150

ner=max(nlh,1)do 115 ne=l,ner

*i moder.1152lru=llhlrf=12hnro=nlh

*i moder.1154lcomp=12h

*i moder.1155if {lcomp.eq.1.and.lru.eq.1) call error('file32',& 'general resolved resonance subsection is not allowed.',' ')

*i moder.1162if (lru.eq.2) then

call listio(nin,nout,nscr,a,nb,nw)140 if (nb.eq.0) go to 150

call moreio(nin,nout,nscr,a,nb,nw)go to 140

150 continueendif

115 continue*/*/ groupr : adopt the lct=3 in mf=6, for lanl.hel*i groupr.4392

save jap*i groupr.4445

jap=jzap-(jzap/1000)*1000*d groupr.4538147 if (let.ne.2.and.(lct.ne.3.or.jap.gt.4)) go to 155

*d groupr.4701if (law.eq.l.and.(let.eq.2.or.(lct.eq.3.and.jap.le.4))) lepn=2

*d groupr.4704if (law.eq.l.and.(let.eq.2.or.(lct.eq.3.and.jap.le.4))) langn=l

*d groupr.47 51420 if (let.eq.2.or.(lct.eq.3.and.jap.le.4)) go to 450

*/*/ acer : merge the discrete photons (ntrp>1000) for mcnp-4b limitation*d acer.4586

nwscr=14000*i acer.6027c ***check the number of discrete photons for mcnp-4b

if (ntrp.gt.1000) thenntrpx=1000call findex('scr',iscr,a)call phtmrg(ntrpx,nin,matd.ngmt,next,nex,a(iscr),a)ntrpfg=lcall findex('phot',iphot,a)call findex('phtm',iphtm,a)go to 410

elsentrpfg=0

endifc*d acer.6231

if (ntrpfg.eq.0) thennex=nex+ntrp

elseif (ntrpfg.eq.l) thennex=nex+ntrpxi = 0

endif*d acer.6233

do 710 ij=l,ntrpif (ntrpfg.eq.0) then

elseif (ntrpfg.eq.l) thenif (a(iphtm+ij-l).lt.0.) go to 710

endif*i acer.6441

if (ntrpfg.eq.l) thencall releasl'phtm1,0,a)ntrp=ntrpx

endif*i acer.6463c

subroutine phtmrg(ntrpx,nin,matd,ngmt,next,nex,b,a)

c merge the discrete photons below 1000 (=ntrpx).

implicit double precision (a-h,o-z)common/mainio/nsysi,nsyso,nsyse,nttycommon /nxst/ Ien2,izaid.nes,ntr,nr,ntrp,nxsd(lO)i ommon /jxst/ esz,nu,mtr,lqr,tyr,lsig,sig,land,and,ldlw.dlw,

& gpd,mtrp,lsigp,sigp,landp,andp,ldlwp,dlwp,yp,fis,end,& iurpt,jxsd(9)common /cont/ clh,c2h,llh,12h,nlh,n2h,math,mfh,mth,nsh,nsp.nsccommon /Isize/maxl,max2,max3common /xsst/ xss(800000),n3dimension a(1),b(2000,1)integer esz,sig,and,tyr,dlw,gpd,fis,sigp,andp,dlwp.yp,endexternal reserv,findex,findf,contio,tablio,moreio,error,repoz,

& releas.terplcharacter strng*60

cc ***initialize

3 = 0nw=2000call reserv('phtm',nw,iphtm,a)nws=5*ntrpxcall reserv('phot',nws,iphot,a)call findex!'gmt',igmt,a)

cc ***loop over photon production reactionsc ***set up photon data

kgmt=0

>tnx

n

ap6oc

OS

100 kgmt=kgmt+lif (kgmt.gt.ngmt) go to 300mfd=nint(a(igmt-l+kgmt)/I000.)mtd=nint(a(igmt-l+kgmt))-mfd*1000call findf(matd,mfd,mtd,nin)cal1 cont io(nin,0,0,a(iphtm),nb,nws)awr=c2hnk=nlhik=0

110 call tablio(nin,0,0,a(iphtm),nb,nws)ip=iphtm

120 if (nb.eq.0) go to 130if (mfd.eq.13.and.(ik.gt.0.or.nk.eq.1)) go to 13 0if {mfd.ne.13) ip=ip+nwsif ((ip-iphtm+1).gt.nw) call error{'phtmrg',& 'insufficient storage for work area.',' '}call moreio(nin,0,0,a(ip),nb,nws)go to 120

130 if (ik.eq.O.and.nk.gt.1) go to 2903 = 3 + 1b(j,l)=mfdb(j,2)=mtdeg=clhen=c2hlp=llhlf=12hm=nlhn=n2hif (mfd.eq.16) then

eg=0.en=0.lp=0

endifif (lp.eq.2) eg=eg+en*awr/(awr+1.)b(j,3)=egb(j,5)=0.b(j,7)=0.if (nk.eq.1.or.eg.eq.0.) b(j,5)=l.jnt=nint(a(iphtm+5+2*m))if (mfd.eq.12.or.mfd.eq.16) then

do 140 im=l,ntr140 if (nint(xss(mtr+im-1)).eq.mtd) go to 150

write(strng,' (' 'cross section of mt=' ',i3,' ' not found.'') ')& mtd

call error('phtmrg',strng,' ')150 loca=nint(xss(lsig+im-l))

ie=nint(xss(sig+loca-1))ne=nint(xss(sig+loca))ip=iphtm+4+2*m

el=a(ip+2)yl=a(ip+3)e2=a(ip+4)y2=a(ip+5)nbt=nint(a(iphtm+ 6))jnt=nint(a(iphtm+7))sy=0.do 180 i=l,nee=xss(ie+i-l)s=xss(sig+loca+i)if (s.le.0.) go to 180

160 if (e.ge.el.and.e.lt.e2) thencall terpl(el,yl,e2,y2,e,y,jnt)

if (y.le.0.) go to 180go to 170

elseif (e.eq.e2) theny=y2ij=ij+lif (ij.gt.n) go to 170

elseif (e.lt.el) thengo to 180

elseij=ij+lif (ij.gt.n) go to 190

endifel=e2yl=y2e2=a(ip+(ij+l>*2)y2=a(ip+(ij+l)*2+l)if (ij.gt.nbt) then

ii=ii+lnbt=nint(a(iphtm+4+ii*2))jnt=nint(a(iphtm+4+ii*2+l))

endifif (e.gt.el) go to 160

170 if (sy.lt.s*y) sy=s*yif (b(j,7).lt.y) b(j,7)=yif (ij.gt.n) go to 190

180 continue190 b(j,4)=sy

elseif (mfd.eq.13) thenip= iphtm

200 if (nb.eq.0) go to 210ip=ip+nwscall moreio(nin,0,0,a(ip),nb,nws)go to 200

210 s=0.ip=iphtra+5+2 *mdo 220 i=l,n

220 if (a(ip+i*2).gt.s) s=a(ip+i*2)b(j,4)=s

endif290 ik=ik+l

if (nk.eq.1) go to 100if (ik.gt.nk) go to 100go to 110

300 if (j.ne.ntrp)& call error('phtmrg','no. of gamma energies not complete.

***compare the gamma production cross sections"•merge gamma levels with 5% difference of photon energydo i=l,ntrp

b(i,6)=b(i,7)enddomt=nint(b(l,2))eg=b(l,3)ii=0do 32 0 i=2,ntrpmtl=nint(b(i,2) )egl=b(i,3)if (mt.eq.mtl) then

if (eg.eq.0..or.egl.eq.0.) go to 310if (b(i-l,7).eq.0..or.b(i,7).eq.0.) go to 310if (b(i-l,5).ne.0..or.b(i,5).ne.O.) go to 310r=abs(eg/egl-l.d+0)if (r.le.0.05) then

if (b(i-l,4),ge.b(i,4)) then

>

sp600

, • •)

{i,6)=0.else

b(i-l,6)=0.endif

*egl/eg

)*eg/egl

endifendif

310 mt=mtleg=egl

320 continue

: ***thinning gamma level with lowest production cross sectionif (ntrp-ii.le.ntrpx) then

if (ntrp-ii.It.ntrpx) ntrpx=ntrp-iigo to 450

endifij=ntrp-ii-ntrpx

400 if (ij.le.O) go to 450g=l.d+203J=0do 410 i=l,ntrpif (b(i,5).ne.0.) go to 410if (g.gt.b(i,4)) then

g=b(i,4)jj = i

endif410 continue

if (jj.eq.O) call error('phtmrg',& 'thinning lowest gamma level not found.',' ')mt=nint(b(jj,2))11 = 012 = 0if (jj.eq.l) go to 425do 420 i=jj-l,l,-lif (nint(b(i,2)).ne.mt) go to 425if (b(i,5).eq.0.) then

11 = igo to 42 5

endif420 continue425 if (jj.eq.ntrp) go to 435

do 430 i=jj+l,ntrpif (nint(b(i,2)).ne.mt) go to 435if (b(i,5).eq.0.) then

12 = igo to 435

endif430 continue435 if (il.eq.0.and.i2.eq.0) then

b ( j j 5 ) lgo to 400

elseif (il.eq.0) thenb(jj,5)=-i2b(i2,6)=b(i2,6)+b(jj,6)*b(jj,3)/b(i2,3)

elseif (i2.eq.O) thenj

elserl=b(ir2=b(jj,3)/b(i2,3)

if (rl.le.l.5.and.r2.1e.l.5) thenif (rl.le.r2) then

iO=ilelse

iO=i2endif

elseif (rl.le.1.5) theniO = il

elseif (r2.1e.l.5) then

elseif (b(il,6).ge.b(i2,6)) then

iO = ilelse

iO=i2endif

endifb(jj,5)=-iOb(iO,6)=b(iO,6)+b(jj,6)*b(jj,3)/b(iO,3)

endif

do 440 i=l,ntrp440 if (-jj,eq.nint(b(i,5))) b(i,5)=b(jj,5)

go to 400450 continue

write(nsyso,10) ntrp,ntrpx,ii10 format!/' thinning and merging photon production reactions'

& / ' original photon production reactions ' , i5& / ' merged photon production reactions ' , i5& /' reactions merged within +-5% energies ',i5,& ' (merged y.=0.0)'& /' no. mf mt gamma yield prod.xsec',& ' merge merged y. state')ij=0do i=l,ntrp

strng=' 'if (b(i,5).ge.0.) then

write(strng(l:6),'(i6)') ijendifwrite(nsyso,11) i,nint(b(i,1)),nint(b(i,2)),b(i,3),b(i,7),

& b(i,4),nint(b(i,5)),b(i,6),strng(1:6)enddo

11 formatdh , 3i4 , Ip3el2 . 4, i6, el2 .4,a6)

***store the photon production yield or cross sectionscall repoz(nin)mtrp=nextnesp=nes1 s igp=mtrp+n trpxsigp=lsigp+ntrpxnex=sigpJ=0jj=Okgmt=0

510 kgmt=kgmt+lif (kgmt.gt.ngmt) go to 700mfd=nint(a(igmt-l+kgmt)/1000.)mtd=nint(a(igmt-l+kgmt))-mfd*1000call findf(matd,mfd,mtd,nin)call contio(nin,0,O.a(iphtm),nb,nws)nk=nlhmto=mtd*10000

6ftD

O

oo

I

I

ik=O520 call tablio(nin,0,O,a(iphtm),nb,nws)

ip=iphtm530 if (nb.eq.O) go to 540

if (mfd.eq.13.and.(ik.gt.0.or.nk.eq.1)) go to 540if (mfd.ne.13) ip=ip+nwscall moreio(nin,0,0,a(ip),nb,nws)go to 530

540 if (ik.eq.O.and.nk.gt.1) go to 6903 = j + lif (mfd.ne.l3.and.b(j,5).lt.0.) go to 690jj=jj+lxss(lsigp-1+jj)=nex-sigp+lxss(nex)=mfdnex=nex+lif (mfd.eg.12.or.mfd.Gq.16) then

xss(nexj=mtdnex=nex+l

endifif (mfd.eq.16) then

eg=0 .en=0 .lp=0

elseeg=clhen=c2hlp=llhlf=12hm-nlhn=n2h

endifif (mfd.eq.13) go to 600

: ***file 12 or 16ef=a(iphtm+2 *m+6)el-a(iphtm+2*m+2*n+4)xss(nex)=mjnt=nint(a(iphtm+5+2»m))if (m.eq.l.and.jnt.eq.2) then

xss(nex)=0.nex=nex+l

elsedo 550 i=l,mxss(nex+i)=a(iphtm+4+2»i)

550 xss(nex+i+m)=a(iphtm+5+2*i)nex=nex+2*m+l

endifxss(nex)=nip=iphtm+4+2 *mif (b(j,5).eq.l..and.nk.eq.l) then

do 560 i=l,nxss(nex+i)=a(ip+2*i)*l.d-6

560 xss(nex+i+n)=a(ip+2*i+l)go to 580

endi fdo 570 i=l,nxss(nex+i)=a(ip+2*i)*l.d-6if (a(ip+2*i+l).ne.b(j,7).and.a(ip+2*i+l).ne.0.) then

write(strng,'(''illegal yield '',Ip2el3.5,4i4)')& a(ip+2*i+l),b(j,7),j,jj,ik,i

call error!'phtmrg','detected uncorresponding yield.',strng)else

if (a(ip+2*i+l).eq.0.) thenxss(nex+i+n)=0.

elsexss(nex+i+n)=b(j,6)

endifendif

570 continue580 nex=nex+2*n+l

if (nex-l.gt.max3) call error('phtmrg',& 'insufficient storage for photon production yield.',' ')go to 680

cc ***file 13

600 continueel=a(iphtm+6+2 *m)teste=l.d-6*eldo 610 je=l,nesie=jeif (abs(xss(je+esz)-el).It.teste) go to 620

610 continue620 xss(nex)=ie

nex=nex+lje=0jn=0jfirst=0jlast=0ip=iphtm+5+2*mnlast=(nws-(6 + 2*m) ) /2do 640 i=l,nif (i.le.nlast) go to 630if (nb.eq.O) go to 630call moreio(nin,0,0,a(iphtm),nb,nws)ip-iphtm-2*nlast-lnlast=nlast+nws/2

630 continueteste-1.d-6*xss(esz+ie+je)if (abs(a(ip+2*i-l)-xss(esz+ie+je)).gt.teste) go to 640

if (a(ip+2*i).eq.0..and.jlast.eq.0.and.jn.eq.1) jn=0if (jn.eq.0) jfirst=ie+je-ljn=jn+1if (a(ip+2*i).ne.0.) jlast=jnxssijn+nex)=a(ip+2*i)if ((ie+je).gt.nesp) go to 650

640 continue650 if (jlast.lt.jn) jlast=jlast+1

n=jlastxss(nex-1)=jfirstef=xss(esz+ie)el-xss(esz+ie+n-1)xss(nex)=nnex=nex+n+lif (nex-l.gt.max3) call error('phtmrg',

& 'insufficient storage for photon production xsec.',' ')680 mto=mto+10

xss(mtrp-l+jj)=mtoif (If.eq.l) xss(mtrp-l+jj)=mto+lif (mfh.eq.16) xss(mtrp-l+jj)=mto+2a(iphot+5*(jj-1))=ega(iphot+5*(jj-l)+l)=ena(iphot+5*(jj-l)+2)=lpa(iphot+5*(jj-1)+3)=efa(iphot+5*(jj-l)+4)=el

690 ik=ik+lif (nk.eq.l) go to 510if (ik.gt.nk) go to 510

>

tn

n

aooc

to

go to 52 0700 if (jj.ne.ntrpx) call error('phtmrg',

& 'no. of thinned gamma energies no complete.',' ')

' ***store the photon isotropic angular distributionslandp-nexnex=nex+ntrpxandp=nex

33=0mtold=0

710 j=j+lif (j.gt.ntrp) go to 720if (b(j,5).lt.0.) go to 710

mtd=nint(xss(mtrp+jj-l))/10000if (mtd.ne.mtold) then

Iff=mod(nint(xss(mtrp+jj-l)) , 10)if (lff.gt.l) go to 710call findf(matd,14,mtd,nin)call contio(nin,0,0,a(iphtm),nb,nws)

nk=nlhif (li.eq.0) call error{'phtmrg',

'no coded for angular distr. of thinned gamma energies.1,' ')

endi fxss(landp+jj-1)=0go to 710

720 if (jj.ne.ntrpx) call error('phtmrg',& 'no. of thinned gamma energies no complete.',it 'photon angular distributions')

cc •••finish

do 730 i=l,ntrp730 a(iphtm+i-l)=b(i,5)

call releasl'phtm',ntrp,a)returnend

*/*/ reconr : process the energy-dependent scattering radius of multi level*/ breit-wigner (mlbw) in cl-0 (jendl-3.2)*d reconr.600

if (nro.gt.0.and.lrf.ne.2.and.lru.ne.1) call error('rdfil2',*d reconr.602,603*i reconr.620c energy-dependent scattering radius

if (nro.eq.l) thencall tabliolnin,0,0,a(jnow),nb,nw)np=nint(a(jnow+5))jnowsr=jnowjnow= jnow+nwif (jnow.gt.jx) call error!'rdfil2',

& 'storage in a exceeded',' ')endif

*d reconr.755210 if (nro.eq.1.and.naps.eq.1) then

ip=2ir=lcall terpa(ral,abs(a(jnow)),enext,idis,a(jnowsr),ip,ir)

elseif (nro.eq.Land.naps.eq. 2) thenral=ascatlra=ascat

endifrho=cwaven*arat*sqrt(abs(a(jnow)))*ral

*i reconr.2167nro=nint(a(inow+4) )

*i reconr.2168if (nro.eq.l) go to 110

*i reconr.2262go to 200

cc ***energy dependence of the scattering radius110 sigp2=0.d+0

nr=nint(a(inow+10))np=nint(a(inow+11))jnow=inow+6inow=inow+12 +2 *nr+2 *npap=a(inow+1)awri=a(inow+6)ip=2ir=lcall terpa(ape,e,enext,idis,a(jnow),ip,ir)

c calculate channel radius (ra)if (naps.eq.0) then

aw=amassn*awrira=rcl*aw**third+rc2

elseif (naps.eg.1) thenra=ape

elseif (naps.eq.2) thenra=ap

endifspi=a(inow)spifac=l.d+0/(2.d+O*spi+l.d+O)nls=nint(a(inow+4))inow=inow+6

c calculate wave number (k), rho and rhocap at energy (e)arat=awri/(awri+1.d+0)k=cwaven*arat*sqrt(abs(e))pifac=pi/(k*k)rho=k*rarhoc=k*ape

c loop over 1 statesdo 150 1=1,nlsqx=a(inow+1)ll=nint(a(inow+2) )lrx=nint(a(inow+3))nrs=nint(a(inow+5))in=inow+6*nrs+6

c calculate shift and penetration factors at cross section energycall factsdl, rho.se,pe)pec=0.d+0if (1rx.ne.0) then

rhop=cwaven*arat*sqrt(abs(e+qx))*racall facts(11,rhop,sec,pec)

endifcall facphi(ll,rhoc,phi)

c constants independent of res. energycos2p=cos(2.d+0*phi)sin2p=s in(2.d+ 0 *phi)sinsq=(sin(phi))**2

c calculate potential scatteringspot=4.d+0*(2.d+0*dble(ll)+1.d+0)*pifac*sinsqinow=inow+6know=inowkn=in

c loop over resonance

m73

oo

Io

. d+0) "spifac(half*rper)

*2+0.25d+0*gtt*gtt)

do 140 i=l,nrser=a(inow)aj=a(inow+1)gt=a(inow+2}gn=a(inow+3)gg=a(inow+4)gf=a(inow+5)ser=a(in)per=a{in+1)gc=a(in+2)gx=gg+gfrper=l.d+0/perinow=inow+6in=in+3

c spin factorgjr=half (2 .d+0*aj +erp=er+gn*(ser-se)*edelt=e-erpgne=gn*pe*rpergtt=gne+gx+gc»pec

c cross sections for temp=0.c elastic

comfac=pifac*gjr*gne/(edelt*sigp(2)=sigp(2) +1 comfac*(gne*cos2p-2,d+0*gx*sinsq+2.d+0*edelt*sin2p)

c fissionsigp(3)=sigp(3)+comfac*gf

c capturesigp{4)= sigp(4)+comfac*gg

cc ""calculate a resonance-resonance interference term for elastic

if (i.gt.l) thenjnow=knowjn=kndo 130 j=l,i-les=a(jnow)aj s=a(jnow+1)gts=a(jnow+2)gns=a(jnow+3)ggs=a(jnow+4)gfs=a(jnow+5)sers=a(jn)pers=a(jn+1)gcs=a(jn+2)gxs=ggs+gfsrpers=l.d+0/persjnow=jnow+6jn=jn+3gjs=0.5d+0*(2.d+0'ajs+l.d+0)'spifacesp=es+gns*(sers-se)*(half*rpers)edelts=e-espgnes=gns*pe*rpersgtts=gnes+gxs+gcs*pecsigp2=sigp2+pifac*gjs*2.d+0*gne*gnes*

& (edelt*edelts+0.25d+0*gtt*gtts)/i ((edelt**2+0.2 5d+0*gtt*gtt)*(edelts**2+0.25d+0*gtts*gtts))

13 0 continueendif

140 continueinow=in

c add potential scattering150 sigp(2)=sigp(2)+spot

sigp(2)=sigp(2)+sigp2c total

sigp(l)=sigp(2)+sigp(3)+sigp(4)200 continue

*i reconr.2799common/recon2/lfw,mata,itype,lrp,lfi,lssf

*d reconr.2827*d reconr.2865*/*/*ident sae5

*/ third modification for NJOY97.45*/ (since njoy97)• /»/*/ reconr : bug fix for coding miss (2 nov. 1998).*i reconr.2826

ne=nint(a(inow+10))

add an initial value of lttn, when ltt.ne.3 (24 nov. 1998)heatrup24.10

elselttn=0

groupr : add an initial value of lttn, when ltt.ne.3 (24 nov. 1998)up25.10

elselttn=0

reconr : add unresolved-range grid energies to handle the case ofpm-148m (jendl-3.2) in 1 to 10 eV (26 nov. 1998)

up34.8dimension egridu(68)

up34.10data ngridu/68/

reconr.49 6data egridu/1.dO,1.25dO,1.5dO,2.dO,2.5dO,3.2dO,4.dO,5.dO,6.3dO,1 8.d0,10.d0,12.5d0,15.do,20.dO,25.dO,32.do,40.dO,50.dO,

reconr.508data egridu/1.,1.25,1.5,2.,2.5,3.2,4.,5.,6.3,8.,1 10.,12.5,15.,20.,25.,32.,40.,50.,63.,80.,

unresr : (same as above)up35.5

dimension egridu(68)up35.7

data ngridu/68/unresr.364

data egridu/l.dO,1.25dO,1.5dO,2.dO,2.5dO,3.2dO,4.dO,5.do,6.3dO,1 8.dO,10.dO,12.5dO,15.dO,20.dO,25.dO,32.dO,40.dO,50.dO,

unresr.372data egridu/1.,1.25,1.5,2.,2.5,3.2,4.,5.,6.3,8.,1 10.,12.5,15.,20.,25.,32.,40.,50. ,63. ,80. ,

purr : (same as above)up36.5

dimension egridu(68)up36.7

data ngridu/68/purr.477

data egridu/1.dO,1.25dO,1.5dO,2.dO,2.5dO,3.2d0,4.dO,5.dO,6.3d0,1 8.d0,10.d0,12.5d0,15.d0,20.d0,25.d0,32.d0,40.d0,50.d0,

purr.485data egridu/1.,1.25,1.5,2.,2.5,3.2,4.,5.,6.3,8.,1 10.,12.5,15.,20.,25.,32.,40.,50.,63.,80.,

>m73

a

ooo

*/*/ heatr : correct process to skip a tape id record when tape was rewind*/ (28 nov. 1998)*i heatr.579

call tpidio(nendf,0,0,a(iscr),nb,nw)*i heatr.586

call tpidio(nendf,0,0,a(iscr),nb,nw)*/*/ acer : bug fix for unknown variable nd by up5 modification*/ (28 nov. 1998)*d acer.7057

intt=mod(nint(xss(loci)),10)nd=nint (xss{loci ) /10)

*/

*ident saeOO*>*/ special modification for NJOY97.45/sae+ i

*/

*/ acer : special process for option of maximum number of discrete gamma-ray*/ energies, corresponding to mcnp (9 dec. 1998).•i acer.107c * ndsgam maximum number of discrete gamma-ray (default=1000)**i acer.190

common/gamkos/ndsgam ^*d acer.259 ;>

ndsgam=1000 PIread(nsysi,*) err,iopp,ndsgam ^

*d acer.262,263 'I 2 ' ' photon option ' • , ilO/ §

3 ' ' max. number of discrete gamma ' ' , ilO) ') £Wi 4 err,iopp,ndsgam p*1-1 *i sael.20 O| common/gamkos/ndsgam £J-

*d sae4.90,91if (ntrp.gt.ndsgam) then ^

ntrpx=ndsgam '•O*/ • 6*/ end •&•

oo

ft© B AP3000 I;i autonj

$HOME/autonj7 4%

4 V? V U $HCME/autonj /J3R2i)l J32F6301.Z 32F63

7̂ h'J$HOME/autonj tautonjB.

Please enter the maximum number of discrete gamma-ray energies.(It must be less than 1000 for MCNP-4B or 200 for the previous version.)(If blank, default number is 1000.) _==========> (* Enter ̂ r~<D^Wf)

Please enter the general name of nuclear data file.(It will be a part of the "hk" in input data of NJOY/ACER.)(Maximum 16 characters.)(If blank, the name will be prepaired from the nuclear data file.)(for example: jendl-3.2 )

( + 1 + .)==========> JENDL-3.2

% autonj B.sh

O1INS

autonj autonatic production system of a mcnp cross sectionlibrary from JENDL by the NJOY97 code.

Please select an input mode.0 = input from a file.1 = interactive input on this terminal.

Please select the option of using disk space (or producing files).0 = minimum disk size (mcnp library)1 = medium disk size (mcnp library and output list)2 = maximum disk size (library, list and ace file)(maximum size is about 1.4 GB for JENDL-3.2.)(If blank, default size is minimum.)==========> o

Please enter the path name where JENDL file are located.(When you finish entering all file names, please enter a blank.)(If a directory name is given, all files in the directory areprocessed. Only one directory name is allowed. The lastcharacter must not be a slash (/).)=========> J3R2/J32F6301.Z==========> J3R2/J32F6302.Z==========> (« Enter

Please enter the MAT numbers of nuclides that you want to process.(If blank, all nuclides contained in the specified files are processed.)

==========> ($*< Enter +—<Z»Wr)Please enter the processing temperature with NJOY97.(If blank, default temperature is 293 K.)(for example: 300 < 300 kelvin)( 27C <-— 27 Celsius = 300.15 K)==========> 300

Please enter a library identification number in zaid for MCNP.(It corresponds to the "suff" parameter in input data of NJOY/ACER.)(It must be integer with two degits.)(If blank, default identification number is 38. (If Fe, 26000.38c))==========> m Enter ̂ -(D^Wf)

Please enter a tolerance of pointwise cross section data.(The unit of tolerance is [%].)(If blank, default tolerance is 0.2 %.)

Please enter types of MCNP cross section library.(If blank, default type of library is Type-2.)1 = Type-1 (text format)2 = Type-2 (binary format)12 = Type-1 and Type-2==========> 2

Please enter a file name of the MCNP cross section library.(Maximum 7 characters.)(When the given name is "fsxlib2", the complete name is "fsxlib21"if it is Type-1.)(If blank, default library name is "fsxlb32".)==========> FSXJ321

Please enter a file name of the directory file for the library.(If blank, default library name is "xsdir.FSXJ3212".)==========> (& Enter 4 # TEnd of input data for autonj

Q-class | CPU/elapse | memory

2

sssmsi

msmmml

Islm11

lh/ 2h6h/12h48h/96h

lh/ 2h6h/12h48h/96h

lh/ 2h6h/12h48h/96h

200MB200MB200MB

500MB500MB500MB

2000MB2000MB2000MB

©4-00

Input a name of queue class =====> msclass : msOK ? (y/n) ==========> yRequest 20261.cnetOOOO submitted to queue: ms.