We have developed a three-Dimensional (3-D) Monte Carlo transport code "IMPGYRO" for heavy metal impurities. The code includes most of important processes of heavy metal impurities, such as the Larmor gyration, Coulomb collisions and multi-step ionization/recombination processes. The code outputs the 2-D density profiles of high-Z impurity for a realistic tokamak geometry. In this paper, the IMPGYRO code has been improved to take into account the self-sputtering and the thermal force. The normalized density of impurities in the divertor region for the power detached case is larger than that for the attached case. The balance between the friction force and the thermal force possibly explain the tendency. The IMPGYRO code directly solves the 3-D equation of motion for impurity particles. It is possible to properly calculate the incident angle to the wall for each impurity particle. The incident angle calculated by the IMPGYRO is widely distributed around the incident angle of a magnetic line of force. The sputtering yield greatly depends on the incident angle, especially in the angle range that the incident angle of tungsten is distributed. Therefore, the IMPGYRO code which properly calculates the incident angle is a useful tool to evaluate the angular distribution of incident particles and the resultant amount of the self-sputtered impurity.