summaryrefslogtreecommitdiff
path: root/Donjon/data/Test4x4coupl_nompi_proc/MainDraG2.c2m
blob: 7dff9905d2cec1cdb9d59dbc02ccacd25234387d (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
*DECK MainDraG2.c2m
*----
*  Nom           : MainDraG2.c2m
*  Type          : Procedure de calcul
*  Usage         : Evolution d'une cellule de cellule CANDU-6 avec historique
*  Auteur        : G. Marleau -- 2003/03/24
*  Modifie       : R. Chambon -- 2003/05/21
*                  G. Marleau -- 2003/06/30
*
*  Description de la procedure: 
*    History MACRES  := MainDraG2 History MACRES RESEAU 
*                                 GeoS GeoF IntLinS IntLinF ::
*      <<ncha>> <<nbun>> <<ibgncha>> <<iendcha>>
*      <<RefLib>>  << NivImp >> <<ppm>> <<purmod>> ;
*  Structures de donnees:
*    History       : historique du calcul de cellule (L_HISTORY).
*    MACRES        : bibilotheque macroscopique pour le reseau 
*                    de calcul (L_MACROLIB).
*    RESEAU        : reseau de calcul pour le rechargement
*                    (L_MAP).
*    GeoS          : volumes, surfaces et parametres d'integration
*                    pour l'autoprotection des resonances (L_TRACK). 
*    GeoF          : volumes, surfaces et parametres d'integration
*                    pour le calcul de flux (L_TRACK). 
*    IntLinS       : lignes d'integration pour l'autoprotection 
*                    des resonances 
*    IntLinF       : lignes d'integration pour le calcul des flux 
*  Parametres de controle: 
*    ncha          : nombre de cannaux de combustible
*    nbun          : nombre de grappes de combustible par cannal
*    ibgncha       : numero de cannal de depart pour le calcul courant
*    iendcha       : numero de cannal de fin pour le calcul courant
*    RefLib        : Type de bibliotheque
*                    "Winfrith" -> Bibliotheque Winfrith WIMS-AECL
*                    "ENDFB5"   -> Bibliotheque ENDF/B-V WIMS-AECL
*                                 (defaut)
*                    "ENDFB6"   -> Bibliotheque ENDF/B-VI WIMS-AECL
*                    "IGE227W"  -> Bibliotheque Winfrith WIMS-AECL
*                                  isotopes de IGE227
*                    "IGE227E5" -> Bibliotheque ENDF/B-V WIMS-AECL
*                                  isotopes de IGE227
*    NivImp        : Niveau d'impression
*    ppm           : Bore dans moderateur en ppm  
*    purmod        : Purete D2O moderateur (%)
*  Procedure requise:
*    BibCellG2     : Mise a jour de la bibliotheque de section 
*                    efficace pour le calcul de cellule
*    FlxCellG2     : Calcul de flux et evolution pour une cellule
*  Modules DRAGON/DONJON requis:
*    HST:          : controle l'historique.
*    EDI:          : Gestion des sorties de DRAGON.
*    CPO:          : Gestion des base de donnees CPO de DRAGON/DONJON
*    CRE:          : Creation des macrolib pour DONJON.
*----
*  Procedures et Modules
*----
PARAMETER           History MACRES RESEAU GeoS GeoF 
                    IntLinS IntLinF                     ::
  EDIT 1
    ::: XSM_FILE    History                          ;
    ::: LINKED_LIST MACRES RESEAU GeoS GeoF          ;
    ::: SEQ_BINARY  IntLinS IntLinF                  ; ;  
INTEGER   ncha nbun ibgncha iendcha NivImp           ;
STRING    RefLib                                     ;
REAL      ppm purmod                                 ;
*----
*  Reccuperer information transferee a la procedure
*----
:: >>ncha<< >>nbun<< >>ibgncha<< >>iendcha<< 
   >>RefLib<< >>NivImp<< >>ppm<< >>purmod<< ;
PROCEDURE    BibCellG2   FlxCellG2                   ; 
MODULE       HST: EDI: CPO: CRE: DELETE: END:        ;
      MODULE ABORT: ;
*----
*  Definir les parametres  globaux
*----     
REAL         TMod      PMod       DMod      BMod     :=
             345.66    purmod     0.0       ppm      ;
*----
*  Definir les parametres  locaux
*  *A is after refueling
*  *B is before refueling
*----     
REAL         TCombA ECombA  DCombA                
             TCaloA PCaloA  DCaloA                   ;
REAL         TCombB ECombB  DCombB                
             TCaloB PCaloB  DCaloB                   ;
INTEGER      BibOpt                                  ;
*----
*  Definir les options locales pour les calculs de cellule
*  *A is after refueling
*  *B is before refueling
*----     
REAL         PowerA   DeltaTA  
             PowerB   DeltaTB                        ;
*----
*  Structures de donnees locales
*----
LINKED_LIST  Biblio Flux Burnup Edition Cpo          ;
*----
*  Parametres de reacteur
*  nglo = nunber of global parameters = 4
*  nloc = nunber of local parameters = 6 
*  bunl = bundle length in cm = 49.53 cm 
*----
EVALUATE     BibOpt         := 1                     ; 
INTEGER      nglo    nloc         :=
             4       6            ;
REAL         PkW DTCombA DTCombB                     ;
REAL         bunl           := 49.53                 ;
REAL         mbun     := 400.559  bunl * 1000. /     ;
INTEGER      icha    ibun                            ; 
INTEGER      istep                                   ;
*
History := HST: History RESEAU :: EDIT 2             ; 
*
EVALUATE   icha  := ibgncha                          ;
WHILE icha  iendcha   <=  DO
   EVALUATE   istep := icha                          ;
   EVALUATE ibun := 1                                ;
   WHILE ibun nbun    <=  DO
*----
*  recover in Reseau power and burnup for each bundle
*  and save them on History after execution
*----
      ECHO  "Channel  bundle  =" icha  ibun istep     ;
*
      Burnup := HST: History                        ::
          EDIT 2
          PUT TMod >>TMod<< PMod >>PMod<<
              DMod >>DMod<< BMod >>BMod<< 
          CELLID <<icha>> <<ibun>>
          PUT BREFL  BURN >>DeltaTB<< >>PowerB<< 
            TComb >>TCombB<< TCalo >>TCaloB<< 
            EComb >>ECombB<< PCalo >>PCaloB<< 
            DComb >>DCombB<< DCalo >>DCaloB<< 
              AREFL  BURN >>DeltaTA<< >>PowerA<< 
            TComb >>TCombA<< TCalo >>TCaloA<< 
            EComb >>ECombA<< PCalo >>PCaloA<< 
            DComb >>DCombA<< DCalo >>DCaloA<<        ;
*
*
*  COMPUTE FUEL TEMPERATURE AS A FUNCTION OF POWER
*
       IF     RefLib "IGE227W" =                            THEN
         EVALUATE TCombB  := 941.29 ;
         EVALUATE TCombA  := 941.29 ;
       ELSEIF RefLib "IGE227E5" =                           THEN
         EVALUATE TCombB  := 941.29 ;
         EVALUATE TCombA  := 941.29 ;
       ELSE
*----
*  Temperature du combustible en fonction de la puissance P
*  et de la temperature du caloporteur
*  T_{fuel}=T_{Cool}+ 0.476 P + 0.0002267  P^{2}
*  Reference: D. Rozon, Introduction a la cinetique des reacteurs
*             nucleaires. p. 217
*----
         EVALUATE PkW     := PowerB mbun * ;
         EVALUATE DTCombB := 2.267E-4 PkW * PkW * 0.476 PkW * +  ;
         EVALUATE TCombB  := TCaloB  DTCombB   +  ;
         EVALUATE PkW     := PowerA mbun * ;
         EVALUATE DTCombA := 2.267E-4 PkW * PkW * 0.476 PkW * +  ;
         EVALUATE TCombA  := TCaloA  DTCombA   +  ;
       ENDIF ;
       ECHO  "Before DeltaT=" DeltaTB     ;
       ECHO  "Before Power =" PowerB      ;
       ECHO  "Before TComb =" TCombB      ;
       ECHO  "Before EComb =" ECombB      ;
       ECHO  "Before DComb =" DCombB      ;
       ECHO  "Before TCalo =" TCaloB      ;
       ECHO  "Before PCalo =" PCaloB      ;
       ECHO  "Before DCalo =" DCaloB      ;
       ECHO  "After  DeltaT=" DeltaTA     ;
       ECHO  "After  Power =" PowerA      ;
       ECHO  "After  TComb =" TCombA      ;
       ECHO  "After  EComb =" ECombA      ;
       ECHO  "After  DComb =" DCombA      ;
       ECHO  "After  TCalo =" TCaloA      ;
       ECHO  "After  PCalo =" PCaloA      ;
       ECHO  "After  DCalo =" DCaloA      ;
*----
*  Burn before refueling
*---- 
      IF DeltaTB 0.0 > THEN
         Biblio   := BibCellG2 Burnup               :: 
            <<RefLib>>    <<BibOpt>>    
            <<TCombB>>  <<ECombB>>  <<DCombB>>
            <<TCaloB>>  <<PCaloB>>  <<DCaloB>>
            <<TMod>>    <<PMod>>    <<DMod>>  <<BMod>>
            <<NivImp>>                               ;
         Flux Burnup Biblio := FlxCellG2 Biblio Burnup  
                                GeoS GeoF IntLinS IntLinF ::
            <<BibOpt>>
            <<PowerB>> <<DeltaTB>> <<NivImp>>        ;
         Flux Biblio := DELETE:  Flux Biblio         ;
      ENDIF ;
*----
*  Burn after refueling
*---- 
      Biblio   := BibCellG2 Burnup                    :: 
         <<RefLib>>    <<BibOpt>>    
         <<TCombA>>  <<ECombA>>  <<DCombA>>
         <<TCaloA>>  <<PCaloA>>  <<DCaloA>>
         <<TMod>>    <<PMod>>    <<DMod>>   <<BMod>>
         <<NivImp>>                                ;
      Flux Burnup Biblio := FlxCellG2 Biblio Burnup  
                            GeoS GeoF IntLinS IntLinF ::
         <<BibOpt>>
         <<PowerA>> <<DeltaTA>> <<NivImp>>           ; 
      History := HST: History Burnup                  ::
          EDIT 2
          CELLID <<icha>> <<ibun>>                   ;
*----
*  Update DONJON MAC
*----
      Edition := EDI: Flux Biblio GeoF             ::
         EDIT <<NivImp>>
         MERGE COMP
*         COND 0.625                            
         COND 4.0                            
         SAVE ON 'END-CASE'                          ;
      Cpo := CPO: Edition ::
          STEP 'END-CASE'  NAME BUNDLE               ;
      ECHO "NUMERO_DE_MIX = "  istep                 ;
      IF istep  ibgncha =  THEN
         MACRES := CRE: Cpo ::
         EDIT 1 NMIX 64 
         READ  
         COMPO Cpo     MIX <<istep>>  'BUNDLE     1'   ENDMIX
                                                     ;
      ELSE
         MACRES := CRE: MACRES  Cpo ::
         READ  
         COMPO Cpo     MIX <<istep>>  'BUNDLE     1'   ENDMIX
                                                     ;
      ENDIF ; 
      Burnup Flux Biblio Cpo Edition := DELETE: 
      Burnup Flux Biblio Cpo Edition ;
      EVALUATE   istep := istep ncha +               ;
      EVALUATE ibun := ibun 1 +                      ;
   ENDWHILE ; 
   EVALUATE icha := icha 1 +                         ;
ENDWHILE ;

END:                                                 ;
QUIT "LIST"                                          .