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.
Pooran, Error codes for the fortran 90 interface are missing from the netCDF on-line documentation. You can look them up in the library source code here: https://github.com/Unidata/netcdf-fortran/blob/master/fortran/netcdf_constants.f90 The code for "attribute not found" is "nf90_enotatt". Always use the symbolic name in your code, never the numeric value. Since you are new to using fortran, I will also mention that you must declare "use netcdf" at the top of each program or subroutine that directly accesses any part of the netCDF fortran 90 interface. --Dave On Mon, Apr 15, 2019 at 9:56 AM Dave Allured - NOAA Affiliate < dave.allured@xxxxxxxx> wrote: > Pooran, > > It looks like your user function cf90_get_att is ignoring the netCDF > function status code. You need to add some code to check for the existence > of scale_factor and add_offset attributes. An easy way to do this is to > call nf90_get_att and check the returned netCDF status code. There is a > specific error code for "attribute does not exist". See documentation for > that function. > > Use the status information to automatically decide how to handle scale and > offset corrections, as Daniel described. > > --Dave > > > On Mon, Apr 15, 2019 at 9:15 AM Daniel Neumann < > daniel.neumann@xxxxxxxxxxxxxxxxx> wrote: > >> Dear Pooran, >> >> the scale_factor and add_offset attributes are optional. They are used >> for packing data (search for "netcdf packing data" for details) and for >> similar purposes. If they do not exist, you can consider scale_factor to be >> 1.0 and add_offset 0.0 (or you just ignore them and use the data as they >> are). >> >> Cheers, >> Daniel >> >> >> On 15.04.19 07:02, Pooran khedri wrote: >> >> Hi everybody, >> I have a piece of a code to read meteorological forcing from ECMWF >> database in a NetCDF format, Here is some of my piece code to read this >> file >> >> !reading atmospheric pressure >> >> CALL cf90_get_att(iunit, atmpID, "scale_factor", scale_factor) >> CALL cf90_get_att(iunit, atmpID, "add_offset", offset) >> CALL cf90_get_var(iunit, atmpID, atmpindat(:,:), filepars%timerec) >> atmpindat = atmpindat*scale_factor + offset >> >> but I have downloaded the new meteorological file from another database >> in a NetCDF format , this new file is different from ECMWF file and it does >> not have add_offset and scale_factor in its attribute and my code does >> not read it and I have got many errors. >> I think I have to add the add_offset and scale_factor to the new >> NetCDF file or I have to modify the FORTRAN code that scaling is not >> used for this variable, but I do not know how to do them☺ ,I am new to >> using the NetCDF files and FORTRAN . >> I would be grateful if you could explain to me How to solve my problem. >> >> Pooran >> >>
netcdfgroup
archives: