anchor.diff:      private
       public :: step
   
  -    real, dimension(:,:), allocatable :: lastw, currw, uw, vw ! temporaries used to compute diagnostic w_real field
  +    real, dimension(:,:), allocatable :: lastw, currw, uw, vw !> temporaries used to compute diagnostic w_real field
   contains
       
  -!   update just the edges of curdata by adding dXdt
  +    !>------------------------------------------------------------
  +    !!  Update the edges of curdata by adding dXdt
  +    !!
  +    !!  Apply dXdt to the boundaries of a given data array. 
  +    !!  For these variables, dXdt is a small array just storing the boundary increments
  +    !!
  +    !! @param curdata   data array to be updated
  +    !! @param dXdt      Array containing increments to be applied to the boundaries. 
  +    !!                  (nz x max(nx,ny) x 4)
  +    !!
  +    !!------------------------------------------------------------
       subroutine boundary_update(curdata,dXdt)
           implicit none
           real,dimension(:,:,:), intent(inout) :: curdata
  
positive.code:     end subroutine diagnostic_update
  
  
  !   Divides dXdt variables by n timesteps so that after adding it N times we will be at the
  !   correct final value. 
      subroutine apply_dt(bc,nsteps, options)
          implicit none
          type(bc_type), intent(inout) :: bc
  
negative.code:         endif
          bc%dsst_dt   = bc%dsst_dt   / nsteps
  
          ! parallel version didn't seem to work
  !         !$omp parallel firstprivate(ny,nsteps) &
  !         !$omp private(j) &
  !         !$omp shared(bc)
  