summaryrefslogtreecommitdiff
path: root/Dragon
diff options
context:
space:
mode:
authorHEBERT Alain <alain.hebert@polymtl.ca>2025-12-10 15:46:23 -0500
committerHEBERT Alain <alain.hebert@polymtl.ca>2025-12-10 15:46:23 -0500
commitc618c1e12f244bbe36bf96741878fa2ede83c750 (patch)
tree10723603ec3facacae8f99bd949e21faddaf717a /Dragon
parent3106f08451b6ad788e4f37510c068fc50c9abe86 (diff)
parent7c453e211b55bbe4a7f6f33f71037522cd2359fd (diff)
Merge branch '7-missing-param-group-in-apex-datafile-produced-by-module-apx' into 'main'
#7: Add missing AVG_FLUX record in ADF directory of the macrolib See merge request dragon/5.1!31
Diffstat (limited to 'Dragon')
-rw-r--r--Dragon/src/EDIDRV.f39
-rw-r--r--Dragon/src/EDIGAP.f11
-rw-r--r--Dragon/src/EDIMIC.f2
3 files changed, 28 insertions, 24 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