Mohamed,
Yes I made two mistakes there.  That is pretty funny, "movie clip". 
 That is just your OS (Windows?) misinterpreting the .mod extension 
I think.  Please disregard that, the compiler knows what to do with 
a .mod file.
You are right about the name libnetcdf.so.4.  That is the dynamic 
library.  libnetcdf.a would be the static version, but it is not 
currently part of your installation.  You can link with either one, 
provided that a few other libraries are installed correctly.
The linker should be smart enough to find either one with the same 
two command options "-L/usr/lib64 -lnetcdf".  You might need to sym 
link libnetcdf.so.4 to the name libnetcdf.so; I am not knowledgeable 
on the details of library naming rules.  Anyone?
More seriously, as Tom Green mentioned earlier, the format of .mod 
files is not standardized and compiler dependent.  Now I am thinking 
that the message "is not a valid module information file" is the 
symptom of using a different compiler than what was used to build 
your netcdf library.
Please show us identification and version information about your 
compiler and netcdf version and computer platform.  Also, did you 
download precompiled Netcdf binaries from Unidata, or build them 
yourself from the source distribution?  If the latter, which 
compiler was used?
--Dave
Mohamed Mohamed wrote:
 
Dave
I found the netcdf.mod file in the same location
("/usr/include/netcdf.mod ).
I noticed that its type is movie clip. 
Is it correct type?. 
Also I noticed. I do not have any netcdf files with the .a extension .
For example I found the libnetcdf file with .so.4 extension in the
(usr/lib64/ libnetcdf.so.4) not the  libnetcdf.a as you mention in your
massage.
thanks
Mohamed Ali  
-----Original Message-----
[mailto:netcdfgroup-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Dave Allured
Sent: Tuesday, November 11, 2008 5:55 PM
Mohamed,
Regarding the error "/usr/include/netcdf.mod is not a valid module
information file", this is an important file for the Fortran 90
interface.  You need to debug this.  Please find the correct location of
netcdf.mod on your system, and change the path in the -I command
argument to match.
This file might be in the same directory as the library file
libnetcdf.a, or a different directory.  The standard install location
for this file is, I think, in a separate "include" 
directory.  Good luck.
--Dave
Mohamed Mohamed wrote:
Dave
Thanks for your help. I made simple Fortran programs and it is going 
well.
I made you simple test program but I had this statement "Fatal Error: 
netcdftest.f90, line 2: /usr/include/netcdf.mod is not a valid module 
information file
             detected at NETCDF@<end-of-statement>" 
Thanks
Mohamed Ali
-----Original Message-----
[mailto:netcdfgroup-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Dave 
Allured
Sent: Monday, November 10, 2008 8:52 PM
Mohamed,
The statement "use netcdf" goes into your fortran 90 program below the
program or subroutine or function statement, and above "implicit
none".
You should study and understand Fortran 90 modules before working on 
this program.
See if you can get this simple test program to compile and run:
program netcdf_version
    use netcdf
    print *, trim(nf90_inq_libvers())
end
The compile command should look something like this:
f90 netcdf_version.f90 -I/usr/include -L/usr/lib64 -lnetcdf
where the include directory contains the file netcdf.mod.
Is there any chance that you have old Fortran 77 code that somehow got
renamed to ".f90" without complete conversion to Fortran 90?
--Dave
Mohamed Mohamed wrote:
Dave,
Thanks, I think it is may be the solution. However I am still a 
beginner in the Linux. So please could you tell me what to do.
You said " I suspect that you need to add this to the top of each 
program unit that has Netcdf calls:
    use netcdf "   My question is how ?
Find below a long part of the error. Please have a look.
f_ts.o vdif_uv.o vertvl_edge.o water_depth.o wreal.o ghostuv.o 
dens3.o
init_sed.o advave_edge_gcy.o advection_edge_gcy.o adv_uv_edge_gcy.o 
bcond_gcy.o shape_coef_gcy.o depth_check.o vdif_ts_gom.o adjust_ts.o 
shutdown_check.o extelpf_edge.o fct_q2.o fct_q2l.o viscofh.o
print_vals.o rho_mean.o viz.o     -L/usr/lib64  -lnetcdf  
mod_ncdio.o: In function `__mod_ncdio__handle_ncerr':
mod_ncdio.f90:(.text+0x125): undefined reference to 
`__netcdf__nf90_strerror'
mod_ncdio.o: In function `__mod_ncdio__putvar':
mod_ncdio.f90:(.text+0x11e4): undefined reference to 
`__netcdf__nf90_put_var_2d_fourbytereal'
<snip many error messages>
Thanks
Mohamed Ali
-----Original Message-----
[mailto:netcdfgroup-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Dave 
Allured
Sent: Thursday, November 06, 2008 5:50 PM
Mohamed,
These are missing library symbol errors.  I suspect that you need to 
add this to the top of each program unit that has Netcdf calls:
    use netcdf
This is because the Netcdf Fortran 90 interface uses modules.  You 
can't properly link to the Netcdf F90 library without this
declaration.
For diagnosis, your program is trying to link to this:
    __netcdf__nf90_open
But with a correct "use" statement it should be seeking a symbol 
named
something like this (the name change may vary by compiler and
platform):
    ___netcdf_MOD_nf90_open
I might be wrong about all of this if you are on a platform or 
compiler that uses Fortran 90 linking conventions much different than
what I am familiar with.  If "use" doesn't fix it, then please 
provide
identification and version info for your platform, compiler, and 
netcdf version.
Dave Allured
CU/CIRES Climate Diagnostics Center (CDC) 
http://cires.colorado.edu/science/centers/cdc/
NOAA/ESRL/PSD, Climate Analysis Branch (CAB) http://www.cdc.noaa.gov/
Mohamed Mohamed wrote:
I worked with FVCOM software. When I started to get netcdf output 
type I received the following error:
mod_lag.f90:(.text+0x89f6): undefined reference to 
`__netcdf__nf90_put_att_text'
mod_lag.f90:(.text+0x8a1e): undefined reference to 
`__netcdf__nf90_put_att_text'
<snip many error messages>