some codes is just edited for learning using mpich2