summaryrefslogtreecommitdiff
path: root/Dragon/src/LIBND1.f
diff options
context:
space:
mode:
authorstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
committerstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
commit7dfcc480ba1e19bd3232349fc733caef94034292 (patch)
tree03ee104eb8846d5cc1a981d267687a729185d3f3 /Dragon/src/LIBND1.f
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Dragon/src/LIBND1.f')
-rw-r--r--Dragon/src/LIBND1.f516
1 files changed, 516 insertions, 0 deletions
diff --git a/Dragon/src/LIBND1.f b/Dragon/src/LIBND1.f
new file mode 100644
index 0000000..7827a6a
--- /dev/null
+++ b/Dragon/src/LIBND1.f
@@ -0,0 +1,516 @@
+*DECK LIBND1
+ SUBROUTINE LIBND1 (IPLIB,NAMFIL,NGRO,NBISO,NL,ISONAM,ISONRF,
+ 1 IPISO,MASKI,TN,SN,SB,IMPX,NGF,NGFR,NDEL)
+*
+*-----------------------------------------------------------------------
+*
+*Purpose:
+* Transcription of the useful interpolated microscopic cross section
+* data from NDAS to LCM data structures. Memory allocation interface.
+*
+*Copyright:
+* Copyright (C) 2006 Ecole Polytechnique de Montreal
+*
+*Author(s): A. Hebert
+*
+*Parameters: input
+* IPLIB pointer to the lattice microscopic cross section library
+* (L_LIBRARY signature).
+* NAMFIL name of the NDAS file.
+* NGRO number of energy groups.
+* NBISO number of isotopes present in the calculation domain.
+* NL number of Legendre orders required in the calculation
+* NL=1 or higher.
+* ISONAM alias name of isotopes.
+* ISONRF library reference name of isotopes.
+* IPISO pointer array towards microlib isotopes.
+* MASKI isotopic mask. Isotope with index I is processed if
+* MASKI(I)=.true.
+* TN temperature of each isotope.
+* SN dilution cross section in each energy group of each
+* isotope. A value of 1.0E10 is used for infinite dilution.
+* SB dilution cross section as used by Livolant and Jeanpierre
+* normalization.
+* IMPX print flag
+*
+*Parameters: output
+* NGF number of fast groups without self-shielding.
+* NGFR number of fast and resonance groups.
+* NDEL number of precursor groups for delayed neutrons.
+*
+*Reference:
+* P. J. Laughton, "NJOYPREP and WILMAPREP: UNIX-Based Tools for WIMS-
+* AECL Cross-Section Library Production," Atomic Energy of Canada,
+* Report COG-92-414 (Rev. 0), June 1993.
+* Copyright (C) from NDAS Atomic Energy of Canada Limited utility (2006)
+*
+*
+*-----------------------------------------------------------------------
+*
+ USE GANLIB
+ USE FSDF
+ IMPLICIT NONE
+*----
+* Subroutine arguments
+*----
+ TYPE(C_PTR) IPLIB,IPISO(NBISO)
+ INTEGER NGRO,NBISO,NL,ISONAM(3,NBISO),ISONRF(3,NBISO),IMPX,NGF,
+ 1 NGFR,NDEL
+ REAL TN(NBISO),SN(NGRO,NBISO),SB(NGRO,NBISO)
+ CHARACTER NAMFIL*(*)
+ LOGICAL MASKI(NBISO)
+*----
+* Local variables
+*----
+ INTEGER IOUT
+ PARAMETER(IOUT=6)
+ TYPE(C_PTR) KPLIB
+ INTEGER I,I0,IERR,HEADER(16),NISOLB,NGFIS,NGTHER,MAXTMP,MAXDIL,
+ 1 MAXTDN,MAXPN,NF,NP1,IND,IHEAD(200),NBTEM,NBDIL,ISOID,IG,IG1,NL2,
+ 2 IJ,IM,IMX,IOF,J,ITYPRO(2)
+ REAL RHEAD(200),WW,SUM
+ DOUBLE PRECISION XDRCST,ANEUT
+ CHARACTER TEXT8*8,HSMG*131,HNAMIS*12,HNISOR*12
+ LOGICAL LCUBIC
+ PARAMETER(LCUBIC=.TRUE.)
+ EXTERNAL XDRCST
+ EQUIVALENCE(RHEAD(1),IHEAD(1))
+*----
+* Allocatable arrays
+*----
+ INTEGER, ALLOCATABLE, DIMENSION(:,:) :: HNAM
+ REAL, ALLOCATABLE, DIMENSION(:) :: DELTA,TEMPS,DILUS,TERPT,LOAD,
+ 1 ENER,CHI,WT0,GC,RESD
+ REAL, ALLOCATABLE, DIMENSION(:,:) :: GAR1,GAR2,THERXS,XA,XS,XF,XN
+ REAL, ALLOCATABLE, DIMENSION(:,:,:) :: SCAT
+*----
+* Read NDAS library parameters
+*----
+ CALL XSDOPN(NAMFIL,IERR)
+ IF(IERR.NE.0) CALL XABORT('LIBND1: XSDOPN could not open Library'
+ > //' files')
+ CALL XSDBLD(6001,HEADER,IERR)
+ IF(IERR.NE.0) CALL XABORT('LIBND1: XSDBLD could not read library'
+ > //' parameters')
+ IF(NGRO.NE.HEADER(2)) CALL XABORT('LIBND1: Invalid number of ene'
+ > //'rgy groups')
+ NISOLB=HEADER(1)
+ NGFIS=HEADER(3)
+ NGF=HEADER(4)
+ NGFR=HEADER(4)+HEADER(5)
+ NGTHER=HEADER(6)
+ MAXTMP=HEADER(11)
+ MAXDIL=HEADER(12)
+ MAXTDN=HEADER(13)
+ IF(HEADER(14).NE.2) CALL XABORT('LIBND1: Old NDAS format not sup'
+ > //'ported')
+ MAXPN=MAX(HEADER(15),HEADER(16))
+ NDEL=0
+ IF(IMPX.GT.1) WRITE(IOUT,100) (HEADER(I),I=1,16)
+*----
+* Scratch storage allocation
+* HNAM isotope names in NDAS library
+* DELTA lethargy widths
+* TEMPS temperature base points
+* DILUS dilution base points
+* TERPT interpolation factors in temperature
+* GAR1 vector xs components (1: transport corr. total;
+* 2: absorption; 3: fission; 4: nu*fission; 5: P0 scattering;
+* 6: P1 scattering, 7: (n,2n)
+* GAR2 self-shielded xs returned by LIBND3
+* SCAT P0 and P1 differential scattering xs components
+* THERXS temperature-dependent thermal cross section components
+* LOAD storage array containing differential scattering components
+* XA dilution-dependent absorption effective cross sections
+* XS dilution-dependent scattering effective cross sections
+* XF dilution-dependent nu*fission effective cross sections
+* XN dilution-dependent NJOY fluxes
+*----
+ ALLOCATE(HNAM(2,NISOLB))
+ ALLOCATE(DELTA(NGRO),TEMPS(MAXTMP),DILUS(MAXDIL),TERPT(MAXTMP),
+ 1 GAR1(NGRO,7),GAR2(NGRO,6),SCAT(NGRO,NGRO,2),THERXS(NGTHER,2),
+ 2 LOAD(MAXPN),XA(NGFR-NGF,MAXDIL),XS(NGFR-NGF,MAXDIL),
+ 3 XF(NGFR-NGF,MAXDIL),XN(NGFR-NGF,MAXDIL))
+*----
+* Recover the group structure
+*----
+ ANEUT=XDRCST('Neutron mass','amu')
+ ALLOCATE(ENER(NGRO+1))
+ CALL XSDBLD(5019,ENER,IERR)
+ IF(IERR.NE.0) CALL XABORT('LIBND1: xsdbld could not read energy '
+ > //'group limits')
+ IF(ENER(NGRO+1).EQ.0.0) ENER(NGRO+1)=1.0E-5
+ DO I=1,NGRO
+ DELTA(I)=LOG(ENER(I)/ENER(I+1))
+ ENDDO
+ CALL LCMPUT(IPLIB,'ENERGY',NGRO+1,2,ENER)
+ CALL LCMPUT(IPLIB,'DELTAU',NGRO,2,DELTA)
+ DEALLOCATE(ENER)
+*----
+* Recover the isotope names and identifiers from the library
+*----
+ DO I=1,NISOLB
+ CALL XSDNAM(I,ISOID,TEXT8,IERR)
+ IF(IERR.NE.0) CALL XABORT('LIBND1: XSDNAM index overflow')
+ READ(TEXT8,'(2A4)') HNAM(1,I),HNAM(2,I)
+ ENDDO
+*----
+* Read through NDAS file and accumulate cross sections for this range
+* of MATS, Legendre orders, and groups
+*----
+ DO IMX=1,NBISO
+ IF(MASKI(IMX)) THEN
+ WRITE(HNAMIS,'(3A4)') (ISONAM(I0,IMX),I0=1,3)
+ WRITE(HNISOR,'(3A4)') (ISONRF(I0,IMX),I0=1,3)
+ IND=0
+ DO I=1,NISOLB
+ IF((ISONRF(1,IMX).EQ.HNAM(1,I)).AND.
+ > (ISONRF(2,IMX).EQ.HNAM(2,I))) THEN
+ IND=I
+ GO TO 10
+ ENDIF
+ ENDDO
+ WRITE (HSMG,130) HNAMIS,HNISOR,NAMFIL
+ CALL XABORT(HSMG)
+ 10 IF(IMPX.GT.9) CALL LCMLIB(IPLIB)
+ KPLIB=IPISO(IMX) ! set IMX-th isotope
+* Load nuclide header
+ CALL XSDISO(7000,6001,IND,RHEAD,IERR)
+ IF(IMPX.GT.0) THEN
+ WRITE(IOUT,110) HNAMIS,HNISOR
+ ENDIF
+ IF(IMPX.GT.5) THEN
+ WRITE(IOUT,120) IHEAD(1),IHEAD(2),RHEAD(3),(IHEAD(I),I=4,12)
+ ENDIF
+ CALL LCMPTC(KPLIB,'ALIAS',12,HNAMIS)
+ CALL LCMPUT(KPLIB,'AWR',1,2,RHEAD(3)/REAL(ANEUT))
+ NF=IHEAD(5)
+ NBTEM=IHEAD(6)
+ NP1=IHEAD(10)
+ IF(NBTEM.GT.MAXTMP) CALL XABORT('LIBND1: MAXTMP overflow(1)')
+ IF(NBTEM.EQ.1) THEN
+ TERPT(1)=1.0
+ ELSE
+* Thermal temperatures
+ CALL XSDISO(7000,5017,IND,TEMPS,IERR)
+ CALL ALTERP(LCUBIC,NBTEM,TEMPS,TN(IMX),.FALSE.,TERPT)
+ ENDIF
+*
+* transport-corrected total and absorption XS
+ CALL XSDISO(7002,5013,IND,GAR1(:,1),IERR)
+ CALL XSDISO(7002,5004,IND,GAR1(:,2),IERR)
+ IF(NGTHER.GT.0) THEN
+ GAR1(NGFR+1:NGFR+NGTHER,1)=0.0
+ GAR1(NGFR+1:NGFR+NGTHER,2)=0.0
+ DO I=1,NBTEM
+ WW=TERPT(I)
+ IF(ABS(WW).GT.1.0E-6) THEN
+ CALL XSDTHE(7004,5013,-1,I,THERXS(:,1),IERR)
+ CALL XSDTHE(7004,5004,-1,I,THERXS(:,2),IERR)
+ DO I0=1,NGTHER
+ IOF=NGFR+I0
+ GAR1(IOF,1)=GAR1(IOF,1)+WW*THERXS(I0,1)
+ GAR1(IOF,2)=GAR1(IOF,2)+WW*THERXS(I0,2)
+ ENDDO
+ ENDIF
+ ENDDO
+ ENDIF
+*
+* fission spectrum, fission XS and nu*fission XS
+ IF(IHEAD(11).EQ.1) THEN
+ ALLOCATE(CHI(NGRO))
+ CHI(:NGRO)=0.0
+ CALL XSDISO(7002,5008,IND,CHI,IERR)
+ SUM=0.0
+ DO I=1,NGRO
+ SUM=SUM+CHI(I)
+ ENDDO
+ IF(ABS(SUM-1.0).GT.1.0E-5) CALL XABORT('LIBND1: Fission sp'
+ > //'ectrum does not sum to one')
+ CALL LCMPUT(KPLIB,'CHI',NGRO,2,CHI)
+ DEALLOCATE(CHI)
+*
+ CALL XSDISO(7002,5005,IND,GAR1(:,3),IERR)
+ CALL XSDISO(7002,5006,IND,GAR1(:,4),IERR)
+ IF(NGTHER.GT.0) THEN
+ GAR1(NGFR+1:NGFR+NGTHER,3)=0.0
+ GAR1(NGFR+1:NGFR+NGTHER,4)=0.0
+ DO I=1,NBTEM
+ WW=TERPT(I)
+ IF(ABS(WW).GT.1.0E-6) THEN
+ CALL XSDTHE(7004,5005,-1,I,THERXS(:,1),IERR)
+ CALL XSDTHE(7004,5006,-1,I,THERXS(:,2),IERR)
+ DO I0=1,NGTHER
+ IOF=NGFR+I0
+ GAR1(IOF,3)=GAR1(IOF,3)+WW*THERXS(I0,1)
+ GAR1(IOF,4)=GAR1(IOF,4)+WW*THERXS(I0,2)
+ ENDDO
+ ENDIF
+ ENDDO
+ ENDIF
+ ELSE
+ GAR1(:NGRO,3)=0.0
+ GAR1(:NGRO,4)=0.0
+ ENDIF
+*
+* (n,2n) XS
+ CALL XSDISO(7001,5007,IND,GAR1(:,7),IERR)
+ GAR1(NGF+1:NGRO,7)=0.0
+ CALL LCMPUT(KPLIB,'N2N',NGRO,2,GAR1(1,7))
+*
+* P0 differential scattering XS
+ CALL XSDISO(7002,5015,IND,LOAD,IERR)
+ GAR1(:NGRO,5)=0.0
+ SCAT(:NGRO,:NGRO,1)=0.0
+ IJ=0
+ DO IG=1,NGFR
+ IM=NINT(LOAD(IJ+2))
+ IG1=-NINT(LOAD(IJ+1))+IG
+ IJ=IJ+2
+ DO I0=1,IM
+* --- IG is the primary group
+ SCAT(IG1+I0,IG,1)=LOAD(IJ+I0)
+ GAR1(IG,5)=GAR1(IG,5)+LOAD(IJ+I0)
+ ENDDO
+ IJ=IJ+IM
+ ENDDO
+ IF(NGTHER.GT.0) THEN
+ SCAT(:NGRO,NGFR+1:NGFR+NGTHER,1)=0.0
+ GAR1(NGFR+1:NGFR+NGTHER,5)=0.0
+ DO I=1,NBTEM
+ WW=TERPT(I)
+ IF(ABS(WW).GT.1.0E-6) THEN
+ CALL XSDTHE(7004,5015,-1,I,LOAD,IERR)
+ IJ=0
+ DO IG=1,NGTHER
+ IM=NINT(LOAD(IJ+2))
+ IG1=-NINT(LOAD(IJ+1))+NGFR+IG
+ IJ=IJ+2
+ DO I0=1,IM
+* --- NGFR+IG is the primary group
+ SCAT(IG1+I0,NGFR+IG,1)=SCAT(IG1+I0,NGFR+IG,1)+WW*
+ > LOAD(IJ+I0)
+ GAR1(NGFR+IG,5)=GAR1(NGFR+IG,5)+WW*LOAD(IJ+I0)
+ ENDDO
+ IJ=IJ+IM
+ ENDDO
+ ENDIF
+ ENDDO
+ ENDIF
+ IF(NP1.GT.0) THEN
+* P1 differential scattering XS
+ CALL XSDISO(7002,5016,IND,LOAD,IERR)
+ GAR1(:NGRO,6)=0.0
+ SCAT(:NGRO,:NGRO,2)=0.0
+ IJ=0
+ DO IG=1,NGFR
+ IM=NINT(LOAD(IJ+2))
+ IG1=-NINT(LOAD(IJ+1))+IG
+ IJ=IJ+2
+ DO I0=1,IM
+* --- IG is the primary group
+ SCAT(IG1+I0,IG,2)=LOAD(IJ+I0)
+ GAR1(IG,6)=GAR1(IG,6)+LOAD(IJ+I0)
+ ENDDO
+ IJ=IJ+IM
+ ENDDO
+ IF(NGTHER.GT.0) THEN
+ GAR1(NGFR+1:NGFR+NGTHER,6)=0.0
+ SCAT(:NGRO,NGFR+1:NGFR+NGTHER,2)=0.0
+ DO I=1,NBTEM
+ WW=TERPT(I)
+ IF(ABS(WW).GT.1.0E-6) THEN
+ CALL XSDTHE(7004,5016,-1,I,LOAD,IERR)
+ IJ=0
+ DO IG=1,NGTHER
+ IM=NINT(LOAD(IJ+2))
+ IG1=-NINT(LOAD(IJ+1))+NGFR+IG
+ IJ=IJ+2
+ DO I0=1,IM
+* --- NGFR+IG is the primary group
+ SCAT(IG1+I0,NGFR+IG,2)=SCAT(IG1+I0,NGFR+IG,2)+WW*
+ > LOAD(IJ+I0)
+ GAR1(NGFR+IG,6)=GAR1(NGFR+IG,6)+WW*LOAD(IJ+I0)
+ ENDDO
+ IJ=IJ+IM
+ ENDDO
+ ENDIF
+ ENDDO
+ ENDIF
+ ENDIF
+*----
+* Recover self-shielding data
+*----
+ ALLOCATE(WT0(NGRO))
+ WT0(:NGRO)=1.0
+ IF((NF.GE.1).AND.(NF.LE.3)) THEN
+*
+* --- Recover Goldstein-Sehgal parameters
+ ALLOCATE(GC(NGRO))
+ GC(:NGRO)=1.0
+ CALL XSDISO(7000,5012,IND,GC(NGF+1:),IERR)
+ CALL LCMPUT(KPLIB,'NGOLD',NGRO,2,GC)
+ DEALLOCATE(GC)
+*
+ CALL XSDRES(IND,IHEAD,IERR)
+ NBTEM=IHEAD(1)
+ NBDIL=IHEAD(2)
+ IF(NBTEM.GT.MAXTMP) CALL XABORT('LIBND1: MAXTMP overflow')
+ IF(NBDIL.GT.MAXDIL) CALL XABORT('LIBND1: MAXDIL overflow')
+*
+* --- Temperature interpolation
+ IF(NBTEM.EQ.1) THEN
+ TERPT(1)=1.0
+ ELSE
+* Resonance temperatures
+ DO I=1,NBTEM
+ TEMPS(I)=RHEAD(2+I)
+ ENDDO
+ CALL ALTERP(LCUBIC,NBTEM,TEMPS,TN(IMX),.FALSE.,TERPT)
+ ENDIF
+ ALLOCATE(RESD(MAXTDN))
+ DO I=1,NBDIL
+ DILUS(I)=RHEAD(2+NBTEM+I)
+ ENDDO
+ XA(:NGFR-NGF,:NBDIL)=0.0
+ XS(:NGFR-NGF,:NBDIL)=0.0
+ XF(:NGFR-NGF,:NBDIL)=0.0
+ XN(:NGFR-NGF,:NBDIL)=0.0
+ DO IG=1,NGFR-NGF
+* --- Absorption
+ CALL XSDTAB(5004,IND,IG,RESD,IERR)
+ DO I=1,NBTEM
+ WW=TERPT(I)
+ IF(ABS(WW).GT.1.0E-6) THEN
+ IOF=(I-1)*NBDIL
+ DO J=1,NBDIL
+ XA(IG,J)=XA(IG,J)+WW*RESD(IOF+J)
+ ENDDO
+ ENDIF
+ ENDDO
+* --- Scattering
+ CALL XSDTAB(5015,IND,IG,RESD,IERR)
+ DO I=1,NBTEM
+ WW=TERPT(I)
+ IF(ABS(WW).GT.1.0E-6) THEN
+ IOF=(I-1)*NBDIL
+ DO J=1,NBDIL
+ XS(IG,J)=XS(IG,J)+WW*RESD(IOF+J)
+ ENDDO
+ ENDIF
+ ENDDO
+ IF(NF.EQ.3) THEN
+* --- Nu*Fission
+ CALL XSDTAB(5006,IND,IG,RESD,IERR)
+ DO I=1,NBTEM
+ WW=TERPT(I)
+ IF(ABS(WW).GT.1.0E-6) THEN
+ IOF=(I-1)*NBDIL
+ DO J=1,NBDIL
+ XF(IG,J)=XF(IG,J)+WW*RESD(IOF+J)
+ ENDDO
+ ENDIF
+ ENDDO
+ ENDIF
+* --- NJOY Flux
+ CALL XSDTAB(5021,IND,IG,RESD,IERR)
+ DO I=1,NBTEM
+ WW=TERPT(I)
+ IF(ABS(WW).GT.1.0E-6) THEN
+ IOF=(I-1)*NBDIL
+ DO J=1,NBDIL
+ XN(IG,J)=XN(IG,J)+WW*RESD(IOF+J)
+ ENDDO
+ ENDIF
+ ENDDO
+ ENDDO
+ DEALLOCATE(RESD)
+*
+* --- Dilution interpolation and Livolant-Jeanpierre
+* normalization
+ CALL LIBND3(NGF,NGFR,NGRO,NBDIL,SN(1,IMX),SB(1,IMX),DILUS,
+ > DELTA,NF,XA,XS,XF,XN,GAR1,SCAT(1,1,1),GAR2,WT0)
+*
+* --- Apply self-shielding on SCAT and GAR1
+ DO IG=NGF+1,NGFR
+ DO IM=1,2
+ WW=GAR2(IG,4+IM)/GAR1(IG,4+IM)
+ DO IG1=1,NGRO
+ SCAT(IG1,IG,IM)=SCAT(IG1,IG,IM)*WW
+ ENDDO
+ ENDDO
+ DO I=1,6
+ GAR1(IG,I)=GAR2(IG,I)
+ ENDDO
+ ENDDO
+ ENDIF
+ CALL LCMPUT(KPLIB,'NWT0',NGRO,2,WT0)
+ DEALLOCATE(WT0)
+*----
+* Save xs information on the microlib
+*----
+ DO IG=1,NGRO
+* (n,g) xs
+ GAR1(IG,7)=GAR1(IG,2)+GAR1(IG,7)-GAR1(IG,3)
+* Total xs
+ GAR1(IG,2)=GAR1(IG,2)+GAR1(IG,5)
+* Transport correction
+ GAR1(IG,1)=GAR1(IG,2)-GAR1(IG,1)
+ ENDDO
+ CALL LCMPUT(KPLIB,'TRANC',NGRO,2,GAR1(1,1))
+ CALL LCMPUT(KPLIB,'NTOT0',NGRO,2,GAR1(1,2))
+ CALL LCMPUT(KPLIB,'NG',NGRO,2,GAR1(1,7))
+ IF(NF.EQ.3) THEN
+ CALL LCMPUT(KPLIB,'NFTOT',NGRO,2,GAR1(1,3))
+ CALL LCMPUT(KPLIB,'NUSIGF',NGRO,2,GAR1(1,4))
+ ENDIF
+ NL2=1
+ IF((NL.GE.2).AND.(NP1.GT.0)) NL2=2
+ CALL XDRLGS(KPLIB,1,IMPX,0,NL2-1,1,NGRO,GAR1(1,5),SCAT,ITYPRO)
+ IF(IMPX.GT.5) CALL LCMLIB(KPLIB)
+ ENDIF
+ ENDDO
+ CALL XSDCL()
+*----
+* Scratch storage deallocation
+*----
+ DEALLOCATE(XN,XF,XS,XA,LOAD,THERXS,SCAT,GAR2,GAR1,TERPT,DILUS,
+ 1 TEMPS,DELTA)
+ DEALLOCATE(HNAM)
+ RETURN
+*
+ 100 FORMAT(/21H NDAS LIBRARY OPTIONS/21H --------------------/
+ 1 7H NISOLB,I6,39H (Number of isotopes in NDAS library)/
+ 2 7H NGRO ,I6,28H (Number of energy groups)/
+ 3 7H NGFIS ,I6,29H (Number of fission groups)/
+ 4 7H NGF ,I6,26H (Number of fast groups)/
+ 5 7H NGRES ,I6,31H (Number of resonance groups)/
+ 6 7H NGTHER,I6,29H (Number of thermal groups)/
+ 7 7H NBFISS,I6,31H (Number of fissile nuclides)/
+ 8 7H NBFP ,I6,31H (Number of fission products)/
+ 9 7H NBP1 ,I6,40H (Number of nuclides with P1 matrices)/
+ 1 7H NBRES ,I6,33H (Number of resonance nuclides)/
+ 2 7H MAXTMP,I6,40H (Maximum number of temperature nodes)/
+ 3 7H MAXDIL,I6,37H (Maximum number of dilution nodes)/
+ 4 7H MAXTDN,I6,36H (Maximum number of product nodes)/
+ 5 7H IOLD ,I6,32H (Library type: old=1, new>=2)/
+ 6 7H MAXP0 ,I6,34H (Maximum length of P0 matrices)/
+ 7 7H MAXP1 ,I6,34H (Maximum length of P1 matrices))
+ 110 FORMAT(/30H Processing isotope/material ',A12,11H' (HNISOR=',A12,
+ 1 3H').)
+ 120 FORMAT(/16H ISOTOPE OPTIONS/16H ---------------/
+ 1 7H NBURN ,I6,46H (Number of daughters in burnup calculation)/
+ 2 7H ID ,I6,15H (Numeric ID)/
+ 3 5H AW ,1P E10.2,14H (Atomic mass)/
+ 4 7H IZ ,I6,22H (Number of protons)/
+ 5 7H NF ,I6,24H (Self-shielding flag)/
+ 6 7H NT ,I6,38H (Number of thermal xs temperatures)/
+ 7 7H NR ,I6/
+ 8 7H NDAT2 ,I6/
+ 9 7H NDAT3 ,I6/
+ 1 7H NP1 ,I6,23H (P1 scattering flag)/
+ 2 7H NS ,I6,25H (Fissile isotope flag)/
+ 3 7H IENDFB,I6,28H (Type of evaluation file))
+ 130 FORMAT(26HLIBND1: Material/isotope ',A12,5H' = ',A12,9H' is miss,
+ 1 23Hing on NDAS file named ,A24,1H.)
+ END