anchor.diff:  
             !phinew(i+1) is ry(i)*n(i)*ry(i+1)
             allocate(phinew(i+1)%p(ry(i+1)*ry(i+1)*ra(i+1)*2))
  -          call zphi_left(ry(i), m(i), ry(i+1), ry(i), n(i), ry(i+1), ra(i), ra(i+1), phinew(i)%p, crA(pa(i)), crnew(i)%p, crnew(i)%p, &
  +          call zphi_left(ry(i), m(i), ry(i+1), ry(i), n(i), ry(i+1), &
  +                        ra(i), ra(i+1), phinew(i)%p, crA(pa(i)), crnew(i)%p, crnew(i)%p, &
                  phinew(i+1)%p)
          end if
          i = i+dir
  
positive.code:                 deallocate(phinew(i)%p)
                  allocate(phinew(i)%p(ry(i)*ry(i)*ra(i)*2))
               end if
               call dphi_right(ry(i), n(i), ry(i+1), ry(i), n(i), ry(i+1), ra(i), ra(i+1), phinew(i+1)%p, crA(pa(i)), crnew(i)%p, crnew(i)%p, phinew(i)%p)
            end if
         end if
         if ( dir > 0 ) then
  
negative.code:                 deallocate(phinew(i+1)%p)
                  allocate(phinew(i+1)%p(ry(i+1)*ry(i+1)*ra(i+1)*2))
               end if
               call zphi_left(ry(i), n(i), ry(i+1), ry(i), n(i), ry(i+1), &
               ra(i), ra(i+1), phinew(i)%p, crA(pa(i)), crnew(i)%p, crnew(i)%p, phinew(i+1)%p)
            end if
         end if
  
  