The asignment a=da is ok?
Yes, if da is in the isp range, you might get warnings though.
and what about da=1_isp?
Yes, see above.
or da=da+1?
Same.
In most cases, I think it's worth to use explicit casting like da = int(a, kind=idp). That will also avoid warnings by the compiler.
In the case of a loop do di=1,da is allowed?
Tricky, I guess it might work, if the compiler supports long integers as loop counters. But, I would be cautious with that.
can I call stackof(1_isp,da)
No, type, kind and rank have to match.