diff options
| author | Alain Hebert <alainhebert@Alains-MacBook-Pro.local> | 2025-11-02 13:21:20 +0100 |
|---|---|---|
| committer | Alain Hebert <alainhebert@Alains-MacBook-Pro.local> | 2025-11-02 13:21:20 +0100 |
| commit | c234e0ad4a63b37eeb4f93ac05588403a60f2b20 (patch) | |
| tree | 2c6cbaa77460b43053edfb9d865fd568ba160322 /Dragon/src/EVOBLD.f | |
| parent | bb19a602772d4fe89f5fa2e534b93237330fd89f (diff) | |
#10: Correct a power normalization issue in module EVO:
Diffstat (limited to 'Dragon/src/EVOBLD.f')
| -rw-r--r-- | Dragon/src/EVOBLD.f | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/Dragon/src/EVOBLD.f b/Dragon/src/EVOBLD.f index 76763ab..46ab32c 100644 --- a/Dragon/src/EVOBLD.f +++ b/Dragon/src/EVOBLD.f @@ -1,8 +1,8 @@ *DECK EVOBLD - SUBROUTINE EVOBLD(IMPX,INR,IGLOB,NBMIX,NBISO,NCOMB,ISONAM,YDPL, - 1 VX,MILVO,JM,NVAR,NDFP,NSUPS,NREAC,NPAR,NFISS,XT,EPS1,EPS2,EXPMAX, - 2 H1,ITYPE,IDIRAC,FIT,DELTA,ENERG,KPAR,BPAR,YIELD,IDR,RER,RRD,AWR, - 3 FUELDN,SIG,VPH,VPHV,MIXPWR,VTOTD,IEVOLB,KFISS,KPF) + SUBROUTINE EVOBLD(IMPX,INR,IGLOB,NBMIX,NBISO,NCOMB,ISONAM,IPISO, + 1 YDPL,VX,MILVO,JM,NVAR,NDFP,NSUPS,NREAC,NPAR,NFISS,XT,EPS1,EPS2, + 2 EXPMAX,H1,ITYPE,IDIRAC,FIT,DELTA,ENERG,KPAR,BPAR,YIELD,IDR,RER, + 3 RRD,AWR,FUELDN,SIG,VPH,VPHV,MIXPWR,VTOTD,IEVOLB,KFISS,KPF) * *----------------------------------------------------------------------- * @@ -34,6 +34,7 @@ * NBISO number of isotopes/materials including non-depleting ones. * NCOMB number of depleting mixtures. * ISONAM alias name of isotopes. +* IPISO pointer array towards microlib isotopes. * YDPL initial/final number density of isotope in the depletion * chain. YDPL(NVAR+1,2,ICMB) is the stage burnup increment * in region ICMB. @@ -104,9 +105,11 @@ * *----------------------------------------------------------------------- * + USE GANLIB *---- * SUBROUTINE ARGUMENTS *---- + TYPE(C_PTR) IPISO(NBISO) INTEGER IMPX,INR,IGLOB,NBMIX,NBISO,NCOMB,ISONAM(3,NBISO), 1 MILVO(NCOMB),JM(NBMIX,NVAR+NSUPS),NVAR,NDFP,NSUPS,NREAC,NPAR, 2 NFISS,ITYPE,IDIRAC,KPAR(NPAR,NVAR),IDR(NREAC,NVAR+NSUPS), @@ -120,6 +123,7 @@ *---- * LOCAL VARIABLES *---- + TYPE(C_PTR) KPLIB CHARACTER TEXT8*8,HSMG*131 DOUBLE PRECISION GAR,GARD,XDRCST,EVJ,FITD,PHI2 LOGICAL LCOOL,LSIMPL @@ -170,18 +174,27 @@ 270 CONTINUE NSUPL2=NVAR2 DO 280 IS=1,NVAR - IF(LSIMPL.AND.(AWR(IS).LE.210.0)) GO TO 280 - IF((JM(IBM,IS).GT.0).AND.(LP(IS).EQ.0)) THEN - NVAR2=NVAR2+1 - LP(IS)=NVAR2 + K=JM(IBM,IS) + IF(K.GT.0) THEN +* CHECK IF ONLY THE HEAVY ISOTOPES ARE PRODUCING ENERGY. IN +* THIS CASE, IT IS POSSIBLE TO AVOID THE SOLUTION FOR FISSION +* PRODUCTS. + KPLIB=IPISO(K) ! set K-th isotope + IF(.NOT.C_ASSOCIATED(KPLIB)) THEN + WRITE(HSMG,'(17HEVOBLD: ISOTOPE '',3A4,12H'' IS NOT AVA, + 1 23HILABLE IN THE MICROLIB.)') (ISONAM(I0,K),I0=1,3) + CALL XABORT(HSMG) + ENDIF + CALL LCMLEN(KPLIB,'H-FACTOR',LENGT,ITYLCM) + IF(((LENGT.GT.0).OR.(RER(3,IS).NE.0.0).OR. + 1 (AWR(IS).GT.210.0)).AND.(LP(IS).EQ.0)) THEN + NVAR2=NVAR2+1 + LP(IS)=NVAR2 + ENDIF ENDIF 280 CONTINUE IF(NVAR2.EQ.0) GO TO 330 -* CHECK IF ONLY THE HEAVY ISOTOPES ARE PRODUCING ENERGY. IN -* THIS CASE, IT IS POSSIBLE TO AVOID THE SOLUTION FOR FISSION -* PRODUCTS. NSUPF2=NVAR2-NSUPL2 - IF(LSIMPL) NSUPF2=0 CALL EVOMU1(IMPX,NVAR,NREAC,LP,XT,LCOOL,NPAR,KPAR,RRD, 1 SIG(1,1,IBM,1),SIG(1,1,IBM,2),EXPMAX,IEVOLB(1,IBM),MU1, 2 IMA,MAXA) |
