[mpich-discuss] mpif.h

Gustavo Correa gus at ldeo.columbia.edu
Sat Sep 13 16:10:45 CDT 2014


Hi Fereshteh

<guess>
The model probably comes with a Makefile,
or a configuration script, where you can  choose
the compiler (which presumably you chose as F77 or FC=mpif90, which is a good choice, 
not gfortran, which is not so good a choice).
It may also have a INCLUDE variable where you can add the
location of your mpif.h file.
Something like this:

INCLUDE= [whatever is already there]  -I/home/fkomijani/program_install/mpich-3.0.4/include


Normally mpif90 is able to locate the mpif.h include file and all needed mpi libraries as well,
which is a big advantage over the barebones compiler (gfortran), as Ken and Junchao said.
However, I've seen makefiles and build scripts that go a long way to strip off or override that capability,
by redefining the compiler to be the one underlying the mpif90 wrapper (i.e go back to 
gfortran in your case), which is not a very good idea but happens.
 
It is hard to tell exactly what is going on not knowing the Makefile, configure script,
or the model code.
Unfortunately the COAWST model is not readily available to download
and check, requires the developer permission.
If you post the Makefile or configure script things may become a little clearer.

</guess>

My two cents,
Gus Correa

On Sep 13, 2014, at 10:23 AM, fereshteh komijani wrote:

>                  After compiling my model (coawst) it gives me following
>         error :
> 
>                  mod_parallel.f90:17: Error: Can't open included file
>         'mpif.h'
> 
>                  coaws's developer tell me :
> 
>                  *check your environment and see if the location of
>         mpif.h is in your
>                  INCLUDE list*.
> 
>                  But I don't know what is its mean? Where and how I can
>         do that? Does
>                  environment mean .bashrc?

On Sep 13, 2014, at 10:23 AM, fereshteh komijani wrote:

