NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Does anyone have a version of gennet.f (see http://www.unidata.ucar.edu/packages/netcdf/contrib.html ), i.e. that outputs netCDF-reading Fortran 90? (Unlike the current version, which outputs F77.) Why I ask: Problem: I need to convert vanilla NetCDF from some global emissions inventories to I/O-API-formatted NetCDF http://www.baronams.com/products/ioapi/ http://www.cmaq-model.org/cmaqwiki/index.php?title=CMAQ_version_5.0_%28February_2010_release%29_OGD&#Input.2FOutput_Applications_Programming_Interface_.28I.2FO_API.29 (aka, IOAPI). Unfortunately, to do this reliably, at present I must do this in Fortran. More unfortunately, my Fortran chops are quite weak: I managed to both get a degree and work in software development this whole millenium without writing more than a few LOC of any dialect of Fortran. So I'm learning Fortran while attempting to solve the above problem by adapting and combining 1 a mix of F77 and F90 code that both writes IOAPI, and reads and processes netCDF (from ftp://ftp.unc.edu/pub/cmas/TOOLS/ncf2ioapi.tar.gz ), unfortunately * for an application that is enough different from my own to be occasionally confusing * not written for pedagogy, unlike ... 2 gennet.f (see http://www.unidata.ucar.edu/packages/netcdf/contrib.html ), F77 code that reads an arbitrary netCDF file (with a few constraints) and writes F77 code to read that same netCDF file. It may seem "meta," but is quite understandable, even for this novice--in fact, I would recommend adding gennet.f (or something like it) to http://www.unidata.ucar.edu/software/netcdf/examples/programs/ because it outputs code relatively specific to one's netCDF. (For more details, esp code, see https://github.com/TomRoche/ioapi-hack-R/tree/master/fortran-examples and scroll down to "fortran-examples/README.txt". For an example of gennet.f F77 output, see https://github.com/TomRoche/ioapi-hack-R/blob/master/fortran-examples/read_IC_BC.f ) The main problem I have found so far with gennet.f is that it does not generate F90. (Another problem is that it doesn't seem to handle attributes. Given my relative lack of experience with netCDF, and absolute lack of experience with Fortran, I could very well be missing features and problems with gennet.f, but note that the bugs described @ http://woce.nodc.noaa.gov/woce_v3/wocedata_1/cmdac/primer/app4.htm http://www.unidata.ucar.edu/support/help/MailArchives/netcdf/msg09423.html seem to have been squashed.) Given that * I need to write IOAPI * the only source I have that writes IOAPI is F90 * F90 is sufficiently {different from, better than} F77 * I am time-constrained: I don't seem to have time to learn one dialect of Fortran, much less two it would seem much easier for me to combine a clearly-written F90 netCDF reader with the not-so-clearly-written F90 IOAPI writer that I have (i.e., https://github.com/TomRoche/ioapi-hack-R/blob/master/fortran-examples/NCF2IOAPI_Edgar4.F ). Am I missing something, or getting something wrong? If so, please let me know. If not: I'm looking for code that * like gennet.f, outputs a "reader" for an arbitrary, runtime-input netCDF file * unlike gennet.f, outputs F90 TIA, Tom Roche <Tom_Roche@xxxxxxxxx>
netcdfgroup
archives: