summaryrefslogtreecommitdiff
path: root/Dragon/data/CFC-CELL_proc
diff options
context:
space:
mode:
authorstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
committerstainer_t <thomas.stainer@oecd-nea.org>2025-09-08 13:48:49 +0200
commit7dfcc480ba1e19bd3232349fc733caef94034292 (patch)
tree03ee104eb8846d5cc1a981d267687a729185d3f3 /Dragon/data/CFC-CELL_proc
Initial commit from Polytechnique Montreal
Diffstat (limited to 'Dragon/data/CFC-CELL_proc')
-rw-r--r--Dragon/data/CFC-CELL_proc/CREEP.c2m32
-rw-r--r--Dragon/data/CFC-CELL_proc/FLUX.c2m194
-rw-r--r--Dragon/data/CFC-CELL_proc/FLUXP.c2m211
-rw-r--r--Dragon/data/CFC-CELL_proc/GEOMTY.c2m359
-rw-r--r--Dragon/data/CFC-CELL_proc/LIBRY.c2m238
-rw-r--r--Dragon/data/CFC-CELL_proc/PERTRB.c2m114
-rw-r--r--Dragon/data/CFC-CELL_proc/POWER.c2m67
7 files changed, 1215 insertions, 0 deletions
diff --git a/Dragon/data/CFC-CELL_proc/CREEP.c2m b/Dragon/data/CFC-CELL_proc/CREEP.c2m
new file mode 100644
index 0000000..c98da05
--- /dev/null
+++ b/Dragon/data/CFC-CELL_proc/CREEP.c2m
@@ -0,0 +1,32 @@
+* DRAGON CREEP PROCEDURE DECK
+***********************************************************************
+* Purpose:
+* define pressure tube dimensions.
+*
+* author:
+* MAJID FASSI FEHRI 09/08/30
+* CNSC
+*
+* Modified:
+* Richard CHAMBON 11/02/21
+* Ecole Polytechnique
+*
+* Notes:
+* ICREEP = -1 for average creep in the core (used in 3D calculations)
+*
+***********************************************************************
+MODULE END: ;
+INTEGER ICREEP ;
+REAL PtRin PtRout ;
+
+:: >>ICREEP<< ;
+
+* PT NOMINAL DIAMETER
+IF ICREEP 0 = THEN
+ EVALUATE PtRin PtRout := 5.16890 5.60320 ;
+* CREPT PT
+ENDIF ;
+
+:: <<PtRin>> <<PtRout>> ;
+
+END: ;
diff --git a/Dragon/data/CFC-CELL_proc/FLUX.c2m b/Dragon/data/CFC-CELL_proc/FLUX.c2m
new file mode 100644
index 0000000..261942a
--- /dev/null
+++ b/Dragon/data/CFC-CELL_proc/FLUX.c2m
@@ -0,0 +1,194 @@
+* DRAGON FLUX AND COMPO PROCEDURE DECK for unperturbated cases
+***********************************************************************
+* Purpose:
+* compute burnup depletion for 2-D cell of CANDU reactor.
+*
+* author:
+* MAJID FASSI FEHRI 09/09/09
+* CNSC
+*
+* Modified:
+* Richard CHAMBON 11/02/24
+* Ecole Polytechnique
+*
+***********************************************************************
+PARAMETER EDITN COMPO COMPOR LIBR BURNUP
+ TRKS TRKF TLINES TLINEF ::
+ ::: LINKED_LIST TRKS TRKF EDITN COMPO COMPOR LIBR BURNUP ;
+ ::: SEQ_BINARY TLINES TLINEF ; ;
+PROCEDURE POWER ;
+LINKED_LIST SYST CFLUX ;
+MODULE SHI: ASM: FLU: EDI: EVO: CPO: END: DELETE: BACKUP: ;
+INTEGER LEVEL CALCU Nburn ;
+REAL POW PowRef ISTP FSTP MaxBurn FacTLog ;
+STRING CNAM BNAM RNAM ;
+
+:: >>CALCU<< >>Nburn<< >>MaxBurn<< ;
+
+* Set name in the COMPO files
+ IF CALCU 1 = THEN
+ EVALUATE CNAM := "REF" ;
+ EVALUATE RNAM := "MODREF" ;
+ ELSEIF CALCU 2 = THEN
+ EVALUATE CNAM := "FTEMP-UP" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 3 = THEN
+ EVALUATE CNAM := "FTEMP-D" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 4 = THEN
+ EVALUATE CNAM := "CTEMP-UP" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 5 = THEN
+ EVALUATE CNAM := "CTEMP-D" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 6 = THEN
+ EVALUATE CNAM := "MTEMP-UP" ;
+ EVALUATE RNAM := "MODTP-UP" ;
+ ELSEIF CALCU 7 = THEN
+ EVALUATE CNAM := "MTEMP-D" ;
+ EVALUATE RNAM := "MODTP-D" ;
+ ELSEIF CALCU 8 = THEN
+ EVALUATE CNAM := "CDEN-UP" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 9 = THEN
+ EVALUATE CNAM := "CDEN-D" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 10 = THEN
+ EVALUATE CNAM := "MDEN-UP" ;
+ EVALUATE RNAM := "MODDEN-U" ;
+ ELSEIF CALCU 11 = THEN
+ EVALUATE CNAM := "MDEN-D" ;
+ EVALUATE RNAM := "MODDEN-D" ;
+ ELSEIF CALCU 12 = THEN
+ EVALUATE CNAM := "BORON" ;
+ EVALUATE RNAM := "MODBOR" ;
+ ELSEIF CALCU 13 = THEN
+ EVALUATE CNAM := "PURITY" ;
+ EVALUATE RNAM := "MODPUR" ;
+ ELSEIF CALCU 14 = THEN
+ EVALUATE CNAM := "XENON" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 15 = THEN
+ EVALUATE CNAM := "SM149" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 16 = THEN
+ EVALUATE CNAM := "NP239" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 17 = THEN
+ EVALUATE CNAM := "MIXFD" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 18 = THEN
+ EVALUATE CNAM := "MIXMD" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 19 = THEN
+ EVALUATE CNAM := "POWER-UP" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 20 = THEN
+ EVALUATE CNAM := "POWER-IN" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 21 = THEN
+ EVALUATE CNAM := "POWER-D" ;
+ EVALUATE RNAM := " " ;
+ ENDIF ;
+
+ECHO "FLUX CALCULATION STARTED" ;
+
+EVALUATE LEVEL := 1 ;
+
+* get depletion power
+POWER :: <<CALCU>> >>POW<< >>PowRef<< ;
+
+*----
+* Variables for Burnup (burnup times) :
+* 1) t(1)=0 day
+* 2) t(2)=1 day @ POW=PowRef,
+* 3) t(i)=FacTLog**(i-2) days
+* with FacTLog=exp(ln(MaxBurn/Puissance)/(Nburn-2))
+* 4) t(Nburn)=MaxBurn/Puissance days
+*----
+EVALUATE ISTP FSTP := 0.0 PowRef POW / ;
+EVALUATE FacTLog :=
+ MaxBurn PowRef / LN Nburn 2 - I_TO_R / EXP ;
+
+* BURNUP STEPS
+WHILE LEVEL Nburn 1 + < DO
+ IF LEVEL 10 < THEN
+ EVALUATE BNAM := "REF-CASE000" LEVEL I_TO_S + ;
+ ELSEIF LEVEL 100 < THEN
+ EVALUATE BNAM := "REF-CASE00" LEVEL I_TO_S + ;
+ ELSE
+ EVALUATE BNAM := "REF-CASE0" LEVEL I_TO_S + ;
+ ENDIF ;
+
+ IF LEVEL 1 > THEN
+ IF LEVEL 2 > THEN
+ BURNUP LIBR := EVO: BURNUP LIBR CFLUX TRKF ::
+ NOEX DIRA DEPL <<ISTP>> <<FSTP>> DAY POWR <<POW>> ;
+ ELSE
+ BURNUP LIBR := EVO: LIBR CFLUX TRKF ::
+ NOEX DIRA DEPL <<ISTP>> <<FSTP>> DAY POWR <<POW>> ;
+ ENDIF ;
+ LIBR := SHI: LIBR TRKS TLINES ;
+ SYST := ASM: LIBR TRKF TLINEF ;
+ CFLUX := FLU: CFLUX SYST LIBR TRKF :: TYPE B B1 PNL ;
+ ECHO "CELL HOMOGENEIZATION" ;
+ EDITN := EDI: EDITN CFLUX LIBR TRKF ::
+ COND 0.625 MERGE COMP
+ MICR ALL
+ SAVE ON <<BNAM>> ;
+ ELSE
+ LIBR := SHI: LIBR TRKS TLINES ;
+ SYST := ASM: LIBR TRKF TLINEF ;
+ CFLUX := FLU: SYST LIBR TRKF :: TYPE B B1 PNL ;
+ ECHO "CELL HOMOGENEIZATION" ;
+ EDITN := EDI: CFLUX LIBR TRKF ::
+ COND 0.625 MERGE COMP
+ MICR ALL
+ SAVE ON <<BNAM>> ;
+ ENDIF ;
+
+ EDITN := BACKUP: EDITN CFLUX :: STEP UP <<BNAM>> STEP UP MFLUXG ;
+
+ IF LEVEL 1 = THEN
+ IF RNAM " " <> THEN
+ ECHO "REFLECTOR HOMOGENEIZATION" ;
+ EDITN := EDI: EDITN CFLUX LIBR TRKF ::
+ COND 0.625 MERGE MIX 0 0 0 0 1 0 0 0 0 0
+ MICR ALL
+ SAVE ON 'REFLECTR 1' ;
+ COMPOR := CPO: EDITN ::
+ STEP 'REFLECTR 1'
+ EXTRACT BMOD MB11 MB10
+ EXTRACT MWAT MO16 MD2 MH1
+ NAME <<RNAM>> ;
+ ELSE
+ COMPOR := CPO: EDITN ;
+ ENDIF ;
+ ENDIF ;
+
+ EVALUATE LEVEL := LEVEL 1 + ;
+
+ IF LEVEL 2 > THEN
+ EVALUATE ISTP := FSTP ;
+ EVALUATE FSTP := FSTP FacTLog * ;
+ ENDIF ;
+
+ SYST := DELETE: SYST ;
+
+ENDWHILE ;
+
+*MACROSCOPIC CROSS-SECTION COMPO CREATION
+ COMPO := CPO: EDITN BURNUP ::
+ BURNUP 'REF-CASE'
+ EXTRACT BMOD MB11 MB10
+ EXTRACT CWAT CO16 CD2 CH1
+ EXTRACT MWAT MO16 MD2 MH1
+ EXTRACT XE135 XE5
+ EXTRACT SM149 SM9
+ EXTRACT NP239 NP9
+ EXTRACT FPC FU3 FU5 FP9 FP0 FP1
+ NAME <<CNAM>> ;
+
+ECHO "FLUX CALCULATION FINISHED" ;
+
+END: ;
diff --git a/Dragon/data/CFC-CELL_proc/FLUXP.c2m b/Dragon/data/CFC-CELL_proc/FLUXP.c2m
new file mode 100644
index 0000000..9273b83
--- /dev/null
+++ b/Dragon/data/CFC-CELL_proc/FLUXP.c2m
@@ -0,0 +1,211 @@
+* DRAGON FLUX AND COMPO PROCEDURE DECK for perturbated cases
+***********************************************************************
+* Purpose:
+* compute burnup depletion for pertubed 2-D cell of CANDU reactor.
+*
+* author:
+* Richard CHAMBON 11/02/24
+* Ecole Polytechnique
+*
+***********************************************************************
+PARAMETER EDITN COMPO COMPOR LIBR EDIREF BRNREF
+ TRKS TRKF TLINES TLINEF ::
+ ::: LINKED_LIST TRKS TRKF EDITN COMPO COMPOR LIBR EDIREF BRNREF ;
+ ::: SEQ_BINARY TLINES TLINEF ; ;
+PROCEDURE POWER PERTRB ;
+LINKED_LIST SYST CFLUX LIBTMP EDITMP ;
+MODULE LIB: SHI: ASM: FLU: EDI: CPO: RECOVER: END: DELETE: BACKUP: ;
+INTEGER LEVEL CALCU Nburn ;
+REAL POW PowRef ISTP FSTP ;
+STRING CNAM BNAM RNAM ;
+REAL TFuel TCool TMode DCool DMode
+ PCool PMode Bor Xe Sm Np Gad XeRef SmRef NpRef ;
+
+:: >>CALCU<< >>Nburn<< ;
+
+LIBTMP := LIBR ;
+EDITMP := EDIREF ;
+
+* Get concentrations for nominal case: XeRef SmRef NpRef
+PERTRB :: 1
+ >>TFuel<< >>TCool<< >>TMode<< >>DCool<< >>DMode<<
+ >>PCool<< >>PMode<< >>Bor<< >>XeRef<< >>SmRef<< >>NpRef<<
+ >>Gad<< ;
+
+* Get properties for current case
+PERTRB :: <<CALCU>>
+ >>TFuel<< >>TCool<< >>TMode<< >>DCool<< >>DMode<<
+ >>PCool<< >>PMode<< >>Bor<< >>Xe<< >>Sm<< >>Np<<
+ >>Gad<< ;
+
+* Set name in the COMPO files
+ IF CALCU 1 = THEN
+ EVALUATE CNAM := "REF" ;
+ EVALUATE RNAM := "MODREF" ;
+ ELSEIF CALCU 2 = THEN
+ EVALUATE CNAM := "FTEMP-UP" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 3 = THEN
+ EVALUATE CNAM := "FTEMP-D" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 4 = THEN
+ EVALUATE CNAM := "CTEMP-UP" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 5 = THEN
+ EVALUATE CNAM := "CTEMP-D" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 6 = THEN
+ EVALUATE CNAM := "MTEMP-UP" ;
+ EVALUATE RNAM := "MODTP-UP" ;
+ ELSEIF CALCU 7 = THEN
+ EVALUATE CNAM := "MTEMP-D" ;
+ EVALUATE RNAM := "MODTP-D" ;
+ ELSEIF CALCU 8 = THEN
+ EVALUATE CNAM := "CDEN-UP" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 9 = THEN
+ EVALUATE CNAM := "CDEN-D" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 10 = THEN
+ EVALUATE CNAM := "MDEN-UP" ;
+ EVALUATE RNAM := "MODDEN-U" ;
+ ELSEIF CALCU 11 = THEN
+ EVALUATE CNAM := "MDEN-D" ;
+ EVALUATE RNAM := "MODDEN-D" ;
+ ELSEIF CALCU 12 = THEN
+ EVALUATE CNAM := "BORON" ;
+ EVALUATE RNAM := "MODBOR" ;
+ ELSEIF CALCU 13 = THEN
+ EVALUATE CNAM := "PURITY" ;
+ EVALUATE RNAM := "MODPUR" ;
+ ELSEIF CALCU 14 = THEN
+ EVALUATE CNAM := "XENON" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 15 = THEN
+ EVALUATE CNAM := "SM149" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 16 = THEN
+ EVALUATE CNAM := "NP239" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 17 = THEN
+ EVALUATE CNAM := "MIXFD" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 18 = THEN
+ EVALUATE CNAM := "MIXMD" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 19 = THEN
+ EVALUATE CNAM := "POWER-UP" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 20 = THEN
+ EVALUATE CNAM := "POWER-IN" ;
+ EVALUATE RNAM := " " ;
+ ELSEIF CALCU 21 = THEN
+ EVALUATE CNAM := "POWER-D" ;
+ EVALUATE RNAM := " " ;
+ ENDIF ;
+
+ECHO "FLUX CALCULATION STARTED" ;
+
+EVALUATE LEVEL := 1 ;
+
+
+* BURNUP STEPS
+WHILE LEVEL Nburn 1 + < DO
+
+ IF LEVEL 10 < THEN
+ EVALUATE BNAM := "REF-CASE000" LEVEL I_TO_S + ;
+ ELSEIF LEVEL 100 < THEN
+ EVALUATE BNAM := "REF-CASE00" LEVEL I_TO_S + ;
+ ELSE
+ EVALUATE BNAM := "REF-CASE0" LEVEL I_TO_S + ;
+ ENDIF ;
+
+*----
+* Update microlib for this burnup step using BRNREF
+*----
+ LIBTMP := LIB: LIBTMP BRNREF ::
+ BURN <<LEVEL>> MIX 6 MIX 7 MIX 8 MIX 9 ;
+*----
+* Update microlib for Xe-135
+*----
+ IF Xe XeRef <> THEN
+ LIBTMP := LIB: LIBTMP ::
+ MAXS MIX 6 XE5 <<Xe>> MIX 7 XE5 <<Xe>>
+ MIX 8 XE5 <<Xe>> MIX 9 XE5 <<Xe>> ;
+ ENDIF ;
+*----
+* Update microlib for Sm-149
+*----
+ IF Sm SmRef <> THEN
+ LIBTMP := LIB: LIBTMP ::
+ MAXS MIX 6 SM9 <<Sm>> MIX 7 SM9 <<Sm>>
+ MIX 8 SM9 <<Sm>> MIX 9 SM9 <<Sm>> ;
+ ENDIF ;
+*----
+* Update microlib for Np-239
+*----
+ IF Np NpRef <> THEN
+ LIBTMP := LIB: LIBTMP ::
+ MAXS MIX 6 NP9 <<Np>> MIX 7 NP9 <<Np>>
+ MIX 8 NP9 <<Np>> MIX 9 NP9 <<Np>> ;
+ ENDIF ;
+
+ LIBTMP := SHI: LIBTMP TRKS TLINES ;
+ SYST := ASM: LIBTMP TRKF TLINEF ;
+ CFLUX := RECOVER: EDITMP :: STEP UP <<BNAM>> STEP UP MFLUXG ;
+ CFLUX := FLU: CFLUX SYST LIBTMP TRKF ::
+ TYPE B B1 PNL IDEM ;
+ SYST := DELETE: SYST ;
+ ECHO "CELL HOMOGENEIZATION" ;
+ IF LEVEL 1 = THEN
+ EDITN := EDI: CFLUX LIBTMP TRKF ::
+ COND 0.625 MERGE COMP
+ MICR ALL
+ SAVE ON <<BNAM>> ;
+ ELSE
+ EDITN := EDI: EDITN CFLUX LIBTMP TRKF ::
+ COND 0.625 MERGE COMP
+ MICR ALL
+ SAVE ON <<BNAM>> ;
+ ENDIF ;
+
+ EDITN := BACKUP: EDITN CFLUX :: STEP UP <<BNAM>> STEP UP MFLUXG ;
+
+ IF LEVEL 1 = THEN
+ IF RNAM " " <> THEN
+ ECHO "REFLECTOR HOMOGENEIZATION" ;
+ EDITN := EDI: EDITN CFLUX LIBR TRKF ::
+ COND 0.625 MERGE MIX 0 0 0 0 1 0 0 0 0 0
+ MICR ALL
+ SAVE ON 'REFLECTR 1' ;
+ COMPOR := CPO: EDITN ::
+ STEP 'REFLECTR 1'
+ EXTRACT BMOD MB11 MB10
+ EXTRACT MWAT MO16 MD2 MH1
+ NAME <<RNAM>> ;
+ ELSE
+ COMPOR := CPO: EDITN ;
+ ENDIF ;
+ ENDIF ;
+
+ CFLUX := DELETE: CFLUX ;
+
+ EVALUATE LEVEL := LEVEL 1 + ;
+
+ENDWHILE ;
+
+*MACROSCOPIC CROSS-SECTION COMPO CREATION
+ COMPO := CPO: EDITN BRNREF ::
+ BURNUP 'REF-CASE'
+ EXTRACT BMOD MB11 MB10
+ EXTRACT CWAT CO16 CD2 CH1
+ EXTRACT MWAT MO16 MD2 MH1
+ EXTRACT XE135 XE5
+ EXTRACT SM149 SM9
+ EXTRACT NP239 NP9
+ EXTRACT FPC FU3 FU5 FP9 FP0 FP1
+ NAME <<CNAM>> ;
+
+ECHO "FLUX CALCULATION FINISHED" ;
+
+END: ;
diff --git a/Dragon/data/CFC-CELL_proc/GEOMTY.c2m b/Dragon/data/CFC-CELL_proc/GEOMTY.c2m
new file mode 100644
index 0000000..86cc50d
--- /dev/null
+++ b/Dragon/data/CFC-CELL_proc/GEOMTY.c2m
@@ -0,0 +1,359 @@
+* DRAGON GEOMETRY PROCEDURE DECK
+***********************************************************************
+* Purpose:
+* geometry definition of 2-D cell of CANDU reactor.
+*
+* author:
+* MAJID FASSI FEHRI 09/08/28
+* CNSC
+*
+* Modified:
+* Richard CHAMBON 11/02/21
+* Ecole Polytechnique
+*
+***********************************************************************
+PARAMETER TRKS TRKF TLINES TLINEF ::
+ ::: LINKED_LIST TRKS TRKF ;
+ ::: SEQ_BINARY TLINES TLINEF ; ;
+PROCEDURE CREEP ;
+LINKED_LIST GEOMS GEOMF ;
+MODULE GEO: END: NXT: ;
+
+INTEGER ICREEP ;
+REAL PtRinRef PtRoutRef PtRin PtRout OffsetY ;
+
+REAL r1 r2 r3 r4
+ a1 a2 a3 a4
+ n1 n2 n3 n4 :=
+ 0.0 1.48850 2.87550 4.33050
+ 0.0 0.0 0.26180 0.0
+ 1.0 6.0 12.0 18.0
+ ;
+REAL x101 x201 x202 x203 x204 x205 x206 x301 x302 x303 x304 x305 x306
+ x307 x308 x309 x310 x311 x312 x401 x402 x403 x404 x405 x406 x407
+ x408 x409 x410 x411 x412 x413 x414 x415 x416 x417 x418
+ ;
+
+REAL y101 y201 y202 y203 y204 y205 y206 y301 y302 y303 y304 y305 y306
+ y307 y308 y309 y310 y311 y312 y401 y402 y403 y404 y405 y406 y407
+ y408 y409 y410 y411 y412 y413 y414 y415 y416 y417 y418
+ ;
+
+REAL r101 r201 r202 r203 r204 r205 r206 r301 r302 r303 r304 r305 r306
+ r307 r308 r309 r310 r311 r312 r401 r402 r403 r404 r405 r406 r407
+ r408 r409 r410 r411 r412 r413 r414 r415 r416 r417 r418
+ ;
+
+REAL a101 a201 a202 a203 a204 a205 a206 a301 a302 a303 a304 a305 a306
+ a307 a308 a309 a310 a311 a312 a401 a402 a403 a404 a405 a406 a407
+ a408 a409 a410 a411 a412 a413 a414 a415 a416 a417 a418
+ ;
+
+REAL pi := 3.141592653589793238462 ;
+
+:: >>ICREEP<< ;
+
+ECHO "GEOMETRY CREATION STARTED" ;
+
+CREEP :: 0 >>PtRinRef<< >>PtRoutRef<< ;
+
+CREEP :: <<ICREEP>> >>PtRin<< >>PtRout<< ;
+
+EVALUATE OffsetY := PtRinRef PtRin - ;
+
+* Compute the APIN and RPIN coefficients
+* in DRAGON 3.06 XPIN and YPIN values can be provided directly
+EVALUATE x101 := r1 a1 0.0 2.0 pi * n1 / * + COS * ;
+EVALUATE x201 := r2 a2 0.0 2.0 pi * n2 / * + COS * ;
+EVALUATE x202 := r2 a2 1.0 2.0 pi * n2 / * + COS * ;
+EVALUATE x203 := r2 a2 2.0 2.0 pi * n2 / * + COS * ;
+EVALUATE x204 := r2 a2 3.0 2.0 pi * n2 / * + COS * ;
+EVALUATE x205 := r2 a2 4.0 2.0 pi * n2 / * + COS * ;
+EVALUATE x206 := r2 a2 5.0 2.0 pi * n2 / * + COS * ;
+EVALUATE x301 := r3 a3 0.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x302 := r3 a3 1.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x303 := r3 a3 2.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x304 := r3 a3 3.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x305 := r3 a3 4.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x306 := r3 a3 5.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x307 := r3 a3 6.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x308 := r3 a3 7.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x309 := r3 a3 8.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x310 := r3 a3 9.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x311 := r3 a3 10.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x312 := r3 a3 11.0 2.0 pi * n3 / * + COS * ;
+EVALUATE x401 := r4 a4 0.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x402 := r4 a4 1.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x403 := r4 a4 2.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x404 := r4 a4 3.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x405 := r4 a4 4.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x406 := r4 a4 5.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x407 := r4 a4 6.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x408 := r4 a4 7.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x409 := r4 a4 8.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x410 := r4 a4 9.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x411 := r4 a4 10.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x412 := r4 a4 11.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x413 := r4 a4 12.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x414 := r4 a4 13.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x415 := r4 a4 14.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x416 := r4 a4 15.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x417 := r4 a4 16.0 2.0 pi * n4 / * + COS * ;
+EVALUATE x418 := r4 a4 17.0 2.0 pi * n4 / * + COS * ;
+EVALUATE y101 := r1 a1 0.0 2.0 pi * n1 / * + SIN * OffsetY + ;
+EVALUATE y201 := r2 a2 0.0 2.0 pi * n2 / * + SIN * OffsetY + ;
+EVALUATE y202 := r2 a2 1.0 2.0 pi * n2 / * + SIN * OffsetY + ;
+EVALUATE y203 := r2 a2 2.0 2.0 pi * n2 / * + SIN * OffsetY + ;
+EVALUATE y204 := r2 a2 3.0 2.0 pi * n2 / * + SIN * OffsetY + ;
+EVALUATE y205 := r2 a2 4.0 2.0 pi * n2 / * + SIN * OffsetY + ;
+EVALUATE y206 := r2 a2 5.0 2.0 pi * n2 / * + SIN * OffsetY + ;
+EVALUATE y301 := r3 a3 0.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y302 := r3 a3 1.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y303 := r3 a3 2.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y304 := r3 a3 3.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y305 := r3 a3 4.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y306 := r3 a3 5.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y307 := r3 a3 6.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y308 := r3 a3 7.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y309 := r3 a3 8.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y310 := r3 a3 9.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y311 := r3 a3 10.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y312 := r3 a3 11.0 2.0 pi * n3 / * + SIN * OffsetY + ;
+EVALUATE y401 := r4 a4 0.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y402 := r4 a4 1.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y403 := r4 a4 2.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y404 := r4 a4 3.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y405 := r4 a4 4.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y406 := r4 a4 5.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y407 := r4 a4 6.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y408 := r4 a4 7.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y409 := r4 a4 8.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y410 := r4 a4 9.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y411 := r4 a4 10.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y412 := r4 a4 11.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y413 := r4 a4 12.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y414 := r4 a4 13.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y415 := r4 a4 14.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y416 := r4 a4 15.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y417 := r4 a4 16.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE y418 := r4 a4 17.0 2.0 pi * n4 / * + SIN * OffsetY + ;
+EVALUATE r101 := x101 2. ** y101 2.0 ** + 0.5 ** ;
+EVALUATE r201 := x201 2. ** y201 2.0 ** + 0.5 ** ;
+EVALUATE r202 := x202 2. ** y202 2.0 ** + 0.5 ** ;
+EVALUATE r203 := x203 2. ** y203 2.0 ** + 0.5 ** ;
+EVALUATE r204 := x204 2. ** y204 2.0 ** + 0.5 ** ;
+EVALUATE r205 := x205 2. ** y205 2.0 ** + 0.5 ** ;
+EVALUATE r206 := x206 2. ** y206 2.0 ** + 0.5 ** ;
+EVALUATE r301 := x301 2. ** y301 2.0 ** + 0.5 ** ;
+EVALUATE r302 := x302 2. ** y302 2.0 ** + 0.5 ** ;
+EVALUATE r303 := x303 2. ** y303 2.0 ** + 0.5 ** ;
+EVALUATE r304 := x304 2. ** y304 2.0 ** + 0.5 ** ;
+EVALUATE r305 := x305 2. ** y305 2.0 ** + 0.5 ** ;
+EVALUATE r306 := x306 2. ** y306 2.0 ** + 0.5 ** ;
+EVALUATE r307 := x307 2. ** y307 2.0 ** + 0.5 ** ;
+EVALUATE r308 := x308 2. ** y308 2.0 ** + 0.5 ** ;
+EVALUATE r309 := x309 2. ** y309 2.0 ** + 0.5 ** ;
+EVALUATE r310 := x310 2. ** y310 2.0 ** + 0.5 ** ;
+EVALUATE r311 := x311 2. ** y311 2.0 ** + 0.5 ** ;
+EVALUATE r312 := x312 2. ** y312 2.0 ** + 0.5 ** ;
+EVALUATE r401 := x401 2. ** y401 2.0 ** + 0.5 ** ;
+EVALUATE r402 := x402 2. ** y402 2.0 ** + 0.5 ** ;
+EVALUATE r403 := x403 2. ** y403 2.0 ** + 0.5 ** ;
+EVALUATE r404 := x404 2. ** y404 2.0 ** + 0.5 ** ;
+EVALUATE r405 := x405 2. ** y405 2.0 ** + 0.5 ** ;
+EVALUATE r406 := x406 2. ** y406 2.0 ** + 0.5 ** ;
+EVALUATE r407 := x407 2. ** y407 2.0 ** + 0.5 ** ;
+EVALUATE r408 := x408 2. ** y408 2.0 ** + 0.5 ** ;
+EVALUATE r409 := x409 2. ** y409 2.0 ** + 0.5 ** ;
+EVALUATE r410 := x410 2. ** y410 2.0 ** + 0.5 ** ;
+EVALUATE r411 := x411 2. ** y411 2.0 ** + 0.5 ** ;
+EVALUATE r412 := x412 2. ** y412 2.0 ** + 0.5 ** ;
+EVALUATE r413 := x413 2. ** y413 2.0 ** + 0.5 ** ;
+EVALUATE r414 := x414 2. ** y414 2.0 ** + 0.5 ** ;
+EVALUATE r415 := x415 2. ** y415 2.0 ** + 0.5 ** ;
+EVALUATE r416 := x416 2. ** y416 2.0 ** + 0.5 ** ;
+EVALUATE r417 := x417 2. ** y417 2.0 ** + 0.5 ** ;
+EVALUATE r418 := x418 2. ** y418 2.0 ** + 0.5 ** ;
+IF r101 0.0 = THEN
+EVALUATE a101 := 0.0 ;
+ELSE
+EVALUATE a101 := x101 r101 / ARCCOS ;
+ENDIF ;
+EVALUATE a201 := x201 r201 / ARCCOS ;
+EVALUATE a202 := x202 r202 / ARCCOS ;
+EVALUATE a203 := x203 r203 / ARCCOS ;
+EVALUATE a204 := x204 r204 / ARCCOS ;
+EVALUATE a205 := x205 r205 / ARCCOS ;
+EVALUATE a206 := x206 r206 / ARCCOS ;
+EVALUATE a301 := x301 r301 / ARCCOS ;
+EVALUATE a302 := x302 r302 / ARCCOS ;
+EVALUATE a303 := x303 r303 / ARCCOS ;
+EVALUATE a304 := x304 r304 / ARCCOS ;
+EVALUATE a305 := x305 r305 / ARCCOS ;
+EVALUATE a306 := x306 r306 / ARCCOS ;
+EVALUATE a307 := x307 r307 / ARCCOS ;
+EVALUATE a308 := x308 r308 / ARCCOS ;
+EVALUATE a309 := x309 r309 / ARCCOS ;
+EVALUATE a310 := x310 r310 / ARCCOS ;
+EVALUATE a311 := x311 r311 / ARCCOS ;
+EVALUATE a312 := x312 r312 / ARCCOS ;
+EVALUATE a401 := x401 r401 / ARCCOS ;
+EVALUATE a402 := x402 r402 / ARCCOS ;
+EVALUATE a403 := x403 r403 / ARCCOS ;
+EVALUATE a404 := x404 r404 / ARCCOS ;
+EVALUATE a405 := x405 r405 / ARCCOS ;
+EVALUATE a406 := x406 r406 / ARCCOS ;
+EVALUATE a407 := x407 r407 / ARCCOS ;
+EVALUATE a408 := x408 r408 / ARCCOS ;
+EVALUATE a409 := x409 r409 / ARCCOS ;
+EVALUATE a410 := x410 r410 / ARCCOS ;
+EVALUATE a411 := x411 r411 / ARCCOS ;
+EVALUATE a412 := x412 r412 / ARCCOS ;
+EVALUATE a413 := x413 r413 / ARCCOS ;
+EVALUATE a414 := x414 r414 / ARCCOS ;
+EVALUATE a415 := x415 r415 / ARCCOS ;
+EVALUATE a416 := x416 r416 / ARCCOS ;
+EVALUATE a417 := x417 r417 / ARCCOS ;
+EVALUATE a418 := x418 r418 / ARCCOS ;
+IF y101 0.0 < THEN EVALUATE a101 := a101 -1. * ; ENDIF ;
+IF y201 0.0 < THEN EVALUATE a201 := a201 -1. * ; ENDIF ;
+IF y202 0.0 < THEN EVALUATE a202 := a202 -1. * ; ENDIF ;
+IF y203 0.0 < THEN EVALUATE a203 := a203 -1. * ; ENDIF ;
+IF y204 0.0 < THEN EVALUATE a204 := a204 -1. * ; ENDIF ;
+IF y205 0.0 < THEN EVALUATE a205 := a205 -1. * ; ENDIF ;
+IF y206 0.0 < THEN EVALUATE a206 := a206 -1. * ; ENDIF ;
+IF y301 0.0 < THEN EVALUATE a301 := a301 -1. * ; ENDIF ;
+IF y302 0.0 < THEN EVALUATE a302 := a302 -1. * ; ENDIF ;
+IF y303 0.0 < THEN EVALUATE a303 := a303 -1. * ; ENDIF ;
+IF y304 0.0 < THEN EVALUATE a304 := a304 -1. * ; ENDIF ;
+IF y305 0.0 < THEN EVALUATE a305 := a305 -1. * ; ENDIF ;
+IF y306 0.0 < THEN EVALUATE a306 := a306 -1. * ; ENDIF ;
+IF y307 0.0 < THEN EVALUATE a307 := a307 -1. * ; ENDIF ;
+IF y308 0.0 < THEN EVALUATE a308 := a308 -1. * ; ENDIF ;
+IF y309 0.0 < THEN EVALUATE a309 := a309 -1. * ; ENDIF ;
+IF y310 0.0 < THEN EVALUATE a310 := a310 -1. * ; ENDIF ;
+IF y311 0.0 < THEN EVALUATE a311 := a311 -1. * ; ENDIF ;
+IF y312 0.0 < THEN EVALUATE a312 := a312 -1. * ; ENDIF ;
+IF y401 0.0 < THEN EVALUATE a401 := a401 -1. * ; ENDIF ;
+IF y402 0.0 < THEN EVALUATE a402 := a402 -1. * ; ENDIF ;
+IF y403 0.0 < THEN EVALUATE a403 := a403 -1. * ; ENDIF ;
+IF y404 0.0 < THEN EVALUATE a404 := a404 -1. * ; ENDIF ;
+IF y405 0.0 < THEN EVALUATE a405 := a405 -1. * ; ENDIF ;
+IF y406 0.0 < THEN EVALUATE a406 := a406 -1. * ; ENDIF ;
+IF y407 0.0 < THEN EVALUATE a407 := a407 -1. * ; ENDIF ;
+IF y408 0.0 < THEN EVALUATE a408 := a408 -1. * ; ENDIF ;
+IF y409 0.0 < THEN EVALUATE a409 := a409 -1. * ; ENDIF ;
+IF y410 0.0 < THEN EVALUATE a410 := a410 -1. * ; ENDIF ;
+IF y411 0.0 < THEN EVALUATE a411 := a411 -1. * ; ENDIF ;
+IF y412 0.0 < THEN EVALUATE a412 := a412 -1. * ; ENDIF ;
+IF y413 0.0 < THEN EVALUATE a413 := a413 -1. * ; ENDIF ;
+IF y414 0.0 < THEN EVALUATE a414 := a414 -1. * ; ENDIF ;
+IF y415 0.0 < THEN EVALUATE a415 := a415 -1. * ; ENDIF ;
+IF y416 0.0 < THEN EVALUATE a416 := a416 -1. * ; ENDIF ;
+IF y417 0.0 < THEN EVALUATE a417 := a417 -1. * ; ENDIF ;
+IF y418 0.0 < THEN EVALUATE a418 := a418 -1. * ; ENDIF ;
+
+ECHO "OFFSETY " OffsetY ;
+
+* END: ;
+* SELF-SHIELDING GEOMETRY
+GEOMS := GEO: :: CARCEL 6 1 1
+ EDIT 1
+ X- REFL MESHX -14.2875 14.2875 X+ REFL
+ Y- TRAN MESHY -14.2875 14.2875 Y+ TRAN
+ RADIUS 0.00000 2.16175 <<PtRin>>
+ <<PtRout>> 6.44780 6.58750 10.43700
+ MIX 1 1 2 3 4 5 5
+ CLUSTER ROD1 ROD2 ROD3 ROD4
+ ::: ROD1 := GEO: TUBE 2
+ MIX 6 10
+ NPIN 1
+ RPIN <<r101>>
+ APIN <<a101>>
+ RADIUS 0.00000 0.61220 0.65400 ;
+ ::: ROD2 := GEO: TUBE 2
+ MIX 7 10
+ NPIN 6
+ RPIN <<r201>> <<r202>> <<r203>> <<r204>> <<r205>> <<r206>>
+ APIN <<a201>> <<a202>> <<a203>> <<a204>> <<a205>> <<a206>>
+ RADIUS 0.00000 0.61220 0.65400 ;
+ ::: ROD3 := GEO: TUBE 2
+ MIX 8 10
+ NPIN 12
+ RPIN <<r301>> <<r302>> <<r303>> <<r304>> <<r305>> <<r306>>
+ <<r307>> <<r308>> <<r309>> <<r310>> <<r311>> <<r312>>
+ APIN <<a301>> <<a302>> <<a303>> <<a304>> <<a305>> <<a306>>
+ <<a307>> <<a308>> <<a309>> <<a310>> <<a311>> <<a312>>
+ RADIUS 0.00000 0.61220 0.65400 ;
+ ::: ROD4 := GEO: TUBE 2
+ MIX 9 10
+ NPIN 18
+ RPIN <<r401>> <<r402>> <<r403>> <<r404>> <<r405>> <<r406>>
+ <<r407>> <<r408>> <<r409>> <<r410>> <<r411>> <<r412>>
+ <<r413>> <<r414>> <<r415>> <<r416>> <<r417>> <<r418>>
+ APIN <<a401>> <<a402>> <<a403>> <<a404>> <<a405>> <<a406>>
+ <<a407>> <<a408>> <<a409>> <<a410>> <<a411>> <<a412>>
+ <<a413>> <<a414>> <<a415>> <<a416>> <<a417>> <<a418>>
+ RADIUS 0.00000 0.61220 0.65400 ;
+;
+
+* FLUX GEOMETRY
+GEOMF := GEO: :: CARCEL 9 1 1
+ EDIT 0
+ X- REFL MESHX -14.2875 14.2875 X+ REFL
+ Y- TRAN MESHY -14.2875 14.2875 Y+ TRAN
+ RADIUS 0.00000 0.72425 2.16175 3.60300 5.076700
+ <<PtRin>> <<PtRout>> 6.44780 6.58750 10.43700
+ MIX 1 1 1 1 1 2 3 4 5 5
+ CLUSTER ROD1 ROD2 ROD3 ROD4
+ ::: ROD1 := GEO: TUBE 2
+ MIX 6 10
+ NPIN 1
+ RPIN <<r101>>
+ APIN <<a101>>
+ RADIUS 0.00000 0.61220 0.65400 ;
+ ::: ROD2 := GEO: TUBE 2
+ MIX 7 10
+ NPIN 6
+ RPIN <<r201>> <<r202>> <<r203>> <<r204>> <<r205>> <<r206>>
+ APIN <<a201>> <<a202>> <<a203>> <<a204>> <<a205>> <<a206>>
+ RADIUS 0.00000 0.61220 0.65400 ;
+ ::: ROD3 := GEO: TUBE 2
+ MIX 8 10
+ NPIN 12
+ RPIN <<r301>> <<r302>> <<r303>> <<r304>> <<r305>> <<r306>>
+ <<r307>> <<r308>> <<r309>> <<r310>> <<r311>> <<r312>>
+ APIN <<a301>> <<a302>> <<a303>> <<a304>> <<a305>> <<a306>>
+ <<a307>> <<a308>> <<a309>> <<a310>> <<a311>> <<a312>>
+ RADIUS 0.00000 0.61220 0.65400 ;
+ ::: ROD4 := GEO: TUBE 2
+ MIX 9 10
+ NPIN 18
+ RPIN <<r401>> <<r402>> <<r403>> <<r404>> <<r405>> <<r406>>
+ <<r407>> <<r408>> <<r409>> <<r410>> <<r411>> <<r412>>
+ <<r413>> <<r414>> <<r415>> <<r416>> <<r417>> <<r418>>
+ APIN <<a401>> <<a402>> <<a403>> <<a404>> <<a405>> <<a406>>
+ <<a407>> <<a408>> <<a409>> <<a410>> <<a411>> <<a412>>
+ <<a413>> <<a414>> <<a415>> <<a416>> <<a417>> <<a418>>
+ RADIUS 0.00000 0.61220 0.65400 ;
+;
+
+* TRACKING FOR SELF-SHIELDING
+
+TRKS TLINES := NXT: GEOMS ::
+EDIT 0
+TITLE 'C6CELLS'
+TISO 11 15.0
+;
+
+* TRACKING FOR FLUX
+
+TRKF TLINEF := NXT: GEOMF ::
+EDIT 0
+TITLE 'C6CELLF'
+TISO 15 30.0
+;
+
+ECHO "GEOMETRY CREATION FINISHED" ;
+
+END: ;
diff --git a/Dragon/data/CFC-CELL_proc/LIBRY.c2m b/Dragon/data/CFC-CELL_proc/LIBRY.c2m
new file mode 100644
index 0000000..1e1af23
--- /dev/null
+++ b/Dragon/data/CFC-CELL_proc/LIBRY.c2m
@@ -0,0 +1,238 @@
+* DRAGON CROSS-SECTION LIBRARY PROCEDURE DECK
+***********************************************************************
+* Purpose:
+* define properties values of the mixtures.
+*
+* author:
+* MAJID FASSI FEHRI 09/08/31
+* CNSC
+*
+* Modified:
+* Richard CHAMBON 11/02/24
+* Ecole Polytechnique
+*
+***********************************************************************
+PARAMETER LIBR ::
+ ::: LINKED_LIST LIBR ; ;
+MODULE END: INFO: LIB: ;
+INTEGER CALCU ;
+STRING LIBNAM := "E6MLIB" ;
+PROCEDURE PERTRB ;
+REAL TFuel TCool TMode DCool DMode
+ PCool PMode Bor Xe Sm Np Gad XeRef SmRef NpRef ;
+REAL FWGTU5 FWGTU8 FWGTO16 CWGTH1 CWGTD2 CWGTO16
+ MWGTH1 MWGTD2 MWGTO16 ;
+REAL PTtemp PTdens Gaptemp Gapdens CTtemp CTdens
+ Shtemp Shdens Fdens ;
+REAL BWGT0 BWGT1 GWGT5 GWGT7 ;
+REAL XWGT5 SWGT9 NWGT9 ;
+
+ECHO "LIBRY PROCEDURE" ;
+
+* Get current calculation value
+:: >>CALCU<< ;
+
+* Get current properties values
+PERTRB :: <<CALCU>>
+ >>TFuel<< >>TCool<< >>TMode<< >>DCool<< >>DMode<<
+ >>PCool<< >>PMode<< >>Bor<< >>Xe<< >>Sm<< >>Np<<
+ >>Gad<< ;
+
+* Set non-changing properties values
+EVALUATE Fdens := 10.39475 ;
+EVALUATE Shdens := 6.3918 ;
+EVALUATE PTdens := 6.57 ;
+EVALUATE CTdens := 6.44 ;
+EVALUATE Gapdens := 0.00118 ;
+EVALUATE Shtemp := TCool 5.0 + ;
+EVALUATE PTtemp := TCool 2.0 - ;
+EVALUATE CTtemp := TMode 2.0 + ;
+EVALUATE Gaptemp := PTtemp CTtemp + 2.0 / ;
+
+* Change units fron fraction to percent
+EVALUATE BWGT0 := 0.199 ;
+! EVALUATE BWGT0 := BWGT0 0.000109 * Bor * ;
+EVALUATE BWGT0 := BWGT0 Bor * 100.0 * ;
+EVALUATE BWGT1 := 0.801 ;
+! EVALUATE BWGT1 := BWGT1 0.000109 * Bor * ;
+EVALUATE BWGT1 := BWGT1 Bor * 100.0 * ;
+EVALUATE GWGT5 := 0.482837 ;
+! EVALUATE GWGT5 := GWGT5 0.000033 * Gad * ;
+EVALUATE GWGT5 := GWGT5 Gad * 100.0 * ;
+EVALUATE GWGT7 := 0.517163 ;
+! EVALUATE GWGT7 := GWGT7 0.000033 * Gad * ;
+EVALUATE GWGT7 := GWGT7 Gad * 100.0 * ;
+* Arbitrary coefficients
+EVALUATE XWGT5 := Xe 0.00001 * ;
+EVALUATE SWGT9 := Sm 0.00001 * ;
+EVALUATE NWGT9 := Np 0.00001 * ;
+
+*----
+* FUEL WGT%
+*----
+INFO: :: EDIT 0
+ TMP: <<TFuel>> K
+ ENR: 0.711 WGT%
+ LIB: WIMSAECL FIL: <<LIBNAM>>
+ ISO: 3 U235 U238 O16
+ CALC WGT% UO2 >>FWGTU5<< >>FWGTU8<< >>FWGTO16<< ;
+
+
+*----
+* Coolant WGT%
+*----
+INFO: :: EDIT 0
+ TMP: <<TCool>> K
+ PUR: <<PCool>> WGT%
+ LIB: WIMSAECL FIL: <<LIBNAM>>
+ ISO: 3 H1H2O DD2O O16
+ CALC WGT% D2O >>CWGTH1<< >>CWGTD2<< >>CWGTO16<< ;
+
+
+*----
+* Moderator WGT%
+*----
+INFO: :: EDIT 0
+ TMP: <<TMode>> K
+ PUR: <<PMode>> WGT%
+ LIB: WIMSAECL FIL: <<LIBNAM>>
+ ISO: 3 H1H2O DD2O O16
+ CALC WGT% D2O >>MWGTH1<< >>MWGTD2<< >>MWGTO16<< ;
+
+ECHO "PARAMETERS USED" ;
+ECHO FWGTU5 FWGTU8 FWGTO16 ;
+ECHO CWGTH1 CWGTD2 CWGTO16 ;
+ECHO MWGTH1 MWGTD2 MWGTO16 ;
+ECHO XWGT5 SWGT9 NWGT9 ;
+ECHO BWGT0 BWGT1 GWGT5 GWGT7 ;
+ECHO "PARAMETERS USED SUITE" ;
+ECHO PCool PMode Bor Xe Sm Np Gad ;
+ECHO DCool DMode Fdens Shdens PTdens CTdens Gapdens ;
+ECHO TCool TMode TFuel Shtemp PTtemp CTtemp Gaptemp ;
+
+ECHO "LIBRARY CREATION STARTED" ;
+
+*----
+* Create library
+*----
+LIBR := LIB: ::
+ EDIT 0
+ NMIX 10
+ CTRA WIMS
+ DEPL LIB: WIMSAECL FIL: <<LIBNAM>>
+ MIXS LIB: WIMSAECL FIL: <<LIBNAM>>
+
+* Coolant
+ MIX 1 <<TCool>> <<DCool>>
+ CH1 = H1H2O <<CWGTH1>>
+ CD2 = DD2O <<CWGTD2>>
+ CO16 = O16 <<CWGTO16>>
+
+* Pressure tube
+ MIX 2 <<PTtemp>> <<PTdens>>
+ ZR90PT 49.3443000
+ ZR91PT 10.8805220
+ ZR92PT 16.8136710
+ ZR94PT 17.4101970
+ ZR96PT 2.8645910
+ NB93 2.5800000
+ FE54 0.0026659
+ FE56 0.0429768
+ FE57 0.0010016
+ FE58 0.0001359
+ CR50 0.0003376
+ CR52 0.0067696
+ CR53 0.0007823
+ CR54 0.0001984
+ NI58 0.0024819
+ NI60 0.0009815
+ NI64 0.0000365
+ B10 0.0000243
+
+* Gap
+ MIX 3 <<Gaptemp>> <<Gapdens>>
+ C 27.11
+ O16 72.89
+
+* Calendria tube
+ MIX 4 <<CTtemp>> <<CTdens>>
+ ZR90CT 49.7984827
+ ZR91CT 10.9806700
+ ZR92CT 16.9684300
+ ZR94CT 17.5704469
+ ZR96CT 2.8909577
+ FE54 0.0076934
+ FE56 0.1240245
+ FE57 0.0028905
+ FE58 0.0003921
+ NI58 0.0390021
+ NI60 0.0154242
+ NI64 0.0005736
+ CR50 0.0041737
+ CR52 0.0836990
+ CR53 0.0096726
+ CR54 0.0024534
+ B10 0.0000596
+
+* Moderator
+ MIX 5 <<TMode>> <<DMode>>
+ MH1 = H1H2O <<MWGTH1>>
+ MD2 = DD2O <<MWGTD2>>
+ MO16 = O16 <<MWGTO16>>
+ MB10 = B10 <<BWGT0>>
+ MB11 = B11 <<BWGT1>>
+ MG5 = GD155 <<GWGT5>>
+ MG7 = GD157 <<GWGT7>>
+
+* Central Ring Fuel
+ MIX 6 <<TFuel>> <<Fdens>>
+ FU3 = U233 0.0 1
+ FU4 = U234 0.0 1
+ FU5 = U235 <<FWGTU5>> 1
+ FU6 = U236 0.0 1
+ FU8 = U238 <<FWGTU8>> 1
+ FO16 = O16 <<FWGTO16>>
+ FP9 = PU239 0.0 1
+ FP0 = PU240 0.0 1
+ FP1 = PU241 0.0 1
+ FP2 = PU242 0.0 1
+ AM241 0.0 1
+ AM242M 0.0 1
+ AM243 0.0 1
+ NP9 = NP239 <<NWGT9>>
+ XE5 = XE135 <<XWGT5>>
+ SM9 = SM149 <<SWGT9>>
+
+* Inner Ring Fuel
+ MIX 7 COMB 6 1.0
+
+* Intermediate Ring Fuel
+ MIX 8 COMB 6 1.0
+
+* Outer Ring Fuel
+ MIX 9 COMB 6 1.0
+
+* Sheath
+ MIX 10 <<Shtemp>> <<Shdens>>
+ ZR90CL 49.7847918
+ ZR91CL 10.9776511
+ ZR92CL 16.9637650
+ ZR94CL 17.5656164
+ ZR96CL 2.8901629
+ FE54 0.0119675
+ FE56 0.1929270
+ FE57 0.0044963
+ FE58 0.0006100
+ NI58 0.0049639
+ NI60 0.0019631
+ NI64 0.0000730
+ CR50 0.0041737
+ CR52 0.0836990
+ CR53 0.0096726
+ CR54 0.0024534
+ B10 0.0000596
+;
+
+ECHO "LIBRARY CREATION FINISHED" ;
+
+END: ;
diff --git a/Dragon/data/CFC-CELL_proc/PERTRB.c2m b/Dragon/data/CFC-CELL_proc/PERTRB.c2m
new file mode 100644
index 0000000..e308ee0
--- /dev/null
+++ b/Dragon/data/CFC-CELL_proc/PERTRB.c2m
@@ -0,0 +1,114 @@
+* DRAGON PARAMETERS PERTUBATION PROCEDURE DECK
+***********************************************************************
+* Purpose:
+* set nominal and pertubed properties for cross-section of 2-D/3-D cell
+* of CANDU reactor.
+*
+* author:
+* MAJID FASSI FEHRI 09/08/31
+* CNSC
+*
+* Modified:
+* Richard CHAMBON 11/02/24
+* Ecole Polytechnique
+*
+* Note:
+* - Boron value are in fraction of weight of the moderator
+* i.e.: 1.E-6 = 1ppm
+*
+* - by default (CALCU>0) only current values of properties are returned
+* - for CALCU=0 nominal properties and their range of perturbation are
+* returned.
+*
+***********************************************************************
+MODULE END: ;
+INTEGER CALCU ;
+* Nominal values
+REAL TFuel TCool TMode DCool DMode
+ PCool PMode Bor Xe Sm Np Gad :=
+ 960.15 562.15 346.15 0.8064 1.08288
+ 98.6938 99.966 1.0E-20 1.0E-20 1.0E-20 1.0E-20 1.0E-20 ;
+* Perturbated values
+REAL TFuelU TFuelD := 2073.15 303.15 ;
+REAL TCoolU TCoolD := 1023.15 303.15 ;
+REAL TModeU TModeD := 364.15 303.15 ;
+REAL DCoolU DCoolD := DCool 1.5 * DCool 0.00001 * ;
+REAL DModeU DModeD := DMode 1.1 * DMode 0.7 * ;
+REAL PModeD := 99.48 ;
+REAL BorU XeU SmU NpU :=
+ 1.5E-5 1.0E-20 1.0E-20 1.0E-20
+;
+
+* Temporary values
+REAL TFuelP TCoolP TModeP DCoolP DModeP
+ PCoolP PModeP BorP XeP SmP NpP GadP ;
+
+:: >>CALCU<< ;
+
+ECHO "PERTURBATION STARTED" ;
+
+EVALUATE TFuelP := TFuel ;
+EVALUATE TCoolP := TCool ;
+EVALUATE TModeP := TMode ;
+EVALUATE DCoolP := DCool ;
+EVALUATE DModeP := DMode ;
+EVALUATE PCoolP := PCool ;
+EVALUATE PModeP := PMode ;
+EVALUATE BorP := Bor ;
+EVALUATE XeP := Xe ;
+EVALUATE SmP := Sm ;
+EVALUATE NpP := Np ;
+EVALUATE GadP := Gad ;
+
+IF CALCU 2 = THEN
+ EVALUATE TFuelP := TFuelU ;
+ELSEIF CALCU 3 = THEN
+ EVALUATE TFuelP := TFuelD ;
+ELSEIF CALCU 4 = THEN
+ EVALUATE TCoolP := TCoolU ;
+ELSEIF CALCU 5 = THEN
+ EVALUATE TCoolP := TCoolD ;
+ELSEIF CALCU 6 = THEN
+ EVALUATE TModeP := TModeU ;
+ELSEIF CALCU 7 = THEN
+ EVALUATE TModeP := TModeD ;
+ELSEIF CALCU 8 = THEN
+ EVALUATE DCoolP := DCoolU ;
+ELSEIF CALCU 9 = THEN
+ EVALUATE DCoolP := DCoolD ;
+ELSEIF CALCU 10 = THEN
+ EVALUATE DModeP := DModeU ;
+ELSEIF CALCU 11 = THEN
+ EVALUATE DModeP := DModeD ;
+ELSEIF CALCU 12 = THEN
+ EVALUATE BorP := BorU ;
+ELSEIF CALCU 13 = THEN
+ EVALUATE PModeP := PModeD ;
+ELSEIF CALCU 14 = THEN
+ EVALUATE XeP := XeU ;
+ELSEIF CALCU 15 = THEN
+ EVALUATE SmP := SmU ;
+ELSEIF CALCU 16 = THEN
+ EVALUATE NpP := NpU ;
+ELSEIF CALCU 17 = THEN
+ EVALUATE TFuelP := TFuelU ;
+ EVALUATE DCoolP := DCoolD ;
+ELSEIF CALCU 18 = THEN
+ EVALUATE DCoolP := DCoolD ;
+ EVALUATE TCoolP := TCoolU ;
+ENDIF ;
+
+:: <<TFuelP>> <<TCoolP>> <<TModeP>> <<DCoolP>> <<DModeP>>
+ <<PCoolP>> <<PModeP>> <<BorP>> <<XeP>> <<SmP>> <<NpP>>
+ <<GadP>> ;
+
+* Needed for the CFC: module only
+IF CALCU 0 = THEN
+:: <<TFuelU>> <<TFuelD>> <<TCoolU>> <<TCoolD>> <<TModeU>> <<TModeD>>
+ <<DCoolU>> <<DCoolD>> <<DModeU>> <<DModeD>> <<PModeD>>
+ <<BorU>> <<XeU>> <<SmU>> <<NpU>> ;
+ENDIF ;
+
+ECHO "PERTURBATION FINISHED" ;
+
+END: ;
diff --git a/Dragon/data/CFC-CELL_proc/POWER.c2m b/Dragon/data/CFC-CELL_proc/POWER.c2m
new file mode 100644
index 0000000..ea6ca7d
--- /dev/null
+++ b/Dragon/data/CFC-CELL_proc/POWER.c2m
@@ -0,0 +1,67 @@
+* DRAGON POWER PROCEDURE DECK
+***********************************************************************
+* Purpose:
+* set nominal and pertubed power for cross-section of 2-D cell
+* of CANDU reactor.
+*
+* author:
+* MAJID FASSI FEHRI 09/09/10
+* CNSC
+*
+* Modified:
+* Richard CHAMBON 11/04/29
+* Ecole Polytechnique
+*
+* Note:
+* - by default (CALCU>0) only current and nominal values of properties
+* are returned
+* - for CALCU=0 nominal bundle power and its range of perturbation are
+* returned.
+* PowFB = 0 power feedback is NOT computed in the FBM database
+* in that case arbitrary values of power are used in CFC
+* to compute feedback coeficients all equal to 0
+* = 1 power feedback is computed in the FBM database
+*
+***********************************************************************
+REAL POW PowRef PowU PowI PowD ;
+REAL PowBundRef PowBundU PowBundI PowBundD ;
+INTEGER CALCU ;
+INTEGER PowFB := 1 ;
+MODULE END: ;
+IF PowFB 0 = THEN
+EVALUATE PowRef PowU PowI PowD :=
+ 31.9713 31.9713 31.9713 31.9713 ;
+ELSE
+EVALUATE PowRef PowU PowI PowD :=
+ 31.9713 49.3866 27.2926 3.4656 ;
+ENDIF ;
+EVALUATE PowBundRef := 615.0 ;
+IF PowFB 0 = THEN
+EVALUATE PowBundU := PowRef 1.5 * ;
+EVALUATE PowBundI := PowRef 0.8 * ;
+EVALUATE PowBundD := PowRef 0.15 * ;
+ELSE
+EVALUATE PowBundU := PowBundRef PowU * PowRef / ;
+EVALUATE PowBundI := PowBundRef PowI * PowRef / ;
+EVALUATE PowBundD := PowBundRef PowD * PowRef / ;
+ENDIF ;
+
+:: >>CALCU<< ;
+
+IF CALCU 21 = THEN
+ EVALUATE POW := PowD ;
+ELSEIF CALCU 20 = THEN
+ EVALUATE POW := PowI ;
+ELSEIF CALCU 19 = THEN
+ EVALUATE POW := PowU ;
+ELSE
+ EVALUATE POW := PowRef ;
+ENDIF ;
+
+:: <<POW>> <<PowRef>> ;
+
+* Needed for the CFC: module only
+IF CALCU 0 = THEN
+ :: <<PowBundRef>> <<PowBundU>> <<PowBundI>> <<PowBundD>> ;
+ENDIF ;
+END: ;