> thanks so much for your attention
> i will check in again
> cheers
> fereshte
> 
> On Sat, Sep 13, 2014 at 6:30 PM, Junchao Zhang <jczhang at mcs.anl.gov> wrote:
> As you can see, hello.f90 contains  
>   include 'mpif.h' 
> and mpif90 found it and correctly compiled the code.
> 
> So, mpich installation is correct. You need to double check your code and compilation commands.
> 
> --Junchao Zhang
> 
> On Sat, Sep 13, 2014 at 8:41 AM, fereshteh komijani <fereshtehkomijani at gmail.com> wrote:
> i have created hello.F90 and after compiling, it gives
> 
> fkomijani at fk1:~/program_install/COAWST$ mpif90 -v -o hello hello.F90
> mpif90 for MPICH version 3.0.4
> Driving: gfortran -v -o hello hello.F90 -I/home/fkomijani/program_install/mpich-3.0.4/include -I/home/fkomijani/program_install/mpich-3.0.4/include -L/home/fkomijani/program_install/mpich-3.0.4/lib -lmpichf90 -lmpich -lopa -lmpl -lrt -lpthread -l gfortran -l m -shared-libgcc
> Using built-in specs.
> COLLECT_GCC=gfortran
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
> Target: i686-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
> Thread model: posix
> gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
> COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-I' '/home/fkomijani/program_install/mpich-3.0.4/include' '-I' '/home/fkomijani/program_install/mpich-3.0.4/include' '-L/home/fkomijani/program_install/mpich-3.0.4/lib' '-shared-libgcc' '-mtune=generic' '-march=i686'
>  /usr/lib/gcc/i686-linux-gnu/4.6/f951 hello.F90 -cpp=/tmp/ccgJjtSb.f90 -quiet -v -I /home/fkomijani/program_install/mpich-3.0.4/include -I /home/fkomijani/program_install/mpich-3.0.4/include -imultilib . -imultiarch i386-linux-gnu hello.F90 -quiet -dumpbase hello.F90 -mtune=generic -march=i686 -auxbase hello -version -fintrinsic-modules-path /usr/lib/gcc/i686-linux-gnu/4.6/finclude -o /tmp/ccV5Pu7p.s
> GNU Fortran (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (i686-linux-gnu)
>     compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> ignoring nonexistent directory "/usr/local/include/i386-linux-gnu"
> ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.6/../../../../i686-linux-gnu/include"
> ignoring duplicate directory "/home/fkomijani/program_install/mpich-3.0.4/include"
> #include "..." search starts here:
> #include <...> search starts here:
>  /home/fkomijani/program_install/mpich-3.0.4/include
>  /usr/lib/gcc/i686-linux-gnu/4.6/finclude
>  /usr/lib/gcc/i686-linux-gnu/4.6/include
>  /usr/local/include
>  /usr/lib/gcc/i686-linux-gnu/4.6/include-fixed
>  /usr/include/i386-linux-gnu
>  /usr/include
> End of search list.
> GNU Fortran (Ubuntu/Linaro 4.6.3-1ubuntu5) version 4.6.3 (i686-linux-gnu)
>     compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-I' '/home/fkomijani/program_install/mpich-3.0.4/include' '-I' '/home/fkomijani/program_install/mpich-3.0.4/include' '-L/home/fkomijani/program_install/mpich-3.0.4/lib' '-shared-libgcc' '-mtune=generic' '-march=i686'
>  as --32 -o /tmp/ccPO4WoE.o /tmp/ccV5Pu7p.s
> Reading specs from /usr/lib/gcc/i686-linux-gnu/4.6/libgfortran.spec
> rename spec lib to liborig
> COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-I' '/home/fkomijani/program_install/mpich-3.0.4/include' '-I' '/home/fkomijani/program_install/mpich-3.0.4/include' '-L/home/fkomijani/program_install/mpich-3.0.4/lib' '-shared-libgcc' '-mtune=generic' '-march=i686'
> COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/
> LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.6/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.6/../../../:/lib/:/usr/lib/
> COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-I' '/home/fkomijani/program_install/mpich-3.0.4/include' '-I' '/home/fkomijani/program_install/mpich-3.0.4/include' '-L/home/fkomijani/program_install/mpich-3.0.4/lib' '-shared-libgcc' '-mtune=generic' '-march=i686'
>  /usr/lib/gcc/i686-linux-gnu/4.6/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_i386 --hash-style=gnu -dynamic-linker /lib/ld-linux.so.2 -z relro -o hello /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crti.o /usr/lib/gcc/i686-linux-gnu/4.6/crtbegin.o -L/home/fkomijani/program_install/mpich-3.0.4/lib -L/usr/lib/gcc/i686-linux-gnu/4.6 -L/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu -L/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib -L/lib/i386-linux-gnu -L/lib/../lib -L/usr/lib/i386-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/i686-linux-gnu/4.6/../../.. /tmp/ccPO4WoE.o -lmpichf90 -lmpich -lopa -lmpl -lrt -lpthread -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/i686-linux-gnu/4.6/crtend.o /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crtn.o
> 
> 
> On Sat, Sep 13, 2014 at 5:28 PM, Junchao Zhang <jczhang at mcs.anl.gov> wrote:
> "gfortran: error: hello.F90: No such file or directory"
> You need to create hello.F90 as I said in the previous email.
> 
> "mpif90 -v -o hello hello.F90 ./coawst.bash"
> Also, do not add ./coawst.bash
> 
> 
> 
> --Junchao Zhang
> 
> On Sat, Sep 13, 2014 at 7:15 AM, fereshteh komijani <fereshtehkomijani at gmail.com> wrote:
> 
> fkomijani at fk1:~/program_install/COAWST$  mpif90 -v -o hello hello.F90 ./coawst.bash
> mpif90 for MPICH version 3.0.4
> Driving: gfortran -v -o hello hello.F90 ./coawst.bash -I/home/fkomijani/program_install/mpich-3.0.4/include -I/home/fkomijani/program_install/mpich-3.0.4/include -L/home/fkomijani/program_install/mpich-3.0.4/lib -lmpichf90 -lmpich -lopa -lmpl -lrt -lpthread -l gfortran -l m -shared-libgcc
> gfortran: error: hello.F90: No such file or directory
> Using built-in specs.
> COLLECT_GCC=gfortran
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
> Target: i686-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
> Thread model: posix
> gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 
> 
> 
> On Sat, Sep 13, 2014 at 4:33 PM, Junchao Zhang <jczhang at mcs.anl.gov> wrote:
> That is strange. 
> Could you compile the following program with "mpif90 -v -o hello hello.F90" and paste the output?
> 
> ! hello.F90
> program main
>     implicit none
>     include 'mpif.h'
>     integer :: ierr
> 
>     call MPI_Init(ierr)
>     call MPI_Finalize(ierr)
> end program
> 
> 
> --Junchao Zhang
> 
> On Sat, Sep 13, 2014 at 6:24 AM, fereshteh komijani <fereshtehkomijani at gmail.com> wrote:
> sorry that is my fault, it is mpif.h 
> 
> it seems that COAWST model is searching it, in -I/user/include directory not in
> /home/fkomijani/program_install/mpich-3.0.4/include.
> so how can i set mentined directory in system environment?
> 
> On Sat, Sep 13, 2014 at 3:45 PM, Junchao Zhang <jczhang at mcs.anl.gov> wrote:
> The file name should be mpif.h, but not mpih.f.
> 
> On Sep 13, 2014 1:45 AM, "fereshteh komijani" <fereshtehkomijani at gmail.com> wrote:
> yes, /home/fkomijani/program_install/mpich-3.0.4/include contains mpih.f
> 
> On Sat, Sep 13, 2014 at 11:07 AM, Kenneth Raffenetti <raffenet at mcs.anl.gov> wrote:
> If you 'ls /home/fkomijani/program_install/mpich-3.0.4/include' does it contain an mpif.h file? If not, your MPICH installation might be bad.
> 
> On 09/13/2014 03:24 PM, fereshteh komijani wrote:
> gfortran -I/home/fkomijani/program_install/mpich-3.0.4/include
> -I/home/fkomijani/program_install/mpich-3.0.4/include
> -L/home/fkomijani/program_install/mpich-3.0.4/lib -lmpichf90 -lmpich
> -lopa -lmpl -lrt -lpthread
> 
> 
> On Sat, Sep 13, 2014 at 10:52 AM, Kenneth Raffenetti
> <raffenet at mcs.anl.gov <mailto:raffenet at mcs.anl.gov>> wrote:
> 
>     What is the output from 'mpif90 -show'?
> 
>     On 09/13/2014 03:19 PM, fereshteh komijani wrote:
> 
>         dear Kenneth Raffenetti
>         i am using mpif90 compiler.
>         if it is, why i have got that error?
> 
>         On Sat, Sep 13, 2014 at 10:47 AM, Kenneth Raffenetti
>         <raffenet at mcs.anl.gov <mailto:raffenet at mcs.anl.gov>
>         <mailto:raffenet at mcs.anl.gov <mailto:raffenet at mcs.anl.gov>>> wrote:
> 
>              Are you using the mpif77 or mpif90 compiler wrappers to
>         build your
>              program? They will automatically add the location of mpif.h
>         to your
>              include path.
> 
>              On 09/13/2014 02:56 PM, fereshteh komijani wrote:
> 
>                  Dear friends
> 
>                  recently I have installed mpich 3.0.4 in my system
>         (Ubuntu).
> 
>                  After compiling my model (coawst) it gives me following
>         error :
> 
>                  mod_parallel.f90:17: Error: Can't open included file
>         'mpif.h'
> 
>                  coaws's developer tell me :
> 
>                  *check your environment and see if the location of
>         mpif.h is in your
>                  INCLUDE list*.
> 
>                  But I don't know what is its mean? Where and how I can
>         do that? Does
>                  environment mean .bashrc?
> 
>                  many thanks for any reply
> 
>                  fereshteh
> 
> 
> 
>                  --
>                  ***Angel***
>                  *__*
> 
> 
>                  ___________________________________________________
>                  discuss mailing list discuss at mpich.org
>         <mailto:discuss at mpich.org> <mailto:discuss at mpich.org
>         <mailto:discuss at mpich.org>>
>                  To manage subscription options or unsubscribe:
>         https://lists.mpich.org/____mailman/listinfo/discuss
>         <https://lists.mpich.org/__mailman/listinfo/discuss>
>                  <https://lists.mpich.org/__mailman/listinfo/discuss
>         <https://lists.mpich.org/mailman/listinfo/discuss>>
> 
>              ___________________________________________________
>              discuss mailing list discuss at mpich.org
>         <mailto:discuss at mpich.org> <mailto:discuss at mpich.org
>         <mailto:discuss at mpich.org>>
>              To manage subscription options or unsubscribe:
>         https://lists.mpich.org/____mailman/listinfo/discuss
>         <https://lists.mpich.org/__mailman/listinfo/discuss>
> 
>              <https://lists.mpich.org/__mailman/listinfo/discuss
>         <https://lists.mpich.org/mailman/listinfo/discuss>>
> 
> 
> 
> 
>         --
>         ***Angel***
>         *__*
> 
> 
>         _________________________________________________
>         discuss mailing list discuss at mpich.org <mailto:discuss at mpich.org>
>         To manage subscription options or unsubscribe:
>         https://lists.mpich.org/__mailman/listinfo/discuss
>         <https://lists.mpich.org/mailman/listinfo/discuss>
> 
>     _________________________________________________
>     discuss mailing list discuss at mpich.org <mailto:discuss at mpich.org>
>     To manage subscription options or unsubscribe:
>     https://lists.mpich.org/__mailman/listinfo/discuss
>     <https://lists.mpich.org/mailman/listinfo/discuss>
> 
> 
> 
> 
> --
> ***Angel***
> *__*
> 
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> 
> 
> -- 
> **Angel**
>  
>  
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> 
> 
> -- 
> **Angel**
>  
>  
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> 
> 
> -- 
> **Angel**
>  
>  
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> 
> 
> -- 
> **Angel**
>  
>  
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> 
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> 
> 
> 
> -- 
> **Angel**
>  
>  
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss




More information about the discuss mailing list