diff options
| -rw-r--r-- | Dragon/src/EDIDRV.f | 39 | ||||
| -rw-r--r-- | Dragon/src/EDIGAP.f | 11 | ||||
| -rw-r--r-- | Dragon/src/EDIMIC.f | 2 | ||||
| -rw-r--r-- | doc/IGE351/SectDmacrolib.tex | 10 |
4 files changed, 33 insertions, 29 deletions
diff --git a/Dragon/src/EDIDRV.f b/Dragon/src/EDIDRV.f index 4c00e28..bc48d6f 100644 --- a/Dragon/src/EDIDRV.f +++ b/Dragon/src/EDIDRV.f @@ -45,8 +45,9 @@ * IADF flag for assembly discontinuity factors (ADF) information: * = 0 do not compute them; * = 1 compute them using ALBS information; -* = 2 compute them using averaged fluxes in boundary regions; -* = 3 compute them using SYBIL/ARM interface currents. +* = -2/2 compute them using averaged fluxes in boundary regions; +* = 3 compute them using SYBIL/ARM or MOC interface currents; +* = 4 recover ADF information from input macrolib. * IDFM flag for ADF info in input macrolib (0/1/2: absent/present). * NW type of weighting for P1 cross section information: * = 0 P0; = 1 P1. @@ -407,16 +408,7 @@ > B2,NGROUP,NIFISS,NGCOND,ITRANC,ILEAKS,NREGIO,MATCOD, > VOLUME,KEYFLX,IGCOND,FLUXES,NMLEAK) ELSE IF((IADF.EQ.2).OR.(IADF.EQ.-2)) THEN - ALLOCATE(WORKF(NGCOND)) - IF(IADF.EQ.-2) THEN -* recover averaged fluxes used to compute ADF - DO IGR=1,NGCOND - WORKF(IGR)=SUM(FLUXC(:,IGR,1))/SUM(VOLME(:)) - ENDDO - ELSE - WORKF(:NGCOND)=1.0 - ENDIF -* use averaged fluxes obtained over boundary regions +* use averaged fluxes obtained over gap boundary regions IPADF=LCMGID(IPEDIT,'REF:ADF') CALL LCMGET(IPADF,'NTYPE',NTYPE) IF(NTYPE.EQ.0) CALL XABORT('EDIADF: NTYPE=0.') @@ -426,15 +418,30 @@ DO IT=1,NTYPE HTYPE=HADF(IT) CALL EDIGAP(IPADF,HTYPE,NGROUP,NGCOND,NREGIO,VOLUME, - > IGCOND,FLUXES,WORKF,IPRINT,COURI) + > IGCOND,FLUXES,IPRINT,COURI) ALLOCATE(ADF(NMERGE,NGCOND)) DO IGR=1,NGCOND - ADF(:NMERGE,IGR)=COURI(IGR) + ZCOUR=COURI(IGR) + IF(IADF.EQ.-2) THEN +* recover averaged fluxes used to compute ADF + DO IMRG=1,NMERGE + ADF(IMRG,IGR)=ZCOUR*VOLME(IMRG)/FLUXC(IMRG,IGR,1) + ENDDO + ELSE + ADF(:NMERGE,IGR)=ZCOUR + ENDIF ENDDO CALL LCMPUT(IPMAC2,HTYPE,NMERGE*NGCOND,2,ADF) + IF(IADF.EQ.2) THEN + DO IGR=1,NGCOND + DO IMRG=1,NMERGE + ADF(IMRG,IGR)=FLUXC(IMRG,IGR,1)/VOLME(IMRG) + ENDDO + ENDDO + CALL LCMPUT(IPMAC2,'AVG_FLUX',NMERGE*NGCOND,2,ADF) + ENDIF DEALLOCATE(ADF) ENDDO - DEALLOCATE(WORKF) CALL LCMPUT(IPMAC2,'NTYPE',1,1,NTYPE) CALL LCMPTC(IPMAC2,'HADF',8,NTYPE,HADF) DEALLOCATE(COURI,HADF) @@ -710,7 +717,7 @@ DEALLOCATE(IPISO,ISONR,ISONA,IDEPL,TN,MIX,ITYPE,DEN,LSISO) ENDIF *---- -* SET IADF IN MACROLIB AND MICROLIB STATE VECTORS +* RESET IADF IN MACROLIB AND MICROLIB STATE VECTORS *---- IF((CURNAM.NE.' ').AND.(IADF.NE.0)) THEN IPMIC2=LCMDID(IPEDIT,CURNAM) diff --git a/Dragon/src/EDIGAP.f b/Dragon/src/EDIGAP.f index 487478c..e0a7e31 100644 --- a/Dragon/src/EDIGAP.f +++ b/Dragon/src/EDIGAP.f @@ -1,6 +1,6 @@ *DECK EDIGAP SUBROUTINE EDIGAP(IPADF,TEXT8,NGROUP,NGCOND,NREGIO,VOLUME,IGCOND, - 1 FLUXES,FLUHOM,IPRINT,COURIN) + 1 FLUXES,IPRINT,COURIN) * *----------------------------------------------------------------------- * @@ -26,7 +26,6 @@ * VOLUME volume of regions. * IGCOND limit of condensed groups. * FLUXES heterogeneous gap fluxes. -* FLUHOM homogeneous fluxes. * IPRINT print flag. * *Parameters: output @@ -41,8 +40,7 @@ TYPE(C_PTR) IPADF INTEGER NGROUP,NGCOND,NREGIO,IGCOND(NGCOND),IPRINT CHARACTER TEXT8*(*) - REAL VOLUME(NREGIO),FLUXES(NREGIO,NGROUP),FLUHOM(NGROUP), - 1 COURIN(NGCOND) + REAL VOLUME(NREGIO),FLUXES(NREGIO,NGROUP),COURIN(NGCOND) *---- * LOCAL VARIABLES *---- @@ -67,12 +65,11 @@ 10 CONTINUE COURIN(IGRCD)=COURIN(IGRCD)+REAL(SUM/SUD) 20 CONTINUE - COURIN(IGRCD)=COURIN(IGRCD)/FLUHOM(IGRCD) 25 CONTINUE DEALLOCATE(IFGAP) IF(IPRINT.GT.3) THEN - WRITE(6,'(/19H EDIGAP: VALUES OF ,A,22H FLUXES OR ADF PER MAC, - 1 13HRO-GROUPS ARE)') TEXT8 + WRITE(6,'(/19H EDIGAP: VALUES OF ,A,22H GAP FLUXES PER MACRO-, + 1 10HGROUPS ARE)') TEXT8 WRITE(6,'(1X,1P,10E13.5)') (COURIN(IGRCD),IGRCD=1,NGCOND) ENDIF RETURN diff --git a/Dragon/src/EDIMIC.f b/Dragon/src/EDIMIC.f index 323d864..025d1c4 100644 --- a/Dragon/src/EDIMIC.f +++ b/Dragon/src/EDIMIC.f @@ -1090,7 +1090,7 @@ 9 7H ISOADD,I6,37H (0=COMPLETE BURNUP CHAIN/1=DO NOT)/ 1 7H MAXISM,I6,40H (MAX. NUMBER OF ISOTOPES PER MIXTURE)/ 2 7H IPRECI,I6,34H (CALENDF ACCURACY FLAG:1/2/3/4)/ - 3 7H IADF ,I6,19H (ADF FLAG:0/1/2)/ + 3 7H IADF ,I6,23H (ADF FLAG:0/1/2/3/4)/ 4 7H NW ,I6,47H (=0: FLUX WEIGHTING FOR P1 INFO; =1: CURRENT, 5 23H WEIGHTING FOR P1 INFO)) END diff --git a/doc/IGE351/SectDmacrolib.tex b/doc/IGE351/SectDmacrolib.tex index f00fb19..2b5dbb0 100644 --- a/doc/IGE351/SectDmacrolib.tex +++ b/doc/IGE351/SectDmacrolib.tex @@ -83,10 +83,10 @@ I_{\rm step} = \left\{ I_{\rm df} = \left\{ \begin{array}{ll} 0 & \textrm{no discontinuity factor information}\\ -1 & \textrm{multigroup boundary current information is available}\\ -2 & \textrm{boundary flux information (see \Sect{macroADF}) is available}\\ -3 & \textrm{discontinuity factor information (see \Sect{macroADF}) is available}\\ -4 & \textrm{matrix ($G \times G$) discontinuity factor information (see \Sect{macroADF}) is available.} +1 & \textrm{multigroup boundary current information is recovered}\\ +2 & \textrm{boundary gap flux information (see \Sect{macroADF}) is recovered}\\ +3 & \textrm{ADF information (see \Sect{macroADF}) is recovered}\\ +4 & \textrm{recover matrix ADF information.} \end{array} \right. \end{displaymath} \item Adjoint macrolib flag $I_{\rm adj}=\mathcal{S}^{M}_{13}$: @@ -588,7 +588,7 @@ normalization with the {\sl superhomog\'en\'eisation} (SPH) method. a \moc{VOID} or \moc{ALBE} boundary condition is set in DRAGON.} \OptRealEnr {AVG\_FLUX\blank{5}}{$N_{m},G$}{$I_{\rm df} = 2$}{} - {Averaged fluxes in the complete assembly. Used as denominator to compute the ADF in an homogeneous assembly.} + {Averaged fluxes in the complete assembly. Used as denominator to compute the ADF in an homogeneous assembly or to perform Selengut normalization.} \OptRealVar {\listedir{type}}{$N_{m},G$}{$I_{\rm df} = 2,\, 3$}{} {Averaged surfacic fluxes ($I_{\rm df} = 2$) or discontinuity factors ($I_{\rm df} = 3$) in a material mixture. Name {\sl type} is a component of |
