We have a model in C++, C and good old fortran. We are trying to update, upgrade, improve all the algorithms. we have chosen python as a language to write the new model. Any building block available? We will look at the C cycle and at fires.
You can probably run your C and fortran codes through python using f2py and other libraries to port old code, and weave python around it. This might be better than rewriting your whole codebase. Can you be more specific on your needs though, it's not really clear how to advise about python without more specific goals
I would suggest to first stick to the vintage Fortran/C/C++ code for the calculations, adding a modern Python layer around it for the user interface (text or GUI does not matter). You can easily call the Fortran/C routines from Python and, with a proper Makefile, compilation is fast.
Later, with some planning, you can start to rewrite the vintage code in Python. If you do it incrementally, you can easily check the results of the new code against the original version.
I speak with a years of experience with same dilemma: do we port our old code base, or just update it for the next hardware? Typically, I would follow the advice of Adam and Sabino and continue to run the old codebase if possible. This all depends on if you need to change the original algorithm or you are worried about possible bugs.
Personally I will only touch old Fortran code to pass through in f2py, otherwise any new code will get written in Python.
For a shameless plug on this topic I have a lot of experience using Python for scientific programming and I have found it easier to just rewrite equations from scratch and not mess with old Fortran. I maintain a package called EasyModeler: https://pypi.python.org/pypi/EasyModeler/2.2.3 that may do what you are looking for.
I would recommend thinking carefully about the continuity of your science - specifically, it would probably be very good to ensure that the new code gives the same solutions as the old code. Ideally, one might write the new code so it provide bit-identical results across a comprehensive set of inputs/configurations, before augmenting it with any new functionality. But perhaps just collect summary metrics from the old code on a "realistic" set of inputs, and ensure that the new implementation produces "similar" outputs.
Without at least some effort along these lines, it will be difficult to say that the new version is correct...