diff options
| author | HEBERT Alain <alain.hebert@polymtl.ca> | 2025-12-10 15:46:23 -0500 |
|---|---|---|
| committer | HEBERT Alain <alain.hebert@polymtl.ca> | 2025-12-10 15:46:23 -0500 |
| commit | c618c1e12f244bbe36bf96741878fa2ede83c750 (patch) | |
| tree | 10723603ec3facacae8f99bd949e21faddaf717a /Dragon | |
| parent | 3106f08451b6ad788e4f37510c068fc50c9abe86 (diff) | |
| parent | 7c453e211b55bbe4a7f6f33f71037522cd2359fd (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.f | 39 | ||||
| -rw-r--r-- | Dragon/src/EDIGAP.f | 11 | ||||
| -rw-r--r-- | Dragon/src/EDIMIC.f | 2 |
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 |
