anchor.diff:    integer             :: ii, num_nodes, ios
     real(wp), parameter :: diff = 0.1_wp, vel = -1.0_wp
   
  -  integer,  dimension(:),   allocatable :: orderN
  -  integer,  dimension(:,:), allocatable :: elem_connN
  -  real(wp), dimension(:),   allocatable :: xcoordsN, GlobalB, GlobalX
  -  real(wp), dimension(:,:), allocatable :: IeN, GlobalA
  +  integer,  dimension(:),   allocatable :: order
  +  integer,  dimension(:,:), allocatable :: elem_conn
  +  real(wp), dimension(:),   allocatable :: xcoords, GlobalB, GlobalX
  +  real(wp), dimension(:,:), allocatable :: Ie, GlobalA
     character(len=50) :: arg
   
     call get_command_argument_wrapper(arg)
  -  call read_gmsh_file_1D(arg, num_nodes, orderN, elem_connN, xcoordsN)
  +  call read_gmsh_file_1D(arg, num_nodes, order, elem_conn, xcoords)
   
     allocate(GlobalA(num_nodes, num_nodes))
     allocate(GlobalB(num_nodes))
  
positive.code:   call r8mat_print(num_nodes, 1, GlobalB, 'Global RHS:')
  
    ! Add elemental stiffness matrices to Global Stiffness Matrix
    do ii = 1, size(orderN)
      ! Reallocate elemental stiffness matrix
      allocate(IeN(orderN(ii)+1, orderN(ii)+1))
      call getIe(1, 1, xcoordsN(elem_connN(ii,:)), IeN)
      ! call r8mat_print(orderN(ii)+1, orderN(ii)+1, IeN, 'Elemental Stiffness Matrix:')
  
      GlobalA(elem_connN(ii,:), elem_connN(ii,:)) = &
          GlobalA(elem_connN(ii,:), elem_connN(ii,:)) - diff*IeN
  
      call getIe(0, 1, xcoordsN(elem_connN(ii,:)), IeN)
      ! call r8mat_print(orderN(ii)+1, orderN(ii)+1, IeN, 'Elemental Stiffness Matrix:')
  
      GlobalA(elem_connN(ii,:), elem_connN(ii,:)) = &
          GlobalA(elem_connN(ii,:), elem_connN(ii,:)) - vel*IeN
  
      ! Deallocate elemental stiffness matrix after every loop
      deallocate(IeN)
      ! stop
    end do
  
  
negative.code:   if ( ios /= 0 ) stop "Error opening file 21"
  
    do ii = 1, num_nodes
      write(21,*) xcoords(ii), GlobalX(ii)
    end do
    close(unit=21, iostat=ios)
    if ( ios /= 0 ) stop "Error closing file unit 21"
  
    if ( allocated(order) )    deallocate(order)
    if ( allocated(elem_conn) ) deallocate(elem_conn)
    if ( allocated(xcoords) )  deallocate(xcoords)
    if ( allocated(GlobalA) )  deallocate(GlobalA)
    if ( allocated(GlobalB) )  deallocate(GlobalB)
    if ( allocated(GlobalX) )  deallocate(GlobalX)
  