summaryrefslogtreecommitdiff
path: root/Dragon/src/EVOBLD.f
blob: 76763ab9b1aa4c5c503054be145e415fbd7c47be (plain)
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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
*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)
*
*-----------------------------------------------------------------------
*
*Purpose:
* Perform flux normalization and call EVOSOL to solve the depletion
* system for each depleting mixture between times XT(1) and XT(2).
*
*Copyright:
* Copyright (C) 2002 Ecole Polytechnique de Montreal
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version
*
*Author(s): A. Hebert
*
*Parameters: input/output
* IMPX    print flag (equal to zero for no print).
* INR     type of flux normalization:
*         =0: out-of-core depletion;
*         =1: constant flux depletion;
*         =2: constant fuel power depletion;
*         =3: constant assembly power depletion.
* IGLOB   out-of-fuel power in flux normalization. Compute the burnup:
*         =-1: using the Serpent mode 0 empirical formula in the fuel;
*         =0: using the power released in the fuel;
*         =1: using the power released in the global geometry.
* NBMIX   number of mixtures.
* NBISO   number of isotopes/materials including non-depleting ones.
* NCOMB   number of depleting mixtures.
* ISONAM  alias name of 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.
* VX      volumes of the depleting mixtures.
* MILVO   mixture index corresponding to each depleting mixture.
* JM      position in isotope list of each nuclide of the depletion
*         chain.
* NVAR    number of depleting nuclides.
* NDFP    number of direct fission products (fission fragments).
* NSUPS   number of non-depleting isotopes producing energy.
* NREAC   maximum number of depletion reactions.
* NPAR    maximum number of parent nuclides in the depletion chain.
* NFISS   number of fissile isotopes producing fission products.
* XT      initial and final time (independent variable).
* EPS1    required accuracy for the ode solver.
* EPS2    required accuracy for constant power iterations.
* EXPMAX  saturation limit. A nuclide is saturating if
*         -ADPL(MU1(I))*(XT(2)-XT(1)).GT.EXPMAX. Suggested value:
*         EXPMAX=80.0.
* H1      guessed first stepsize.
* ITYPE   type of ODE solution:
*         =1 fifth-order Runge-Kutta method;
*         =2 fourth-order Kaps-Rentrop method.
* IDIRAC  saturation model flag (=1 to use Dirac function contributions
*         in the saturating nuclide number densities).
* FIT     flux normalization factor:
*         n/cm**2/s if INR=1;
*         MW/tonne of initial heavy elements if INR=2;
*         W/cc of assembly volume if INR=3.
* DELTA   burnup stage increments:
*         DELTA(1): increment in fuel burnup for this stage;
*         DELTA(2): increment in fuel neutron exposure for this stage;
*         DELTA(3): target increment in fuel burnup for this stage.
*         Cross section should be tabulated with respect to the sum
*         of the DELTA(1) of all the previous stages.
* ENERG   increment in fuel burnup for this stage in each mixture.
* KPAR    position in chain of the parent nuclide and type of
*         reaction.
* BPAR    branching ratio for neutron induced reactions.
* YIELD   mixture-dependent fission yields.
* IDR     identifier for each depleting reaction.
* RER     energy (Mev) per reaction. If RER(3,J)=0., the fission energy
*         includes radiative capture energy. Neutrino energy is
*         never included.
* RRD     sum of radioactive decay constants in 10**-8/s.
* AWR     mass of the nuclides in unit of neutron mass.
* FUELDN  fuel initial density and mass.
* SIG     initial/final microscopic depletion reaction rates for nuclide
*         I in mixture IBM:
*         SIG(I,1,IBM,:) fission reaction rate;
*         SIG(I,2,IBM,:) gamma reaction rate;
*         SIG(I,3,IBM,:) N2N reaction rate;
*         cont...;
*         SIG(I,NREAC,IBM,:) neutron-induced energy released;
*         SIG(I,NREAC+1,IBM,:) decay energy released (10**-8 MeV/s).
* VPH     initial/final integrated flux in fuel.
* VPHV    initial/final integrated flux in each mixture.
* MIXPWR  flags for mixtures to include in power normalization.
* VTOTD   total fuel volume.
* IEVOLB  flag making an isotope non-depleting:
*         =0 the isotope is depleting;
*         =1 to force an isotope to be non-depleting;
*         =2 to force an isotope to be depleting;
*         =3 to force an isotope to be at saturation
* KFISS   position in chain of the fissile isotopes.
* KPF     position in chain of the direct fission products (fission
*         fragments).
*
*-----------------------------------------------------------------------
*
*----
*  SUBROUTINE ARGUMENTS
*----
      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),
     3 MIXPWR(NBMIX),IEVOLB(NVAR,NBMIX),KFISS(NFISS,NBMIX),
     4 KPF(NDFP,NBMIX)
      REAL YDPL(NVAR+1,2,NCOMB),VX(NBMIX),XT(2),EPS1,EPS2,EXPMAX,H1,FIT,
     1 DELTA(3),ENERG(NBMIX),BPAR(NPAR,NVAR),YIELD(NFISS,NDFP,NBMIX),
     2 RER(NREAC,NVAR+NSUPS),RRD(NVAR+NSUPS),AWR(NVAR),FUELDN(3),
     3 SIG(NVAR+1,NREAC+1,NBMIX,2),VPH(2),VPHV(NBMIX,2)
      DOUBLE PRECISION VTOTD
