I'm soon going to start a job as a Scientific Computing software developer. My responsibilities as discussed with the manager are as follows:
- Analyzing/understanding the existing functionalities (numerical algorithms and physical models) in the 2nd version of the code, written in Fortran.
- Acquiring skills and knowledge regarding the 3rd version of the code, written in C++.
- Transferring functionalities from 2nd version to 3rd version of the code.
- Improving and optimizing the transferred functionalities.
- Enriching the verification base of the code.
I have a fairly solid theoretical background in Computational Science, I'm also quite proficient in programming and related technologies. Although I am not necessarily a software developer. The reason for which I was hired for the job is because they were looking for somebody with a solid understanding of numerical modeling and simulation and not just a plain software developer.
I am going to have an exchange with the current developers and research engineers involved in the development of the code and hopefully, I'll get some training, but since the training part was not really mentioned during the hiring process, here I am asking the members of the community - at least those with solid experience in Scientific Software development.
What are the usual steps in such a situation i.e. upgrading the version with a change in programming language for a Scientific Computing code? Is there any standard practice or protocol to follow?
P.S. The type of modeling done using the part of the code I am going to deal with is thermal hydraulics and fluid dynamics/mechanics.