working solid solver subroutine