*----
*  LOCAL VARIABLES
*----
      CHARACTER TEXT8*8,HSMG*131
      DOUBLE PRECISION GAR,GARD,XDRCST,EVJ,FITD,PHI2
      LOGICAL LCOOL,LSIMPL
      INTEGER, ALLOCATABLE, DIMENSION(:) :: MU1,IMA,LP,CHAIN
*----
*  SCRATCH STORAGE ALLOCATION
*----
      ALLOCATE(MU1(NVAR+1),IMA(NVAR+1),LP(NVAR))
*----
*  CHECK IF ONLY THE HEAVY ISOTOPES ARE PRODUCING ENERGY. IN THIS CASE,
*  SOME SIMPLIFICATIONS ARE POSSIBLE
*----
      LSIMPL=.TRUE.
      DO 10 IS=1,NVAR
      LSIMPL=LSIMPL.AND.(RER(3,IS).EQ.0.0)
   10 CONTINUE
*
      EVJ=XDRCST('eV','J')*1.0E22
      LCOOL=(INR.EQ.0)
      IF(LCOOL) GO TO 410
      IF(IMPX.GT.1) WRITE (6,640) VPH(1)/VTOTD,VPH(2)/VTOTD
*----
*  CONVERGE ON A FIXED FINAL POWER. SOLVE THE DEPLETION CHAIN WITHOUT
*  THE FISSION PRODUCTS.
*----
      IF((INR.GE.2).AND.(EPS2.LT.10.0)) THEN
         ITER=0
  250    ITER=ITER+1
         IF(ITER.GT.20) CALL XABORT('EVOBLD: UNABLE TO CONVERGE.')
         DO 330 ICMB=1,NCOMB
