On 18.12.2015 23:12, Tom Roche wrote:
> Tom Roche[1]
>>> summary: "generic" software developer seeks to work on large Fortran-based models[2]. Please recommend resources (MOOCs, standard academic programs, whatever) by which I could efficiently increase my Fortran credentials.
>
> Wolfgang Kilian[6]
>> get a good book on modern Fortran and work your way through it while coding small examples[, e.g.,] Metcalf/Reid/Cohen "Modern Fortran Explained"[7] because it is concise, rather complete, and pedagogical.
>
> I've been working through Metcalf & Reid's "Fortran 90/95 Explained"[8] but should perhaps step up. (FWIW, IIUC, these "big models" are mostly F95 or older--their managements don't seem eager to update working code.)
Yes, that's a common attitude. Nevertheless, new features will
eventually creep in with new code where they are useful, and if they
don't require external libraries or interfaces. Finally, just because
younger people grew up with them. That happened with F90/95.
> That being said, ISTM you're missing the distinction between 'learning' and 'credential'. Suppose I wanted to pursue a position like one recently advertised[9]:
I guess that if you have digested MR, you're essentially well prepared.
You may be interested in F2003/08
Except, as you say, that you may prove somehow that you can code in
Fortran. But that means contributing to real projects, as others have
said. Maybe that's not so easy because the typical web app is not coded
in Fortran.
>>>> Qualifications[:] A PhD in Atmospheric Sciences, Meteorology, or related fields is required. Candidates with experience in (1) regional or global climate modeling; (2) top-down constraint of anthropogenic and biogenic GHG emission inventories; (3) fluency in FORTRAN; and (4) fluency with LINUX operating system and parallel programming paradigms on high-performance computers are strongly preferred.
>
> Suppose I had such a PhD (I don't currently) with that concentration (which I intend to pursue). I have experience in regional-scale modeling (and intend to get more, as well as global-scale), (IMHO) am Linux-fluent, and have written working code using both MPI and OpenMP (which I'm guessing covers "parallel programming paradigms"). That leaves "fluency in Fortran"--at least I'm fluent enough not to all-cap it :-)
>
> I suspect that if I claimed "fluency in Fortran" based on self-work through a text, I would be vulnerable to competition from someone with more impressive credential(s), e.g., coursework (probably better yet, some kind of certificate) from a program (i.e., academic department) with a strong reputation in scientific programming/HPC, and esp Fortran[10]. But I don't even know of {lists, ratings, reviews} of "the strong Fortran programs": pointers in that direction would be appreciated.
>
>>> Since you have previous programming and CS experience and training, you probably don't need to attend a course.
>
> I tend to agree, since a BSCS course of study (as earned through any decently-competent program) tends to equip one to learn enough to learn other programming platforms/languages. But people like me and you aren't hiring for positions like those I target:
>
> 1. (based on my limited sample of contacts with folks working in this space) "Big model" managers don't get that. They don't have much contact with CS/informatic grads (except as sysadmins, and those contacts are too often unpleasant). They *do* have contact with lots physical-science grads who very much struggle with Fortran.
>
> 2. (based on my much greater contact with US STEM labor markets) Competition is fierce for jobs (even postdocs), and even greater for funding for graduate study (which is what I'll probably need to look for soonest). US academic institutions continue to generate large numbers of STEM graduates, while US political institutions continue to clamp (in real terms) science funding. This gives bosses (including PIs, model managers) great bargaining power to demand increasingly long lists of qualifications, and HR departments are increasingly enlisted to enforce them.
>
> So to reiterate (hopefully not to beat into the ground): while there are many ways to learn Fortran, I need something that will demonstrate (to a PI with a physical-science background) that I have learned (and can use) Fortran "better than the next guy," when I and s/he are competing for the PI's funding.
Since I'm a physicist myself (but not in atmospheric science, and not in
the US), I may comment. When I get the opportunity to hire people, I
first try to find out whether the candidate understands what (s)he is
doing, and why. This explains the PhD part of the advertisment you
quote. If I had the funding to hire somebody who is not a true
specialist in my particular field of physics but experienced in CS, it
would be perfectly acceptable to demonstrate fluency in C++ together
with a realistic claim and willingness to become familiar with Fortran
reading and writing in a short time. Also regarding programming, I'd
prefer a candidate who has a broader perspective than technical details
of some particular language syntax or model. But, granted, not all PI
think that way. But they should know that physicists are hired in many
fields because of their supposed ability to master stuff that they are
not familiar with in short time (replace 'Fortran' with anything else).
I don't know of anybody (personally) who had *formal* training in
Fortran, and I'd be slightly suspicious about it, because there are
still too many influential people out there who think that Fortran is in
all-caps. Fluency in old FORTRAN does not help in improving HPC code on
modern environments.