diff --git a/integration_tests/ARM_SGP.jl b/integration_tests/ARM_SGP.jl index ee1a734b45..84092410dd 100644 --- a/integration_tests/ARM_SGP.jl +++ b/integration_tests/ARM_SGP.jl @@ -11,18 +11,18 @@ include(joinpath("utils", "compute_mse.jl")) using .NameList best_mse = OrderedDict() -best_mse["qt_mean"] = 3.4420193413687117e-01 -best_mse["updraft_area"] = 1.9818317322584239e+03 -best_mse["updraft_w"] = 3.1101869507553300e+02 -best_mse["updraft_qt"] = 1.2779005319987142e+01 -best_mse["updraft_thetal"] = 2.7687174775467490e+01 -best_mse["u_mean"] = 8.7998547277817835e+01 -best_mse["tke_mean"] = 6.7532125088372368e+02 -best_mse["temperature_mean"] = 1.3976231155597154e-04 -best_mse["ql_mean"] = 2.9406894196734129e+02 -best_mse["thetal_mean"] = 1.4216021128644291e-04 -best_mse["Hvar_mean"] = 1.4219930941047571e+03 -best_mse["QTvar_mean"] = 2.7979236616322686e+02 +best_mse["qt_mean"] = 3.5691847012203143e-01 +best_mse["updraft_area"] = 1.9645743867371027e+03 +best_mse["updraft_w"] = 3.5781735855735855e+02 +best_mse["updraft_qt"] = 1.3457137434986310e+01 +best_mse["updraft_thetal"] = 2.7680764603306077e+01 +best_mse["u_mean"] = 8.7998547277817920e+01 +best_mse["tke_mean"] = 6.3658705239459096e+02 +best_mse["temperature_mean"] = 1.3818806435138376e-04 +best_mse["ql_mean"] = 3.6220527567539864e+02 +best_mse["thetal_mean"] = 1.4145191959567767e-04 +best_mse["Hvar_mean"] = 1.5980068858564114e+03 +best_mse["QTvar_mean"] = 3.6076370680937271e+02 @testset "ARM_SGP" begin println("Running ARM_SGP...") diff --git a/integration_tests/Bomex.jl b/integration_tests/Bomex.jl index 7a3295c5a4..40db207c31 100644 --- a/integration_tests/Bomex.jl +++ b/integration_tests/Bomex.jl @@ -11,19 +11,19 @@ include(joinpath("utils", "compute_mse.jl")) using .NameList best_mse = OrderedDict() -best_mse["qt_mean"] = 9.5377282321874049e-02 -best_mse["updraft_area"] = 7.2522420468798543e+02 -best_mse["updraft_w"] = 2.6282677670021386e+01 -best_mse["updraft_qt"] = 4.0341139540222635e+00 -best_mse["updraft_thetal"] = 2.1548164483602367e+01 -best_mse["v_mean"] = 6.5247595142753596e+01 -best_mse["u_mean"] = 5.3292989796462209e+01 -best_mse["tke_mean"] = 3.8891129116688681e+01 -best_mse["temperature_mean"] = 3.8547176978568602e-05 -best_mse["ql_mean"] = 3.8134281154981489e+00 -best_mse["thetal_mean"] = 3.9162071364386570e-05 -best_mse["Hvar_mean"] = 7.5510623226760771e+01 -best_mse["QTvar_mean"] = 2.2962565404185188e+01 +best_mse["qt_mean"] = 9.8858939409301599e-02 +best_mse["updraft_area"] = 7.2423270403289905e+02 +best_mse["updraft_w"] = 2.7297489157558520e+01 +best_mse["updraft_qt"] = 4.0686060603282321e+00 +best_mse["updraft_thetal"] = 2.1547376374778047e+01 +best_mse["v_mean"] = 6.5159453481189033e+01 +best_mse["u_mean"] = 5.3292347667845092e+01 +best_mse["tke_mean"] = 3.8707689709123862e+01 +best_mse["temperature_mean"] = 4.0396510560887023e-05 +best_mse["ql_mean"] = 3.9678285547654855e+00 +best_mse["thetal_mean"] = 4.1130421765389724e-05 +best_mse["Hvar_mean"] = 5.9914307236483694e+01 +best_mse["QTvar_mean"] = 1.9732739289298404e+01 @testset "Bomex" begin println("Running Bomex...") diff --git a/integration_tests/DYCOMS_RF01.jl b/integration_tests/DYCOMS_RF01.jl index 19392ec368..fee66468e2 100644 --- a/integration_tests/DYCOMS_RF01.jl +++ b/integration_tests/DYCOMS_RF01.jl @@ -11,19 +11,19 @@ include(joinpath("utils", "compute_mse.jl")) using .NameList best_mse = OrderedDict() -best_mse["qt_mean"] = 1.6029892735513345e-02 -best_mse["ql_mean"] = 6.0295296107176544e+00 -best_mse["updraft_area"] = 2.3847762474738320e+02 -best_mse["updraft_w"] = 4.3312794675046318e+00 -best_mse["updraft_qt"] = 1.1929325513431135e+00 -best_mse["updraft_thetal"] = 1.2740562957739254e+01 -best_mse["v_mean"] = 3.9737745703044638e+01 -best_mse["u_mean"] = 3.7038099069367689e+01 -best_mse["tke_mean"] = 1.4950275863942871e+01 -best_mse["temperature_mean"] = 1.6731316538438984e-05 -best_mse["thetal_mean"] = 1.7840937307304572e-05 -best_mse["Hvar_mean"] = 1.2023987118420042e+04 -best_mse["QTvar_mean"] = 7.5103635873377698e+02 +best_mse["qt_mean"] = 1.6028016672273267e-02 +best_mse["ql_mean"] = 5.9785694176953177e+00 +best_mse["updraft_area"] = 2.3855918967670206e+02 +best_mse["updraft_w"] = 4.3334326744994369e+00 +best_mse["updraft_qt"] = 1.1941194458788802e+00 +best_mse["updraft_thetal"] = 1.2740391229155120e+01 +best_mse["v_mean"] = 3.9737974530772370e+01 +best_mse["u_mean"] = 3.7038316285893714e+01 +best_mse["tke_mean"] = 1.4893837287794840e+01 +best_mse["temperature_mean"] = 1.6663829628240641e-05 +best_mse["thetal_mean"] = 1.7779259870199484e-05 +best_mse["Hvar_mean"] = 1.1587461976732782e+04 +best_mse["QTvar_mean"] = 7.3381590514601828e+02 @testset "DYCOMS_RF01" begin println("Running DYCOMS_RF01...") diff --git a/integration_tests/Rico.jl b/integration_tests/Rico.jl index 2132b2fe9a..3ff0d9ea98 100644 --- a/integration_tests/Rico.jl +++ b/integration_tests/Rico.jl @@ -11,19 +11,19 @@ include(joinpath("utils", "compute_mse.jl")) using .NameList best_mse = OrderedDict() -best_mse["qt_mean"] = 4.2745465446436787e-01 -best_mse["updraft_area"] = 1.5810580213880007e+03 -best_mse["updraft_w"] = 3.0293830804824944e+02 -best_mse["updraft_qt"] = 1.8036840808532091e+01 -best_mse["updraft_thetal"] = 6.3565923109974378e+01 -best_mse["v_mean"] = 1.0637284782337001e+02 -best_mse["u_mean"] = 1.1444354015737491e+02 -best_mse["tke_mean"] = 8.6553999307149547e+02 -best_mse["temperature_mean"] = 1.2540517259642333e-04 -best_mse["ql_mean"] = 5.1325163153016852e+01 -best_mse["thetal_mean"] = 1.2561593164473264e-04 -best_mse["Hvar_mean"] = 1.4739277424672016e+03 -best_mse["QTvar_mean"] = 7.1366176286414179e+02 +best_mse["qt_mean"] = 4.3104248538733420e-01 +best_mse["updraft_area"] = 1.5789778929006447e+03 +best_mse["updraft_w"] = 2.9474627527892022e+02 +best_mse["updraft_qt"] = 1.7944807685758455e+01 +best_mse["updraft_thetal"] = 6.3569098888788886e+01 +best_mse["v_mean"] = 1.0627585162881577e+02 +best_mse["u_mean"] = 1.1431212367609878e+02 +best_mse["tke_mean"] = 8.8307805728796393e+02 +best_mse["temperature_mean"] = 1.2372854790132712e-04 +best_mse["ql_mean"] = 6.9240573720579249e+01 +best_mse["thetal_mean"] = 1.2362373538586256e-04 +best_mse["Hvar_mean"] = 1.5559806585826123e+03 +best_mse["QTvar_mean"] = 7.3615953416203286e+02 @testset "Rico" begin println("Running Rico...") diff --git a/integration_tests/TRMM_LBA.jl b/integration_tests/TRMM_LBA.jl index 97c1ce4eb4..f4ec81f35a 100644 --- a/integration_tests/TRMM_LBA.jl +++ b/integration_tests/TRMM_LBA.jl @@ -14,19 +14,19 @@ using .NameList CLIMAParameters.Planet.T_freeze(::EarthParameterSet) = 100.0 best_mse = OrderedDict() -best_mse["qt_mean"] = 1.7995063250630168e+00 -best_mse["updraft_area"] = 3.1529411391564761e+04 -best_mse["updraft_w"] = 1.0325943376733990e+03 -best_mse["updraft_qt"] = 3.1156138180627952e+01 -best_mse["updraft_thetal"] = 1.1001893832675252e+02 -best_mse["v_mean"] = 2.9275592916609139e+02 -best_mse["u_mean"] = 1.6873153880206969e+03 -best_mse["tke_mean"] = 1.3627971247685127e+03 -best_mse["temperature_mean"] = 6.8597416865395539e-04 -best_mse["ql_mean"] = 1.0669889889408917e+03 -best_mse["thetal_mean"] = 8.1757856795585861e-03 -best_mse["Hvar_mean"] = 6.8922213953686887e+03 -best_mse["QTvar_mean"] = 2.5975685843697461e+03 +best_mse["qt_mean"] = 1.6060537595282474e+00 +best_mse["updraft_area"] = 2.4326719919423565e+04 +best_mse["updraft_w"] = 8.9781354744758698e+02 +best_mse["updraft_qt"] = 2.7840588043220112e+01 +best_mse["updraft_thetal"] = 1.1000857010242179e+02 +best_mse["v_mean"] = 2.9255417406952222e+02 +best_mse["u_mean"] = 1.6872488577305783e+03 +best_mse["tke_mean"] = 1.5447663031724076e+03 +best_mse["temperature_mean"] = 6.8027838562624771e-04 +best_mse["ql_mean"] = 9.5570328764405224e+02 +best_mse["thetal_mean"] = 8.1813107572739491e-03 +best_mse["Hvar_mean"] = 6.7055563584983674e+03 +best_mse["QTvar_mean"] = 2.6582568278775302e+03 @testset "TRMM_LBA" begin println("Running TRMM_LBA...") diff --git a/src/EDMF_Updrafts.jl b/src/EDMF_Updrafts.jl index fd685c11c9..60b48ff7e1 100644 --- a/src/EDMF_Updrafts.jl +++ b/src/EDMF_Updrafts.jl @@ -357,8 +357,6 @@ function buoyancy( extrap::Bool, ) - qt = 0.0 - h = 0.0 grid = self.Gr kc_surf = kc_surface(grid) @@ -395,11 +393,10 @@ function buoyancy( UpdVar.B.values[i, k] = buoyancy_c(self.Ref.rho0_half[k], rho) UpdVar.RH.values[i, k] = relative_humidity_c(self.Ref.p0_half[k], qt, qt - qv, 0.0, t) elseif UpdVar.Area.values[i, k - 1] > 0.0 && k > kc_surf - # TODO: report bug: - # qt and h were not defined here before the function call. + qt = UpdVar.QT.values[i,k-1] + h = UpdVar.H.values[i,k-1] sa = eos(self.Ref.p0_half[k], qt, h) - qt -= sa.ql - qv = qt + qv = qt - sa.ql t = sa.T rho = rho_c(self.Ref.p0_half[k], t, qt, qv) UpdVar.B.values[i, k] = buoyancy_c(self.Ref.rho0_half[k], rho)