コード例 #1
0
def millennial(C_pom,
               C_agg,
               C_mic,
               day,
               Kagg=0.0002,
               pa=1. / 3,
               Vpa=0.002,
               Kpa=50,
               Amax=500,
               Vpl=10,
               Kpl=150,
               Kpe=12,
               pi=2. / 3):
    St, Sw, CUE = m_scal.millennial(day)
    # inputs
    Fin_l = Fi[day - (day // 365) * 365]
    # temporary: start
    # if day ==0:
    #     Fin_l = 172.
    # else:
    #     Fin_l = 0
    ########### end temporary
    Fagg = Kagg * C_agg * St * Sw
    Fap = Fagg * pa
    # outputs
    Fpa = Vpa * (C_pom / (Kpa + C_pom)) * (1 - (C_agg / Amax)) * St * Sw
    Fpl = Vpl * (C_pom / (Kpl + C_pom)) * (C_mic / (Kpe + C_mic)) * St * Sw

    C_pom_local = C_pom + pi * Fin_l + Fap - Fpa - Fpl
    return C_pom_local, Fin_l
コード例 #2
0
def millennial_rad(C_pom,C_mic,C_maom,C_lmwc,C_pom_rad,C_mic_rad,C_maom_rad,C_lmwc_rad,years,\
    day,Vpl=10,Kpl=150,Kpe=12,Vml=0.01,M_Lmin=10,Kml=25,lambdax = 8267, Aabs=10**-12,\
    Kl=0.0015,Klm=0.25,c1=0.4833,c2=2.3282,clay_per=40,BulkD=1150,Vlm=0.35,Klb=7.2,pi=2./3.):
    St, Sw, CUE = m_scal.millennial(day)
    Qmax1 = 10**(c1 * math.log(clay_per, 10) + c2)
    Qmax = BulkD * Qmax1 * 10**(-3)  # convert to gC/m2 (flagged)
    #
    Asn_pom = C_pom_rad / C_pom
    # Asn_mic = C_mic_rad/C_mic
    Asn_maom = C_maom_rad / C_maom
    Asn_lmwc = C_lmwc_rad / C_lmwc

    # inputs
    Fin_l = Fi[day - (day // 365) * 365]
    Fin_l_rad = Fin_l * ((rad_atm[-1 * years + day // 365] / 1000 + 1) * Aabs)
    rad_atm_record = rad_atm[-1 * years + day // 365]
    # temporary: start
    #if day ==0:
    #   Fin_l = 172.
    #else:
    #   Fin_l = 0
    ########### end temporary
    Fpl = Vpl * (C_pom / (Kpl + C_pom)) * (C_mic / (Kpe + C_mic)) * St * Sw
    Fml = Vml * (C_maom - M_Lmin) / (Kml + C_maom - M_Lmin) * St * Sw

    Fpl_rad = Vpl * (C_pom /
                     (Kpl + C_pom)) * (C_mic /
                                       (Kpe + C_mic)) * St * Sw * Asn_pom
    Fml_rad = Vml * (C_maom - M_Lmin) / (Kml + C_maom -
                                         M_Lmin) * St * Sw * Asn_maom
    # Fpl_rad = Vpl * (C_pom_rad/(Kpl+C_pom_rad)) * (C_mic_rad / (Kpe + C_mic_rad)) * St * Sw
    # Fml_rad = Vml * (C_maom_rad - M_Lmin) / (Kml + C_maom_rad - M_Lmin) * St * Sw
    # outputs
    Fl = Kl * C_lmwc * St * Sw  # leaching
    Flm = C_lmwc * (Klm * Qmax * C_lmwc /
                    (1 + (Klm * C_lmwc)) - C_maom) / Qmax * St * Sw
    Flb = Vlm * C_lmwc * C_mic / (C_mic + Klb) * St * Sw

    Fl_rad = Kl * C_lmwc * St * Sw * Asn_lmwc  # leaching
    Flm_rad = C_lmwc * (Klm * Qmax * C_lmwc /
                        (1 +
                         (Klm * C_lmwc)) - C_maom) / Qmax * St * Sw * Asn_lmwc
    Flb_rad = Vlm * C_lmwc * C_mic / (C_mic + Klb) * St * Sw * Asn_lmwc
    # Fl_rad = Kl * C_lmwc_rad * St * Sw # leaching
    # Flm_rad = C_lmwc_rad * (Klm * Qmax * C_lmwc_rad/(1+(Klm * C_lmwc_rad)) - C_maom_rad ) / Qmax * St *Sw
    # Flb_rad = Vlm * C_lmwc_rad * C_mic_rad / (C_mic_rad + Klb) * St * Sw

    C_lmwc_local = C_lmwc + (1 - pi) * Fin_l + Fpl + Fml - Fl - Flm - Flb
    C_lmwc_rad_local = C_lmwc_rad + (
        1 -
        pi) * Fin_l_rad + Fpl_rad + Fml_rad - Fl_rad - Flm_rad - Flb_rad - (
            1 / (lambdax * 365)) * C_lmwc_rad

    # change unit to D14C per mil
    D14C_lmwc_local = ((C_lmwc_rad_local / C_lmwc_local) / Aabs - 1) * 1000
    return C_lmwc_local, C_lmwc_rad_local, D14C_lmwc_local, rad_atm_record
コード例 #3
0
def millennial_rad(C_lmwc,C_maom,C_mic,C_agg,C_lmwc_rad,C_maom_rad,C_mic_rad,C_agg_rad,day,c1=0.4833,\
    clay_per=40,c2=2.3282,BulkD=1150,Klm=0.25,Kmm=0.025,lambdax = 8267, Aabs=10**-12,\
    Kagg=0.0002,pa=1./3.,Vma=0.07,Kma=200,Amax=500,Vml=0.01,M_Lmin=10,Kml=25):
    St, Sw, CUE = m_scal.millennial(day)
    Qmax1 = 10**(c1 * math.log(clay_per, 10) + c2)
    Qmax = BulkD * Qmax1 * 10**(-3)  # convert to gC/m2 (flagged)
    #
    Asn_lmwc = C_lmwc_rad / C_lmwc
    Asn_maom = C_maom_rad / C_maom
    Asn_mic = C_mic_rad / C_mic
    Asn_agg = C_agg_rad / C_agg
    #input
    Flm = C_lmwc * (Klm * Qmax * C_lmwc / (1 + (Klm * C_lmwc)) -
                    C_maom) / Qmax * St * Sw  # adsorption of LMWC
    Fbm = Kmm * C_mic * St * Sw  # adsorption by mineral surface
    Fagg = Kagg * C_agg * St * Sw  # break of aggregated carbon
    Fam = Fagg * (
        1 - pa
    )  # allocation of Fagg (flag: pa = 0.5 in Xu and 1/3 in Abramoff)

    Flm_rad = C_lmwc * (Klm * Qmax * C_lmwc / (1 + (Klm * C_lmwc)) - C_maom
                        ) / Qmax * St * Sw * Asn_lmwc  # adsorption of LMWC
    Fbm_rad = Kmm * C_mic * St * Sw * Asn_mic  # adsorption by mineral surface
    Fagg_rad = Kagg * C_agg * St * Sw * Asn_agg  # break of aggregated carbon
    Fam_rad = Fagg_rad * (
        1 - pa
    )  # allocation of Fagg (flag: pa = 0.5 in Xu and 1/3 in Abramoff)
    # Flm_rad = C_lmwc_rad * (Klm * Qmax * C_lmwc_rad/(1+(Klm * C_lmwc_rad)) - C_maom_rad) / Qmax * St *Sw # adsorption of LMWC
    # Fbm_rad = Kmm * C_mic_rad * St * Sw # adsorption by mineral surface
    # Fagg_rad = Kagg * C_agg_rad * St * Sw # break of aggregated carbon
    # Fam_rad = Fagg_rad * (1-pa) # allocation of Fagg (flag: pa = 0.5 in Xu and 1/3 in Abramoff)

    # output
    Fma = Vma * C_maom / (Kma + C_maom) * (
        1 -
        C_agg / Amax) * St * Sw  # flag: Kma is 2000 in Xu (200 in Abramoff)
    Fml = Vml * (C_maom - M_Lmin) / (Kml + C_maom - M_Lmin) * St * Sw

    Fma_rad = Vma * C_maom / (Kma + C_maom) * (
        1 - C_agg /
        Amax) * St * Sw * Asn_maom  # flag: Kma is 2000 in Xu (200 in Abramoff)
    Fml_rad = Vml * (C_maom - M_Lmin) / (Kml + C_maom -
                                         M_Lmin) * St * Sw * Asn_maom

    # Fma_rad = Vma * C_maom_rad /(Kma + C_maom_rad) * (1 - C_agg_rad/Amax) * St * Sw # flag: Kma is 2000 in Xu (200 in Abramoff)
    # Fml_rad = Vml * (C_maom_rad - M_Lmin) / (Kml + C_maom_rad - M_Lmin) * St * Sw

    C_maom_local = C_maom + Flm + Fbm + Fam - Fma - Fml

    C_maom_rad_local = C_maom_rad + Flm_rad + Fbm_rad + Fam_rad - Fma_rad - Fml_rad - (
        1 / (lambdax * 365)) * C_maom_rad

    # change unit to D14C per mil
    D14C_maom_local = ((C_maom_rad_local / C_maom_local) / Aabs - 1) * 1000
    return C_maom_local, C_maom_rad_local, D14C_maom_local
コード例 #4
0
def millennial(C_lmwc, C_mic, day, Vlm=0.35, Klb=7.2, Kmic=0.036, Kmm=0.025):
    St, Sw, CUE = m_scal.millennial(day)
    # input
    Flb = Vlm * C_lmwc * C_mic / (C_mic + Klb) * St * Sw
    # output
    Fbr = Kmic * C_mic * St * Sw  # microbial mortality
    Fbm = Kmm * C_mic * St * Sw  # adsorption of mineral surface
    #
    #CUE = 0.4
    C_mic_local = C_mic + Flb * CUE - Fbm - Fbr
    F_res = Fbr + Flb * (1 - CUE)
    return C_mic_local, F_res
コード例 #5
0
def millennial_rad(C_maom,
                   C_pom,
                   C_agg,
                   C_maom_rad,
                   C_pom_rad,
                   C_agg_rad,
                   day,
                   Vma=0.07,
                   Kma=200,
                   Amax=500,
                   Vpa=0.002,
                   Kpa=50,
                   Kagg=0.0002,
                   lambdax=8267,
                   Aabs=10**-12):

    St, Sw, CUE = m_scal.millennial(day)
    Asn_maom = C_maom_rad / C_maom
    Asn_pom = C_pom_rad / C_pom
    Asn_agg = C_agg_rad / C_agg

    # inputs
    Fma = Vma * C_maom / (Kma + C_maom) * (1 - C_agg / Amax) * St * Sw
    Fpa = Vpa * (C_pom / (Kpa + C_pom)) * (1 - (C_agg / Amax)) * St * Sw

    Fma_rad = Vma * C_maom / (Kma +
                              C_maom) * (1 - C_agg / Amax) * St * Sw * Asn_maom
    Fpa_rad = Vpa * (C_pom /
                     (Kpa + C_pom)) * (1 - (C_agg / Amax)) * St * Sw * Asn_pom
    # Fma_rad = Vma * C_maom_rad /(Kma + C_maom_rad) * (1 - C_agg_rad/Amax) * St * Sw
    # Fpa_rad = Vpa * (C_pom_rad / (Kpa + C_pom_rad)) * (1 - (C_agg_rad/Amax)) * St * Sw
    # outputs
    Fagg = Kagg * C_agg * St * Sw
    Fagg_rad = Kagg * C_agg * St * Sw * Asn_agg
    # Fagg_rad = Kagg * C_agg_rad * St * Sw

    C_agg_local = C_agg + Fma + Fpa - Fagg
    C_agg_rad_local = C_agg_rad + Fma_rad + Fpa_rad - Fagg_rad - (
        1 / (lambdax * 365)) * C_agg_rad

    # change unit to D14C per mil
    D14C_agg_local = ((C_agg_rad_local / C_agg_local) / Aabs - 1) * 1000

    return C_agg_local, C_agg_rad_local, D14C_agg_local
コード例 #6
0
def millennial_rad (C_pom,C_agg,C_mic,C_pom_rad,C_agg_rad,C_mic_rad,day,years,Kagg=0.0002,pa=1./3,\
    Vpa=0.002,Kpa=50,Amax=500,Vpl=10,Kpl=150,Kpe=12,pi=2./3,lambdax = 8267, Aabs=10**-12):
    St, Sw, CUE = m_scal.millennial(day)
    Asn_pom = C_pom_rad / C_pom
    Asn_agg = C_agg_rad / C_agg
    # Asn_mic = C_mic_rad/C_mic

    # inputs
    Fin_l = Fi[day - (day // 365) * 365]
    Fin_l_rad = Fin_l * ((rad_atm[-1 * years + day // 365] / 1000 + 1) * Aabs)

    # temporary: start
    # if day ==0:
    #     Fin_l = 172.
    # else:
    #     Fin_l = 0
    ########### end temporary
    Fagg = Kagg * C_agg * St * Sw
    Fap = Fagg * pa

    Fagg_rad = Kagg * C_agg * St * Sw * Asn_agg
    Fap_rad = Fagg_rad * pa
    # Fagg_rad = Kagg * C_agg_rad * St * Sw
    # Fap_rad = Fagg_rad * pa
    # outputs
    Fpa = Vpa * (C_pom / (Kpa + C_pom)) * (1 - (C_agg / Amax)) * St * Sw
    Fpl = Vpl * (C_pom / (Kpl + C_pom)) * (C_mic / (Kpe + C_mic)) * St * Sw

    Fpa_rad = Vpa * (C_pom /
                     (Kpa + C_pom)) * (1 - (C_agg / Amax)) * St * Sw * Asn_pom
    Fpl_rad = Vpl * (C_pom /
                     (Kpl + C_pom)) * (C_mic /
                                       (Kpe + C_mic)) * St * Sw * Asn_pom

    # Fpa_rad = Vpa * (C_pom_rad / (Kpa + C_pom_rad)) * (1 - (C_agg_rad/Amax)) * St * Sw
    # Fpl_rad = Vpl * (C_pom_rad/(Kpl+C_pom_rad)) * (C_mic_rad / (Kpe + C_mic_rad)) * St * Sw

    C_pom_local = C_pom + pi * Fin_l + Fap - Fpa - Fpl
    C_pom_rad_local = C_pom_rad + pi * Fin_l_rad + Fap_rad - Fpa_rad - Fpl_rad - (
        1 / (lambdax * 365)) * C_pom_rad

    # change unit to D14C per mil
    D14C_pom_local = ((C_pom_rad_local / C_pom_local) / Aabs - 1) * 1000
    return C_pom_local, Fin_l, C_pom_rad_local, D14C_pom_local
コード例 #7
0
def millennial(C_maom,
               C_pom,
               C_agg,
               day,
               Vma=0.07,
               Kma=200,
               Amax=500,
               Vpa=0.002,
               Kpa=50,
               Kagg=0.0002):
    St, Sw, CUE = m_scal.millennial(day)
    # inputs
    Fma = Vma * C_maom / (Kma + C_maom) * (1 - C_agg / Amax) * St * Sw
    Fpa = Vpa * (C_pom / (Kpa + C_pom)) * (1 - (C_agg / Amax)) * St * Sw
    # outputs
    Fagg = Kagg * C_agg * St * Sw

    C_agg_local = C_agg + Fma + Fpa - Fagg
    return C_agg_local
コード例 #8
0
def millennial_rad(C_lmwc,
                   C_mic,
                   C_lmwc_rad,
                   C_mic_rad,
                   day,
                   Vlm=0.35,
                   Klb=7.2,
                   Kmic=0.036,
                   Kmm=0.025,
                   lambdax=8267,
                   Aabs=10**-12):

    St, Sw, CUE = m_scal.millennial(day)

    Asn_lmwc = C_lmwc_rad / C_lmwc
    Asn_mic = C_mic_rad / C_mic

    # input
    Flb = Vlm * C_lmwc * C_mic / (C_mic + Klb) * St * Sw
    Flb_rad = Vlm * C_lmwc * C_mic / (C_mic + Klb) * St * Sw * Asn_lmwc
    # Flb_rad = Vlm * C_lmwc_rad * C_mic_rad / (C_mic_rad + Klb) * St * Sw
    # output
    Fbr = Kmic * C_mic * St * Sw  # microbial mortality
    Fbm = Kmm * C_mic * St * Sw  # adsorption of mineral surface

    Fbr_rad = Kmic * C_mic * St * Sw * Asn_mic  # microbial mortality
    Fbm_rad = Kmm * C_mic * St * Sw * Asn_mic  # adsorption of mineral surface
    # Fbr_rad = Kmic * C_mic_rad * St * Sw # microbial mortality
    # Fbm_rad = Kmm * C_mic_rad * St* Sw  # adsorption of mineral surface
    #
    C_mic_local = C_mic + Flb * CUE - Fbm - Fbr
    F_res = Fbr + Flb * (1 - CUE)

    # radiocarbon
    C_mic_rad_local = C_mic_rad + Flb_rad * CUE - Fbm_rad - Fbr_rad - (
        1 / (lambdax * 365)) * C_mic_rad
    F_res_rad = Fbr_rad + Flb_rad * (1 - CUE)
    #
    # change unit to D14C per mil
    D14C_mic_local = ((C_mic_rad_local / C_mic_local) / Aabs - 1) * 1000
    D14C_res_local = ((F_res_rad / F_res) / Aabs - 1) * 1000
    return C_mic_local, F_res, C_mic_rad_local, F_res_rad, D14C_mic_local, D14C_res_local
コード例 #9
0
def millennial(C_lmwc,C_maom,C_mic,C_agg,day,c1=0.4833,clay_per=40,c2=2.3282,BulkD=1150,Klm=0.25,Kmm=0.025,\
    Kagg=0.0002,pa=1./3.,Vma=0.07,Kma=200,Amax=500,Vml=0.01,M_Lmin=10,Kml=25):
    St, Sw, CUE = m_scal.millennial(day)
    Qmax1 = 10**(c1 * math.log(clay_per, 10) + c2)
    Qmax = BulkD * Qmax1 * 10**(-3)  # convert to gC/m2 (flagged)
    #input
    Flm = C_lmwc * (Klm * Qmax * C_lmwc / (1 + (Klm * C_lmwc)) -
                    C_maom) / Qmax * St * Sw  # adsorption of LMWC
    Fbm = Kmm * C_mic * St * Sw  # adsorption by mineral surface
    Fagg = Kagg * C_agg * St * Sw  # break of aggregated carbon
    Fam = Fagg * (
        1 - pa
    )  # allocation of Fagg (flag: pa = 0.5 in Xu and 1/3 in Abramoff)
    # output
    Fma = Vma * C_maom / (Kma + C_maom) * (
        1 -
        C_agg / Amax) * St * Sw  # flag: Kma is 2000 in Xu (200 in Abramoff)
    Fml = Vml * (C_maom - M_Lmin) / (Kml + C_maom - M_Lmin) * St * Sw

    C_maom_local = C_maom + Flm + Fbm + Fam - Fma - Fml
    return C_maom_local
コード例 #10
0
def millennial(C_pom,C_mic,C_maom,C_lmwc,day,Vpl=10,Kpl=150,Kpe=12,Vml=0.01,M_Lmin=10,Kml=25,\
    Kl=0.0015,Klm=0.25,c1=0.4833,c2=2.3282,clay_per=40,BulkD=1150,Vlm=0.35,Klb=7.2,pi=2./3.):
    St, Sw, CUE = m_scal.millennial(day)
    Qmax1 = 10**(c1 * math.log(clay_per, 10) + c2)
    Qmax = BulkD * Qmax1 * 10**(-3)  # convert to gC/m2 (flagged)
    # inputs
    Fin_l = Fi[day - (day // 365) * 365]
    # temporary: start
    #if day ==0:
    #   Fin_l = 172.
    #else:
    #   Fin_l = 0
    ########### end temporary
    Fpl = Vpl * (C_pom / (Kpl + C_pom)) * (C_mic / (Kpe + C_mic)) * St * Sw
    Fml = Vml * (C_maom - M_Lmin) / (Kml + C_maom - M_Lmin) * St * Sw
    # outputs
    Fl = Kl * C_lmwc * St * Sw  # leaching
    Flm = C_lmwc * (Klm * Qmax * C_lmwc /
                    (1 + (Klm * C_lmwc)) - C_maom) / Qmax * St * Sw
    Flb = Vlm * C_lmwc * C_mic / (C_mic + Klb) * St * Sw

    C_lmwc_local = C_lmwc + (1 - pi) * Fin_l + Fpl + Fml - Fl - Flm - Flb
    return C_lmwc_local