À l'époque où FORTRAN a été développé, la portabilité du code n'existait pas. Il était absolument routinier que le compilateur FORTRAN sur une machine accepte un langage légèrement différent de celui du compilateur sur une autre machine. La variation la plus courante était la longueur du nom. L'IBM 1130 FORTRAN autorisait cinq caractères, le DEC-10 six, le CDC 6600 (ma première machine, mon premier véritable langage d'assemblage) sept. Les tableaux tridimensionnels étaient requis par le langage; au moins un mini-ordinateur (Varian 76?) FORTRAN a permis des tableaux à sept dimensions.
Les entreprises ont régulièrement étendu leurs langues FORTRAN pour rendre leurs machines plus attrayantes pour les clients et, bien que les extensions puissent fournir des fonctionnalités similaires, elles n'ont jamais été identiques. De nombreux compilateurs ont fourni des extensions pour effectuer les E / S de fichiers et la gestion des superpositions, et ils n'ont jamais été identiques. Parfois, ils n'étaient même pas proches.
Les conversions FORTRAN-FORTRAN, le transfert d'un programme d'une machine à une autre, étaient une industrie artisanale très occupée, et les gars qui pouvaient le faire pouvaient toujours trouver du travail. (J'ai travaillé deux de ces conversions: j'ai aidé à porter le jeu original "Star Trek" Matuszek-Reynolds-McGehearty-Cohen du CDC 6600 au DEC-10, et j'ai porté un programme d'analyse d'ECG de Varian 76 à TI 990. Pas deux ces projets étaient identiques.)
Ce genre de chose a rendu très, très difficile la fourniture de bibliothèques "standard", bien que quelques personnes aient essayé. La bibliothèque IMSL était la plus grande, mais elle était expédiée sous forme de code source, et le client devait la faire fonctionner sur son système.
Aussi: les programmeurs FORTRAN devaient avoir une formation raisonnable en méthodes numériques. À peu près tous les programmeurs FORTRAN de la planète à cette époque ont appris à faire pour eux-mêmes la moyenne et l'écart-type, comme devoir. Chaque programmeur FORTRAN a appris la bissection et l'itération de Newton-Raphson (aujourd'hui appelée "méthode de Newton") à l'école. Les méthodes Runge-Kutta ont été enseignées, généralement par cœur, et, à cette époque, les intégrateurs Runge-Kutta de 6e ordre étaient des exemples de manuels. (C'est bien plus tard que les gens ont compris que le Runge-Kutta de 4e ordre était le "point idéal" sur la courbe de rentabilité.)
Et: les programmeurs ont RAREMENT changé d'ordinateurs sans changer les tâches. Les programmeurs qui se sont déplacés étaient censés ET OBLIGATOIRES être très bons pour apprendre comment les nouveaux systèmes fonctionnaient et pour saisir les différences.
Dans cet environnement, il y aura très peu d'appel pour un code STDDEV "standard", alors que quelque chose que n'importe quel programmeur FORTRAN d'entrée de gamme compétent pourrait écrire pendant son sommeil.