*        DETERMINE THE ROW AND COLUMN PROFILE OF THE ADPL MATRIX AND
*        COMPUTE NVAR2, THE NUMBER OF DEPLETING NUCLIDES IN REGION ICMB.
         IBM=MILVO(ICMB)
         IF(IBM.EQ.0) GO TO 330
         IF(IMPX.GT.3) WRITE(6,'(/34H EVOBLD: PROCESS DEPLETING MIXTURE,
     1   I5,15H (REAL MIXTURE=,I5,2H).)') ICMB,IBM
         NVAR2=0
         NSUPL2=0
         LP(:NVAR)=0
         DO 270 IS=1,NVAR
         KDRI=IDR(2,IS)
         IF(KDRI.EQ.0) GO TO 270
         IF((MOD(KDRI,100).NE.3).AND.(MOD(KDRI,100).NE.4)) GO TO 270
         IF(JM(IBM,IS).GT.0) THEN
            NVAR2=NVAR2+1
            LP(IS)=NVAR2
         ENDIF
  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
         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)
         MU1(NVAR2+1)=IMA(NVAR2)+NVAR2+1
         IMA(NVAR2+1)=IMA(NVAR2)+NVAR2+1
         MAXA=MAXA+10*(NVAR2+1)
         NFISS2=0
         DO 300 I=1,NFISS
         IF(KFISS(I,IBM).EQ.0) GO TO 300
         IF(LP(KFISS(I,IBM)).GT.0) NFISS2=NFISS2+1
  300    CONTINUE
         ALLOCATE(CHAIN(2*(NVAR2+1)))
         DO 310 IS=1,NVAR
         IF(LP(IS).GT.0) THEN
            K=JM(IBM,IS)
            CHAIN((LP(IS)-1)*2+1)=ISONAM(1,K)
            CHAIN((LP(IS)-1)*2+2)=ISONAM(2,K)
         ENDIF
  310    CONTINUE
         TEXT8='*POWER*'
         READ(TEXT8,'(2A4)') (CHAIN(NVAR2*2+I0),I0=1,2)
         CALL EVOSOL(IMPX,LCOOL,NVAR,NREAC,NDFP,NPAR,NFISS,XT,EPS1,
     1   EXPMAX,H1,ITYPE,IDIRAC,RRD,KPAR,BPAR,KFISS(1,IBM),KPF(1,IBM),
     2   YIELD(1,1,IBM),LP,IEVOLB(1,IBM),SIG(1,1,IBM,1),SIG(1,1,IBM,2),
     3   NVAR2,NFISS2,NSUPF2,MU1,IMA,MAXA,YDPL(1,1,ICMB),CHAIN)
*
         DEALLOCATE(CHAIN)
  330    CONTINUE
         GAR=0.0D0
         GARD=0.0D0
         DO 360 IS=1,NVAR
         DO 350 ICMB=1,NCOMB
         IBM=MILVO(ICMB)
         IF(IBM.EQ.0) GO TO 350
         IF(MIXPWR(IBM).EQ.1) THEN
            GAR=GAR+VX(IBM)*YDPL(IS,2,ICMB)*SIG(IS,NREAC,IBM,2)
            GARD=GARD+VX(IBM)*YDPL(IS,2,ICMB)*SIG(IS,NREAC+1,IBM,2)
         ENDIF
  350    CONTINUE
  360    CONTINUE
         IF((IGLOB.EQ.1).OR.(INR.EQ.3)) THEN
            DO 370 IBM=1,NBMIX
            IF(MIXPWR(IBM).EQ.1) THEN
               GAR=GAR+SIG(NVAR+1,NREAC,IBM,2)
               GAR=GAR+SIG(NVAR+1,NREAC+1,IBM,2)
            ENDIF
  370       CONTINUE
         ELSE
            DO 380 ICMB=1,NCOMB
            IBM=MILVO(ICMB)
            IF(IBM.EQ.0) GO TO 380
            IF(MIXPWR(IBM).EQ.1) THEN
               GAR=GAR+SIG(NVAR+1,NREAC,IBM,2)
               GAR=GAR+SIG(NVAR+1,NREAC+1,IBM,2)
            ENDIF
  380       CONTINUE
         ENDIF
         IF(GAR.EQ.0.0D0) CALL XABORT('EVOBLD: UNABLE TO NORMALIZE.')
         IF(INR.EQ.3) THEN
