diff --git a/src/mo_optimization_types.f90 b/src/mo_optimization_types.f90 index cba25011b4c6e7b2bcca73e90f47218133f5112a..e326d6fdbe9b8c7dc5b26d48d0a7a3c5b1c747f4 100644 --- a/src/mo_optimization_types.f90 +++ b/src/mo_optimization_types.f90 @@ -193,7 +193,6 @@ MODULE mo_optimization_types integer(i4) :: i - ! ToDo: loop -> subroutine get_id i = this%get_id(name) ptr => this%variables(i)%data_1d end subroutine sim_data_set_pointer_1d @@ -242,12 +241,12 @@ MODULE mo_optimization_types ptr => this%variables(i)%data_5d end subroutine sim_data_set_pointer_5d - ! ToDo: Pass only shape instead of optidataObs - subroutine optidata_sim_init(this, optidataObs) + subroutine optidata_sim_init(this, data_shape) class(optidata_sim), intent(inout) :: this - type(optidata), intent(in) :: optidataObs + integer(i4), dimension(2) :: data_shape !< the shape of the simulated data + !< may often be the dimensions of optidataObs%dataObs - allocate(this%dataSim(size(optidataObs%dataObs, dim = 1), size(optidataObs%dataObs, dim = 2))) + allocate(this%dataSim(data_shape(1), data_shape(2))) this%dataSim(:, :) = 0.0_dp ! has to be intialized with zero because later summation this%averageTimestep = 1 this%averageCounter = 0