anchor.diff:  
           call create_variables(this, options)
   
  -        call initialize_core_variables(this, options)
  +        call initialize_core_variables(this, options)  ! split into several subroutines?
   
           call read_land_variables(this, options)
   
  
positive.code: 
      end subroutine initialize_core_variables
  
      subroutine setup_dzdxy(this,options)
          implicit none
          class(domain_t), intent(inout)  :: this
  
negative.code:     end subroutine allocate_z_arrays
  
  
      !> -------------------------------
      !! Setup the SLEVE vertical grid structure. 
      !!   This basically entails 2 transformations: First a linear one so that sum(dz) ranges from 0 to smooth_height H.
      !!   (boundary cnd (3) in Schär et al 2002)  Next, the nonlinear SLEVE transformation
      !!    eqn (2) from Leuenberger et al 2009 z_sleve = Z + terrain * sinh((H/s)**n - (Z/s)**n) / SINH((H/s)**n) (for both smallscale and largescale terrain)
      !!   Here H is the model top or (flat_z_height in m), s controls how fast the terrain decays
      !!   and n controls the compression throughout the column (this last factor was added by Leuenberger et al 2009)
      !!   References: Leuenberger et al 2009 "A Generalization of the SLEVE Vertical Coordinate"
      !!               Schär et al 2002 "A New Terrain-Following Vertical Coordinate Formulation for Atmospheric Prediction Models"
      !!
      !! N.B. flat dz height != 0 makes little sense here? But works (?)
      !! -------------------------------
      subroutine setup_sleve(this, options)
          implicit none
          class(domain_t), intent(inout)  :: this
          type(options_t), intent(in)     :: options
  