1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
*DECK NEWMXS
SUBROUTINE NEWMXS(NTOT0,NTOT1,ZNUS,CHI,ZSIGF,DIFFX,DIFFY,DIFFZ,
1 HFAC,SCAT,IBM,IBM1,IBM2,NGRP,NMIX,NL,NDEL,LEAK,VF,XFAC,IMPX)
*
*-----------------------------------------------------------------------
*
*Purpose:
* Compute nuclear properties perturbed by the device insertion.
*
*Copyright:
* Copyright (C) 2007 Ecole Polytechnique de Montreal.
*
*Author(s):
* D. Sekki
*
*Parameters: input/output
* NTOT0 flux-weighted total macroscopic x-sections.
* NTOT1 current-weighted total macroscopic x-sections.
* ZNUS nu*fission macroscopic x-sections.
* CHI fission spectra.
* ZSIGF fission macroscopic x-sections.
* DIFFX x-directed diffusion coefficients.
* DIFFY y-directed diffusion coefficients.
* DIFFZ z-directed diffusion coefficients.
* HFAC h-factors (kappa*fission macroscopic x-sections).
* SCAT scattering macroscopic x-sections.
* IBM mixture index for physical region.
* IBM1 device mixture index for inserted device.
* IBM2 device mixture index for extracted device.
* NGRP number of energy groups.
* NMIX maximum number of material mixtures.
* NL number of legendre orders (=1 for isotropic scattering).
* NDEL number of precursor groups for delayed neutron.
* LEAK diffusion coefficient flag (=1: isotropic; =2: anisotropic).
* VF volume fraction occupied by the device.
* XFAC corrective factor for delta sigmas.
* IMPX printing index (=0 for no print).
*
*-----------------------------------------------------------------------
*
*----
* SUBROUTINE ARGUMENTS
*----
INTEGER IBM,IBM1,IBM2,NGRP,NL,NDEL,LEAK,NMIX,IMPX
REAL NTOT0(NMIX,NGRP),NTOT1(NMIX,NGRP),ZNUS(NMIX,NGRP,NDEL+1),
1 CHI(NMIX,NGRP,NDEL+1),ZSIGF(NMIX,NGRP),DIFFX(NMIX,NGRP),
2 HFAC(NMIX,NGRP),VF,SCAT(NMIX,NL,NGRP,NGRP),DIFFY(NMIX,NGRP),
3 DIFFZ(NMIX,NGRP),XFAC
PARAMETER(IOUT=6,EPSI=1.0E-4)
*----
* UPDATE PROPERTIES
*----
IF(IMPX.GT.4)WRITE(IOUT,*)' UPDATING PROPERTIES'
DO 70 JGR=1,NGRP
IF(IMPX.GT.4)WRITE(IOUT,*)' '
IF(IMPX.GT.4)WRITE(IOUT,*)' PROCESSING ENERGY GROUP # ',JGR
*----
* NTOT0
*----
IF(IMPX.GT.4)WRITE(IOUT,*)' NTOT0 BEFORE : ',NTOT0(IBM,JGR)
DELT=NTOT0(IBM1,JGR)-NTOT0(IBM2,JGR)
NTOT0(IBM,JGR)=NTOT0(IBM,JGR)+XFAC*VF*DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' NTOT0 AFTER : ',NTOT0(IBM,JGR)
*----
* NTOT1
*----
IF(NTOT1(IBM,JGR).EQ.0.)GOTO 10
IF(IMPX.GT.4)WRITE(IOUT,*)' NTOT1 BEFORE : ',NTOT1(IBM,JGR)
DELT=NTOT1(IBM1,JGR)-NTOT1(IBM2,JGR)
NTOT1(IBM,JGR)=NTOT1(IBM,JGR)+XFAC*VF*DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' NTOT1 AFTER : ',NTOT1(IBM,JGR)
*----
* NUSIGF
*----
10 IF(ZNUS(IBM,JGR,1).EQ.0.)GOTO 15
IF(IMPX.GT.4)WRITE(IOUT,*)' NUSIGF BEFORE : ',ZNUS(IBM,JGR,1)
DELT=ZNUS(IBM1,JGR,1)-ZNUS(IBM2,JGR,1)
ZNUS(IBM,JGR,1)=ZNUS(IBM,JGR,1)+XFAC*VF*DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' NUSIGF AFTER : ',ZNUS(IBM,JGR,1)
DO IDEL=1,NDEL
IF(IMPX.GT.4)WRITE(IOUT,*)' NUSIGF',IDEL,' BEFORE : ',
> ZNUS(IBM,JGR,IDEL+1)
DELT=ZNUS(IBM1,JGR,IDEL+1)-ZNUS(IBM2,JGR,IDEL+1)
ZNUS(IBM,JGR,IDEL+1)=ZNUS(IBM,JGR,IDEL+1)+XFAC*VF*DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' NUSIGF',IDEL,' AFTER : ',
> ZNUS(IBM,JGR,IDEL+1)
ENDDO
*----
* CHI
*----
15 IF(CHI(IBM,JGR,1).EQ.0.)GOTO 20
IF(IMPX.GT.4)WRITE(IOUT,*)' CHI BEFORE : ',CHI(IBM,JGR,1)
DELT=CHI(IBM1,JGR,1)-CHI(IBM2,JGR,1)
CHI(IBM,JGR,1)=CHI(IBM,JGR,1)+XFAC*VF*DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' CHI AFTER : ',CHI(IBM,JGR,1)
DO IDEL=1,NDEL
IF(IMPX.GT.4)WRITE(IOUT,*)' CHI',IDEL,' BEFORE : ',
> CHI(IBM,JGR,IDEL+1)
DELT=CHI(IBM1,JGR,IDEL+1)-CHI(IBM2,JGR,IDEL+1)
CHI(IBM,JGR,IDEL+1)=CHI(IBM,JGR,IDEL+1)+XFAC*VF*DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' CHI',IDEL,' AFTER : ',
> CHI(IBM,JGR,IDEL+1)
ENDDO
*----
* NFTOT
*----
20 IF(ZSIGF(IBM,JGR).EQ.0.)GOTO 30
IF(IMPX.GT.4)WRITE(IOUT,*)' NFTOT BEFORE : ',ZSIGF(IBM,JGR)
DELT=ZSIGF(IBM1,JGR)-ZSIGF(IBM2,JGR)
ZSIGF(IBM,JGR)=ZSIGF(IBM,JGR)+XFAC*VF*DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' NFTOT AFTER : ',ZSIGF(IBM,JGR)
*----
* HFAC
*----
30 IF(HFAC(IBM,JGR).EQ.0.)GOTO 40
IF(IMPX.GT.4)WRITE(IOUT,*)' H-FACTOR BEFORE : ',HFAC(IBM,JGR)
DELT=HFAC(IBM1,JGR)-HFAC(IBM2,JGR)
HFAC(IBM,JGR)=HFAC(IBM,JGR)+XFAC*VF*DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' H-FACTOR AFTER : ',HFAC(IBM,JGR)
*----
* DIFFX
*----
40 IF(DIFFX(IBM,JGR).LT.EPSI)GOTO 50
IF(IMPX.GT.4)WRITE(IOUT,*)' DIFFX BEFORE : ',DIFFX(IBM,JGR)
IF(DIFFX(IBM1,JGR).LT.EPSI)THEN
DEL1=0.
ELSE
DEL1=1./DIFFX(IBM1,JGR)
ENDIF
IF(DIFFX(IBM2,JGR).LT.EPSI)THEN
DEL2=0.
ELSE
DEL2=1./DIFFX(IBM2,JGR)
ENDIF
DELT=DEL1-DEL2
DIFFX(IBM,JGR)=1./DIFFX(IBM,JGR)+XFAC*VF*DELT
DIFFX(IBM,JGR)=1./DIFFX(IBM,JGR)
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DIFFX AFTER : ',DIFFX(IBM,JGR)
*----
* DIFFY
*----
50 IF(LEAK.NE.2)GOTO 70
IF(DIFFY(IBM,JGR).LT.EPSI)GOTO 60
IF(IMPX.GT.4)WRITE(IOUT,*)' DIFFY BEFORE : ',DIFFY(IBM,JGR)
IF(DIFFY(IBM1,JGR).LT.EPSI)THEN
DEL1=0.
ELSE
DEL1=1./DIFFY(IBM1,JGR)
ENDIF
IF(DIFFY(IBM2,JGR).LT.EPSI)THEN
DEL2=0.
ELSE
DEL2=1./DIFFY(IBM2,JGR)
ENDIF
DELT=DEL1-DEL2
DIFFY(IBM,JGR)=1./DIFFY(IBM,JGR)+XFAC*VF*DELT
DIFFY(IBM,JGR)=1./DIFFY(IBM,JGR)
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DIFFY AFTER : ',DIFFY(IBM,JGR)
*----
* DIFFZ
*----
60 IF(DIFFZ(IBM,JGR).LT.EPSI)GOTO 70
IF(IMPX.GT.4)WRITE(IOUT,*)' DIFFZ BEFORE : ',DIFFZ(IBM,JGR)
IF(DIFFZ(IBM1,JGR).LT.EPSI)THEN
DEL1=0.
ELSE
DEL1=1./DIFFZ(IBM1,JGR)
ENDIF
IF(DIFFZ(IBM2,JGR).LT.EPSI)THEN
DEL2=0.
ELSE
DEL2=1./DIFFZ(IBM2,JGR)
ENDIF
DELT=DEL1-DEL2
DIFFZ(IBM,JGR)=1./DIFFZ(IBM,JGR)+XFAC*VF*DELT
DIFFZ(IBM,JGR)=1./DIFFZ(IBM,JGR)
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' DIFFZ AFTER : ',DIFFZ(IBM,JGR)
70 CONTINUE
*----
* SCAT
*----
DO 82 IL=1,NL
DO 81 IGR=1,NGRP
DO 80 JGR=1,NGRP
DELT=SCAT(IBM1,IL,IGR,JGR)-SCAT(IBM2,IL,IGR,JGR)
IF((SCAT(IBM,IL,IGR,JGR).NE.0.0).AND.(DELT.NE.0.0)) THEN
IF(IMPX.GT.4)WRITE(IOUT,*)' PROCESSING ENERGY GROUP # ',JGR,
> '<-',IGR
IF(IMPX.GT.4)WRITE(IOUT,*)' SCAT',IL,' BEFORE : ',
> SCAT(IBM,IL,IGR,JGR)
ENDIF
SCAT(IBM,IL,IGR,JGR)=SCAT(IBM,IL,IGR,JGR)+XFAC*VF*DELT
IF(DELT.NE.0.0) THEN
IF(IMPX.GT.4)WRITE(IOUT,*)' DELTA-SIGMA : ',DELT
IF(IMPX.GT.4)WRITE(IOUT,*)' SCAT',IL,' AFTER : ',
> SCAT(IBM,IL,IGR,JGR)
ENDIF
80 CONTINUE
81 CONTINUE
82 CONTINUE
IF(IMPX.GT.4)WRITE(IOUT,*)' ALL PROPERTIES UPDATED.'
RETURN
END
|