diff --git a/src/EDMF_Updrafts.jl b/src/EDMF_Updrafts.jl index da07bf76c..6bb6a67c9 100644 --- a/src/EDMF_Updrafts.jl +++ b/src/EDMF_Updrafts.jl @@ -41,10 +41,10 @@ function compute_precipitation_formation_tendencies( end end # TODO - to be deleted once we sum all tendencies elsewhere - for k in real_center_indices(grid) + @inbounds for k in real_center_indices(grid) aux_bulk.θ_liq_ice_tendency_precip_formation[k] = 0 aux_bulk.qt_tendency_precip_formation[k] = 0 - for i in 1:(up.n_updrafts) + @inbounds for i in 1:(up.n_updrafts) aux_bulk.θ_liq_ice_tendency_precip_formation[k] += aux_up[i].θ_liq_ice_tendency_precip_formation[k] aux_bulk.qt_tendency_precip_formation[k] += aux_up[i].qt_tendency_precip_formation[k] end diff --git a/src/Fields.jl b/src/Fields.jl index 7e83ec556..263c32a3d 100644 --- a/src/Fields.jl +++ b/src/Fields.jl @@ -54,3 +54,16 @@ function FieldFromNamedTuple(space, nt::NamedTuple) cmv(z) = nt return cmv.(CC.Fields.coordinate_field(space)) end + +# https://github.com/CliMA/ClimaCore.jl/issues/275 +transform_broadcasted(bc::Base.Broadcast.Broadcasted{CC.Fields.FieldVectorStyle}, symb, axes) = + Base.Broadcast.Broadcasted(bc.f, map(arg -> transform_broadcasted(arg, symb, axes), bc.args), axes) +transform_broadcasted(fv::CC.Fields.FieldVector, symb, axes) = parent(getproperty(fv, symb)) +transform_broadcasted(x, symb, axes) = x +@inline function Base.copyto!(dest::CC.Fields.FieldVector, bc::Base.Broadcast.Broadcasted{CC.Fields.FieldVectorStyle}) + for symb in propertynames(dest) + p = parent(getproperty(dest, symb)) + Base.copyto!(p, transform_broadcasted(bc, symb, axes(p))) + end + return dest +end diff --git a/src/Turbulence_PrognosticTKE.jl b/src/Turbulence_PrognosticTKE.jl index eafc16d9d..25b18ac26 100755 --- a/src/Turbulence_PrognosticTKE.jl +++ b/src/Turbulence_PrognosticTKE.jl @@ -944,7 +944,7 @@ function GMV_third_m( if is_tke parent(ϕ_en_cov) .= 0 - for i in 1:N_up + @inbounds for i in 1:N_up horiz_K_eddy = aux_up_c[i].horiz_K_eddy a_up = aux_up_c[i].area a_bulk = aux_bulk.area