*---- * Nom : rep900HA_mco.x2m * Auteur : Benjamin Toueg * modified : R. Chambon * Modified for GFF and Heterogenous multicompo * PWR branch calculation and production of a Multicompo * Le Tellier extended type *---- * Define STRUCTURES and MODULES used *---- ************************************************************************ * BEGIN DECLARATION * * INTEGER istep iautop ; LINKED_LIST GEOSS GEON1 GEON2 TRACKSS TRACKN1 TRACKN2 FLUX1 LIBRARY LIBRARY2 LIBEQ DONNEES MICLIB BURN164 FLUX2 LIBHOM COMPO ALLGEO ; SEQ_BINARY TRKFILN2 ; SEQ_ASCII ACOMPO ABURN164 ADONNEES AALLGEO :: FILE './ACOMPO' './ABURN164' './ADONNEES' './AALLGEO' ; SEQ_ASCII AFLU ALIB ATRK ALB2 ABUR :: FILE './AFLU' './ALIB' './ATRK' './ALB2' './ABUR' ; SEQ_ASCII AEDI AG2.ps :: FILE './AEDI' './AG2.ps' ; MODULE LIB: GEO: SYBILT: EXCELT: MCCGT: DELETE: GREP: NXT: BIVACT: END: EVO: UTL: COMPO: ABORT: PSP: ; PROCEDURE Geo_N1_32 Geo_N2_32H Geo_SS_32 GetDim Mix_MOX_32 Mix_UOX_32 ConcLIBRARY2 Homogenize BranchFluxH CalcFluxH ConcLIBEQ GeoHom IniCompo AddCompo ; INTEGER ldebug := 0 ; !0 for normal, 1 for shortcut *---- * Choix des options de calcul *---- STRING TypeCal := "Public" ; ! EDF with APOLIB ou Public with DRAGLIB STRING Fuel := "UOX" ; ! UOX/MOX STRING TypeCompo := "All" ; ! One of the following choice: ! PinByPin, Assembly, Heter1, Heter2, All INTEGER NbRegions := 32 ; ! 32 pour le MOX, 20 ou 32 pour l'UOX STRING Library := "DLIBJ3_281" ; STRING SelOpt := "NONE" ; ! Selengut option for SPH: module ! NONE / STD / SELE_FD / SELE_GAP / EDF (see IGE335 for details) STRING Gff := "Yes" ; ! Store GFF ! Yes / No *---- * Calculation data *---- REAL Kinf1 Kinf2 Keff2 B2 ; INTEGER iBoreMax := 1 ; !5 !2 INTEGER iAutopMax := 8 ; !8 INTEGER iTfMax := 1 ; !3 INTEGER iTcaMax := 1 ; !3 INTEGER iDcaMax := 1 ; !3 REAL Rcomb1 Rcomb2 Rcomb3 Rcomb4 R_int_TG R_ext_TG R_int_TI R_ext_TI R_int_G R_ext_G Cote Lame CoteL RmodeN1 RmodeN2 R_ext_G2 R_ext_TGm R_ext_TIm N_U5_UOX N_U5_MOX N_Pu8 N_Pu9 N_Pu0 N_Pu1 N_Pu2 N_Am1 densU_UOX densU_MOX densPu_MOX teneur1_Pu teneur2_Pu teneur3_Pu temp_comb temp_mode dens_mod temp_comb_0 temp_mode_0 dens_mod_0 pbore ; REAL Tbeg Tend BUbeg BUend BUnextSS ; REAL Fuelpwr := 38.425 ; ! W/g ou kW/kg ou MW/t STRING NameDirAss NameDirPin NameDirHt1 NameDirHt2 := "EDI2A" "EDI2B" "EDI2C" "EDI2D" ; ************************************************************************ * BEGIN VALUES EVALUATION * * REAL pbore_0 := 600. ; ! natural boron concentration in ppm IF TypeCal "Public" = THEN GetDim :: >>Rcomb1<< >>Rcomb2<< >>Rcomb3<< >>Rcomb4<< >>R_int_TG<< >>R_ext_TG<< >>R_int_TI<< >>R_ext_TI<< >>R_int_G<< >>R_ext_G<< >>Cote<< >>Lame<< >>CoteL<< >>RmodeN1<< >>RmodeN2<< >>R_ext_G2<< >>R_ext_TGm<< >>R_ext_TIm<< >>N_U5_UOX<< >>N_U5_MOX<< >>N_Pu8<< >>N_Pu9<< >>N_Pu0<< >>N_Pu1<< >>N_Pu2<< >>N_Am1<< >>densU_UOX<< >>densU_MOX<< >>densPu_MOX<< >>teneur1_Pu<< >>teneur2_Pu<< >>teneur3_Pu<< >>temp_comb_0<< >>temp_mode_0<< >>dens_mod_0<< ; ELSE ECHO "TypeCal incorrect" ; ABORT: ; ENDIF ; * * END VALUES EVALUATION * ************************************************************************ INTEGER maxstep ; IF Fuel "MOX" = THEN EVALUATE maxstep := 1 ; ! EVALUATE maxstep := 2 ; ! EVALUATE maxstep := 6 ; ! EVALUATE maxstep := 71 ; DONNEES := UTL: :: CREA burn <> = 0.0 ! 0.0 9.37499 ! 0.0 9.37499 18.7500 37.5000 74.9999 150.000 ! 325.000 500.000 750.000 1000.00 1500.00 2000.00 ! 2500.00 3000.00 4000.00 5000.00 6000.00 7000.00 ! 8000.00 9000.00 10000.0 11000.0 12000.0 13000.0 ! 14000.0 15000.0 16000.0 17000.0 18000.0 19000.0 ! 20000.0 21000.0 22000.0 23000.0 24000.0 25000.0 ! 26000.0 27000.0 28000.0 29000.0 30000.0 31000.0 ! 32000.0 33000.0 34000.0 35000.0 36000.0 37000.0 ! 38000.0 39000.0 40000.0 41000.0 42000.0 43000.0 ! 44000.0 45000.0 46000.0 47000.0 48000.0 49000.0 ! 50000.0 51000.0 52000.0 53000.0 54000.0 55000.0 ! 56000.0 57000.0 58000.0 59000.0 60000.0 ; ELSEIF Fuel "UOX" = THEN EVALUATE maxstep := 1 ; ! EVALUATE maxstep := 2 ; ! EVALUATE maxstep := 6 ; ! EVALUATE maxstep := 73 ; DONNEES := UTL: :: CREA burn <> = 0.0 ! 0.0 9.37498 ! 0.0 9.37498 18.7500 37.4999 74.9999 150.000 ! 237.500 325.000 412.500 500.000 625.000 750.000 ! 1000.00 1250.00 1500.00 1750.00 2000.00 2500.00 ! 3000.00 3500.00 4000.00 4500.00 5000.00 5500.00 ! 6000.00 6500.00 7000.00 7500.00 8000.00 8500.00 ! 9000.00 9500.00 10000.0 10500.0 11000.0 11500.0 ! 12000.0 12500.0 13000.0 13500.0 14000.0 14500.0 ! 15000.0 15500.0 16000.0 16500.0 17000.0 17500.0 ! 18000.0 18500.0 19000.0 19500.0 20000.0 22000.0 ! 24000.0 26000.0 28000.0 30000.0 32000.0 34000.0 ! 36000.0 38000.0 40000.0 42000.0 44000.0 46000.0 ! 48000.0 50000.0 52000.0 54000.0 56000.0 58000.0 ! 60000.0 ; ELSE ECHO "Fuel incorrect" ; ABORT: ; ENDIF ; DONNEES := UTL: DONNEES :: CREA ppmBore <> = 600.0 ! 0.0 600.0 ! 0.0 600.0 1200.0 1800.0 2400.0 CREA autop <> = 0.0 4000.0 8000.0 12000.0 24000.0 36000.0 48000.0 60000.0 CREA tf <> = * 550.0 800.0 1150.0 800.0 CREA tca <> = * 500.0 600.0 700.0 600.0 CREA dca <> = * 0.500 0.659 0.800 0.659 ; * * END DECLARATION * ************************************************************************ ************************************************************************ * BEGIN GEOMETRY * * GEOSS := Geo_SS_32 :: <> <> <> <> <> <> <> <> <> <> <> <> ; GEON1 := Geo_N1_32 :: <> <> <> <> <> <> <> <> <> <> <> <> <> ; GEON2 := Geo_N2_32H :: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> ; ALLGEO := GeoHom :: <> <> ; * * END GEOMETRY * ************************************************************************ ************************************************************************ * BEGIN TRACKING * * ! Self-shielding TRACKSS := SYBILT: GEOSS :: EDIT 0 MAXR 500 MAXZ 1000000 TITLE 'TRACKING FOR ASSEMBLY SS' QUA2 20 3 DP01 ; ! Level One TRACKN1 := SYBILT: GEON1 :: EDIT 0 MAXR 500 MAXZ 1000000 TITLE 'TRACKING FOR ASSEMBLY N1' QUA2 20 3 DP01 ; ! Level two TRACKN2 TRKFILN2 := NXT: GEON2 :: EDIT 2 ALLG TSPC 20 20.0 ; TRACKN2 := MCCGT: TRACKN2 TRKFILN2 GEON2 :: EDIT 0 LCMD 2 AAC 150 TMT SCR 0 EPSI 1E-4 STIS -1 MAXI 1 KRYL 0 HDD 0.0 ; !AG2.ps := PSP: TRACKN2 :: ! FILL RGB TYPE MIXTURE !; !TRACKN2 := ATRK ; * * END TRACKING * ************************************************************************ ************************************************************************ * BEGIN COMPO INITIALIZATION * * STRING NameDir ; COMPO := IniCompo :: <> <> ; * * END COMPO INITIALIZATION * ************************************************************************ ************************************************************************ * REFERENCE BURNUP LOOP WITH DEPLETION * * * * BEGIN LIBRARY READING * * IF ldebug 0 = THEN ! ldebug ------------ IF TypeCal "Public" = THEN IF Fuel "MOX" = THEN LIBRARY := Mix_MOX_32 :: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> ; ELSEIF Fuel "UOX" = THEN LIBRARY := Mix_UOX_32 :: <> <> <> <> <> <> <> ; ELSE ECHO "Probleme dans la lecture des librairies" ; ABORT: ; ENDIF ; ENDIF ; ENDIF ; ! ldebug ------------ !************************************************************************ !* INITIAL TWO-LEVEL FLUX CALCULATION * !************************************************************************ EVALUATE istep iautop := 1 1 ; EVALUATE Tend BUend := 0.0 0.0 ; GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ECHO "BUnextSS=" BUnextSS ; ECHO "call CalcFluxH(1)" ; IF ldebug 0 = THEN ! ldebug ------------ LIBRARY2 FLUX1 FLUX2 BURN164 LIBEQ := CalcFluxH LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ENDIF ; ! ldebug ------------ EVALUATE iautop := iautop 1 + ; GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; !************************************************************************ !* 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION * !************************************************************************ ************************************************************************ ************************************************************************ ************************************************************************ IF ldebug 0 = THEN ! ldebug ------------ AFLU := FLUX2 ; ALIB := LIBEQ ; ALB2 := LIBRARY ; ATRK := TRACKN2 ; ABUR := BURN164 ; ELSEIF ldebug 1 = THEN FLUX2 := AFLU ; LIBEQ := ALIB ; LIBRARY := ALB2 ; BURN164 := ABUR ; ENDIF ; ! ldebug ------------ ! !************************************************************************ !************************************************************************ !************************************************************************ ! ! !************************************************************************ !* INITIAL MULTICOMPO FEEDING * !************************************************************************ ECHO "DEBUG avant AddCompo" ; COMPO := AddCompo COMPO FLUX2 LIBEQ TRACKN2 GEON2 ALLGEO BURN164 LIBRARY :: <> <> <> <> <> <> <> ; ************************************************************************ ************************************************************************ ************************************************************************ ************************************************************************ * DEPLETION - HOMOGENISATION * ************************************************************************ WHILE istep maxstep < DO EVALUATE istep := istep 1 + ; ECHO "istep vaut" istep "sur" maxstep ; EVALUATE BUbeg Tbeg := BUend Tend ; GREP: DONNEES :: GETVAL 'burn' <> >>BUend<< ; EVALUATE Tend := BUend Fuelpwr / ; BURN164 LIBEQ := EVO: BURN164 LIBEQ FLUX2 TRACKN2 :: EDIT 0 DEPL <> <> DAY POWR <> ; LIBHOM := Homogenize FLUX2 LIBEQ TRACKN2 :: <> ; LIBRARY2 := ConcLIBRARY2 LIBRARY2 LIBHOM :: <> ; LIBHOM LIBEQ := DELETE: LIBHOM LIBEQ ; ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ; ************************************************************************ * TWO-LEVEL FLUX CALCULATION * ************************************************************************ ECHO "call CalcFluxH(2)" ; LIBRARY2 FLUX1 FLUX2 BURN164 LIBEQ := CalcFluxH LIBRARY2 FLUX1 FLUX2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; IF BUend BUnextSS - ABS 1E-5 < THEN EVALUATE iautop := iautop 1 + ; IF iautop iAutopMax <= THEN GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ENDIF ; ENDIF ; ************************************************************************ * 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION * ************************************************************************ ************************************************************************ * MULTICOMPO FEEDING * ************************************************************************ COMPO := AddCompo COMPO FLUX2 LIBEQ TRACKN2 GEON2 ALLGEO BURN164 LIBRARY :: <> <> <> <> <> <> <> ; ENDWHILE ; ! reference burnup loop LIBRARY LIBRARY2 LIBEQ := DELETE: LIBRARY LIBRARY2 LIBEQ ; FLUX1 FLUX2 := DELETE: FLUX1 FLUX2 ; * * END OF REFERENCE BURNUP LOOP WITH DEPLETION * ************************************************************************ ************************************************************************ ************************************************************************ ************************************************************************ * BORON LOOP * ************************************************************************ ECHO "$$$ Boron loop" ; INTEGER iBoreStep := 0 ; WHILE iBoreStep iBoreMax < DO EVALUATE iBoreStep := iBoreStep 1 + ; ECHO "iBoreStep vaut" iBoreStep "sur" iBoreMax ; GREP: DONNEES :: GETVAL 'ppmBore' <> >>pbore<< ; IF pbore pbore_0 <> THEN ! test no to repeat reference case ************************************************************************ * BEGIN LIBRARY READING * ************************************************************************ IF TypeCal "Public" = THEN IF Fuel "MOX" = THEN LIBRARY := Mix_MOX_32 :: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> ; ELSEIF Fuel "UOX" = NbRegions 32 = * THEN LIBRARY := Mix_UOX_32 :: <> <> <> <> <> <> <> ; ELSE ECHO "Probleme dans la lecture des librairies" ; ABORT: ; ENDIF ; ENDIF ; ************************************************************************ * INITIAL TWO-LEVEL FLUX CALCULATION * ************************************************************************ EVALUATE istep iautop := 0 1 ; EVALUATE Tend BUend := 0.0 0.0 ; GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ECHO "BUnextSS=" BUnextSS ; ************************************************************************ * DEPLETION - HOMOGENISATION * ************************************************************************ WHILE istep maxstep < DO EVALUATE istep := istep 1 + ; ECHO "branch istep vaut" istep "sur" maxstep ; EVALUATE BUbeg Tbeg := BUend Tend ; GREP: DONNEES :: GETVAL 'burn' <> >>BUend<< ; EVALUATE Tend := BUend Fuelpwr / ; ************************************************************************ * RECOVER NUMBER DENSITIES FOR THE CURRENT BURNUP STEP * ************************************************************************ IF istep 1 > THEN LIBEQ := ConcLIBEQ LIBEQ BURN164 :: <> ; LIBHOM := Homogenize FLUX2 LIBEQ TRACKN2 :: <> ; LIBEQ := DELETE: LIBEQ ; LIBRARY2 := ConcLIBRARY2 LIBRARY2 LIBHOM :: <> ; LIBHOM := DELETE: LIBHOM ; ENDIF ; ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ; ************************************************************************ * TWO-LEVEL FLUX CALCULATION * ************************************************************************ ECHO "call BranchFluxH" ; IF istep 1 = THEN LIBRARY2 FLUX1 FLUX2 LIBEQ := BranchFluxH LIBRARY2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ELSE LIBRARY2 FLUX1 FLUX2 LIBEQ := BranchFluxH LIBRARY2 FLUX1 FLUX2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ENDIF ; IF BUend BUnextSS - ABS 1E-5 < THEN EVALUATE iautop := iautop 1 + ; IF iautop iAutopMax <= THEN GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ENDIF ; ENDIF ; ************************************************************************ * 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION * ************************************************************************ ************************************************************************ * MULTICOMPO FEEDING * ************************************************************************ COMPO := AddCompo COMPO FLUX2 LIBEQ TRACKN2 GEON2 ALLGEO BURN164 LIBRARY :: <> <> <> <> <> <> <> ; ENDWHILE ; ! burnup loop LIBRARY LIBRARY2 LIBEQ := DELETE: LIBRARY LIBRARY2 LIBEQ ; FLUX1 FLUX2 := DELETE: FLUX1 FLUX2 ; ENDIF ; ! test no to repeat reference case ENDWHILE ; ! boron loop ************************************************************************ * END OF BORON LOOP * ************************************************************************ ************************************************************************ ************************************************************************ ************************************************************************ * FUEL TEMPERATURE LOOP * ************************************************************************ ECHO "$$$ Fuel temperature loop" ; INTEGER iTfStep := 0 ; WHILE iTfStep iTfMax < DO EVALUATE iTfStep := iTfStep 1 + ; ECHO "iTfStep vaut" iTfStep "sur" iTfMax ; GREP: DONNEES :: GETVAL 'tf' <> >>temp_comb<< ; IF temp_comb temp_comb_0 <> THEN ! test no to repeat reference case ************************************************************************ * BEGIN LIBRARY READING * ************************************************************************ IF TypeCal "Public" = THEN IF Fuel "MOX" = THEN LIBRARY := Mix_MOX_32 :: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> ; ELSEIF Fuel "UOX" = NbRegions 32 = * THEN LIBRARY := Mix_UOX_32 :: <> <> <> <> <> <> <> ; ELSE ECHO "Probleme dans la lecture des librairies" ; ABORT: ; ENDIF ; ENDIF ; ************************************************************************ * INITIAL TWO-LEVEL FLUX CALCULATION * ************************************************************************ EVALUATE istep iautop := 0 1 ; EVALUATE Tend BUend := 0.0 0.0 ; GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ECHO "BUnextSS=" BUnextSS ; ************************************************************************ * DEPLETION - HOMOGENISATION * ************************************************************************ WHILE istep maxstep < DO EVALUATE istep := istep 1 + ; ECHO "branch istep vaut" istep "sur" maxstep ; EVALUATE BUbeg Tbeg := BUend Tend ; GREP: DONNEES :: GETVAL 'burn' <> >>BUend<< ; EVALUATE Tend := BUend Fuelpwr / ; ************************************************************************ * RECOVER NUMBER DENSITIES FOR THE CURRENT BURNUP STEP * ************************************************************************ IF istep 1 > THEN LIBEQ := ConcLIBEQ LIBEQ BURN164 :: <> ; LIBHOM := Homogenize FLUX2 LIBEQ TRACKN2 :: <> ; LIBEQ := DELETE: LIBEQ ; LIBRARY2 := ConcLIBRARY2 LIBRARY2 LIBHOM :: <> ; LIBHOM := DELETE: LIBHOM ; ENDIF ; ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ; ************************************************************************ * TWO-LEVEL FLUX CALCULATION * ************************************************************************ ECHO "call BranchFluxH" ; IF istep 1 = THEN LIBRARY2 FLUX1 FLUX2 LIBEQ := BranchFluxH LIBRARY2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ELSE LIBRARY2 FLUX1 FLUX2 LIBEQ := BranchFluxH LIBRARY2 FLUX1 FLUX2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ENDIF ; IF BUend BUnextSS - ABS 1E-5 < THEN EVALUATE iautop := iautop 1 + ; IF iautop iAutopMax <= THEN GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ENDIF ; ENDIF ; ************************************************************************ * 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION * ************************************************************************ ************************************************************************ * MULTICOMPO FEEDING * ************************************************************************ COMPO := AddCompo COMPO FLUX2 LIBEQ TRACKN2 GEON2 ALLGEO BURN164 LIBRARY :: <> <> <> <> <> <> <> ; ENDWHILE ; ! burnup loop LIBRARY LIBRARY2 LIBEQ := DELETE: LIBRARY LIBRARY2 LIBEQ ; FLUX1 FLUX2 := DELETE: FLUX1 FLUX2 ; ENDIF ; ! test no to repeat reference case ENDWHILE ; ! fuel temperature loop ************************************************************************ * END OF FUEL TEMPERATURE LOOP * ************************************************************************ ************************************************************************ ************************************************************************ ************************************************************************ * MODERATOR TEMPERATURE LOOP * ************************************************************************ ECHO "$$$ Moderator temperature loop" ; INTEGER iTcaStep := 0 ; WHILE iTcaStep iTcaMax < DO EVALUATE iTcaStep := iTcaStep 1 + ; ECHO "iTcaStep vaut" iTcaStep "sur" iTcaMax ; GREP: DONNEES :: GETVAL 'tca' <> >>temp_mode<< ; IF temp_mode temp_mode_0 <> THEN ! test no to repeat reference case ************************************************************************ * BEGIN LIBRARY READING * ************************************************************************ IF TypeCal "Public" = THEN IF Fuel "MOX" = THEN LIBRARY := Mix_MOX_32 :: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> ; ELSEIF Fuel "UOX" = NbRegions 32 = * THEN LIBRARY := Mix_UOX_32 :: <> <> <> <> <> <> <> ; ELSE ECHO "Probleme dans la lecture des librairies" ; ABORT: ; ENDIF ; ENDIF ; ************************************************************************ * INITIAL TWO-LEVEL FLUX CALCULATION * ************************************************************************ EVALUATE istep iautop := 0 1 ; EVALUATE Tend BUend := 0.0 0.0 ; GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ECHO "BUnextSS=" BUnextSS ; ************************************************************************ * DEPLETION - HOMOGENISATION * ************************************************************************ WHILE istep maxstep < DO EVALUATE istep := istep 1 + ; ECHO "branch istep vaut" istep "sur" maxstep ; EVALUATE BUbeg Tbeg := BUend Tend ; GREP: DONNEES :: GETVAL 'burn' <> >>BUend<< ; EVALUATE Tend := BUend Fuelpwr / ; ************************************************************************ * RECOVER NUMBER DENSITIES FOR THE CURRENT BURNUP STEP * ************************************************************************ IF istep 1 > THEN LIBEQ := ConcLIBEQ LIBEQ BURN164 :: <> ; LIBHOM := Homogenize FLUX2 LIBEQ TRACKN2 :: <> ; LIBEQ := DELETE: LIBEQ ; LIBRARY2 := ConcLIBRARY2 LIBRARY2 LIBHOM :: <> ; LIBHOM := DELETE: LIBHOM ; ENDIF ; ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ; ************************************************************************ * TWO-LEVEL FLUX CALCULATION * ************************************************************************ ECHO "call BranchFluxH" ; IF istep 1 = THEN LIBRARY2 FLUX1 FLUX2 LIBEQ := BranchFluxH LIBRARY2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ELSE LIBRARY2 FLUX1 FLUX2 LIBEQ := BranchFluxH LIBRARY2 FLUX1 FLUX2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ENDIF ; IF BUend BUnextSS - ABS 1E-5 < THEN EVALUATE iautop := iautop 1 + ; IF iautop iAutopMax <= THEN GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ENDIF ; ENDIF ; ************************************************************************ * 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION * ************************************************************************ ************************************************************************ * MULTICOMPO FEEDING * ************************************************************************ COMPO := AddCompo COMPO FLUX2 LIBEQ TRACKN2 GEON2 ALLGEO BURN164 LIBRARY :: <> <> <> <> <> <> <> ; ENDWHILE ; ! burnup loop LIBRARY LIBRARY2 LIBEQ := DELETE: LIBRARY LIBRARY2 LIBEQ ; FLUX1 FLUX2 := DELETE: FLUX1 FLUX2 ; ENDIF ; ! test no to repeat reference case ENDWHILE ; ! moderator temperature loop ************************************************************************ * END OF MODERATOR TEMPERATURE LOOP * ************************************************************************ ************************************************************************ ************************************************************************ ************************************************************************ * MODERATOR DENSITY LOOP * ************************************************************************ ECHO "$$$ Moderator density loop" ; INTEGER iDcaStep := 0 ; WHILE iDcaStep iDcaMax < DO EVALUATE iDcaStep := iDcaStep 1 + ; ECHO "iDcaStep vaut" iDcaStep "sur" iDcaMax ; GREP: DONNEES :: GETVAL 'dca' <> >>dens_mod<< ; IF dens_mod dens_mod_0 <> THEN ! test no to repeat reference case ************************************************************************ * BEGIN LIBRARY READING * ************************************************************************ IF TypeCal "Public" = THEN IF Fuel "MOX" = THEN LIBRARY := Mix_MOX_32 :: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> ; ELSEIF Fuel "UOX" = NbRegions 32 = * THEN LIBRARY := Mix_UOX_32 :: <> <> <> <> <> <> <> ; ELSE ECHO "Probleme dans la lecture des librairies" ; ABORT: ; ENDIF ; ENDIF ; ************************************************************************ * INITIAL TWO-LEVEL FLUX CALCULATION * ************************************************************************ EVALUATE istep iautop := 0 1 ; EVALUATE Tend BUend := 0.0 0.0 ; GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ECHO "BUnextSS=" BUnextSS ; ************************************************************************ * DEPLETION - HOMOGENISATION * ************************************************************************ WHILE istep maxstep < DO EVALUATE istep := istep 1 + ; ECHO "branch istep vaut" istep "sur" maxstep ; EVALUATE BUbeg Tbeg := BUend Tend ; GREP: DONNEES :: GETVAL 'burn' <> >>BUend<< ; EVALUATE Tend := BUend Fuelpwr / ; ************************************************************************ * RECOVER NUMBER DENSITIES FOR THE CURRENT BURNUP STEP * ************************************************************************ IF istep 1 > THEN LIBEQ := ConcLIBEQ LIBEQ BURN164 :: <> ; LIBHOM := Homogenize FLUX2 LIBEQ TRACKN2 :: <> ; LIBEQ := DELETE: LIBEQ ; LIBRARY2 := ConcLIBRARY2 LIBRARY2 LIBHOM :: <> ; LIBHOM := DELETE: LIBHOM ; ENDIF ; ECHO "BURNUP_sortie = " BUend "Next SS = " BUnextSS ; ************************************************************************ * TWO-LEVEL FLUX CALCULATION * ************************************************************************ ECHO "call BranchFluxH" ; IF istep 1 = THEN LIBRARY2 FLUX1 FLUX2 LIBEQ := BranchFluxH LIBRARY2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ELSE LIBRARY2 FLUX1 FLUX2 LIBEQ := BranchFluxH LIBRARY2 FLUX1 FLUX2 BURN164 LIBRARY TRACKSS TRACKN1 TRACKN2 TRKFILN2 :: <> <> <> <> <> <> ; ENDIF ; IF BUend BUnextSS - ABS 1E-5 < THEN EVALUATE iautop := iautop 1 + ; IF iautop iAutopMax <= THEN GREP: DONNEES :: GETVAL 'autop' <> >>BUnextSS<< ; ENDIF ; ENDIF ; ************************************************************************ * 2-GROUPS ENERGY CONDENSATION AND HOMOGENISATION * ************************************************************************ ************************************************************************ * MULTICOMPO FEEDING * ************************************************************************ COMPO := AddCompo COMPO FLUX2 LIBEQ TRACKN2 GEON2 ALLGEO BURN164 LIBRARY :: <> <> <> <> <> <> <> ; ENDWHILE ; ! burnup loop LIBRARY LIBRARY2 LIBEQ := DELETE: LIBRARY LIBRARY2 LIBEQ ; FLUX1 FLUX2 := DELETE: FLUX1 FLUX2 ; ENDIF ; ! test no to repeat reference case ENDWHILE ; ! moderator density loop ************************************************************************ * END OF MODERATOR DENSITY LOOP * ************************************************************************ ************************************************************************ ************************************************************************ ABURN164 := BURN164 ; BURN164 := DELETE: BURN164 ; ************************************************************************ * EXPORT MULTICOMPO IN ASCII FORMAT * ************************************************************************ ACOMPO := COMPO ; ADONNEES := DONNEES ; AALLGEO := ALLGEO ; *---- * End of calculation - Memory release *---- GEOSS GEON1 GEON2 := DELETE: GEOSS GEON1 GEON2 ; TRACKSS TRACKN1 TRACKN2 TRKFILN2 := DELETE: TRACKSS TRACKN1 TRACKN2 TRKFILN2 ; ECHO "Calcul acheve" ; END: ; QUIT .