diff options
Diffstat (limited to 'Dragon/src/SENCAL.f')
| -rw-r--r-- | Dragon/src/SENCAL.f | 620 |
1 files changed, 620 insertions, 0 deletions
diff --git a/Dragon/src/SENCAL.f b/Dragon/src/SENCAL.f new file mode 100644 index 0000000..fca8a0a --- /dev/null +++ b/Dragon/src/SENCAL.f @@ -0,0 +1,620 @@ +*DECK SENCAL + SUBROUTINE SENCAL(IPSENS,IPLIB,IPRINT,NR,NG,NI,NANIS,NAMISO, + > MELISO,MAT,DENISO,KEFF,P,D,NAMISC,ISOC,NIC) +* +*----------------------------------------------------------------------- +* +*Purpose: +* Compute sensitivity profiles. +* +*Copyright: +* Copyright (C) 2011 Ecole Polytechnique de Montreal +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; either +* version 2.1 of the License, or (at your option) any later version +* +*Author(s): C. Laville, G. Marleau +* +*Parameters: input/output +* IPSENS LCM Sensitivity object address. +* IPLIB LCM Library object address. +* IPRINT print level. +* NR number of region in Tracking object. +* NG number of energy group in Library object. +* NI number of isotope/mixture. +* NANIS anisotropy order kept. +* NAMISO name of the isotope/mixture. +* MELISO mixture associated with the isotope/mixture. +* MAT mixture of each region. +* DENISO density of each mixtures. +* KEFF keff. +* P matrix calcution for sensitivity analysis. +* D weighting coefficient for sensitivity analysis. +* NAMISC independent isotopes names. +* ISOC independent isotope number associated with isotope/mixture. +* NIC number of independent isotopes names. +* +*----------------------------------------------------------------------- +* + USE GANLIB + IMPLICIT NONE +*---- +* Parameters +*---- + INTEGER IOUT,NS + CHARACTER NAMSBR*6 + PARAMETER (IOUT=6,NS=9,NAMSBR='SENCAL') +*---- +* Suboutine arguements +*---- + TYPE(C_PTR) IPLIB + INTEGER IPSENS,IPRINT,NR,NG,NI,NANIS,NAMISO(3,NI), + > MELISO(NI),MAT(NR) + REAL DENISO(NI),KEFF,P(NR,NANIS,NG,NG),D + INTEGER NAMISC(2,NI),ISOC(NI),NIC +*---- +* Local variables +*---- + TYPE(C_PTR) KPISO + REAL ZERO + CHARACTER ISONAM*12,ISONAC*8,CL*2,HSMG*131 + INTEGER ILENG,ITYLCM,IR,IS,IG,IP,JG,ISF,ISN,ISC,IL,II, + > ISOMEL,IIC,NGG + DOUBLE PRECISION DD,DDD,SENRIG +*---- +* Allocatable arrays +*---- + INTEGER, ALLOCATABLE, DIMENSION(:) :: IJJ,NJJ + INTEGER, ALLOCATABLE, DIMENSION(:,:) :: IDS + REAL, ALLOCATABLE, DIMENSION(:) :: NUSIGF,CHI,CAPT,SIGS,SCAT, + > NUBAR,NFTOT,SIGD,SIGA,SIGG,SIGP + DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:) :: SENT,SENC + DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:) :: SENG,SENTI + DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:) :: SENRG,SENGI + TYPE(C_PTR), ALLOCATABLE, DIMENSION(:) :: IPISO +*---- +* Scratch storage allocation +* NUSIGF Vector for nubar multiplied by the fission cross-section +* CHI Vector for fission spectra. +* SENRG Sensitivities for each region and group. +* SENG Sensitivities for each group integrated on each region. +* SENT Integrated sensitivities. +* CAPT Vector for capture cross-sections. +* SIGS Vector for scattering cross-sections. +* SCAT Vector for transfter sections. +* NUBAR Vector for nubar. +* NFTOT Vector for fission cross-sections. +* SIGD Vector for (n,d) cross-sections. +* SIGA Vector for (n,a) cross-sections. +* SIGG Vector for (n,g) cross-sections. +* SIGP Vector for (n,p) cross-sections. +* SENC Vector used for sensitivities to the fission spectra CHI. +* IJJ Highest energy group for which the scattering does no +* vanish. +* NJJ Number of energy group for which the scattering does not +* vanish. +* IDS Used to compute integrated isotope sensitivities. +* SENGI Sensitivities for integrated isotope for each group. +* SENTI Sensitivities for integrated isotope. +*---- + ALLOCATE(IJJ(NG),NJJ(NG),IDS(NS,NIC)) + ALLOCATE(CAPT(NG),NUSIGF(NG),CHI(NG),SIGS(NG),SCAT(NG*NG), + < NUBAR(NG),NFTOT(NG),SIGD(NG),SIGA(NG),SIGG(NG),SIGP(NG)) + ALLOCATE(SENRG(NR,NG,NS),SENG(NG,NS),SENT(NS),SENC(NR), + < SENGI(NG,NS,NIC),SENTI(NS,NIC)) + ALLOCATE(IPISO(NI)) +*---- +* Initialize the directory of the isotope/mixture +* in the library and initialize the SEN information +* support and the cross section support for the isotope +*---- + ZERO=0.0 + NGG=NG*NG +*---- +* Loop over isotopes +*---- + IDS(:NS,:NIC)=0 + SENGI(:NG,:NS,:NIC)=0.0D0 + SENTI(:NS,:NIC)=0.0D0 + CALL LIBIPS(IPLIB,NI,IPISO) + DO II=1,NI + WRITE(ISONAM,'(3A4)') NAMISO(1,II),NAMISO(2,II),NAMISO(3,II) + KPISO=IPISO(II) ! set II-th isotope + IF(.NOT.C_ASSOCIATED(KPISO)) THEN + WRITE(HSMG,'(17HSENCAL: ISOTOPE '',A12,7H'' (ISO=,I8,5H) IS , + 1 30HNOT AVAILABLE IN THE MICROLIB.)') ISONAM,II + CALL XABORT(HSMG) + ENDIF + IIC=ABS(ISOC(II)) + ISOMEL=MELISO(II) + DD=DBLE(DENISO(II)/D) + DDD=DBLE(DD/KEFF) +*---- +* Process isotope +*---- + SENRG(:NR,:NG,:NS)=0.0 + SENG(:NG,:NS)=0.0 + SENT(:NS)=0.0 + SENC(:NR)=0.0 + SIGD(:NG)=0.0 + NUSIGF(:NG)=0.0 + NUBAR(:NG)=0.0 + NFTOT(:NG)=0.0 + CHI(:NG)=0.0 + SIGA(:NG)=0.0 + SIGP(:NG)=0.0 + SIGG(:NG)=0.0 + CAPT(:NG)=0.0 + SIGS(:NG)=0.0 + SCAT(:NG*NG)=0.0 + IJJ(:NG)=0 + NJJ(:NG)=0 +*---- +* (n,g) sensitivity calculation +*---- + IS=1 + CALL LCMLEN(KPISO,'NG',ILENG,ITYLCM) + IF(ILENG.GT.0) THEN + CALL LCMGET(KPISO,'NG',SIGG) + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + DO IG=1,NG + DO IL=0,NANIS-1 + SENRG(IR,IG,IS)=SENRG(IR,IG,IS)-DD* + > DBLE(((2*IL)+1)*SIGG(IG)*P(IR,IL+1,IG,IG)) + ENDDO + SENG(IG,IS)=SENG(IG,IS)+SENRG(IR,IG,IS) + SENT(IS)=SENT(IS)+SENRG(IR,IG,IS) + ENDDO + ENDIF + ENDDO +*---- +* Add contribution to integrated isotope +*---- + DO IG=1,NG + SENGI(IG,IS,IIC)=SENGI(IG,IS,IIC)+SENG(IG,IS) + ENDDO + SENTI(IS,IIC)=SENTI(IS,IIC)+SENT(IS) + IDS(IS,IIC)=IDS(IS,IIC)+1 +*---- +* Send to IPSENS +*---- + WRITE(IPSENS,7000) ISONAM(1:8),'n,g ',102,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(IS),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,IS),IG=1,NG) +*---- +* Print information if required for (n,g) +*---- + IF(IPRINT .GE. 5) THEN + WRITE(IOUT,6000) ' (n,g)',ISONAM,SENT(IS) + WRITE(IOUT,6001) (SENG(IG,IS),IG=1,NG) + ENDIF + ENDIF +*---- +* (n,p) sensitivity calculation +*---- + IS=2 + CALL LCMLEN(KPISO,'NP',ILENG,ITYLCM) + IF(ILENG.GT.0) THEN + CALL LCMGET(KPISO,'NP',SIGP) + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + DO IG=1,NG + DO IL=0,NANIS-1 + SENRG(IR,IG,IS)=SENRG(IR,IG,IS)-DD* + > DBLE(((2*IL)+1)*SIGP(IG)*P(IR,IL+1,IG,IG)) + ENDDO + SENG(IG,IS)=SENG(IG,IS)+SENRG(IR,IG,IS) + SENT(IS)=SENT(IS)+SENRG(IR,IG,IS) + ENDDO + ENDIF + ENDDO +*---- +* Add contribution to integrated isotope +*---- + DO IG=1,NG + SENGI(IG,IS,IIC)=SENGI(IG,IS,IIC)+SENG(IG,IS) + ENDDO + SENTI(IS,IIC)=SENTI(IS,IIC)+SENT(IS) + IDS(IS,IIC)=IDS(IS,IIC)+1 +*---- +* Send to IPSENS +*---- + WRITE(IPSENS,7000) ISONAM(1:8),'n,p ',103,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(IS),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,IS),IG=1,NG) +*---- +* Print information if required for (n,p) +*---- + IF(IPRINT .GE. 5) THEN + WRITE(IOUT,6000) ' (n,p)',ISONAM,SENT(IS) + WRITE(IOUT,6001) (SENG(IG,IS),IG=1,NG) + ENDIF + ENDIF +*---- +* (n,d) sensitivity calculation +*---- + IS=3 + CALL LCMLEN(KPISO,'ND',ILENG,ITYLCM) + IF(ILENG.GT.0) THEN + CALL LCMGET(KPISO,'ND',SIGD) + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + DO IG=1,NG + DO IL=0,NANIS-1 + SENRG(IR,IG,IS)=SENRG(IR,IG,IS)-DD* + > DBLE(((2*IL)+1)*SIGD(IG)*P(IR,IL+1,IG,IG)) + ENDDO + SENG(IG,IS)=SENG(IG,IS)+SENRG(IR,IG,IS) + SENT(IS)=SENT(IS)+SENRG(IR,IG,IS) + ENDDO + ENDIF + ENDDO +*---- +* Add contribution to integrated isotope +*---- + DO IG=1,NG + SENGI(IG,IS,IIC)=SENGI(IG,IS,IIC)+SENG(IG,IS) + ENDDO + SENTI(IS,IIC)=SENTI(IS,IIC)+SENT(IS) + IDS(IS,IIC)=IDS(IS,IIC)+1 +*---- +* Send to IPSENS +*---- + WRITE(IPSENS,7000) ISONAM(1:8),'n,d ',104,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(IS),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,IS),IG=1,NG) +*---- +* Print information if required for (n,d) +*---- + IF(IPRINT .GE. 5) THEN + WRITE(IOUT,6000) ' (n,d)',ISONAM,SENT(IS) + WRITE(IOUT,6001) (SENG(IG,IS),IG=1,NG) + ENDIF + ENDIF +*---- +* (n,a) sensitivity calculation +*---- + IS=4 + CALL LCMLEN(KPISO,'NA',ILENG,ITYLCM) + IF(ILENG.GT.0) THEN + CALL LCMGET(KPISO,'NA',SIGA) + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + DO IG=1,NG + DO IL=0,NANIS-1 + SENRG(IR,IG,IS)=SENRG(IR,IG,IS)-DD* + > DBLE(((2*IL)+1)*SIGA(IG)*P(IR,IL+1,IG,IG)) + ENDDO + SENG(IG,IS)=SENG(IG,IS)+SENRG(IR,IG,IS) + SENT(IS)=SENT(IS)+SENRG(IR,IG,IS) + ENDDO + ENDIF + ENDDO +*---- +* Add contribution to integrated isotope +*---- + DO IG=1,NG + SENGI(IG,IS,IIC)=SENGI(IG,IS,IIC)+SENG(IG,IS) + ENDDO + SENTI(IS,IIC)=SENTI(IS,IIC)+SENT(IS) + IDS(IS,IIC)=IDS(IS,IIC)+1 +*---- +* Send to IPSENS +*---- + WRITE(IPSENS,7000) ISONAM(1:8),'n,a ',107,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(IS),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,IS),IG=1,NG) +*---- +* Print information if required for (n,a) +*---- + IF(IPRINT .GE. 5) THEN + WRITE(IOUT,6000) ' (n,a)',ISONAM,SENT(IS) + WRITE(IOUT,6001) (SENG(IG,IS),IG=1,NG) + ENDIF + ENDIF +*---- +* Capture sensitivity calculation +*---- + IS=5 + DO IG=1,NG + CAPT(IG)=SIGD(IG)+SIGA(IG)+SIGP(IG)+SIGG(IG) + ENDDO + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + DO IG=1,NG + DO IL=0,NANIS-1 + SENRG(IR,IG,IS)=SENRG(IR,IG,IS)-DD* + > DBLE(((2*IL)+1)*CAPT(IG)*P(IR,IL+1,IG,IG)) + ENDDO + SENG(IG,IS)=SENG(IG,IS)+SENRG(IR,IG,IS) + SENT(IS)=SENT(IS)+SENRG(IR,IG,IS) + ENDDO + ENDIF + ENDDO +*---- +* Add contribution to integrated isotope +*---- + DO IG=1,NG + SENGI(IG,IS,IIC)=SENGI(IG,IS,IIC)+SENG(IG,IS) + ENDDO + SENTI(IS,IIC)=SENTI(IS,IIC)+SENT(IS) + IDS(IS,IIC)=IDS(IS,IIC)+1 +*---- +* Send to IPSENS +*---- + WRITE(IPSENS,7000) ISONAM(1:8),'capture',101,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(IS),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,IS),IG=1,NG) +*---- +* Print information if required for capture +*---- + IF(IPRINT .GE. 5) THEN + WRITE(IOUT,6000) 'capture',ISONAM,SENT(IS) + WRITE(IOUT,6001) (SENG(IG,IS),IG=1,NG) + ENDIF +*---- +* Scattering sensitivity calculation +*---- + IS=6 + DO IL=1,NANIS + WRITE(CL,'(I2.2)') IL-1 + CALL LCMLEN(KPISO,'SIGS'//CL,ILENG,ITYLCM) + IF(ILENG.GT.0) THEN + IF( IL .EQ. 1) THEN + CALL LCMGET(KPISO,'SIGS'//CL,SIGS) + ENDIF + CALL LCMGET(KPISO,'SCAT'//CL,SCAT) + CALL LCMGET(KPISO,'NJJS'//CL,NJJ) + CALL LCMGET(KPISO,'IJJS'//CL,IJJ) +*---- +* Decompress scattering matrix +* SCAT(JG,IG) is from IG to JG +*---- + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + IP=1 + DO JG=1,NG + DO IG=IJJ(JG),IJJ(JG)-NJJ(JG)+1,-1 + IF(IG .EQ. JG) THEN + SENRIG=DBLE(SCAT(IP)*P(IR,IL,IG,JG))- + > DBLE(((2*IL)-1)*SIGS(IG)*P(IR,IL,IG,IG)) + SENRG(IR,IG,IS)=SENRG(IR,IG,IS)+SENRIG + ELSE + SENRG(IR,IG,IS)=SENRG(IR,IG,IS)+ + > DBLE(SCAT(IP)*P(IR,IL,IG,JG)) + ENDIF + IP=IP+1 + ENDDO + ENDDO + ENDIF + ENDDO + ENDIF + ENDDO + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + DO IG=1,NG + SENRG(IR,IG,IS)=DD*SENRG(IR,IG,IS) + SENG(IG,IS)=SENG(IG,IS)+SENRG(IR,IG,IS) + SENT(IS)=SENT(IS)+SENRG(IR,IG,IS) + ENDDO + ENDIF + ENDDO +*---- +* Add contribution to integrated isotope +*---- + DO IG=1,NG + SENGI(IG,IS,IIC)=SENGI(IG,IS,IIC)+SENG(IG,IS) + ENDDO + SENTI(IS,IIC)=SENTI(IS,IIC)+SENT(IS) + IDS(IS,IIC)=IDS(IS,IIC)+1 +*---- +* Send to IPSENS +*---- + WRITE(IPSENS,7000) ISONAM(1:8),'scatter',0,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(IS),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,IS),IG=1,NG) +*---- +* Print information if required for scattering +*---- + IF(IPRINT .GE. 5) THEN + WRITE(IOUT,6000) 'scatter',ISONAM,SENT(IS) + WRITE(IOUT,6001) (SENG(IG,IS),IG=1,NG) + ENDIF +*---- +* Check if the isotope is fissile and get the +* cross section informations +*---- + CALL LCMLEN(KPISO,'NUSIGF',ILENG,ITYLCM) + IF(ILENG.GT.0) THEN + CALL LCMGET(KPISO,'NUSIGF',NUSIGF) + CALL LCMGET(KPISO,'CHI',CHI) + CALL LCMGET(KPISO,'NFTOT',NFTOT) + DO IG=1,NG + IF(NFTOT(IG).NE.0.0) THEN + NUBAR(IG)=NUSIGF(IG)/NFTOT(IG) + ENDIF + ENDDO +*---- +* Fission sensitivity calculation if fissile isotope +* Fission (ISF), nubar (ISN) and chi (ISC) +*---- + ISF=7 + ISN=8 + ISC=9 + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + DO IG=1,NG + DO IL=0,NANIS-1 +* Fission + SENRG(IR,IG,ISF)=SENRG(IR,IG,ISF)-DD* + > DBLE(((2*IL)+1)*NFTOT(IG)*P(IR,IL+1,IG,IG)) + ENDDO + DO JG=1,NG +* Fission + SENRG(IR,IG,ISF)=SENRG(IR,IG,ISF)+DDD* + > DBLE(NUSIGF(IG)*CHI(JG)*P(IR,1,IG,JG)) +* Nubar + SENRG(IR,IG,ISN)=SENRG(IR,IG,ISN)+ + > DBLE(NUSIGF(IG)*CHI(JG)*P(IR,1,IG,JG)) +* Chi + SENRG(IR,IG,ISC)=SENRG(IR,IG,ISC)+ + > DBLE(NUSIGF(JG)*CHI(IG)*P(IR,1,JG,IG)) + ENDDO +* Fission + SENG(IG,ISF)=SENG(IG,ISF)+SENRG(IR,IG,ISF) + SENT(ISF)=SENT(ISF)+SENRG(IR,IG,ISF) +* Nubar + SENRG(IR,IG,ISN)=DDD*SENRG(IR,IG,ISN) + SENG(IG,ISN)=SENG(IG,ISN)+SENRG(IR,IG,ISN) + SENT(ISN)=SENT(ISN)+SENRG(IR,IG,ISN) +* Chi + SENRG(IR,IG,ISC)=DDD*SENRG(IR,IG,ISC) + SENC(IR)=SENC(IR)+SENRG(IR,IG,ISC) + ENDDO + ENDIF + ENDDO +*---- +* Modification of sensitivty to Chi +*---- + DO IR=1,NR + IF(MAT(IR).EQ.ISOMEL) THEN + DO IG=1,NG + SENRG(IR,IG,ISC)=SENRG(IR,IG,ISC)- + > DBLE(CHI(IG))*SENC(IR) + SENG(IG,ISC)=SENG(IG,ISC)+SENRG(IR,IG,ISC) + SENT(ISC)=SENT(ISC)+SENRG(IR,IG,ISC) + ENDDO + ENDIF + ENDDO +*---- +* Add contribution to integrated isotope +*---- + DO IG=1,NG + SENGI(IG,ISF,IIC)=SENGI(IG,ISF,IIC)+SENG(IG,ISF) + SENGI(IG,ISN,IIC)=SENGI(IG,ISN,IIC)+SENG(IG,ISN) + SENGI(IG,ISC,IIC)=SENGI(IG,ISC,IIC)+SENG(IG,ISC) + ENDDO + SENTI(ISF,IIC)=SENTI(ISF,IIC)+SENT(ISF) + SENTI(ISN,IIC)=SENTI(ISN,IIC)+SENT(ISN) + SENTI(ISC,IIC)=SENTI(ISC,IIC)+SENT(ISC) + IDS(ISF,IIC)=IDS(ISF,IIC)+1 + IDS(ISN,IIC)=IDS(ISN,IIC)+1 + IDS(ISC,IIC)=IDS(ISC,IIC)+1 +*---- +* Send to IPSENS +*---- + WRITE(IPSENS,7000) ISONAM(1:8),'fission',18,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(ISF),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,ISF),IG=1,NG) + WRITE(IPSENS,7000) ISONAM(1:8),'nubar ',452,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(ISN),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,ISN),IG=1,NG) + WRITE(IPSENS,7000) ISONAM(1:8),'chi ',1018,-ISOMEL,ZERO + WRITE(IPSENS,7001) SENT(ISC),ZERO,ZERO + WRITE(IPSENS,7002) (SENG(IG,ISC),IG=1,NG) +*---- +* Print information if required +*---- + IF(IPRINT .GE. 5) THEN + WRITE(IOUT,6000) 'fission',ISONAM,SENT(ISF) + WRITE(IOUT,6001) (SENG(IG,ISF),IG=1,NG) + WRITE(IOUT,6000) ' nubar',ISONAM,SENT(ISN) + WRITE(IOUT,6001) (SENG(IG,ISN),IG=1,NG) + WRITE(IOUT,6000) ' chi',ISONAM,SENT(ISC) + WRITE(IOUT,6001) (SENG(IG,ISC),IG=1,NG) + ENDIF +*---- +* End of the loop for fissile isotope +*---- + ENDIF +*---- +* End loop for isotopes +*---- + ENDDO +*---- +* Save integrated contributions +*---- + DO IIC=1,NIC + WRITE(ISONAC,'(2A4)') NAMISC(1,IIC),NAMISC(2,IIC) +*---- +* (n,g) sensitivity calculation +*---- + DO IS=1,NS + IF(IDS(IS,IIC).GT.0) THEN + IF(IS .EQ.1) THEN + WRITE(IPSENS,7000) ISONAC,'n,g ', 102,0,ZERO + ELSE IF(IS .EQ.2) THEN + WRITE(IPSENS,7000) ISONAC,'n,p ', 103,0,ZERO + ELSE IF(IS .EQ.3) THEN + WRITE(IPSENS,7000) ISONAC,'n,d ', 104,0,ZERO + ELSE IF(IS .EQ.4) THEN + WRITE(IPSENS,7000) ISONAC,'n,a ', 107,0,ZERO + ELSE IF(IS .EQ.5) THEN + WRITE(IPSENS,7000) ISONAC,'capture', 101,0,ZERO + ELSE IF(IS .EQ.6) THEN + WRITE(IPSENS,7000) ISONAC,'scatter', 0,0,ZERO + ELSE IF(IS .EQ.7) THEN + WRITE(IPSENS,7000) ISONAC,'fission', 18,0,ZERO + ELSE IF(IS .EQ.8) THEN + WRITE(IPSENS,7000) ISONAC,'nubar ', 452,0,ZERO + ELSE IF(IS .EQ.9) THEN + WRITE(IPSENS,7000) ISONAC,'chi ',1018,0,ZERO + ENDIF + WRITE(IPSENS,7001) SENTI(IS,IIC),ZERO,ZERO + WRITE(IPSENS,7002) (SENGI(IG,IS,IIC),IG=1,NG) +*---- +* Print information if required for (n,g) +*---- + IF(IPRINT .GE. 5) THEN + IF(IS .EQ.1) THEN + WRITE(IOUT,6005) ' (n,g)',ISONAC,SENTI(IS,IIC) + ELSE IF(IS .EQ.2) THEN + WRITE(IOUT,6005) ' (n,p)',ISONAC,SENTI(IS,IIC) + ELSE IF(IS .EQ.3) THEN + WRITE(IOUT,6005) ' (n,d)',ISONAC,SENTI(IS,IIC) + ELSE IF(IS .EQ.4) THEN + WRITE(IOUT,6005) ' (n,a)',ISONAC,SENTI(IS,IIC) + ELSE IF(IS .EQ.5) THEN + WRITE(IOUT,6005) 'capture',ISONAC,SENTI(IS,IIC) + ELSE IF(IS .EQ.6) THEN + WRITE(IOUT,6005) 'scatter',ISONAC,SENTI(IS,IIC) + ELSE IF(IS .EQ.7) THEN + WRITE(IOUT,6005) 'fission',ISONAC,SENTI(ISF,IIC) + ELSE IF(IS .EQ.8) THEN + WRITE(IOUT,6005) ' nubar',ISONAC,SENTI(ISN,IIC) + ELSE IF(IS .EQ.9) THEN + WRITE(IOUT,6005) ' chi',ISONAC,SENTI(ISC,IIC) + ENDIF + WRITE(IOUT,6001) (SENGI(IG,IS,IIC),IG=1,NG) + ENDIF + ENDIF + ENDDO +*---- +* End loop for isotopes +*---- + ENDDO +*---- +* Scratch storage deallocation +*---- + DEALLOCATE(IPISO) + DEALLOCATE(SENTI,SENGI,SENC,SENT,SENG,SENRG) + DEALLOCATE(SIGP,SIGG,SIGA,SIGD,NFTOT,NUBAR,SCAT,SIGS,CHI,NUSIGF, + < CAPT) + DEALLOCATE(IDS,NJJ,IJJ) + RETURN +*---- +* Formats +*---- + 6000 FORMAT('Name of the isotope/mixture: ',7X, + > 'Integrated sensitivity to :', + >A7/A12,44X,1P,E14.6/'Sensitivity profiles') + 6001 FORMAT(1P,5E14.6) + 6005 FORMAT('Name of the isotope/mixture: ',7X, + > 'Integrated sensitivity to :', + >A7/A8,48X,1P,E14.6/'Sensitivity profiles') + 7000 FORMAT(A8,4X,1X,A7,' -0000',I7,I7,1P,E14.6) + 7001 FORMAT(1P,3E14.6) + 7002 FORMAT(1P,5E14.6) + END |
