diff --git a/src/mo_cost.f90 b/src/mo_cost.f90
index 0df50f81875e15229a4b4d91b1cafc77c2286569..8c5d483a1997cea645e23b05e6202f320871c871 100644
--- a/src/mo_cost.f90
+++ b/src/mo_cost.f90
@@ -236,15 +236,15 @@ CONTAINS
     real(dp), optional, intent(out) :: arg3
     real(dp) :: cost_objective
 
-    type(sim_data_t), dimension(:), pointer :: opti_sim
+    type(sim_data_t), dimension(:), pointer :: sim_data
     type(config_t) :: config
     REAL(DP), DIMENSION(6,2)            :: meas
     REAL(DP), DIMENSION(6)              :: calc
 
     config%parameters = parameterset
-    allocate(opti_sim(1))
-    call opti_sim(1)%add(name='et', ndim=2_i4)
-    call eval(config, opti_sim)
+    allocate(sim_data(1))
+    call sim_data(1)%add(name='et', ndim=2_i4)
+    call eval(config, sim_data)
 
     ! function: f(x) = ax^3 + bx^2 + cx + d
     ! measurements: (0.5,5.725), (1.0, 21.7), (1.5, 49.175), (2.0, 88.9), (2.5, 141.625), (3.0, 208.1)
@@ -258,7 +258,7 @@ CONTAINS
     ! MAE  Mean Absolute Error
     cost_objective = sum(abs( meas(:,2)-calc(:) ))/size(meas,1)
 
-    deallocate(opti_sim)
+    deallocate(sim_data)
 
     RETURN
   END FUNCTION cost_objective
diff --git a/src/mo_likelihood.f90 b/src/mo_likelihood.f90
index 895a9f38f4fa957826571714e159141d8109f7d0..463711bf403d1aac60028a87512d3db11afab2fd 100644
--- a/src/mo_likelihood.f90
+++ b/src/mo_likelihood.f90
@@ -59,18 +59,18 @@ CONTAINS
     ! local
     REAL(DP), DIMENSION(size(meas,1))   :: errors
     real(dp), pointer :: runoff(:, :)
-    type(sim_data_t), dimension(:), pointer :: opti_sim
+    type(sim_data_t), dimension(:), pointer :: sim_data
     type(config_t) :: config
 
     config%parameters = paraset
 
-    allocate(opti_sim(1))
-    call opti_sim(1)%add(name="runoff", ndim=2_i4)
-    call eval(config, opti_sim=opti_sim)
-    call opti_sim(1)%set_pointer(name="runoff", ptr=runoff)
+    allocate(sim_data(1))
+    call sim_data(1)%add(name="runoff", ndim=2_i4)
+    call eval(config, sim_data=sim_data)
+    call sim_data(1)%set_pointer(name="runoff", ptr=runoff)
     errors(:) = runoff(:,1)-data()
     likelihood_dp = exp(-0.5_dp * sum( errors(:) * errors(:) / stddev_global**2 ))
-    deallocate(opti_sim)
+    deallocate(sim_data)
 
   end function likelihood_dp
 
@@ -89,18 +89,18 @@ CONTAINS
     ! local
     REAL(DP), DIMENSION(size(meas,1))   :: errors
     real(dp), pointer :: runoff(:, :)
-    type(sim_data_t), dimension(:), pointer :: opti_sim
+    type(sim_data_t), dimension(:), pointer :: sim_data
     type(config_t) :: config
 
     config%parameters = paraset
 
-    allocate(opti_sim(1))
-    call opti_sim(1)%add(name="runoff", ndim=2_i4)
-    call eval(config, opti_sim=opti_sim)
-    call opti_sim(1)%set_pointer(name="runoff", ptr=runoff)
+    allocate(sim_data(1))
+    call sim_data(1)%add(name="runoff", ndim=2_i4)
+    call eval(config, sim_data=sim_data)
+    call sim_data(1)%set_pointer(name="runoff", ptr=runoff)
     errors(:) = runoff(:,1)-data()
     loglikelihood_dp = -0.5_dp * sum( errors(:) * errors(:) / stddev_global**2 )
-    deallocate(opti_sim)
+    deallocate(sim_data)
 
   end function loglikelihood_dp
 
@@ -120,18 +120,18 @@ CONTAINS
     REAL(DP), DIMENSION(size(meas,1))   :: errors
     REAL(DP)                            :: stddev_err
     real(dp), pointer :: runoff(:, :)
-    type(sim_data_t), dimension(:), pointer :: opti_sim
+    type(sim_data_t), dimension(:), pointer :: sim_data
     type(config_t) :: config
 
     config%parameters = paraset
 
