summaryrefslogtreecommitdiff
path: root/Dragon/data/pincell_mco_proc/BranchFlux.c2m
blob: 60f5ed69bc92b70645bda6159f05061fa7a18d7f (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
*DECK BranchFlux
*----
*  Name          : BranchFlux.c2m
*  Type          : DRAGON procedure
*  Use           : Branch flux calculation
*  Author        : A. Hebert
*
*  Procedure called as: 
*
*  LIBRARY2 FLUX := BranchFlux 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: END: ;
LINKED_LIST SYS ;
REAL B2 Kinf1 Kinf2 Keff2 Tend ;

INTEGER istep ;
REAL BUend BUnextSS Fuelpwr ;
   :: >>istep<< >>BUend<< >>BUnextSS<< >>Fuelpwr<< ;

  EVALUATE Tend := BUend Fuelpwr / ;
  ECHO "-----------------------------------------------------------" ;
  ECHO "Branch flux calculation at step=" istep ;

*----
*  Resonance self-shielding
*----
  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
      LIBRARY2 := USS: LIBRARY TRACKN ::
        EDIT 0
        ARM
        TRAN
        PASS 2
        GRMIN 45
      ;
    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 ;

************************************************************************
* END FLUX CALCULATION                                                 *
************************************************************************

END: ;
QUIT .