diff options
Diffstat (limited to 'Dragon/src/CFCDRV.f')
| -rw-r--r-- | Dragon/src/CFCDRV.f | 1117 |
1 files changed, 1117 insertions, 0 deletions
diff --git a/Dragon/src/CFCDRV.f b/Dragon/src/CFCDRV.f new file mode 100644 index 0000000..32491f2 --- /dev/null +++ b/Dragon/src/CFCDRV.f @@ -0,0 +1,1117 @@ +*DECK CFCDRV + SUBROUTINE CFCDRV (IPRINT,NENTRY,KENTRY,HENTRY,NBURN,NGRP,NISO, + 1 NL,CTITRE,TEX,NXS,NBPARA,DBPARA) +* +*----------------------------------------------------------------------- +* +*Purpose: +* Driver for the construction of a feedback database. +* +*Copyright: +* Copyright (C) 1996 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): M. T. Sissaoui +* +*Parameters: input +* IPRINT print level. +* NENTRY number of LCM objects. +* KENTRY address of the LCM objects. +* HENTRY name of the LCM objects. +* NBURN number of burnup steps. +* NGRP number of energy groups. +* NISO 1+number of extracted isotopes. +* NL number of Legendre orders. +* CTITRE execution title. +* TEX database name. +* NXS number of reactions (equal to 21+NL). +* NBPARA number of parameters for FBM. +* DBPARA values of parameters for FBM. +* +*----------------------------------------------------------------------- +* + USE GANLIB +*---- +* SUBROUTINE ARGUMENTS +*---- + TYPE(C_PTR) KENTRY(NENTRY) + INTEGER IPRINT,NENTRY,NBURN,NGRP,NISO,NL,NXS,NBPARA + CHARACTER HENTRY(NENTRY)*12,TEX*9 + REAL DBPARA(NBPARA) +*---- +* LOCAL PARAMETERS +*---- + TYPE(C_PTR) IPLISU,IPLISD,IPFBM,IPLIST,IPHISU,IPHISD,IPHIST + INTEGER IOUT,NSTATE + PARAMETER (IOUT=6,NSTATE=40) + CHARACTER TEXT1*8,CM*2,TEXT2*8,HMICRO*12, + 1 TEXTB*12,TEXT(2)*12,TEXTR*12,TEXT12*12,CTITRE*72 + INTEGER ISTATE(NSTATE),IPAR(5),HTITLE(18) + REAL XP(7) +*---- +* ALLOCATABLE STATEMENTS +*---- + INTEGER, ALLOCATABLE, DIMENSION(:) :: IJJ,NJJ,MIJ,MNJ,HISO,JTAB, + 1 IXS + REAL, ALLOCATABLE, DIMENSION(:) :: WORK3,DENSIT,EFJ,KBUR,KB + REAL, ALLOCATABLE, DIMENSION(:) :: TOT2,ZN2,DXF2,DYF2,DZF2,HF2, + 1 SCA2,MIRCT2,MIRCS2,MICDX2,MICDY2,MICDZ2,V2,MIRCF2,MIRCH2 + REAL, ALLOCATABLE, DIMENSION(:) :: FLUI3,FLDIS3,OV3,DIFD3,NF3, + 1 CHI3,MCHI3 + REAL, ALLOCATABLE, DIMENSION(:,:) :: TOTAL,ZNUG,DIFFX,DIFFY,DIFFZ, + 1 H,REFC,DELTA + REAL, ALLOCATABLE, DIMENSION(:,:,:) :: TMREF,DMRFX,DMRFY,DMRFZ, + 1 FMREF,HMREF + REAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: SCAT + REAL, ALLOCATABLE, DIMENSION(:,:,:,:,:) :: SMREF +*---- +* SCRATCH STORAGE ALLOCATION +*---- + ALLOCATE(IJJ(NL*NGRP),NJJ(NL*NGRP),MIJ(NL*NGRP),MNJ(NL*NGRP), + 1 HISO(3*NISO),JTAB(NISO),IXS(NXS)) + ALLOCATE(TOTAL(NGRP,NBURN),ZNUG(NGRP,NBURN),DIFFX(NGRP,NBURN), + 1 DIFFY(NGRP,NBURN),DIFFZ(NGRP,NBURN),H(NGRP,NBURN), + 2 SCAT(NBURN,NL,NGRP,NGRP),WORK3(NGRP*(NGRP+1)),DENSIT(NISO), + 3 EFJ(NISO),TMREF(NGRP,NBURN,NISO),SMREF(NISO,NBURN,NL,NGRP,NGRP), + 4 DMRFX(NGRP,NBURN,NISO),DMRFY(NGRP,NBURN,NISO), + 5 DMRFZ(NGRP,NBURN,NISO),REFC(NBURN,NISO),FMREF(NGRP,NBURN,NISO), + 6 HMREF(NGRP,NBURN,NISO),DELTA(NBURN,2)) +*----- +* REFERENCE(NOMINAL) LOCAL PARAMETER +*----- + PWR=DBPARA(1) + TCR=DBPARA(2) + TMR=DBPARA(3) + TFR=DBPARA(4) + RHOM=DBPARA(5) + RHOC=DBPARA(6) + XIR=DBPARA(7) + TFU=DBPARA(8) + TCU=DBPARA(9) + PWUL=DBPARA(10) + PWDL=DBPARA(11) + PWU=DBPARA(12) + PWD=DBPARA(13) + XI=DBPARA(14) +C +C FLAG FOR COLLISION PROBABILITY CALCULATION +C IXYZ=0 PIJ CALCULATION +C IXYZ=1 PIJK CALCULATION +C + IXYZ=0 +C----- +C CHECK NGRP AND NBURN +C----- + IF(NBURN.EQ.0) CALL XABORT('CFCDRV: ZERO NUMBER OF MIXTURES.') + IF(NGRP.EQ.0) CALL XABORT('CFCDRV: ZERO NUMBER OF GROUPS.') +C +C ONLY THE FIRST ORDER IS CONSIDERED IN FBM +C +C----------------------------------------------------------------------C +C----- +C DYNAMIC MEMORY ALLOCATION +C----- + ALLOCATE(TOT2(2*NBURN*NGRP),ZN2(2*NBURN*NGRP),DXF2(2*NBURN*NGRP), + 1 DYF2(2*NBURN*NGRP),DZF2(2*NBURN*NGRP),HF2(2*NBURN*NGRP), + 2 SCA2(2*NBURN*NL*NGRP*NGRP),MIRCT2(2*NBURN*NISO*NGRP), + 3 MIRCS2(2*NBURN*NL*NGRP*NGRP*NISO),MICDX2(2*NBURN*NISO*NGRP), + 4 MICDY2(2*NBURN*NISO*NGRP),MICDZ2(2*NBURN*NISO*NGRP),V2(16*NBURN), + 5 MIRCF2(2*NBURN*NISO*NGRP),MIRCH2(2*NBURN*NISO*NGRP)) +C +C----- +C DATABASE FILE UNIT NUMBER +C----- + IPFBM=KENTRY(1) +C----- +C STOTRE THE NOMINAL LOCAL PARAMETER IN THE DATABASE +C IP=1 FOR THE FUEL +C IP=2 FOR THE REFLECTOR +C----- + DO 801 IP=1,2 +C +C INITIALIZATION OF THE MATRICES. +C + JTAB(:NISO)=0 + TOTAL(:NGRP,:NBURN)=0.0 + ZNUG(:NGRP,:NBURN)=0.0 + DIFFX(:NGRP,:NBURN)=0.0 + DIFFY(:NGRP,:NBURN)=0.0 + DIFFZ(:NGRP,:NBURN)=0.0 + H(:NGRP,:NBURN)=0.0 + TMREF(:NGRP,:NBURN,:NISO)=0.0 + DMRFX(:NGRP,:NBURN,:NISO)=0.0 + DMRFY(:NGRP,:NBURN,:NISO)=0.0 + DMRFZ(:NGRP,:NBURN,:NISO)=0.0 + FMREF(:NGRP,:NBURN,:NISO)=0.0 + HMREF(:NGRP,:NBURN,:NISO)=0.0 + SCAT(:NBURN,:NL,:NGRP,:NGRP)=0.0 + SMREF(:NISO,:NBURN,:NL,:NGRP,:NGRP)=0.0 + DO 10 IGR=1,NGRP + IJJ(IGR)=IGR + NJJ(IGR)=1 + MIJ(IGR)=IGR + MNJ(IGR)=1 + 10 CONTINUE +C + DO 44 ILOC=1,7 + IF(ILOC.EQ.1) THEN + HMICRO='PW' + XP(ILOC)=PWR + ELSE IF(ILOC.EQ.2) THEN + HMICRO='TCOOL' + XP(ILOC)=TCR + ELSE IF(ILOC.EQ.3) THEN + HMICRO='TMOD' + XP(ILOC)=TMR + ELSE IF(ILOC.EQ.4) THEN + HMICRO='TFUEL' + XP(ILOC)=TFR + ELSE IF(ILOC.EQ.5) THEN + HMICRO='RHOC' + XP(ILOC)=RHOC + ELSE IF(ILOC.EQ.6) THEN + HMICRO='RHOM' + XP(ILOC)=RHOM + ELSE IF(ILOC.EQ.7) THEN + HMICRO='PUR' + XP(ILOC)=XIR + ENDIF + READ(HMICRO,'(3A4)') (HISO((ILOC-1)*3+IH),IH=1,3) + 44 CONTINUE +C----- +C TYPE OF PROPERTIES +C----- + IF(IP.EQ.1) THEN + IPLIST=KENTRY(2) + TEXTR='FUL'//TEX + ELSE + IPLIST=KENTRY(23) + TEXTR='MOD'//TEX + ENDIF +C----------------------------------------------------------------------C +C----- +C RECOVER AND STORE NEUTRONICS PARAMETRES +C----- + IF(IP.EQ.1) THEN + CALL LCMSIX(IPFBM,TEXTR,1) + CALL LCMSIX(IPFBM,'INFO-NOMINA',1) + CALL LCMPUT(IPFBM,'NOMINALN',3*7,3,HISO) + CALL LCMPUT(IPFBM,'NOMINALP',7,2,XP) + CALL LCMSIX(IPFBM,' ',2) + READ(CTITRE,'(18A4)') (HTITLE(I),I=1,18) + CALL LCMPUT(IPFBM,'TITLE',18,3,HTITLE) + IPAR(1)=NGRP + IPAR(2)=NISO + IPAR(3)=NL + IPAR(4)=NBURN + NBUM=NBURN + NISM=NISO + CALL LCMPUT(IPFBM,'PARAM',4,1,IPAR) + CALL LCMSIX(IPFBM,' ',2) + ELSE + TEXT12='SIGNATURE' + CALL LCMNXT(IPLIST,TEXT12) +C + IF(TEXT12.EQ.'SIGNATURE') CALL XABORT('CFCDRV: ' + 1 //'INVALID INPUT COMPO.') + CALL LCMGET(IPLIST,'STATE-VECTOR',ISTATE) + CALL LCMSIX(IPLIST,TEXT12,1) + CALL LCMSIX(IPLIST,' ',2) + NGRP=ISTATE(2) + NISO=ISTATE(3) + NL=ISTATE(4) + NBURN=ISTATE(5) +C + CALL LCMSIX(IPFBM,TEXTR,1) + CALL LCMSIX(IPFBM,'INFO-NOMINA',1) + CALL LCMPUT(IPFBM,'NOMINALN',3*7,3,HISO) + CALL LCMPUT(IPFBM,'NOMINALP',7,2,XP) + CALL LCMSIX(IPFBM,' ',2) + READ(CTITRE,'(18A4)') (HTITLE(I),I=1,18) + CALL LCMPUT(IPFBM,'TITLE',18,3,HTITLE) + CALL LCMSIX(IPFBM,' ',2) + ENDIF +C +C RECOVER INFORMATION FROM CPO FILE(NOMINAL) +C + ALLOCATE(KB(NBURN),KBUR(NBURN)) + IF(IP.EQ.1) THEN + CALL LCMSIX(IPLIST,'REF 1',1) + ELSE + CALL LCMSIX(IPLIST,'MODREF 1',1) + ENDIF + CALL LCMGET(IPLIST,'ISOTOPESNAME',HISO) + CALL LCMGET(IPLIST,'VOLUME',VOL) + CALL LCMGET(IPLIST,'ENERGY',WORK3) + CALL LCMGET(IPLIST,'BURNUP',KBUR) + CALL LCMGET(IPLIST,'N/KB',KB) + CALL LCMSIX(IPLIST,' ',2) +C +C STORE INFORMATION IN THE DATABASE +C + CALL LCMSIX(IPFBM,TEXTR,1) + CALL LCMPUT(IPFBM,'HITAB',3*NISO,3,HISO) + CALL LCMPUT(IPFBM,'VOLUME',1,2,VOL) + CALL LCMPUT(IPFBM,'ENERGY',NGRP+1,2,WORK3) + CALL LCMPUT(IPFBM,'BURNUP',NBURN,2,KBUR) + CALL LCMPUT(IPFBM,'N/KB',NBURN,2,KB) + CALL LCMSIX(IPFBM,' ',2) +C + DEALLOCATE(KBUR,KB) +C----- +C GOING DOWN TO THE MACR AND MICR SUB-DIRECTORIES +C----- +C +C DYNAMIC ALLOCATION MEMORY +C + ALLOCATE(FLUI3(NGRP),FLDIS3(NGRP),OV3(NGRP),DIFD3(3*NGRP), + 1 NF3(NGRP),CHI3(NGRP),MCHI3(NGRP)) +C + DO 20 I=1,NBURN + WRITE(TEXTB,'(4HBURN,4X,I4)') I + IF(IP.EQ.1) THEN + CALL LCMSIX(IPLIST,'REF 1',1) + ELSE + CALL LCMSIX(IPLIST,'MODREF 1',1) + ENDIF + CALL LCMSIX(IPLIST,TEXTB,1) + CALL LCMGET(IPLIST,'ISOTOPESDENS',DENSIT) + CALL LCMGET(IPLIST,'ISOTOPES-EFJ',EFJ) + IF(DENSIT(1).NE.1.0) CALL XABORT('FBM: DENSIT(1).NE.1.') + CALL LCMGET(IPLIST,'FLUX-INTG',FLUI3) + CALL LCMGET(IPLIST,'FLUXDISAFACT',FLDIS3) + CALL LCMGET(IPLIST,'OVERV',OV3) +C----- +C RECOVER MACROSCOPIC X-SECTIONS. +C----- + CALL LCMSIX(IPLIST,'MACR',1) + IXS(:NXS)=0 + CALL LCMGET(IPLIST,'XS-SAVED',IXS) + CALL LCMGET(IPLIST,'SCAT-SAVED',IXS(21)) + IF(IXS(18).EQ.1) IXYZ=1 + IF(IXS(3).EQ.1) JTAB(1)=1 +C + IF(IXS(1).EQ.1) CALL LCMGET(IPLIST,'TOTAL',TOTAL(1,I)) + IF(IXS(3).EQ.1) CALL LCMGET(IPLIST,'NUSIGF',ZNUG(1,I)) + IF(IXS(4).EQ.1) THEN + CALL LCMGET(IPLIST,'NFTOT',NF3) + CALL LCMGET(IPLIST,'NFTOT',H(1,I)) + DO 11 IGR=1,NGRP + H(IGR,I)=H(IGR,I)*EFJ(1) + 11 CONTINUE + ENDIF + IF(IXS(5).EQ.1) CALL LCMGET(IPLIST,'CHI',CHI3) + IF(IXS(17).EQ.1) CALL LCMGET(IPLIST,'STRD ',DIFFX(1,I)) + IF(IXS(18).EQ.1) CALL LCMGET(IPLIST,'STRD X',DIFFX(1,I)) + IF(IXS(19).EQ.1) CALL LCMGET(IPLIST,'STRD Y',DIFFY(1,I)) + IF(IXS(20).EQ.1) CALL LCMGET(IPLIST,'STRD Z',DIFFZ(1,I)) + CALL LCMLEN(IPLIST,'NUSIGF',ILENGF,ITYLCM) +C +C RECOVER SCATTERING X-SECTIONS. +C + IL=1 + WRITE (CM,'(I2.2)') IL-1 + IF(IXS(20+IL).EQ.1) THEN + CALL LCMGET(IPLIST,'SIGS'//CM,WORK3) + DO 110 IGR=1,NGRP + TOTAL(IGR,I)= TOTAL(IGR,I)-WORK3(IGR) + 110 CONTINUE +C + CALL LCMLEN(IPLIST,'SCAT'//CM,LENGT,ITYLCM) + CALL LCMGET(IPLIST,'SCAT'//CM,WORK3) + CALL LCMGET(IPLIST,'NJJS'//CM,NJJ) + CALL LCMGET(IPLIST,'IJJS'//CM,IJJ) + IGAR=0 + DO 125 JGR=1,NGRP + DO 120 IGR=IJJ(JGR),IJJ(JGR)-NJJ(JGR)+1,-1 + IGAR=IGAR+1 + SCAT(I,IL,IGR,JGR)=WORK3(IGAR) + 120 CONTINUE + 125 CONTINUE + ENDIF +C + CALL LCMSIX(IPLIST,' ',2) +C----- +C RECOVER MICROSCOPIC X-SECTIONS. +C----- + DO 40 ISO=2,NISO + IF(DENSIT(ISO).EQ.0.0) GO TO 40 + WRITE(HMICRO,'(3A4)') (HISO((ISO-1)*3+IH),IH=1,3) + REFC(I,ISO)=DENSIT(ISO) + CALL LCMSIX(IPLIST,HMICRO,1) + CALL LCMGET(IPLIST,'XS-SAVED',IXS) + CALL LCMGET(IPLIST,'SCAT-SAVED',IXS(21)) + IF(IXS(3).EQ.1) JTAB(ISO)=1 + IF(IXS(1).EQ.1) CALL LCMGET(IPLIST,'TOTAL',TMREF(1,I,ISO)) +C +C COMPUTE THE ABSORPTION XS +C + IL=1 + WRITE (CM,'(I2.2)') IL-1 + IF(IXS(20+IL).EQ.1) THEN + CALL LCMGET(IPLIST,'SIGS'//CM,WORK3) + DO 231 IGR=1,NGRP + TMREF(IGR,I,ISO)= TMREF(IGR,I,ISO)-WORK3(IGR) + 231 CONTINUE + ENDIF +C + IF(IXS(17).EQ.1) CALL LCMGET(IPLIST,'STRD ',DMRFX(1,I,ISO)) + IF(IXS(18).EQ.1) CALL LCMGET(IPLIST,'STRD X',DMRFX(1,I,ISO)) + IF(IXS(19).EQ.1) CALL LCMGET(IPLIST,'STRD Y',DMRFY(1,I,ISO)) + IF(IXS(20).EQ.1) CALL LCMGET(IPLIST,'STRD Z',DMRFZ(1,I,ISO)) +C +C ADD THE CONTRIBURTION OF THE MICR. X-SECTIONS +C + DO 721 IGR=1,NGRP + TOTAL(IGR,I)=TOTAL(IGR,I) + DENSIT(ISO)*TMREF(IGR,I,ISO) + DIFFX(IGR,I)=DIFFX(IGR,I) + DENSIT(ISO)*DMRFX(IGR,I,ISO) + DIFFY(IGR,I)=DIFFY(IGR,I) + DENSIT(ISO)*DMRFY(IGR,I,ISO) + DIFFZ(IGR,I)=DIFFZ(IGR,I) + DENSIT(ISO)*DMRFZ(IGR,I,ISO) + 721 CONTINUE +C + IF(IXS(3).EQ.1) THEN + CALL LCMGET(IPLIST,'NUSIGF',FMREF(1,I,ISO)) + DO 30 IGR=1,NGRP + ZNUG(IGR,I)=ZNUG(IGR,I) + DENSIT(ISO)*FMREF(IGR,I,ISO) + 30 CONTINUE + ENDIF + IF(IXS(4).EQ.1) THEN + CALL LCMGET(IPLIST,'NFTOT',WORK3) + CALL LCMGET(IPLIST,'NFTOT',HMREF(1,I,ISO)) + DO 31 IGR=1,NGRP + HMREF(IGR,I,ISO)=HMREF(IGR,I,ISO)*EFJ(ISO) + NF3(IGR)=NF3(IGR)+DENSIT(ISO)*WORK3(IGR) + H(IGR,I)=H(IGR,I) + DENSIT(ISO)*HMREF(IGR,I,ISO) + 31 CONTINUE + ENDIF + IF(IXS(5).EQ.1) CALL LCMGET(IPLIST,'CHI',MCHI3) + CALL LCMSIX(IPLIST,' ',2) + 40 CONTINUE + CALL LCMSIX(IPLIST,' ',2) + CALL LCMSIX(IPLIST,' ',2) +C----------------------------------------------------------------------C +C----- +C STORE PROPERTIES +C----- + CALL LCMSIX(IPFBM,TEXTR,1) +C + CALL LCMPUT(IPFBM,'JTAB',NISO,1,JTAB) +C + CALL LCMSIX(IPFBM,TEXTB,1) + CALL LCMPUT(IPFBM,'ISOTOPESDENS',NISO,2,DENSIT) + CALL LCMPUT(IPFBM,'FLUX-INTG',NGRP,2,FLUI3) + CALL LCMPUT(IPFBM,'OVERV',NGRP,2,OV3) + CALL LCMPUT(IPFBM,'FLUXDISAFACT',NGRP,2,FLDIS3) +C +C STORE MACROSCOPIC X-SECTIONS +C + CALL LCMSIX(IPFBM,'MACR',1) + CALL LCMSIX(IPFBM,'ABS',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,TOTAL(1,I)) + CALL LCMSIX(IPFBM,' ',2) + IF(IXYZ.EQ.0) THEN + CALL LCMSIX(IPFBM,'STRD',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,DIFFX(1,I)) + CALL LCMSIX(IPFBM,' ',2) + ELSE IF(IXYZ.EQ.1) THEN + CALL LCMSIX(IPFBM,'STRD X',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,DIFFX(1,I)) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,'STRD Y',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,DIFFY(1,I)) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,'STRD Z',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,DIFFZ(1,I)) + CALL LCMSIX(IPFBM,' ',2) + ENDIF + IF(JTAB(1).EQ.1) THEN + CALL LCMSIX(IPFBM,'NUSIGF',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,ZNUG(1,I)) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,'H-FACTORS',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,H(1,I)) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMPUT(IPFBM,'CHI',NGRP,2,CHI3) + CALL LCMPUT(IPFBM,'NFTOT',NGRP,2,NF3) + ENDIF + CALL LCMSIX(IPFBM,' ',2) +C +C STORE MICROSCOPIC X-SECTIONS +C + DO 49 ISO=2,NISO + IF(DENSIT(ISO).EQ.0.0) GO TO 49 + WRITE(HMICRO,'(3A4)') (HISO((ISO-1)*3+IH),IH=1,3) + CALL LCMSIX(IPFBM,HMICRO,1) + CALL LCMSIX(IPFBM,'ABS',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,TMREF(1,I,ISO)) + CALL LCMSIX(IPFBM,' ',2) + IF(IXYZ.EQ.0) THEN + CALL LCMSIX(IPFBM,'STRD',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,DMRFX(1,I,ISO)) + CALL LCMSIX(IPFBM,' ',2) + ELSE IF(IXYZ.EQ.1) THEN + CALL LCMSIX(IPFBM,'STRD X',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,DMRFX(1,I,ISO)) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,'STRD Y',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,DMRFY(1,I,ISO)) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,'STRD Z',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,DMRFZ(1,I,ISO)) + CALL LCMSIX(IPFBM,' ',2) + ENDIF + IF(JTAB(ISO).EQ.1) THEN + CALL LCMSIX(IPFBM,'NUSIGF',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,FMREF(1,I,ISO)) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,'H-FACTORS',1) + CALL LCMPUT(IPFBM,'REF',NGRP,2,HMREF(1,I,ISO)) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMPUT(IPFBM,'CHI',NGRP,2,MCHI3) + ENDIF + CALL LCMSIX(IPFBM,' ',2) + 49 CONTINUE + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,' ',2) +C----- +C RECOVER MICROSCOPIC CONTRIBUTIONS OF SCATTERING X-SECTIONS. +C----- + DO 160 ISO=2,NISO + IF(DENSIT(ISO).EQ.0.0) GO TO 160 + WRITE(HMICRO,'(3A4)') (HISO((ISO-1)*3+IH),IH=1,3) + IF(IP.EQ.1) THEN + CALL LCMSIX(IPLIST,'REF 1',1) + ELSE + CALL LCMSIX(IPLIST,'MODREF 1',1) + ENDIF + CALL LCMSIX(IPLIST,TEXTB,1) + CALL LCMLEN(IPLIST,HMICRO,ILENG,ITYLCM) + IF(ILENG.NE.0) THEN + CALL LCMSIX(IPLIST,HMICRO,1) + CALL LCMGET(IPLIST,'XS-SAVED',IXS) + CALL LCMGET(IPLIST,'SCAT-SAVED',IXS(21)) +C + IL=1 + WRITE (CM,'(I2.2)') IL-1 + IF(IXS(20+IL).EQ.1) THEN + CALL LCMGET(IPLIST,'SCAT'//CM,WORK3) + CALL LCMGET(IPLIST,'NJJS'//CM,NJJ) + CALL LCMGET(IPLIST,'IJJS'//CM,IJJ) + IGAR=0 + DO 150 JGR=1,NGRP + DO 140 IGR=IJJ(JGR),IJJ(JGR)-NJJ(JGR)+1,-1 + IGAR=IGAR+1 + SMREF(ISO,I,IL,IGR,JGR)=WORK3(IGAR) + SCAT(I,IL,IGR,JGR)=SCAT(I,IL,IGR,JGR)+DENSIT(ISO)*WORK3(IGAR) + 140 CONTINUE + 150 CONTINUE + ENDIF +C + CALL LCMSIX(IPLIST,' ',2) + ENDIF + CALL LCMSIX(IPLIST,' ',2) + CALL LCMSIX(IPLIST,' ',2) + 160 CONTINUE +C----------------------------------------------------------------------C +C +C STORE MACROSCOPIC SCATTERING X-SECTIONS +C + CALL LCMSIX(IPFBM,TEXTR,1) + CALL LCMSIX(IPFBM,TEXTB,1) +C + CALL LCMSIX(IPFBM,'MACR',1) + IL=1 + WRITE (CM,'(I2)') IL-1 + CALL LCMSIX(IPFBM,'SCAT'//CM,1) + IGARM=0 + DO 799 JGR=1,NGRP + IGRMIN=JGR + IGRMAX=JGR + DO 899 IGR=1,NGRP + IF(SCAT(I,IL,IGR,JGR).NE.0.0) THEN + IGRMIN=MIN(IGRMIN,IGR) + IGRMAX=MAX(IGRMAX,IGR) + ENDIF + 899 CONTINUE + MIJ(JGR)=IGRMAX + MNJ(JGR)=IGRMAX-IGRMIN+1 + DO 795 IGR=MIJ(JGR),MIJ(JGR)-MNJ(JGR)+1,-1 + IGARM=IGARM+1 + WORK3(IGARM)=SCAT(I,IL,IGR,JGR) + 795 CONTINUE + 799 CONTINUE + CALL LCMPUT(IPFBM,'NJJ',NGRP,1,MNJ) + CALL LCMPUT(IPFBM,'IJJ',NGRP,1,MIJ) + CALL LCMPUT(IPFBM,'REF',IGARM,2,WORK3) + CALL LCMSIX(IPFBM,' ',2) +C +C + CALL LCMSIX(IPFBM,' ',2) +C +C +C STORE THE SCATTERING X-SECTIONS +C + DO 860 ISO=2,NISO + IF(DENSIT(ISO).EQ.0.0) GO TO 860 + WRITE(HMICRO,'(3A4)') (HISO((ISO-1)*3+IH),IH=1,3) + CALL LCMSIX(IPFBM,HMICRO,1) + IL=1 + WRITE (CM,'(I2)') IL-1 + CALL LCMSIX(IPFBM,'SCAT'//CM,1) + IGARM=0 + DO 105 JGR=1,NGRP + DO 100 IGR=MIJ(JGR),MIJ(JGR)-MNJ(JGR)+1,-1 + IGARM=IGARM+1 + WORK3(IGARM)=SMREF(ISO,I,IL,IGR,JGR) + 100 CONTINUE + 105 CONTINUE + CALL LCMPUT(IPFBM,'REF',IGARM,2,WORK3) + CALL LCMPUT(IPFBM,'NJJ',NGRP,1,MNJ) + CALL LCMPUT(IPFBM,'IJJ',NGRP,1,MIJ) + CALL LCMSIX(IPFBM,' ',2) +C + CALL LCMSIX(IPFBM,' ',2) + 860 CONTINUE + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,' ',2) + 20 CONTINUE +C + DEALLOCATE(MCHI3,CHI3,NF3,DIFD3,OV3,FLDIS3,FLUI3) + WRITE(IOUT,9000) +C----------------------------------------------------------------------C +C C +C FUEL COEFFICIENTS CALCULATIONS C +C C +C----------------------------------------------------------------------C +C MIXP =0 : INDIVIDUAL LOCAL PARAMETER C +C MIXP =1 : MIXDED LOCAL PARAMETER C +C NB =1 : THE COEFFICIENTS CALCULATION REQUIRE ONE L_COMPO C +C NB =2 : THE COEFFICIENTS CALCULATION REQUIRE TWO L_COMPO C +C TEXT1 : FIRST RECORD ON WHICH THE COEFF. ARE STORED (NB=1) C +C TEXT2 : SECOND RECORD ON WHICH THE COEFF. ARE STORED (NB=2) C +C----------------------------------------------------------------------C +C + IF(IP.EQ.1) THEN + DO 111 J=1,5 + JJU=2*J+1 + JJD=2*J+2 + IPLISU=KENTRY(JJU) + IPLISD=KENTRY(JJD) + IF(ABS(IPRINT) .GT. 5) THEN + WRITE(IOUT,6000) JJU,HENTRY(JJU),JJD,HENTRY(JJD) + ENDIF + NB=2 + MIXP=0 +C----- +C COMPUTE FUEL TEMPERATURE COEFFICIENTS (TWO L_COMPO) +C----- + IF(J.EQ.1) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'FTEMP-UP 1') THEN + CALL XABORT('CFCDRV: FTEMP-UP COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'FTEMP-D 1') CALL XABORT('CFCDRV: ' + 1 //' FTEMP-D COMPO EXPECTED.') + TEXT1='T1F' + TEXT2='T2F' +C----- +C COMPUTE COOLANT TEMPERATURE COEFFICIENTS (TWO L_COMPO) +C----- + ELSE IF(J.EQ.2) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'CTEMP-UP 1') THEN + CALL XABORT('CFCDRV: CTEMP-UP COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'CTEMP-D 1') CALL XABORT('CFCDRV:' + 1 //' CTEMP-D COMPO EXPECTED.') + TEXT1='T1C' + TEXT2='T2C' +C----- +C COMPUTE MODERATOR TEMPERATURE COEFFICIENTS (TWO L_COMPO) +C----- + ELSE IF(J.EQ.3) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'MTEMP-UP 1') THEN + CALL XABORT('CFCDRV: MTEMP-UP COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'MTEMP-D 1') CALL XABORT('CFCDRV:' + 1 //' MTEMP-D COMPO EXPECTED.') + TEXT1='T1M' + TEXT2='T2M' +C----- +C COMPUTE COOLANT DENSITY COEFFICIENTS (TWO L_COMPO) +C----- + ELSE IF(J.EQ.4) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'CDEN-UP 1') THEN + CALL XABORT('CFCDRV: CDEN-UP COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'CDEN-D 1') CALL XABORT('CFCDRV:' + 1 //' CDEN-D COMPO EXPECTED.') + TEXT1='D1C' + TEXT2='D2C' +C----- +C COMPUTE MODERATOR DENSITY COEFFICIENTS (TWO L_COMPO) +C----- + ELSE IF(J.EQ.5) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'MDEN-UP 1') THEN + CALL XABORT('CFCDRV: MDEN-UP COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'MDEN-D 1') CALL XABORT('CFCDRV:' + 1//' MDEN-D COMPO EXPECTED.') + TEXT1='D1M' + TEXT2='D2M' + ENDIF +C + CALL CFCFBM(TEXT1,TEXT2,IPLISU,IPLISD,IPFBM,NGRP,NBUM,NISM, + 1 NBURN,NISO,HISO,NL,IPRINT,TOTAL,ZNUG,DIFFX,DIFFY,DIFFZ, + 1 H,SCAT,MIJ,MNJ,TMREF,SMREF,DMRFX,DMRFY,DMRFZ,TOT2,ZN2,DXF2, + 1 DYF2,DZF2,HF2,SCA2,WORK3,REFC,MIRCT2,MIRCS2,MICDX2,MICDY2, + 1 MICDZ2,DELTA,DENSIT,TFR,TCR,TMR,XIR,TEXT,TEXTR,NB,MIRCF2, + 1 MIRCH2,FMREF,HMREF,JTAB,MIXP,V2,EFJ,NXS,IXYZ,NBPARA,DBPARA) + 111 CONTINUE + WRITE(IOUT,9001) +C----------------------------------------------------------------------C +C C +C C +C----------------------------------------------------------------------C + DO 112 J=13,21 + IPLISU=KENTRY(J) + IPLISD=IPLISU + NB=1 + MIXP=0 + IF(ABS(IPRINT) .GT. 5) THEN + WRITE(IOUT,6001) J,HENTRY(J) + ENDIF +C----- +C COMPUTE BORON COEFFICIENTS (ONE L_COMPO) +C----- + IF(J.EQ.13) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'BORON 1') THEN + CALL XABORT('CFCDRV: BORON COMPO EXPECTED.') + ENDIF + TEXT1='BOR' + TEXT2='BOR' + TEXT(2)=TEXT(1) +C----- +C COMPUTE PURITY COEFFICIENTS (ONE L_COMPO) +C----- + ELSE IF(J.EQ.14) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'PURITY 1') THEN + CALL XABORT('CFCDRV: BORON COMPO EXPECTED.') + ENDIF + TEXT1='PUR' + TEXT2='PUR' + TEXT(2)=TEXT(1) +C----- +C COMPUTE XENON COEFFICIENTS (ONE L_COMPO) +C----- + ELSE IF(J.EQ.15) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'XENON 1') THEN + CALL XABORT('CFCDRV: XENON COMPO EXPECTED.') + ENDIF + TEXT1='XEN' + TEXT2='XEN' + TEXT(2)=TEXT(1) +C----- +C COMPUTE SAMARIUM COEFFICIENTS (ONE L_COMPO) +C----- + ELSE IF(J.EQ.16) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'SM149 1') THEN + CALL XABORT('CFCDRV: SM149 COMPO EXPECTED.') + ENDIF + TEXT1='SM149' + TEXT2='SM149' + TEXT(2)=TEXT(1) +C----- +C COMPUTE NP239 COEFFICIENTS (ONE L_COMPO) +C----- + ELSE IF(J.EQ.17) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'NP239 1') THEN + CALL XABORT('CFCDRV: NP239 COMPO EXPECTED.') + ENDIF + TEXT1='NP239' + TEXT2='NP239' + TEXT(2)=TEXT(1) +C----- +C COMPUTE MIXED FUEL AND DENSITY COEFFICIENTS (ONE L_COMPO) +C----- + ELSE IF(J.EQ.18) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'MIXFD 1') THEN + CALL XABORT('CFCDRV: MIXFD COMPO EXPECTED.') + ENDIF + MIXP=1 + TEXT1='MIXFD' + TEXT2='MIXFD' + TEXT(2)=TEXT(1) +C----- +C COMPUTE MIXED COLLANT AND DENSITY COEFFICIENTS (ONE L_COMPO) +C----- + ELSE IF(J.EQ.19) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'MIXMD 1') THEN + CALL XABORT('CFCDRV: MIXMD COMPO EXPECTED.') + ENDIF + MIXP=1 + TEXT1='MIXMD' + TEXT2='MIXMD' + TEXT(2)=TEXT(1) +C----- +C COMPUTE (HIGH)FISSION ISOTOPES COEFFICIENTS (TWO L_COMPO) +C----- + ELSE IF(J.EQ.20) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'POWER-UP 1') THEN + CALL XABORT('CFCDRV: POWER-UP COMPO EXPECTED.') + ENDIF + IPLISD=KENTRY(J+1) + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'POWER-IN 1') CALL XABORT('CFCDRV:' + 1 //' POWER-D COMPO EXPECTED.') + MIXP=1 + NB=2 + TEXT1='FPCH1' + TEXT2='FPCH2' +C----- +C COMPUTE LOW FISSION ISOTOPES COEFFICIENTS (TWO L_COMPO) +C----- + ELSE IF(J.EQ.21) THEN + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'POWER-IN 1') THEN + CALL XABORT('CFCDRV: POWER-UP COMPO EXPECTED.') + ENDIF + IPLISD=KENTRY(J+1) + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'POWER-D 1') CALL XABORT('CFCDRV:' + 1 //' POWER-D COMPO EXPECTED.') + MIXP=1 + NB=2 + TEXT1='FPCL1' + TEXT2='FPCL2' + ENDIF + IF(ABS(IPRINT) .GT. 5) THEN + WRITE(IOUT,6002) TEXT1,TEXT2 + ENDIF +C + CALL CFCFBM(TEXT1,TEXT2,IPLISU,IPLISD,IPFBM,NGRP,NBUM,NISM, + 1 NBURN,NISO,HISO,NL,IPRINT,TOTAL,ZNUG,DIFFX,DIFFY,DIFFZ, + 1 H,SCAT,MIJ,MNJ,TMREF,SMREF,DMRFX,DMRFY,DMRFZ,TOT2,ZN2, + 1 DXF2, DYF2,DZF2,HF2,SCA2,WORK3,REFC,MIRCT2,MIRCS2,MICDX2, + 1 MICDY2,MICDZ2,DELTA,DENSIT,TFR,TCR,TMR,XIR,TEXT,TEXTR,NB, + 1 MIRCF2,MIRCH2,FMREF,HMREF,JTAB,MIXP,V2,EFJ,NXS,IXYZ,NBPARA, + 1 DBPARA) + 112 CONTINUE + WRITE(IOUT,9002) +C----------------------------------------------------------------------C +C C +C C +C----------------------------------------------------------------------C +C----- +C COMPUTE THE HISTORY CONCENTRATION +C----- + DO 650 JJ=1,2 + IF(JJ.EQ.1) THEN + IPHISU=KENTRY(21) + IPHISD=KENTRY(22) + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPHISU,TEXT(1)) + IF(TEXT(1).NE.'POWER-IN 1') THEN + CALL XABORT('CFCDRV: POWER-IN COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPHISD,TEXT(2)) + IF(TEXT(2).NE.'POWER-D 1') CALL XABORT('CFCDRV:' + 1 //' POWER-D COMPO EXPECTED.') + NB=2 +C TEXT1='PHIS1' +C TEXT2='PHIS2' + ELSE IF(JJ.EQ.2) THEN + IPHISU=KENTRY(20) + IPHISD=KENTRY(21) + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPHISU,TEXT(1)) + IF(TEXT(1).NE.'POWER-UP 1') THEN + CALL XABORT('CFCDRV: POWER-UP COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPHISD,TEXT(2)) + IF(TEXT(2).NE.'POWER-IN 1') CALL XABORT('CFCDRV:' + 1 //' POWER-D COMPO EXPECTED.') + NB=2 +C TEXT1='PHIL1' +C TEXT2='PHIL2' + ENDIF +C----- +C STORE THE HISTORY COEFFICIENTS +C----- + DO 730 JP=1,4 + IF(JP.EQ.1) THEN + TEXT12='FPC' + IF(JJ.EQ.1) THEN + TEXT1='PHIS1' + TEXT2='PHIS2' + ELSE + TEXT1='PHIL1' + TEXT2='PHIL2' + ENDIF + ELSE IF(JP.EQ.2) THEN + TEXT12='XE135' + IF(JJ.EQ.1) THEN + TEXT1='PHISX1' + TEXT2='PHISX2' + ELSE + TEXT1='PHILX1' + TEXT2='PHILX2' + ENDIF + ELSE IF(JP.EQ.3) THEN + TEXT12='SM149' + IF(JJ.EQ.1) THEN + TEXT1='PHISS1' + TEXT2='PHISS2' + ELSE + TEXT1='PHILS1' + TEXT2='PHILS2' + ENDIF + ELSE IF(JP.EQ.4) THEN + TEXT12='NP239' + IF(JJ.EQ.1) THEN + TEXT1='PHISN1' + TEXT2='PHISN2' + ELSE + TEXT1='PHILN1' + TEXT2='PHILN2' + ENDIF + ENDIF + DO 630 JB=1,NB + IF(JB.EQ.1) IPHIST=IPHISU + IF(JB.EQ.2) IPHIST=IPHISD + CALL LCMSIX(IPHIST,TEXT(JB),1) + CALL LCMGET(IPHIST,'ISOTOPESNAME',HISO) + DO 621 I=1,NBURN + WRITE(TEXTB,'(4HBURN,4X,I4)') I + CALL LCMSIX(IPHIST,TEXTB,1) + CALL LCMGET(IPHIST,'ISOTOPESDENS',DENSIT) + IF(DENSIT(1).NE.1.0) CALL XABORT('FBM: DENSIT(1).NE.1.') + DO 649 ISO=2,NISO + WRITE(HMICRO,'(3A4)') (HISO((ISO-1)*3+IH),IH=1,3) + IF(HMICRO.EQ.TEXT12) DELTA(I,JB)=DENSIT(ISO)- REFC(I,ISO) + 649 CONTINUE + CALL LCMSIX(IPHIST,' ',2) + 621 CONTINUE + CALL LCMSIX(IPHIST,' ',2) + 630 CONTINUE + DO 622 I=1,NBURN + IF(NB.EQ.2) THEN + PV1U=0.0 + PV2U=0.0 + PV1D=0.0 + PV2D=0.0 + IF(JJ.EQ.1) THEN + PV1U=PWU-PWR + PV2U=PV1U*PV1U + PV1D=PWD-PWR + PV2D=PV1D*PV1D + ELSE IF(JJ.EQ.2) THEN + PV1U=ALOG(PWUL/PWR) + PV2U=1.0/PWUL - 1.0/PWR + PV1D=ALOG(PWDL/PWR) + PV2D=1.0/PWDL - 1.0/PWR + ENDIF + TX=PV2U*PV1D - PV2D*PV1U + DELTA(I,2)=(DELTA(I,1)*PV1D-DELTA(I,2)*PV1U)/TX + DELTA(I,1)=(DELTA(I,1) - DELTA(I,2)*PV2U)/PV1U +C + ENDIF +C + CALL LCMSIX(IPFBM,TEXTR,1) + WRITE(TEXTB,'(4HBURN,4X,I4)') I + CALL LCMSIX(IPFBM,TEXTB,1) + CALL LCMSIX(IPFBM,'HISTORY',1) + CALL LCMPUT(IPFBM,TEXT1,1,2,DELTA(I,1)) + IF(NB.EQ.2) THEN + CALL LCMPUT(IPFBM,TEXT2,1,2,DELTA(I,2)) + ENDIF + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,' ',2) + CALL LCMSIX(IPFBM,' ',2) + 622 CONTINUE + 730 CONTINUE + 650 CONTINUE + WRITE(IOUT,9003) + ELSE +C----------------------------------------------------------------------C +C C +C MODERATOR CALCULATIONS C +C C +C----------------------------------------------------------------------C + DO 811 J=1,4 + NB=2 + MIXP=0 +C----- +C COMPUTE MODERATOR TEMPERATURE COEFFICIENTS +C----- + IF(J.EQ.1) THEN + IPLISU=KENTRY(24) + IPLISD=KENTRY(25) + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'MODTP-UP 1') THEN + CALL XABORT('CFCDRV: MTEMP-UP COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'MODTP-D 1') CALL XABORT('CFCDRV:' + 1 //' MTEMP-D COMPO EXPECTED.') + TEXT1='T1M' + TEXT2='T2M' +C----- +C COMPUTE MODERATOR DENSITY COEFFICIENTS +C----- + ELSE IF(J.EQ.2) THEN + IPLISU=KENTRY(26) + IPLISD=KENTRY(27) + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'MODDEN-U 1') THEN + CALL XABORT('CFCDRV: MDEN-UP COMPO EXPECTED.') + ENDIF + TEXT(2)='SIGNATURE' + CALL LCMNXT(IPLISD,TEXT(2)) + IF(TEXT(2).NE.'MODDEN-D 1') CALL XABORT('CFCDRV:' + 1 //' MDEN-D COMPO EXPECTED.') + TEXT1='D1M' + TEXT2='D2M' +C----- +C COMPUTE BORON COEFFICIENTS +C----- + ELSE IF(J.EQ.3) THEN + NB=1 + MIXP=0 + IPLISU=KENTRY(28) + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'MODBOR 1') THEN + CALL XABORT('CFCDRV: BORON COMPO EXPECTED.') + ENDIF + TEXT1='BOR' + TEXT2='BOR' + TEXT(2)=TEXT(1) +C----- +C COMPUTE PURITY COEFFICIENTS +C----- + ELSE IF(J.EQ.4) THEN + NB=1 + MIXP=0 + IPLISU=KENTRY(29) + TEXT(1)='SIGNATURE' + CALL LCMNXT(IPLISU,TEXT(1)) + IF(TEXT(1).NE.'MODPUR 1') THEN + CALL XABORT('CFCDRV: BORON COMPO EXPECTED.') + ENDIF + TEXT1='PUR' + TEXT2='PUR' + TEXT(2)=TEXT(1) + ENDIF +C + CALL CFCFBM(TEXT1,TEXT2,IPLISU,IPLISD,IPFBM,NGRP,NBUM,NISM, + 1 NBURN,NISO,HISO,NL,IPRINT,TOTAL,ZNUG,DIFFX,DIFFY,DIFFZ, + 1 H,SCAT,MIJ,MNJ,TMREF,SMREF,DMRFX,DMRFY,DMRFZ,TOT2,ZN2, + 1 DXF2, DYF2,DZF2,HF2,SCA2,WORK3,REFC,MIRCT2,MIRCS2,MICDX2, + 1 MICDY2,MICDZ2,DELTA,DENSIT,TFR,TCR,TMR,XIR,TEXT,TEXTR,NB, + 1 MIRCF2,MIRCH2,FMREF,HMREF,JTAB,MIXP,V2,EFJ,NXS,IXYZ,NBPARA, + 1 DBPARA) +C + 811 CONTINUE + WRITE(IOUT,9004) + ENDIF +C----- +C STORE PARAM INFORMATION +C----- + CALL LCMSIX(IPFBM,TEXTR,1) + IPAR(1)=NGRP + IPAR(2)=NISO + IPAR(3)=NL + IPAR(4)=NBURN + IPAR(5)=IXYZ + CALL LCMPUT(IPFBM,'PARAM',5,1,IPAR) + CALL LCMSIX(IPFBM,' ',2) + 801 CONTINUE +C----------------------------------------------------------------------C +C RELEASE MEMORY C +C----------------------------------------------------------------------C + DEALLOCATE(MIRCH2,MIRCF2,V2,MICDZ2,MICDY2,MICDX2,MIRCS2, + > MIRCT2,SCA2,HF2,DZF2,DYF2,DXF2,ZN2,TOT2) +*---- +* SCRATCH STORAGE DEALLOCATION +*---- + DEALLOCATE(DELTA,HMREF,FMREF,REFC,DMRFZ,DMRFY,DMRFX,SMREF,TMREF, + > EFJ,DENSIT,WORK3,SCAT,H,DIFFZ,DIFFY,DIFFX,ZNUG,TOTAL) + DEALLOCATE(IXS,JTAB,HISO,MNJ,MIJ,NJJ,IJJ) +* + RETURN + 6000 FORMAT(' CPO ',I4,' for up parameter named = ',A12/ + > ' CPO ',I4,' for down parameter named = ',A12) + 6001 FORMAT(' CPO ',I4,' with name ',A12) + 6002 FORMAT(' Records ',2(A8,4X)) + 9000 FORMAT(' CELL REFERENCE (NOMINAL) PARAMETER ARE STORED') + 9001 FORMAT(' CELL FEEDBACK COEFFICIENTS CORRESPONDING TO:'/ + > ' FUEL TEMPERATURE,'/ + > ' COOLANT TEMPERATURE,'/ + > ' MODERATOR TEMPERATURE,'/ + > ' COOLANT DENSITY ,'/ + > ' MODERATOR DENSITY ,') + 9002 FORMAT(' CELL FEEDBACK COEFFICIENTS CORRESPONDING TO:'/ + > ' BORON CONCENTRATION,'/ + > ' MODERATOR PURITY ,'/ + > ' XENON CONCENTRATION,'/ + > ' SAMARIUM CONCENTRATION,'/ + > ' NEPTUNIUM CONCENTRATION,'/ + > ' ************************,'/ + > ' MIXED FUEL TEMPERATURE AND COOLANT DENSITY,'/ + > ' MIXED COOLANT TEMPERATURE AND COOLANT DENSITY,'/ + > ' *********************************************,'/ + > ' THE POWER HISTORY,'/) + 9003 FORMAT(' POWER HISTORY COEFFICIENTS FOR THE CONCENTRATION '/ + > ' ARE STORED') + 9004 FORMAT(' REFLECTOR FEEDBACK COEFFICIENTS CORRESPONDING TO:'/ + > ' MODERATOR TEMPERATURE ,'/ + > ' MODERATOR DENSITY ,'/ + > ' BORON CONCENTRATION,'/ + > ' MODERATOR PURITY ,'/) + END |