-    allocate(opti_sim(1))
-    call opti_sim(1)%add(name="runoff", ndim=2_i4)
-    call eval(config, opti_sim=opti_sim)
-    call opti_sim(1)%set_pointer(name="runoff", ptr=runoff)
+    allocate(sim_data(1))
+    call sim_data(1)%add(name="runoff", ndim=2_i4)
+    call eval(config, sim_data=sim_data)
+    call sim_data(1)%set_pointer(name="runoff", ptr=runoff)
     errors(:) = runoff(:,1)-data()
     likelihood_stddev_dp = exp(-0.5_dp * sum( errors(:) * errors(:) / stddev_in**2 ))
-    deallocate(opti_sim)
+    deallocate(sim_data)
 
     ! optional out
     stddev_err = stddev(errors)
@@ -160,18 +160,18 @@ CONTAINS
     REAL(DP), DIMENSION(size(meas,1))   :: errors
     REAL(DP)                            :: stddev_err
     real(dp), pointer :: runoff(:, :)
-    type(sim_data_t), dimension(:), pointer :: opti_sim
+    type(sim_data_t), dimension(:), pointer :: sim_data
     type(config_t) :: config
 
     config%parameters = paraset
 
-    allocate(opti_sim(1))
-    call opti_sim(1)%add(name="runoff", ndim=2_i4)
-    call eval(config, opti_sim=opti_sim)
-    call opti_sim(1)%set_pointer(name="runoff", ptr=runoff)
+    allocate(sim_data(1))
+    call sim_data(1)%add(name="runoff", ndim=2_i4)
+    call eval(config, sim_data=sim_data)
+    call sim_data(1)%set_pointer(name="runoff", ptr=runoff)
     errors(:) = runoff(:,1)-data()
     loglikelihood_stddev_dp = -0.5_dp * sum( errors(:) * errors(:) / stddev_in**2 )
-    deallocate(opti_sim)
+    deallocate(sim_data)
 
     ! optional out
     stddev_err = stddev(errors)
@@ -186,7 +186,7 @@ CONTAINS
 
   ! -------------------------------
   !> \brief A Model: p1*x^2 + p2*x + p3
-  subroutine model_dp(config, opti_sim)
+  subroutine model_dp(config, sim_data)
 
     use mo_kind, only: dp
     use mo_optimization_types, only : sim_data_t, config_t
@@ -194,7 +194,7 @@ CONTAINS
     !! !$ USE omp_lib,    only: OMP_GET_THREAD_NUM
 
     type(config_t), intent(in) :: config
-    type(sim_data_t), dimension(:), pointer, optional, intent(inout) :: opti_sim
+    type(sim_data_t), dimension(:), pointer, optional, intent(inout) :: sim_data
     real(dp), pointer :: runoff(:, :)
 
     integer(i4) :: i, n
@@ -203,11 +203,11 @@ CONTAINS
 
     n = size(meas,1)
 
-    if (size(opti_sim) /= 1) call error_message('model_dp: does not support opti_sim data with more than 1 dimension.')
+    if (size(sim_data) /= 1) call error_message('model_dp: does not support sim_data data with more than 1 dimension.')
 
-    if (opti_sim(1)%has('runoff')) then
-      call opti_sim(1)%allocate(name="runoff", data_shape=(/n, 1/))
-      call opti_sim(1)%set_pointer(name="runoff", ptr=runoff)
+    if (sim_data(1)%has('runoff')) then
+      call sim_data(1)%allocate(name="runoff", data_shape=(/n, 1/))
+      call sim_data(1)%set_pointer(name="runoff", ptr=runoff)
     end if
 
     !! !$ is_thread = OMP_GET_THREAD_NUM()
diff --git a/src/mo_opt_functions.f90 b/src/mo_opt_functions.f90
index 7c4e8550f1d397791cb58b7359399995da12a5d1..103159d5ab7dbdc5fe7ae8360fee75052969fece 100644
--- a/src/mo_opt_functions.f90
+++ b/src/mo_opt_functions.f90
@@ -5639,20 +5639,20 @@ CONTAINS
     real(dp), parameter :: b = 0.2_dp
     real(dp), parameter :: c = 2.0_dp*pi_dp
     real(dp) :: s1, s2
-    type(sim_data_t), pointer, dimension(:) :: opti_sim
+    type(sim_data_t), pointer, dimension(:) :: sim_data
     type(config_t) :: config
 
-    allocate(opti_sim(1))
+    allocate(sim_data(1))
     config%parameters = parameterset
-    call opti_sim(1)%add(name='et', ndim=2_i4)
-    call eval(config, opti_sim)
+    call sim_data(1)%add(name='et', ndim=2_i4)
+    call eval(config, sim_data)
 
     n = size(parameterset)
     s1 = sum(parameterset**2)
     s2 = sum(cos(c*parameterset))
     ackley_objective = -a * exp(-b*sqrt(1.0_dp/real(n,dp)*s1)) - exp(1.0_dp/real(n,dp)*s2) + a + exp(1.0_dp)
 
-    deallocate(opti_sim)
+    deallocate(sim_data)
 
   end function ackley_objective
 
