diff options
| author | HEBERT Alain <alain.hebert@polymtl.ca> | 2025-11-18 05:30:27 -0500 |
|---|---|---|
| committer | HEBERT Alain <alain.hebert@polymtl.ca> | 2025-11-18 05:30:27 -0500 |
| commit | 72387a297ad533948a0da5bf91695a38923fb471 (patch) | |
| tree | b885eefd6aa07818e2b9f1f6f6c1276d89c2f796 /Trivac/src/OUTDRV.f | |
| parent | a870f2d0d950b0b1d4aedef6f0363b5f8bf01b16 (diff) | |
| parent | f68c42f56b508e41f2d75908e2b6aa4cc7ad675a (diff) | |
Merge branch '15-implement-new-option-fiss-in-module-out-of-trivac' into 'main'
#15: Implement new option FISS in module OUT: of Trivac
See merge request dragon/5.1!24
Diffstat (limited to 'Trivac/src/OUTDRV.f')
| -rwxr-xr-x | Trivac/src/OUTDRV.f | 60 |
1 files changed, 48 insertions, 12 deletions
diff --git a/Trivac/src/OUTDRV.f b/Trivac/src/OUTDRV.f index f377715..2ca16e3 100755 --- a/Trivac/src/OUTDRV.f +++ b/Trivac/src/OUTDRV.f @@ -168,6 +168,42 @@ EVECT(I,IGR)=EVECT(I,IGR)*REAL(ZNORM) 70 CONTINUE 80 CONTINUE + ELSE IF(TEXT4.EQ.'FISS') THEN +* NORMALIZATION TO A GIVEN FISSION SECONDARY NEUTRON PRODUCTION. + CALL REDGET (INDIC,NITMA,POWER,TEXT4,DFLOTT) + IF(INDIC.NE.2) CALL XABORT('OUTDRV: REAL DATA EXPECTED.') +* NORMALIZATION FACTOR FOR THE DIRECT FLUX. + ZNORM=0.0D0 + JPMAC1=LCMGID(IPMAC1,'GROUP') + DO 100 IGR=1,NGRP + KPMAC1=LCMGIL(JPMAC1,IGR) + CALL LCMLEN(KPMAC1,'NUSIGF',LENGT,ITYLCM) + IF(LENGT.EQ.0) THEN + CALL LCMLIB(KPMAC1) + CALL XABORT('OUTDRV: NUSIGF RECORD MISSING IN MACROLIB.') + ENDIF + ALLOCATE(ZUFIS(NBMIX,NBFIS)) + SGD(:NBMIX)=0.0 + CALL LCMGET(KPMAC1,'NUSIGF',ZUFIS) + DO IBM=1,NBMIX + DO IFISS=1,NBFIS + SGD(IBM)=SGD(IBM)+ZUFIS(IBM,IFISS) + ENDDO + ENDDO + DEALLOCATE(ZUFIS) + DO 90 K=1,NEL + L=MAT(K) + IF((L.EQ.0).OR.(IDL(K).EQ.0)) GO TO 90 + ZNORM=ZNORM+EVECT(IDL(K),IGR)*VOL(K)*SGD(L) + 90 CONTINUE + 100 CONTINUE + ZNORM=POWER/ZNORM + WRITE(6,300) ' DIRECT',ZNORM + DO 120 IGR=1,NGRP + DO 110 I=1,NUN + EVECT(I,IGR)=EVECT(I,IGR)*REAL(ZNORM) + 110 CONTINUE + 120 CONTINUE ELSE IF(TEXT4.EQ.'SOUR') THEN * NORMALIZATION TO A GIVEN SOURCE INTENSITY. CALL REDGET (INDIC,NITMA,SNUMB,TEXT4,DFLOTT) @@ -175,7 +211,7 @@ * NORMALIZATION FACTOR FOR THE DIRECT FLUX. ZNORM=0.0D0 JPMAC1=LCMGID(IPMAC1,'GROUP') - DO 100 IGR=1,NGRP + DO 140 IGR=1,NGRP KPMAC1=LCMGIL(JPMAC1,IGR) CALL LCMLEN(KPMAC1,'FIXE',LENGT,ITYLCM) IF(LENGT.EQ.0) THEN @@ -183,18 +219,18 @@ CALL XABORT('OUTDRV: SOURCE RECORD MISSING IN MACROLIB.') ENDIF CALL LCMGET(KPMAC1,'FIXE',SGD) - DO 90 K=1,NEL + DO 130 K=1,NEL L=MAT(K) IF(L.GT.0) ZNORM=ZNORM+VOL(K)*SGD(L) - 90 CONTINUE - 100 CONTINUE + 130 CONTINUE + 140 CONTINUE ZNORM=SNUMB/ZNORM WRITE(6,305) ' DIRECT',ZNORM - DO 120 IGR=1,NGRP - DO 110 I=1,NUN + DO 160 IGR=1,NGRP + DO 150 I=1,NUN EVECT(I,IGR)=EVECT(I,IGR)*REAL(ZNORM) - 110 CONTINUE - 120 CONTINUE + 150 CONTINUE + 160 CONTINUE ELSE IF(TEXT4.EQ.'COND') THEN NGCOND=0 CALL REDGET (INDIC,NITMA,FLOTT,TEXT4,DFLOTT) @@ -210,12 +246,12 @@ IGCOND(NGCOND)=NGRP GO TO 40 ELSE IF(INDIC.EQ.1) THEN - 130 IF(NITMA.GT.NGRP) NITMA=NGRP + 170 IF(NITMA.GT.NGRP) NITMA=NGRP NGCOND=NGCOND+1 IGCOND(NGCOND)=NITMA CALL REDGET (INDIC,NITMA,FLOTT,TEXT4,DFLOTT) IF(INDIC.EQ.1) THEN - GO TO 130 + GO TO 170 ELSE IF(INDIC.EQ.3) THEN GO TO 40 ELSE @@ -246,7 +282,7 @@ CALL KDRCPU(TK2) TKR=TK2-TK1 WRITE(6,310) TKR - GO TO 140 + GO TO 180 ELSE CALL XABORT('OUTDRV: '//TEXT4//' IS AN INVALID KEY WORD.') ENDIF @@ -254,7 +290,7 @@ *---- * SCRATCH STORAGE DEALLOCATION *---- - 140 DEALLOCATE(FLUXC,SGD,EVECT,IGCOND,IHOM) + 180 DEALLOCATE(FLUXC,SGD,EVECT,IGCOND,IHOM) RETURN * 300 FORMAT(/9H OUTDRV: ,A7,28H FLUX NORMALIZATION FACTOR =,1P,E13.5) |
