
function fw_sim_01( semu_mass_ratios::Vector{Float64} ,  v::Vector{Float64} )
    #-----Init EMRs-------------------------------------------------------------------------------------
    mr_sA_2_M_0 = semu_mass_ratios[1]
    mr_sA_2_M_1 = semu_mass_ratios[2]
    mr_sA_3_M_0 = semu_mass_ratios[3]
    mr_sA_3_M_1 = semu_mass_ratios[4]
    mr_sA_2_3_M_0 = semu_mass_ratios[5]
    mr_sA_2_3_M_1 = semu_mass_ratios[6]
    mr_sA_2_3_M_2 = semu_mass_ratios[7]
    mr_sA_1_2_3_M_0 = semu_mass_ratios[8]
    mr_sA_1_2_3_M_1 = semu_mass_ratios[9]
    mr_sA_1_2_3_M_2 = semu_mass_ratios[10]
    mr_sA_1_2_3_M_3 = semu_mass_ratios[11]
    #-----Init Fluxes-----------------------------------------------------------------------------------
    v_R01 = v[1]
    v_R02 = v[2]
    v_R03 = v[3]
    v_R04 = v[4]
    v_R05 = v[5]
    v_R06 = v[6]
    #---------------------------------------------------------------------------------------------------
    #----Init A---------------------------------------------------------------------------------
    sA_1_1::Array{Float64,2} = zeros(Float64,5,5)
    sA_1_1[1,1] = ( (  -1.0  * v_R01   )  +(  -1.0  * v_R03   )   )
    sA_1_1[3,1] =  v_R04
    sA_1_1[4,1] =  v_R02
    sA_1_1[2,2] = ( (  -1.0  * v_R01   )  +(  -1.0  * v_R03   )   )
    sA_1_1[4,2] =  v_R05
    sA_1_1[5,2] =  v_R02
    sA_1_1[3,3] = ( (  -1.0  * v_R04   )   )
    sA_1_1[5,3] =  v_R05
    sA_1_1[1,4] =  v_R03
    sA_1_1[4,4] = ( (  -1.0  * v_R02   )  +(  -1.0  * v_R05   )   )
    sA_1_1[2,5] =  v_R03
    sA_1_1[5,5] = ( (  -1.0  * v_R05   )  +(  -1.0  * v_R02   )   )
    #----Init B---------------------------------------------------------------------------
    sB_1_1::Array{Float64,2} =  zeros(Float64,5,2)
    sB_1_1[2,1] = (  -1.0  * v_R01   )
    sB_1_1[1,2] = (  -1.0  * v_R01   )
    #----Init Y---------------------------------------------------------------------------
    sY_1_1::Array{Float64,2} =  zeros(Float64,2,2)
    sY_1_1[1,1] = ( (  mr_sA_3_M_0   )   )
    sY_1_1[2,1] = ( (  mr_sA_2_M_0   )   )
    sY_1_1[1,2] = ( (  mr_sA_3_M_1   )   )
    sY_1_1[2,2] = ( (  mr_sA_2_M_1   )   )

    #------COMPUTE!-----------------------------------------------------------------------
    sX_1_1 = sA_1_1 \ ( sB_1_1 * sY_1_1 )
    #-------------------------------------------------------------------------------------
    mr_sB_2_M_0 = sX_1_1[1,1]
    mr_sB_3_M_0 = sX_1_1[2,1]
    mr_sC_1_M_0 = sX_1_1[3,1]
    mr_sD_2_M_0 = sX_1_1[4,1]
    mr_sD_3_M_0 = sX_1_1[5,1]
    mr_sB_2_M_1 = sX_1_1[1,2]
    mr_sB_3_M_1 = sX_1_1[2,2]
    mr_sC_1_M_1 = sX_1_1[3,2]
    mr_sD_2_M_1 = sX_1_1[4,2]
    mr_sD_3_M_1 = sX_1_1[5,2]
    #-------------------------------------------------------------------------------------
    #----Init A---------------------------------------------------------------------------------
    sA_2_1::Array{Float64,2} =  zeros(Float64,2,2)
    sA_2_1[1,1] = ( (  -1.0  * v_R01   )  +(  -1.0  * v_R03   )   )
    sA_2_1[2,1] =  v_R02
    sA_2_1[1,2] =  v_R03
    sA_2_1[2,2] = ( (  -1.0  * v_R02   )  +(  -1.0  * v_R05   )   )
    #----Init B---------------------------------------------------------------------------
    sB_2_1::Array{Float64,2} =  zeros(Float64,2,2)
    sB_2_1[1,1] = (  -1.0  * v_R01   )
    sB_2_1[2,2] = (  -1.0  * v_R05   )
    #----Init Y---------------------------------------------------------------------------
    sY_2_1::Array{Float64,2} =  zeros(Float64,2,3)
    sY_2_1[1,1] = ( (  mr_sA_2_3_M_0   )   )
    sY_2_1[2,1] = ( (  mr_sB_3_M_0  * mr_sC_1_M_0   )   )
    sY_2_1[1,2] = ( (  mr_sA_2_3_M_1   )   )
    sY_2_1[2,2] = ( (  mr_sB_3_M_0  * mr_sC_1_M_1   )  +(  mr_sB_3_M_1  * mr_sC_1_M_0   )   )
    sY_2_1[1,3] = ( (  mr_sA_2_3_M_2   )   )
    sY_2_1[2,3] = ( (  mr_sB_3_M_1  * mr_sC_1_M_1   )   )

    #------COMPUTE!-----------------------------------------------------------------------
    sX_2_1 = sA_2_1 \ ( sB_2_1 * sY_2_1 )
    #-------------------------------------------------------------------------------------
    mr_sB_2_3_M_0 = sX_2_1[1,1]
    mr_sD_2_3_M_0 = sX_2_1[2,1]
    mr_sB_2_3_M_1 = sX_2_1[1,2]
    mr_sD_2_3_M_1 = sX_2_1[2,2]
    mr_sB_2_3_M_2 = sX_2_1[1,3]
    mr_sD_2_3_M_2 = sX_2_1[2,3]
    #-------------------------------------------------------------------------------------
    #----Init A---------------------------------------------------------------------------------
    sA_3_1::Array{Float64,2} =  zeros(Float64,3,3)
    sA_3_1[1,1] = ( (  -1.0  * v_R03   )  +(  -1.0  * v_R01   )   )
    sA_3_1[2,1] =  v_R02
    sA_3_1[1,2] =  v_R03
    sA_3_1[2,2] = ( (  -1.0  * v_R05   )  +(  -1.0  * v_R02   )   )
    sA_3_1[3,2] =  v_R06
    sA_3_1[3,3] = ( (  -1.0  * v_R06   )   )
    #----Init B---------------------------------------------------------------------------
    sB_3_1::Array{Float64,2} =  zeros(Float64,3,2)
    sB_3_1[2,1] = (  -1.0  * v_R05   )
    sB_3_1[1,2] = (  -1.0  * v_R01   )
    #----Init Y---------------------------------------------------------------------------
    sY_3_1::Array{Float64,2} =  zeros(Float64,2,4)
    sY_3_1[1,1] = ( (  mr_sB_2_3_M_0  * mr_sC_1_M_0   )   )
    sY_3_1[2,1] = ( (  mr_sA_1_2_3_M_0   )   )
    sY_3_1[1,2] = ( (  mr_sB_2_3_M_0  * mr_sC_1_M_1   )  +(  mr_sB_2_3_M_1  * mr_sC_1_M_0   )   )
    sY_3_1[2,2] = ( (  mr_sA_1_2_3_M_1   )   )
    sY_3_1[1,3] = ( (  mr_sB_2_3_M_1  * mr_sC_1_M_1   )  +(  mr_sB_2_3_M_2  * mr_sC_1_M_0   )   )
    sY_3_1[2,3] = ( (  mr_sA_1_2_3_M_2   )   )
    sY_3_1[1,4] = ( (  mr_sB_2_3_M_2  * mr_sC_1_M_1   )   )
    sY_3_1[2,4] = ( (  mr_sA_1_2_3_M_3   )   )

    #------COMPUTE!-----------------------------------------------------------------------
    sX_3_1 = sA_3_1 \ ( sB_3_1 * sY_3_1 )
    #-------------------------------------------------------------------------------------
    mr_sB_1_2_3_M_0 = sX_3_1[1,1]
    mr_sD_1_2_3_M_0 = sX_3_1[2,1]
    mr_sF_1_2_3_M_0 = sX_3_1[3,1]
    mr_sB_1_2_3_M_1 = sX_3_1[1,2]
    mr_sD_1_2_3_M_1 = sX_3_1[2,2]
    mr_sF_1_2_3_M_1 = sX_3_1[3,2]
    mr_sB_1_2_3_M_2 = sX_3_1[1,3]
    mr_sD_1_2_3_M_2 = sX_3_1[2,3]
    mr_sF_1_2_3_M_2 = sX_3_1[3,3]
    mr_sB_1_2_3_M_3 = sX_3_1[1,4]
    mr_sD_1_2_3_M_3 = sX_3_1[2,4]
    mr_sF_1_2_3_M_3 = sX_3_1[3,4]
    #-------------------------------------------------------------------------------------
    #---RESULTS-----------------------------------------------------------------------------------------
    target_smrs = Array{Float64,1}(4)
    target_smrs[1] = mr_sF_1_2_3_M_0
    target_smrs[2] = mr_sF_1_2_3_M_1
    target_smrs[3] = mr_sF_1_2_3_M_2
    target_smrs[4] = mr_sF_1_2_3_M_3
    #---------------------------------------------------------------------------------------------------
    return target_smrs
    #---------------------------------------------------------------------------------------------------
end



semu_mass_ratios = [0.;1;1;0;0;1;0;0;1;0;0]

#                    v1  v2     v3   v4   v5   v6      Ain  Eout  Fout
reference_flux = [  100.; 110 ; 50 ; 20 ; 20 ; 80   ;  100 ; 60 ; 80 ]

fw_result = fw_sim_01(semu_mass_ratios,reference_flux)
