extend shape analysis to support symbolic expression
1. seems only adding a few lines, then the shape analysis supports
symbolic expressions...and now, the shape result can be, for instance,
	if the value of a and b are not exactly known,
	and arr=[a,b], then shape(arr)=[1,b-a+1].

2. debug a little bit of Fortran back end to make it compatible with
changes on shape analysis recently.

TODO maybe should start to clean up the Fortran back end...