[MITgcm-support] mpich
Eli Biton
eliyahub at wisemail.weizmann.ac.il
Sun Apr 23 07:51:45 EDT 2006
Hi Martin, Ed, Constantinos, and others
I added the suggested following two lines to my optfile and the
compilation
worked.
INCLUDES='-I/shared/src/mpich-1.2.6/include/'
INCLUDEDIRS='/shared/src/mpich-1.2.6/include/'
thanks, Eli
>>> ce107 at ocean.mit.edu 04/20/06 5:45 PM >>>
On Thu 20 Apr 2006 09:23, Ed Hill wrote:
> On Thu, 2006-04-20 at 16:02 +0300, Eli Biton wrote:
> > Hi all
> > I'm trying to use MPICH on an opteron machine running redhat AS
4U1.
> > The optFile we are using is:
> >
> >
> > DEFINES='-DALLOW_USE_MPI -DALWAYS_USE_MPI -D_BYTESWAPIO
-DWORDLENGTH=4'
> > CPP='cpp -traditional -P'
> >
> > FC='/shared/pgi/bin/mpif77 -fast -fastsse -tp k8-64 -Mipa=fast '
> > CC='/shared/pgi/bin/mpicc -fast -fastsse -tp k8-64 -Mipa=fast '
> > LINK='/shared/pgi/bin/mpif77 '
> >
> > but we get the following error message when we are compiling:
> >
> > _USE_MPI -DALWAYS_USE_MPI -DHAVE_SYSTEM -DHAVE_ETIME
> > -I/usr/pgi/linux86-64/6.0/include > exch_r8_recv_get_x.f
> > /shared/pgi/bin/mpif77 -fast -fastsse -tp k8-64 -Mipa=fast -c
> > exch_r8_recv_get_x.f PGFTN-S-0038-Symbol, mpi_real8, has not been
> > explicitly declared (exch_r8_recv_get_x.f: 1513) 0 inform, 0
warnings,
> > 1 severes, 0 fatal for exch_r8_recv_get_x PGFTN/x86-64 Linux/x86-64
> > 6.0-2: compilation completed with severe errors gmake: ***
> > [exch_r8_recv_get_x.o] Error 2
> >
> > Any suggestions?
>
> Hi Eli,
>
> The error above indicates that mpi_real8 is undefined. Its supposed
to
> be defined within the MPI headers -- specifically, within the mpif.h
> file which is included in the model in various places using:
>
> #include "mpif.h"
To be exact mpif.h may never include MPI_REAL8 as the standard strongly
suggests it but does not mandate it:
MPI requires support of the datatypes listed above, which match the
basic
datatypes of Fortran 77 and ANSI C. Additional MPI datatypes should be
provided if the host language has additional data types:
MPI_LONG_LONG_INT,
for (64 bit) C integers declared to be of type longlong int;
MPI_DOUBLE_COMPLEX for double precision complex in Fortran declared to
be of
type DOUBLE COMPLEX; MPI_REAL2, MPI_REAL4 and MPI_REAL8 for Fortran
reals,
declared to be of type REAL*2, REAL*4 and REAL*8, respectively;
MPI_INTEGER1
MPI_INTEGER2 and MPI_INTEGER4 for Fortran integers, declared to be of
type
INTEGER*1, INTEGER*2 and INTEGER*4, respectively; etc.
Certain versions of LAM, MPT on IRIX and IBM MPI for example apparently
did
not include MPI_REAL4 and hence we've had to introduce the
#if (defined (TARGET_SGI) || defined (TARGET_AIX) ||
defined(TARGET_LAM))
in ini_procs.F.
> So, I think the failure is that your CPP is not finding the mpif.h
file.
> If thats the problem (and it probably is), then you can fix it by
adding
> something similar to:
MPICH should include them however and should be indeed a problem with
not
including the path to the MPI header files.
Constantinos
--
Dr. Constantinos Evangelinos
Department of Earth, Atmospheric and Planetary Sciences
Massachusetts Institute of Technology
_______________________________________________
MITgcm-support mailing list
MITgcm-support at mitgcm.org
http://mitgcm.org/mailman/listinfo/mitgcm-support
More information about the MITgcm-support
mailing list