[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netCDF #YNF-841048]: reading variables with fortran 77
- Subject: [netCDF #YNF-841048]: reading variables with fortran 77
- Date: Fri, 16 Feb 2007 14:57:07 -0700
Hi Izaro,
> I have problems with reading a netcdf file with fortran 77.
>
> My problem is this:
>
> I have to translate a netcdf reading program from MATLAB to FORTRAN 77.
It might help to look at these simple example programs that do the same thing,
one in MATLAB and the other for Fortran-77:
http://www.unidata.ucar.edu/software/netcdf/examples/programs/simple_xy_rd.m
http://www.unidata.ucar.edu/software/netcdf/examples/programs/simple_xy_rd.f
These are from one of the six example programs available in several programming
languages, including Fortran-77 and MATLAB:
http://www.unidata.ucar.edu/software/netcdf/examples/programs/
> Do you know which method uses the nf_get_var_real command to read the
> variable?And, which is the order it follows?
The nf_get_var_real program reads the data from the disk with the first Fortran
dimension varying fastest. I beleive MATLAB also uses the same ordering
(called "column major") with the first dimension varying fastest. These are
the opposite of the output of CDL (from ncdump), which has the last dimension
varying fastest (as in C or Java).
So if "ncdump -f foo.nc" shows the data structure like this:
dimensions:
eta_rho = 136 ;
x_rho = 157 ;
variables:
float lon_rho(eta_rho, x_rho) ;
then to read in the whole variable at once into a Fortran array, it should be
dimensioned in the other order, as
REAL Lon_rho(157,136)
and you should assume the first dimension corresponds to x_rho and the second
to eta_rho.
--Russ
Russ Rew UCAR Unidata Program
address@hidden http://www.unidata.ucar.edu
Ticket Details
===================
Ticket ID: YNF-841048
Department: Support netCDF
Priority: Normal
Status: Closed