This started as a presentation for US EPA's Office of Research and Development in 2002 when the author was at MCNC—North Carolina Supercomputing Center, and has been updated from time to time since. It is amazing just how well the lessons of that time have held up—the only thing is that the tendencies noted in 2002 have become even stronger over time—main memory (and even caches) is even slower relative to processor-cores, for example
For example,
Read layer 1 of variable 'OZONE' from 'CONCFILE' for
5:00 PM GMT on July 19, 2018 and put the result
into array A.
is the direct English translation of a typical I/O API
READ3()
call.
PAVE Frequently Asked Questions
.0.f
), a M3UTILIO
ized,
I/O API 3.2-ized (.f
) of SMOKE, an
findent (.1.f90
) free-source-format
reference version of SMOKE constructed from the
.f
, and a cleaned-up .f90
version
of SMOKE.
In several places, copyright, attribution, and license notices that had been stripped from the code have been replaced.
A number of additional changes have been made, where error checking was missing, numerics were handled badly, loop-nest orders were inappropriate, and potential bugs and questionable coding-practices were fixed. The code was brought up to I/O API-3.2 standards.
Finally, there is a section describing what further (and larger-scale) changes ought to be made.
This work has been done entirely on my own time. I had no
external support for this work whatsoever.
-- Carlie J. Coats, Jr., Ph.D.
Singularity CMAQ Container Document Index
Singularity CMAQ Container Users Manual