*           FITD IS THE DECAY POWER IN WATT PER CUBIC CENTIMETER.
            FITD=(EVJ*GARD*FUELDN(3))/(FUELDN(1)*VTOTD)
            IF(FITD.GT.FIT) THEN
               WRITE(HSMG,'(35HEVOBLD: NEGATIVE FIT(1) FIT(DECAY)=,1P,
     1         E11.4,12H FIT(INPUT)=,E11.4,1H.)') FITD,FIT
               CALL XABORT(HSMG)
            ENDIF
            PHI2=(FIT-FITD)*FUELDN(1)*VPH(2)/(EVJ*GAR*FUELDN(3))
         ELSE
*           FITD IS THE DECAY POWER IN WATT PER GRAM.
            FITD=(EVJ*GARD)/(FUELDN(1)*VTOTD)
            IF(FITD.GT.FIT) THEN
               WRITE(HSMG,'(35HEVOBLD: NEGATIVE FIT(2) FIT(DECAY)=,1P,
     1         E11.4,12H FIT(INPUT)=,E11.4,1H.)') FITD,FIT
               CALL XABORT(HSMG)
            ENDIF
            PHI2=(FIT-FITD)*FUELDN(1)*VPH(2)/(EVJ*GAR)
         ENDIF
         ERROR=REAL(ABS(PHI2-VPH(2)/VTOTD)/ABS(PHI2))
         DO 400 IBM=1,NBMIX
         VPHV(IBM,2)=VPHV(IBM,2)*REAL(PHI2*VTOTD)/VPH(2)
         DO 395 IQ=1,NREAC
         DO 390 IS=1,NVAR+1
         SIG(IS,IQ,IBM,2)=SIG(IS,IQ,IBM,2)*REAL(PHI2*VTOTD)/VPH(2)
  390    CONTINUE
  395    CONTINUE
  400    CONTINUE
         VPH(2)=REAL(PHI2*VTOTD)
         IF(IMPX.GT.3) THEN
            WRITE (6,650) ITER,ERROR,VPH(1)/VTOTD,VPH(2)/VTOTD
         ENDIF
         IF(ERROR.LT.EPS2) THEN
            IF(IMPX.GT.-1) WRITE(6,'(/29H EVOBLD: POWER CONVERGENCE IN,
     1      I3,19H ITERATIONS. ERROR=,1P,E9.2,1H.)') ITER,ERROR
            GO TO 410
         ELSE
            GO TO 250
         ENDIF
      ENDIF
*----
*  SOLVE THE COMPLETE DEPLETION CHAIN, INCLUDING FISSION PRODUCTS
*----
  410 DELTA(1)=0.0
      ENERG(:NBMIX)=0.0
      DO 500 ICMB=1,NCOMB
