anchor.diff:                          print*, dz_interface(:,i,:)
                           print*,""
                       endif
  -                    else if ( ANY(dz_interface(:,i,:)<=0.01) ) then
  +                    else if ( ANY(global_dz_interface(:,i,:)<=0.01) ) then
                       if (this_image()==1)  write(*,*) "WARNING: dz_interface very low (at level ",i,")"
                       endif
   
  -                    ! - - - - -   u/v grid calculations - - - - -
  +                    ! - - - - -   u/v grid calculations - - - - - 
                       z_u(:,i,:)   = (sum(dz_scl(1:(i-1))) + dz_scl(i)/2)   &
                                   + h1_u  *  SINH( (smooth_height/s1)**n -  ( (sum(dz_scl(1:(i-1)))+dz_scl(i)/2) /s1)**n ) / SINH((smooth_height/s1)**n)  &! large-scale terrain
                                   + h2_u  *  SINH( (smooth_height/s2)**n -  ( (sum(dz_scl(1:(i-1)))+dz_scl(i)/2) /s2)**n ) / SINH((smooth_height/s2)**n)   ! small terrain features
  
positive.code: 
          endif
  
          associate(ims => this%ims,      ime => this%ime,                        &
                    jms => this%jms,      jme => this%jme,                        &
                    kms => this%kms,      kme => this%kme,                        &
  
negative.code:         class(domain_t), intent(inout)  :: this
          type(options_t), intent(in)     :: options
  
          real, allocatable :: temp(:,:,:), gamma_n(:)
          integer :: i, max_level
          real :: s, n, s1, s2, gamma, gamma_min        
          logical :: SLEVE
  
          associate(ims => this%ims,      ime => this%ime,                        &
  