i'm not using mpiicc because one may have icc but not mpiicc: e.g. students get icc for free, but not mpiicc - OK, I agree with you this is *really* unlikely to be the case.

wence, for the linking thing: I think, as you say, it's because libpetsc is linked against MPI.

kynan: definitely agree, hardcode is also very bad. 

In other words, my problem is: how should we trigger compilation with icc? do you want me to just drop the thing and assume one has mpicc?