@mcc @leon @00dani I wouldn't use anything earlier than F2008; F2018 is pretty well supported by now.
Depending on the application I might start a greenfield project in modern Fortran. For me the biggest problem is the absolute lack of a standard library; I have a set of trusted third-party libraries I use for logging, CLI option processing, unit testing, and common file formats, but if I need to sort anything or do any sophisticated parsing I'm SOL. The C interface is standardized and I've had success linking to sqlite and Lua, but I'd rather avoid mixed language programming if I could avoid it.
Still, it's difficult to find a fast low magic language with decent array operations, vectorizable (elemental) functions, and easy-to-assure static binaries.
There really isn't a good language for writing dependable engineering code. Fortran does fast numerics but lacks domain-specific safety features like units of measure, constrained types (from Ada), contracts (from Eiffel), and canonical physical constants (e.g. CODATA). C++ is a swirling vortex of incomprehensible and gratuitous abstraction, Rust is single vendor with the-code-is-the-spec disease, and Ada is, well, Ada. Fortran lacks a lot of the basic features we expect from a programming language (the aforementioned lack not standard library) and the devotion to backwards compatibility necessitates it being handcuffed to 1956 design decisions. Otherwise it's a straightforward and fairly simple and fast language that does a decent job on a certain class of problems and is uniformly poor at some critical tasks, mainly input processing. Expect that 25-30% of your Fortran application will be devoted to input processing and validation and all that parsing and checking will be a tedious pain in the ass. :/