@@ -5673,13 +5673,13 @@ CONTAINS
     integer(i4) :: nopt
     integer(i4) :: j
     real(dp)    :: d, u1, u2
-    type(sim_data_t), pointer, dimension(:) :: opti_sim
+    type(sim_data_t), pointer, dimension(:) :: sim_data
     type(config_t) :: config
 
     config%parameters = parameterset
-    allocate(opti_sim(1))
-    call opti_sim(1)%add(name='et', ndim=2_i4)
-    call eval(config, opti_sim)
+    allocate(sim_data(1))
+    call sim_data(1)%add(name='et', ndim=2_i4)
+    call eval(config, sim_data)
 
     nopt = size(parameterset)
     if (nopt .eq. 2) then
@@ -5694,25 +5694,25 @@ CONTAINS
     end do
     griewank_objective = u1 - u2 + 1.0_dp
 
-    deallocate(opti_sim)
+    deallocate(sim_data)
     !
   end function griewank_objective
 
 
-  subroutine eval_dummy(config, opti_sim)
+  subroutine eval_dummy(config, sim_data)
     use mo_kind, only : dp
     use mo_optimization_types, only : sim_data_t, config_t
 
     implicit none
 
     type(config_t), intent(in) :: config
-    type(sim_data_t), dimension(:), pointer, optional, intent(inout) :: opti_sim
+    type(sim_data_t), dimension(:), pointer, optional, intent(inout) :: sim_data
 
     real(dp), dimension(:, :), pointer :: dummyDataPtr_2d
     real(dp), dimension(:), pointer :: dummyDataPtr_1d
     integer(i4) :: iDomain, nDomains
 
-    nDomains = size(opti_sim)
+    nDomains = size(sim_data)
 
     allocate(dummyDataPtr_2d(1, 1))
     allocate(dummyDataPtr_1d(1))
@@ -5720,79 +5720,79 @@ CONTAINS
     dummyDataPtr_1d = 0.0_dp
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('et')) then
-        call opti_sim(iDomain)%allocate(name="et", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="et", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('et')) then
+        call sim_data(iDomain)%allocate(name="et", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="et", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('neutrons')) then
-        call opti_sim(iDomain)%allocate(name="neutrons", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="neutrons", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('neutrons')) then
+        call sim_data(iDomain)%allocate(name="neutrons", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="neutrons", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('tws')) then
-        call opti_sim(iDomain)%allocate(name="tws", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="tws", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('tws')) then
+        call sim_data(iDomain)%allocate(name="tws", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="tws", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('sm')) then
-        call opti_sim(iDomain)%allocate(name="sm", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="sm", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('sm')) then
+        call sim_data(iDomain)%allocate(name="sm", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="sm", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('runoff')) then
-        call opti_sim(iDomain)%allocate(name="runoff", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="runoff", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('runoff')) then
+        call sim_data(iDomain)%allocate(name="runoff", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="runoff", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('BFI')) then
-        call opti_sim(iDomain)%allocate(name="BFI", data_shape=(/1/))
-        call opti_sim(iDomain)%set_pointer(name="BFI", ptr=dummyDataPtr_1d)
+      if (sim_data(iDomain)%has('BFI')) then
+        call sim_data(iDomain)%allocate(name="BFI", data_shape=(/1/))
+        call sim_data(iDomain)%set_pointer(name="BFI", ptr=dummyDataPtr_1d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('lake_level')) then
-        call opti_sim(iDomain)%allocate(name="lake_level", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="lake_level", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('lake_level')) then
+        call sim_data(iDomain)%allocate(name="lake_level", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="lake_level", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('lake_volume')) then
-        call opti_sim(iDomain)%allocate(name="lake_volume", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="lake_volume", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('lake_volume')) then
+        call sim_data(iDomain)%allocate(name="lake_volume", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="lake_volume", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('lake_area')) then
-        call opti_sim(iDomain)%allocate(name="lake_area", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="lake_area", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('lake_area')) then
+        call sim_data(iDomain)%allocate(name="lake_area", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="lake_area", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('lake_spill')) then
-        call opti_sim(iDomain)%allocate(name="lake_spill", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="lake_spill", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('lake_spill')) then
+        call sim_data(iDomain)%allocate(name="lake_spill", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="lake_spill", ptr=dummyDataPtr_2d)
       end if
     end do
 
     do iDomain = 1 , nDomains
-      if (opti_sim(iDomain)%has('lake_outflow')) then
-        call opti_sim(iDomain)%allocate(name="lake_outflow", data_shape=(/1, 1/))
-        call opti_sim(iDomain)%set_pointer(name="lake_outflow", ptr=dummyDataPtr_2d)
+      if (sim_data(iDomain)%has('lake_outflow')) then
+        call sim_data(iDomain)%allocate(name="lake_outflow", data_shape=(/1, 1/))
+        call sim_data(iDomain)%set_pointer(name="lake_outflow", ptr=dummyDataPtr_2d)
       end if
     end do