*     DETERMINE THE ROW AND COLUMN PROFILE OF THE ADPL MATRIX AND
*     COMPUTE NVAR2, THE NUMBER OF DEPLETING NUCLIDES IN REGION ICMB.
      IBM=MILVO(ICMB)
      IF(IBM.EQ.0) GO TO 500
      IF(IMPX.GT.3) WRITE(6,'(/34H EVOBLD: PROCESS DEPLETING MIXTURE,
     1 I5,15H (REAL MIXTURE=,I5,2H).)') ICMB,IBM
      NVAR2=0
      NSUPL2=0
      LP(:NVAR)=0
      DO 440 IS=1,NVAR
      KDRI=IDR(2,IS)
      IF(KDRI.EQ.0) GO TO 440
      IF((MOD(KDRI,100).NE.3).AND.(MOD(KDRI,100).NE.4)) GO TO 440
      IF(JM(IBM,IS).GT.0) THEN
         NVAR2=NVAR2+1
         LP(IS)=NVAR2
      ENDIF
  440 CONTINUE
      NSUPL2=NVAR2
      DO 450 IS=1,NVAR
      IF((JM(IBM,IS).GT.0).AND.(LP(IS).EQ.0)) THEN
         NVAR2=NVAR2+1
         LP(IS)=NVAR2
      ENDIF
  450 CONTINUE
      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)
      MU1(NVAR2+1)=IMA(NVAR2)+NVAR2+1
      IMA(NVAR2+1)=IMA(NVAR2)+NVAR2+1
      MAXA=MAXA+10*(NVAR2+1)
      NFISS2=0
      DO 460 I=1,NFISS
      IF(KFISS(I,IBM).EQ.0) GO TO 460
      IF(LP(KFISS(I,IBM)).GT.0) NFISS2=NFISS2+1
  460 CONTINUE
      NSUPF2=NVAR2-NSUPL2
      ALLOCATE(CHAIN(2*(NVAR2+1)))
      DO 470 IS=1,NVAR
      IF(LP(IS).GT.0) THEN
         K=JM(IBM,IS)
         CHAIN((LP(IS)-1)*2+1)=ISONAM(1,K)
         CHAIN((LP(IS)-1)*2+2)=ISONAM(2,K)
      ENDIF
  470 CONTINUE
      TEXT8='*POWER*'
      READ(TEXT8,'(2A4)') (CHAIN(NVAR2*2+I0),I0=1,2)
      CALL EVOSOL(IMPX,LCOOL,NVAR,NREAC,NDFP,NPAR,NFISS,XT,EPS1,
     1 EXPMAX,H1,ITYPE,IDIRAC,RRD,KPAR,BPAR,KFISS(1,IBM),KPF(1,IBM),
     2 YIELD(1,1,IBM),LP,IEVOLB(1,IBM),SIG(1,1,IBM,1),SIG(1,1,IBM,2),
     3 NVAR2,NFISS2,NSUPF2,MU1,IMA,MAXA,YDPL(1,1,ICMB),CHAIN)
*
      DEALLOCATE(CHAIN)
      IF(MIXPWR(IBM).EQ.1) THEN
         DELTA(1)=DELTA(1)+YDPL(NVAR+1,2,ICMB)*VX(IBM)
      ENDIF
  500 CONTINUE
