blob: a26e6ea79e4b59045b2bed6010ab3a78fbbd5472 (
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
|
*DECK CalcFlux
*----
* Name : CalcFlux.c2m
* Type : DRAGON procedure
* Use : Flux calculation
* Author : A. Hebert
*
* Procedure called as:
*
* LIBRARY2 FLUX := CalcFlux LIBRARY2 FLUX LIBRARY TRACKN :: (data) ;
*
* Input data :
* LIBRARY : Microlib with subgroups
* LIBRARY2 : Self-shielded microlib
* TRACKN : Tracking
* FLUX : Multigroup flux
* Output data :
* LIBRARY2 : Self-shielded microlib
* FLUX : Multigroup flux
* Parameters :
* istep : Burnup step index corresponding to the calculation
* BUend : Burnup corresponding to the calculation
* BUnextSS : Burnup corresponding to the next self-shielding
* calculation
* Fuelpwr : Fuel power in MW/tonne
PARAMETER LIBRARY2 FLUX LIBRARY TRACKN ::
EDIT 1
::: LINKED_LIST LIBRARY2 FLUX LIBRARY TRACKN ;
;
* ;
*----
* Modules used in this procedure
*----
MODULE ASM: FLU: EDI: EVO: USS: GREP: ABORT: DELETE: UTL: END: ;
LINKED_LIST EDITION SYS ;
REAL B2 Kinf1 Kinf2 Keff2 Tend ;
INTEGER istep ;
REAL BUend BUnextSS Fuelpwr ;
:: >>istep<< >>BUend<< >>BUnextSS<< >>Fuelpwr<< ;
EVALUATE Tend := BUend Fuelpwr / ;
ECHO "-----------------------------------------------------------" ;
ECHO "Flux calculation at step=" istep ;
ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ;
IF BUend BUnextSS - ABS 1E-5 < THEN
ECHO "Perform a self-shielding calculation" ;
ECHO "-----------------------------------------------------------" ;
IF istep 1 = THEN
ECHO "first call" ;
LIBRARY2 := USS: LIBRARY TRACKN ::
EDIT 0
ARM
TRAN
PASS 2
GRMIN 45
;
ECHO "out" ;
ELSE
LIBRARY2 := USS: LIBRARY2 LIBRARY TRACKN ;
ENDIF ;
ELSE
ECHO "No self-shielding calculation" ;
ECHO "-----------------------------------------------------------" ;
ENDIF ;
************************************************************************
* BEGIN FLUX CALCULATION *
************************************************************************
SYS := ASM: LIBRARY2 TRACKN ::
EDIT 0 ARM ;
IF istep 1 = THEN
FLUX := FLU: SYS LIBRARY2 TRACKN
:: EDIT 1 TYPE K B1 SIGS ;
ELSE
FLUX := FLU: FLUX SYS LIBRARY2 TRACKN
:: EDIT 1 TYPE K B1 SIGS ;
ENDIF ;
GREP: FLUX :: GETVAL 'B2 B1HOM ' 1 1 1 >>B2<< ;
ECHO "B2-1 = " B2 " at BU = " BUend ;
GREP: FLUX :: GETVAL 'K-INFINITY ' 1 1 1 >>Kinf1<< ;
ECHO "K-inf1_sortie is " Kinf1 " at BU = " BUend ;
SYS := DELETE: SYS ;
************************************************************************
* END FLUX CALCULATION *
************************************************************************
END: ;
QUIT .
|