anchor.diff:                      if (size(var%data_2d) /= size(data_2d)) then
                           call restart_domain_error(var%name)
                       endif
  -                    var%data_2d(its:ite,jts:jte) = data_2d(its-ims+1:ite-ims+1,jts-jms+1:jte-jms+1)
  +                    var%data_2d = data_2d
                   else
                       print*, "ERROR, variable not ready to be used:"//trim(var%name)
                   endif
  
positive.code:                     if (size(var%data_3d) /= size(data_3d)) then
                          call restart_domain_error(var%name)
                      endif
                      dim_3d(2) = size(data_3d,3)
                      var%data_3d(its:ite,:,jts:jte) = reshape(data_3d(its-ims+1:ite-ims+1,jts-jms+1:jte-jms+1,:), shape=dim_3d, order=[1,3,2])
                  else
                      print*, "ERROR, variable not ready to be used:"//trim(var%name)
                  endif
  
negative.code: 
      do i=1,dataset%n_variables
  
          associate(var => dataset%variables(i))
  
              if (var%three_d) then
  
                  call io_read(filename, var%name, data_3d, extradim=time_step)
  
                  if (associated(var%data_3d)) then
  