diff --git a/src/DataLayouts/DataLayouts.jl b/src/DataLayouts/DataLayouts.jl index bdd6daa430..6b62fdea19 100644 --- a/src/DataLayouts/DataLayouts.jl +++ b/src/DataLayouts/DataLayouts.jl @@ -321,7 +321,7 @@ function IJFH{S, Nij, Nh}(array::AbstractArray{T, 4}) where {S, Nij, Nh, T} @assert size(array, 1) == Nij @assert size(array, 2) == Nij @assert size(array, 3) == typesize(T, S) - @assert size(array, 4) == Nh + @assert size(array, 4) == Nh "Nh is $Nh and array size is $(size(array))" IJFH{S, Nij, Nh, typeof(array)}(array) end @@ -340,10 +340,6 @@ function IJFH{S, Nij, Nh}(::Type{ArrayType}) where {S, Nij, Nh, ArrayType} IJFH{S, Nij, Nh}(ArrayType(undef, Nij, Nij, typesize(T, S), Nh)) end -# # TODO: deprecate -# IJFH{S, Nij}(::Type{ArrayType}, Nh) where {S, Nij, ArrayType} = -# IJFH{S, Nij, Nh}(ArrayType) - function replace_basetype( data::IJFH{S, Nij, Nh}, ::Type{T}, @@ -439,10 +435,11 @@ end function gather( ctx::ClimaComms.AbstractCommsContext, - data::IJFH{S, Nij, Nh}, -) where {S, Nij, Nh} + data::IJFH{S, Nij}, +) where {S, Nij} gatherdata = ClimaComms.gather(ctx, parent(data)) if ClimaComms.iamroot(ctx) + Nh = size(gatherdata, 4) IJFH{S, Nij, Nh}(gatherdata) else nothing @@ -456,8 +453,8 @@ end Base.length(data::Data1D) = size(parent(data), 3) """ - IFH{S, Ni, A} <: Data1D{S, Ni} - IFH{S,Ni}(ArrayType, nelements) + IFH{S,Ni,Nh,A} <: Data1D{S, Ni} + IFH{S,Ni,Nh}(ArrayType) Backing `DataLayout` for 1D spectral element slabs. @@ -468,7 +465,7 @@ datatype `S` struct field (F), for each 1D mesh element (H). The `ArrayType`-constructor makes a IFH 1D Spectral DataLayout given the backing `ArrayType`, quadrature degrees of freedom `Ni`, and the number of mesh elements -`nelements`. +`Nh`. """ struct IFH{S, Ni, Nh, A} <: Data1D{S, Ni} array::A @@ -495,10 +492,6 @@ function IFH{S, Ni, Nh}(::Type{ArrayType}) where {S, Ni, Nh, ArrayType} IFH{S, Ni, Nh}(ArrayType(undef, Ni, typesize(T, S), Nh)) end -# # TODO: deprecate -# IFH{S, Ni}(::Type{ArrayType}, Nh) where {S, Ni, ArrayType} = -# IFH{S, Ni, Nh}(ArrayType) - rebuild(data::IFH{S, Ni, Nh}, array::AbstractArray{T, 3}) where {S, Ni, Nh, T} = IFH{S, Ni, Nh}(array) @@ -1076,7 +1069,7 @@ function VIJFH{S, Nv, Nij, Nh}( check_basetype(T, S) @assert size(array, 2) == size(array, 3) == Nij @assert size(array, 4) == typesize(T, S) - @assert size(array, 5) == Nh + @assert size(array, 5) == Nh "Nh is $Nh and array size is $(size(array))" VIJFH{S, Nv, Nij, Nh, typeof(array)}(array) end @@ -1198,10 +1191,11 @@ end function gather( ctx::ClimaComms.AbstractCommsContext, - data::VIJFH{S, Nv, Nij, Nh}, -) where {S, Nv, Nij, Nh} + data::VIJFH{S, Nv, Nij}, +) where {S, Nv, Nij} gatherdata = ClimaComms.gather(ctx, parent(data)) if ClimaComms.iamroot(ctx) + Nh = size(gatherdata, 5) VIJFH{S, Nv, Nij, Nh}(gatherdata) else nothing