*----
*  BURNUP CALCULATION. TAKE THE CONTRIBUTION OBTAINED FROM THE ODE
*  SOLVER AND ADD THE CONTRIBUTION FROM THE NON-DEPLETING ISOTOPES
*  PRODUCING ENERGY
*----
      DO 510 IBM=1,NBMIX
      IF(MIXPWR(IBM).EQ.1) THEN
         GAR=0.5D0*(SIG(NVAR+1,NREAC,IBM,1)+SIG(NVAR+1,NREAC,IBM,2)
     1             +SIG(NVAR+1,NREAC+1,IBM,1)+SIG(NVAR+1,NREAC+1,IBM,2))
         ENERG(IBM)=ENERG(IBM)+REAL(GAR*(XT(2)-XT(1))*EVJ)
      ENDIF
  510 CONTINUE
      DO 516 ICMB=1,NCOMB
      IBM=MILVO(ICMB)
      IF(IBM.EQ.0) GO TO 516
      IF(MIXPWR(IBM).EQ.1) THEN
         DO 515 IS=1,NVAR
         GAR=0.5D0*(YDPL(IS,1,ICMB)*SIG(IS,NREAC,IBM,1)
     1             +YDPL(IS,2,ICMB)*SIG(IS,NREAC,IBM,2)
     1             +YDPL(IS,1,ICMB)*SIG(IS,NREAC+1,IBM,1)
     1             +YDPL(IS,2,ICMB)*SIG(IS,NREAC+1,IBM,2))
         ENERG(IBM)=ENERG(IBM)+REAL(GAR*(XT(2)-XT(1))*VX(IBM)*EVJ)
  515    CONTINUE
      ENDIF
  516 CONTINUE
      DELTA(3)=0.0
      IF(IGLOB.LE.0) THEN
         DO 520 ICMB=1,NCOMB
         IBM=MILVO(ICMB)
         IF(IBM.EQ.0) GO TO 520
         IF(MIXPWR(IBM).EQ.1) THEN
            GAR=0.5D0*(SIG(NVAR+1,NREAC,IBM,1)+SIG(NVAR+1,NREAC,IBM,2)
     1                +SIG(NVAR+1,NREAC+1,IBM,1)
     2                +SIG(NVAR+1,NREAC+1,IBM,2))
            DELTA(1)=DELTA(1)+REAL(GAR)*(XT(2)-XT(1))
            DELTA(3)=DELTA(3)+REAL(GAR)*(XT(2)-XT(1))
         ENDIF
  520    CONTINUE
      ELSE IF(IGLOB.EQ.1) THEN
         DO 530 IBM=1,NBMIX
         IF(MIXPWR(IBM).EQ.1) THEN
            GAR=0.5D0*(SIG(NVAR+1,NREAC,IBM,1)+SIG(NVAR+1,NREAC,IBM,2)
     1                +SIG(NVAR+1,NREAC+1,IBM,1)
     2                +SIG(NVAR+1,NREAC+1,IBM,2))
            DELTA(1)=DELTA(1)+REAL(GAR)*(XT(2)-XT(1))
            DELTA(3)=DELTA(3)+REAL(GAR)*(XT(2)-XT(1))
         ENDIF
  530    CONTINUE
      ENDIF
      DO 545 ICMB=1,NCOMB
      IBM=MILVO(ICMB)
      IF(IBM.EQ.0) GO TO 545
      IF(MIXPWR(IBM).EQ.1) THEN
         DO 540 IS=1,NVAR
         DELTA(3)=DELTA(3)+0.5*(YDPL(IS,1,ICMB)*SIG(IS,NREAC,IBM,1)
     1                 +YDPL(IS,2,ICMB)*SIG(IS,NREAC,IBM,2))*VX(IBM)
     2                 *(XT(2)-XT(1))
         DELTA(3)=DELTA(3)+0.5*(YDPL(IS,1,ICMB)*SIG(IS,NREAC+1,IBM,1)
     1                 +YDPL(IS,2,ICMB)*SIG(IS,NREAC+1,IBM,2))*VX(IBM)
     2                 *(XT(2)-XT(1))
  540    CONTINUE
      ENDIF
  545 CONTINUE
      IF(FUELDN(2) .EQ. 0.0) THEN
        DELTA(1)=0.0
        DELTA(3)=0.0
      ELSE
        DELTA(1)=DELTA(1)*REAL(EVJ)/FUELDN(2)
        DELTA(3)=DELTA(3)*REAL(EVJ)/FUELDN(2)
      ENDIF
      DELTA(2)=0.5*(VPH(1)+VPH(2))*(XT(2)-XT(1))/REAL(VTOTD)
      IF((.NOT.LCOOL).AND.(IMPX.GT.0)) THEN
         IF(DELTA(1) .EQ. 0.0) THEN
           WRITE (6,661) DELTA(2)
         ELSE
           WRITE (6,660) DELTA(1),DELTA(1)/8.64E-4,DELTA(2)
           WRITE (6,665) DELTA(3),DELTA(3)/8.64E-4
         ENDIF
      ENDIF
