summaryrefslogtreecommitdiff
path: root/Dragon/src/LIBA20.f
diff options
context:
space:
mode:
Diffstat (limited to 'Dragon/src/LIBA20.f')
-rw-r--r--Dragon/src/LIBA20.f47
1 files changed, 41 insertions, 6 deletions
diff --git a/Dragon/src/LIBA20.f b/Dragon/src/LIBA20.f
index 73b65fc..0b2a2c1 100644
--- a/Dragon/src/LIBA20.f
+++ b/Dragon/src/LIBA20.f
@@ -74,7 +74,7 @@
1 TYPSEG*8,HNAMIS*12,HNISOR*12,HNISSS*12,HSMG*131,TEXT2*2,
2 TEXT12*12
LOGICAL LPFIX,LTRAN,LGPROB,LGTDIF,LGTTRA,LN2N,LPTHOM,L104,LABS,
- 1 LDIF,LFIS,LPWD,LPED
+ 1 LDIF,LFIS,LPWD,LPED,LH
INTEGER ZFISS,FGTD,FGHOMO,FGRESO,FAGG,FDGG,WGAL,FAG
DOUBLE PRECISION UU,XDRCST
INTEGER ITHOMO(MAXHOM),ITEXT(20),ISFICH(3),IPAR(3)
@@ -92,10 +92,11 @@
*----
INTEGER, ALLOCATABLE, DIMENSION(:) :: ITYPRO,NFS,KDS,LGS,NOM,NOMS,
1 NOMOB,VINTE,ITCARO,ITC104,ITS104,ITITLE,IZSECT,ISECTT,IFDG,IIAD,
- 2 IDEPL
+ 2 IDEPL,IPR2
INTEGER, ALLOCATABLE, DIMENSION(:,:) :: IPR
REAL, ALLOCATABLE, DIMENSION(:) :: ENERG,DELTA,SECT,XSTOT,TAUX,
- 1 DELTF,SIGTF,SIGAF,ENER,AMASS,TEMP,TEMPS,SEQHO,SQRTE,PWD,PED
+ 1 DELTF,SIGTF,SIGAF,ENER,AMASS,TEMP,TEMPS,SEQHO,SQRTE,PWD,PED,QQNG,
+ 2 QQF,HFACT
REAL, ALLOCATABLE, DIMENSION(:,:) :: SIGS
REAL, ALLOCATABLE, DIMENSION(:,:,:) :: SCAT
LOGICAL, ALLOCATABLE, DIMENSION(:) :: LGTRE
@@ -106,7 +107,7 @@
*----
* SCRATCH STORAGE ALLOCATION
*----
- ALLOCATE(IPR(7+2*(NL-1),NBISO),ITYPRO(NL),NFS(NGRO))
+ ALLOCATE(IPR(7+2*(NL-1),NBISO),IPR2(NBISO),ITYPRO(NL),NFS(NGRO))
ALLOCATE(ENERG(NGRO+1),DELTA(NGRO),SECT(NGRO),SIGS(NGRO,NL),
1 SCAT(NGRO,NGRO,NL),XSTOT(NGRO))
*
@@ -317,7 +318,8 @@
IF(IMPX.GT.1) WRITE(IOUT,820) NISOT,NISOTS,NSEGM
CALL LIBA27(NAMFIL,NBISO,NISOT,NSEGM,NL,ISONRF,ISHINA,MASKI,
1 NOM,NOMOB,IPR)
- DEALLOCATE(NOM)
+ IPR2(:NBISO)=IPR(1,:NBISO)
+ !DEALLOCATE(NOM)
IF(NISOTS.GT.0) DEALLOCATE(NOMS)
CALL KDRCPU(TK2)
TKT(1)=TK2-TK1
@@ -1304,13 +1306,46 @@
600 CONTINUE
ENDIF
CALL LCMPUT(KPLIB,'NG',NGRO,2,SECT)
+
+ CALL LCMLEN(KPLIB,'H-FACTOR',LENGT,ITYLCM)
+ IF(LENGT.NE.0) CALL LCMDEL(KPLIB,'H-FACTOR')
ENDIF
610 CONTINUE
*----
+* PROCESS H-FACTOR INFORMATION
+*----
+ ALLOCATE(QQNG(NISOT),QQF(NISOT))
+ CALL LIBEAQ(NAMFIL,NISOT,IMPX,QQNG,QQF)
+ DO 620 IMX=1,NBISO
+ IF(MASKI(IMX)) THEN
+ KPLIB=IPISO(IMX) ! set IMX-th isotope
+ ISO=IPR2(IMX)
+ ALLOCATE(HFACT(NGRO))
+ HFACT(:NGRO)=0.0
+* NG ENERGY.
+ VALUE=QQNG(ISO)
+ IF(VALUE.NE.0.0) THEN
+ CALL LCMGET(KPLIB,'NG',SECT)
+ HFACT(:NGRO)=HFACT(:NGRO)+SECT(:NGRO)*VALUE*1.0E6
+ LH=.TRUE.
+ ENDIF
+* FISSION ENERGIES.
+ VALUE=QQF(ISO)
+ IF(VALUE.NE.0.0) THEN
+ CALL LCMGET(KPLIB,'NFTOT',SECT)
+ HFACT(:NGRO)=HFACT(:NGRO)+SECT(:NGRO)*VALUE*1.0E6
+ LH=.TRUE.
+ ENDIF
+ IF(LH) CALL LCMPUT(KPLIB,'H-FACTOR',NGRO,2,HFACT)
+ DEALLOCATE(HFACT)
+ ENDIF
+ 620 CONTINUE
+ DEALLOCATE(QQF,QQNG)
+*----
* SCRATCH STORAGE DEALLOCATION
*----
DEALLOCATE(XSTOT,SCAT,SIGS,SECT,DELTA,ENERG)
- DEALLOCATE(NFS,ITYPRO,IPR)
+ DEALLOCATE(NFS,ITYPRO,IPR2,IPR)
RETURN
*
800 FORMAT(/43H LIBA20: PROCESSING APOLIB-2 LIBRARY NAME: ,A12,1H.)