I write a fair bit of Fortran, lots of Matlab, and recently started seriously learning C++. I think that you will be productive in your new language sooner if you go with Fortran rather than C++. I suggest this bearing in mind:
- I guess that most of the number crunching you want to do is to process large arrays of numbers. Fortran is very good at this and has fundamental language constructs and intrinsic functions for whole-array operations (not always better performing than loops mind you). C++ misses these features, you either have to program them yourself or use a library such as Boost (highly recommended by people far more knowledgeable than me).
- A lot of the features which make C++ an attractive language for a large range of application types (features such as templates, all the OO stuff, pointers, references, and more) are not terribly useful within your domain. I suspect that if you need to do any
'clever' programming you'll do it in R, leaving Fortran for simple heavy-lifting. Fortran has most of those features too, but they're not so widely used in the Fortran communitty.
- The Fortran mindset is not far from the Matlab mindset, so the leap from the latter to the former is not huge. Right now, too, my view is that learning enough Fortran to be productive in your domain is going to be quicker than learning enough C++.
- As for the relative performance of Fortran and C++: believe nothing unless you have measurements in front of you. But I think that you have to work hard and smart to get C++ to match Fortran performance. It can certainly be done, but I think it's more demanding of the programmer's skills. Fortran compilers have had over 50 years of work on them and optimisation for execution speed is very important to we Fortran programmers.
I can't comment at all on the ease of integrating R and Fortran or C++