*----
*  PRINT THE BEGINNING- AND END-OF-STAGE NORMALIZATION POWERS
*----
      IF(IMPX.GT.-1) THEN
         DO 580 IP=1,2
         DELTA1=0.0
         DELTA2=0.0
         IF(IGLOB.LE.0) THEN
            DO 550 ICMB=1,NCOMB
            IBM=MILVO(ICMB)
            IF(IBM.EQ.0) GO TO 550
            IF(MIXPWR(IBM).EQ.1) THEN
               DELTA1=DELTA1+SIG(NVAR+1,NREAC,IBM,IP)
               DELTA2=DELTA2+SIG(NVAR+1,NREAC+1,IBM,IP)
            ENDIF
  550       CONTINUE
         ELSE IF(IGLOB.EQ.1) THEN
            DO 560 IBM=1,NBMIX
            IF(MIXPWR(IBM).EQ.1) THEN
               DELTA1=DELTA1+SIG(NVAR+1,NREAC,IBM,IP)
               DELTA2=DELTA2+SIG(NVAR+1,NREAC+1,IBM,IP)
            ENDIF
  560       CONTINUE
         ENDIF
         DO 575 ICMB=1,NCOMB
         IBM=MILVO(ICMB)
         IF(IBM.EQ.0) GO TO 575
         IF(MIXPWR(IBM).EQ.1) THEN
           DO 570 IS=1,NVAR
           DELTA1=DELTA1+YDPL(IS,IP,ICMB)*SIG(IS,NREAC,IBM,IP)*VX(IBM)
           DELTA2=DELTA2+YDPL(IS,IP,ICMB)*SIG(IS,NREAC+1,IBM,IP)*VX(IBM)
  570      CONTINUE
         ENDIF
  575    CONTINUE
         IF(FUELDN(2) .EQ. 0.0) THEN
           DELTA1=0.0
           DELTA2=0.0
         ELSE
           DELTA1=DELTA1*REAL(EVJ)/FUELDN(2)
           DELTA2=DELTA2*REAL(EVJ)/FUELDN(2)
           IF(IP.EQ.1) THEN
              WRITE(6,680) 'BEGINNING-OF-STAGE',DELTA1
              WRITE(6,690) 'BEGINNING-OF-STAGE',DELTA2
           ELSE IF(IP.EQ.2) THEN
              WRITE(6,680) 'END-OF-STAGE',DELTA1
              WRITE(6,690) 'END-OF-STAGE',DELTA2
           ENDIF
         ENDIF
  580    CONTINUE
         WRITE(6,'(/48H NOTE: POWER MAY EXIBITS VARIATIONS OUTSIDE THE ,
     1   52HBEGINNING- AND END-OF-STAGE VALUES DURING THE STAGE.)')
      ENDIF
*----
*  SCRATCH STORAGE DEALLOCATION
*----
      DEALLOCATE(LP,IMA,MU1)
      RETURN
*
  640 FORMAT(/53H EVOBLD: STARTING VALUES OF INITIAL/FINAL AVERAGED FL,
     1 11HUX IN FUEL=,1P,2E12.4,15H E+13 N/CM**2/S)
  650 FORMAT(/37H EVOBLD: ITERATION ON FINAL POWER NB.,I3,3X,6HERROR=,
     1 1P,E12.4,3X,36HINITIAL/FINAL AVERAGED FLUX IN FUEL=,2E12.4,
     2 15H E+13 N/CM**2/S)
  660 FORMAT(/' EVOBLD: ',
     1 'FUEL BURNUP INCREMENT DURING THIS STAGE =',1P,
     1 E12.4,' MW*S**8/TONNE (',E12.4,' MW*DAY/TONNE).'/9X,
     2 'NEUTRON EXPOSURE (FLUENCE) INCREMENT =',E12.4,' N/KB.')
  661 FORMAT(/' EVOBLD: ',
     1 'NEUTRON EXPOSURE (FLUENCE) INCREMENT DURING THIS STAGE =',1P,
     2 E12.4,' N/KB.')
  665 FORMAT(' EVOBLD: ',
     1 'TARGET FUEL BURNUP INCREMENT DURING THIS STAGE =',1P,
     2 E12.4,' MW*S**8/TONNE (',E12.4,' MW*DAY/TONNE).')
  680 FORMAT(/34H EVOBLD: NEUTRON-INDUCED POWER AT ,A,2H =,1P,E12.4,
     > 10H MW/TONNE.)
  690 FORMAT(/24H EVOBLD: DECAY POWER AT ,A,2H =,1P,E12.4,10H MW/TONNE.)
      END