anchor.diff:       rect_n_start(1)=cap_n_end(ncap)+1
        call make_index_table_start_end(rect_nnode, rect_n_start, rect_n_end)
   
  -     nrect = rect_n_end(nrects) - rect_n_start(1) + 1
  -     fnrect = nrect
  +     nrectnodes = rect_n_end(nrects) - rect_n_start(1) + 1
  +     fnrectnodes = nrectnodes
        nfsize = rect_n_end(nrects)
     end if
   
  
positive.code:   ALLOCATE(NEXTN(1:NFSIZE),XFN(1:3,1:NFSIZE),FRC(1:3,1:NFSIZE),Foptical(1:3,1:NFSIZE))
    ALLOCATE(elmnew(1:3,1:NFSIZE2))
    ALLOCATE(shpint(1:3,1:NFSIZE2),shpfs(1:7,1:NFSIZE2))
    allocate(xpi(3,nrect))
  
    pi = 3.14159265358979323846d0 ! Taken from Wikipedia; 20 digits
    !     Physical parameters -- using cgs system
  
negative.code:   end if
    print *, 'cell l278', nfsize, nfsize2
    nrects = $npls$
    nrectnodes = 0
    if (nrects > 0) then 
       allocate(rect_nnode(nrects), rect_n1(nrects), rect_n2(nrects), &
            recty(nrects), rect_n_start(nrects), rect_n_end(nrects))
  