Copyright Status of Thermodynamic Properties?
orzetto writes "I work at a research institute, and programming models of physical systems is what I do most of the time. One significant problem when modeling physical processes is finding thermodynamic data. There are some commercial solutions, but these can be quite expensive, and to the best of my knowledge there are no open source efforts in this direction. In my previous job, my company used NIST's Supertrapp, which is not really that expensive, but is written in Fortran, and an old-fashioned dialect at that. As a result, it is a bit difficult to integrate into other projects (praised be f2c), and the programming interface is simply horrible; worse, there are some Fortran-induced limitations such as a maximum of 20 species in a mixture. I was wondering whether it would be legal to buy a copy of such a database (they usually sell with source code, no one can read Fortran anyway); take the data, possibly reformatting it as XML; implement a new programming interface from scratch; and publish the package as free software. Thermodynamic data is not an intellectual creation but a mere measurement, which was most likely done not by the programmers but by scientists funded with our tax money. What are your experiences and opinions on the matter? For the record, I am based in Germany, so the EU database directive applies."
If the NIST program is the product of the work of US Government employees it is in the public domain. I would not be surprised if many of the commercial closed-source programs for the same purpose are based on it. In any case, tabulated data is not protected by US copyright so someone in the US could certainly do as you suggest.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
Huh? Recent versions (ie, in the past couple decades) of Fortran are really very decent for scientific calculation, in many respects better than C. There's a ton of computational chemistry software, for example, written primarily in modern Fortran.
The FAQ claims that the US government has a copyright on the material. This could be possible if the material was not directly generated by the NIST itself --- for example, they paid a contractor to generate it and it is considered a "work for hire".
The facts themselves probably can't be considered to be under copyright.
OTOH, I agree with a previous poster that you should consult a lawyer if you want to actually do anything which isn't sheeple-ish with the data.
Anything produced by the United States Federal Government (which the National Institute of Standards and Technology certainly qualifies as), is in the public domain.
That's what he meant.
My blog
A database is copyrightable. See http://www.bitlaw.com/copyright/database.html
People using this NIST data do it because it has NIST sign on it, so they don't risk being dependent on tabulated values from not exhaustively verified source. If you're rewritting the source code, you should take care to establish means by which users could check that data are unaltered with respect to what NIST servers contain. If you work for renowned institute, that should be easy, just store the database on your server and sync it with NIST, along with sources of data cited at NIST website.
As it comes to Fortran programming, it's optimal language for scientific computing. Modern dialects have some of the power of C (allocatable arrays, long subourtine names, free format code, modules, interoperability with C), but, what is preferable in scientific computing, programmer isn't encouraged to tinker with machine-specific stuff. Many existing codes are written in Fortran, e.g. powerful LAPACK library and many computational chemistry packages, so for many physicists/chemists/engineers Fortran is the only language they know and care of. Moreover, Fortran in recent years has gained parallel-programming functionality thanks to OpenMP (it's provided with features eqivalent to that in C/Cpp).
I tend to work in the atmospheric sciences, where, as one might guess we work with microphysical processes and thermodynamic data. I would second the recommendation that working from the original, authoritative publications would be a good approach. If you're well-versed in the field already, you're familiar with the seminal works. If you're not, your job is bigger than you realize, as programming for a scientific project is rarely just finding equations and re-coding them, or finding a database of physical constants and calling them. You've got to understand where in the domain in question they come into play and use appropriate equations and parameterizations.
Fortran, even Fortran-66, is rarely unreadable. However, it often is written like a short story in a local dialect. The author has a method and style, and you have to understand it, or at least become conversant with it, before reading and understanding the flow of the code occurs. I should point out that this is really not different from any other language. Fortran, however, has been maligned because its roots were not in object-basis. Fortran 90 and Fortran 95 both, however, comply with the OO paradigm. The inherent problem is, CS departments often don't teach Fortran, and their faculty will tell you how horrid it is. Why? Because their discipline is COMPUTER science, not, say, solid earth geophysics, and they're conversant with a number of languages.and feel they can pick the best one for the job. The geophysicist, on the other hand, spent his time learning how and why those pesky tectonic plates move around, something the computer scientist never really studied unless, maybe, he took a rocks-for-jocks class and got really interested. Rather than mastering C, C++, Java and C#, the geophysicist learned just enough Fortran to get his work done, and proceeded down a different path. Since Fortran ("FORmula TRANslation") was developed to help discipline scientists transform their equations to operable code, this really makes sense.
My first computer initiation was using Fortran (Fortran-II) on an IBM 1401 while I was still in junior high school. My first formal course in programming used SWIFT, BASIC and SNOBOL, over the course of a summer while in high school. Virtually every course in college I took (I was not a CS major, but could/should have been from my transcript) was in Fortran (plus a pair of assembly language courses) because the choices were Fortran, Cobol or assembly. Imagine, if you will, not having a "modern language around, and having to code decent I/O or even decent APIs with that choice.
Never ascribe to malice that which can adequately be explained by tenure.
I used to work solely in FORTRAN for simulation work. The big advantage of Fortran90/95 over C is that the compilers are heavily optimized for doing iterated operations over every value of an array. So for say, fluid dynamics, it really is the best. I suspect you might be able achieve a similar speed in C, but that you would have to hand optimise instead (ugh).
All the formulation for the prediction of water properties are published by International Association for the Properties of Water and Steam (IAPWS) so that they can be used. It is often important to use exactly the same correlations so that that all the thermodynamic data are self-consistent. Therefore the formulations are standardized by an international body. I do not think that the use of this formulae is in any way restricted because such restriction would defeat the very purpose - standarization. See http://www.iapws.org/ for the collection of the current formulations. There may be a restriction for a particular implementation (computer program) or sets of tables ( "lookup tables" and interpolation are often used for performance). Not sure. Hope someone starts an extension to implement these kind of things in Gnumeric. Cheers. Ephraim the horse.