MM5 mpp compiling problem with pgf90

Hello,

I was trying to compile mpp, and got the following error:

/usr/local/topspin/mpi/mpich/bin/mpif90.p -o mm5.mpp addall.o addrx1c.o addrx1n.o bdyin.o bdyrst.o bdyten.o bdyval.o cadjmx.o coef_diffu.o condload.o consat.o convad.o couple.o date.o dcpl3d.o dcpl3dwnd.o decouple.o define_comms.o diffu.o diffth.o diffthd.o diffmoi.o diffintp.o dm_io.o dots.o dtfrz.o fillcrs.o fkill_model.o gamma.o gauss.o hadv.o init.o initsav.o initts.o kfbmdata.o kill_model.o lb_alg.o lbdyin.o mhz.o mm5.o mp_equate.o mp_initdomain.o mp_shemi.o mparrcopy.o mpaspect.o nconvp.o nudge.o output.o outsav.o outtap.o outts.o outts_c.o param.o paramr.o rdinit.o rho_mlt.o savread.o settbl.o setvegfr.o sfcrad.o shutdo.o slab.o solar1.o solve.o sound.o subch.o trans.o transm.o upshot_mm5.o vadv.o vadv2.o vecgath.o write_big_header.o write_fieldrec.o write_flag.o exmoiss.o cup.o cupara3.o maximi.o minimi.o mrfpbl.o tridi2.o initnest.o chknst.o nstlev1.o nstlev2.o nstlev3.o nstlev4.o nstlev5.o mp_stotndt.o smt2.o bcast_size.o merge_size.o mp_feedbk.o rdter.o lwrad.o swrad.o milliclock.o …/…/MPP/RSL/RSL/librsl.a -O2 -Mvect -Mcray=pointer -Mnoframe -byteswapio -DDEC_ALPHA -L/usr/local/topspin/mpi/mpich/lib64 -lfmpich -lmpich
/usr/bin/ld: kill_model.o: No such file: No such file or directory
make[1]: [all] Error 2 (ignored)
/bin/mv mm5.mpp …/…/Run/mm5.mpp
/bin/mv: cannot stat `mm5.mpp’: No such file or directory
make[1]: [all] Error 1 (ignored)

I checked the compile log and found no error msg for compiling kill_model.c. However, when I mannually reproduce the compiling, I got the following error msg:


[adeq@efd build]$ gcc -c -I…/…/MPP -I…/…/MPP/RSL -I…/…/pick -I…/…/MPP/debug -I…/…/MPP/RSL/RSL -DMPP1 -DIOR=2 -DIWORDSIZE=4
-DRWORDSIZE=4 -DLWORDSIZE=4
-DASSUME_HOMOGENEOUS_ENVIRONMENT=1 -DMPI
-I/usr/local/topspin/mpi/mpich/include kill_model.c
In file included from /usr/local/topspin/mpi/mpich/include/mpidefs.h:7,
from /usr/local/topspin/mpi/mpich/include/mpi.h:230,
from …/…/MPP/RSL/RSL/rsl_comm.h:266,
from …/…/MPP/RSL/RSL/rsl.h:839,
from kill_model.c:6:
/usr/local/topspin/mpi/mpich/include/mpi_fortdefs.h:5: error: redefinition of t
ypedef ‘MPI_Fint’
…/…/MPP/RSL/RSL/rsl.h:832: error: previous declaration of ‘MPI_Fint’ was here


I then did the following:


rm -r MPP (remove the MPP folder entirely)
make uninstall
tar -xvf MPP.TAR (re-extract the MPP files)
make mpclean
make mpp

But still got the same problem. Any idea on what went wrong? Thanks.

Jane

Hi Jane,

This looks a lot like another post we had: Problems compiling MPP MM5 3.7 using PG6.2 in FC5

Can you try removing “+0 -1” from the sort command at line 211 of “MPP/FLIC/FLIC/flic.csh”? These options are no longer valid for sort and cause problems when preprocessing kill_model.

  • Mat

Mat,

I removed the “+0 -1” from the flic.csh file. Then did the following:

make mpclean
make mpp

However, I still have the same problem. I tried to manually compile kill_model.c and got the same error msg as before.

I have no problem of compiling fkill_model.f though.

Thank you for any further help,

Jane

Hi Jane,

What OS and compiler version are you using?

Thanks,
Mat

Hi Mat,

The info you asked are listed below:

OS: Linux 2.4.29
PGI: Linux86/6.1
CPU: AMD Opteron

Thank you.

Jane

jyg,

Where did you get your source? Here is what I did for 32-bit compile with 6.1-7 compilers, assume you have your own MPI. I compile on SUSE90 which has Kernel 2.4.21-102-default. It should not make any difference from your OS.

  1. Go to ftp://ftp.ucar.edu/mesouser/MM5V3
  2. Download MM5.TAR.gz and MPP.TAR.gz
  3. Untar them as follow:-
    % gzip -d -c MM5.TAR.gz | tar xf -
    % cd MM5
    % gzip -d -c …/MPP.TAR.gz | tar xf -
  4. Edit MPP/FLIC/FLIC/flic.csh to remove +0 +1 at line 211 as Mat recommended.
  5. Edit configure.user, uncomment lines 778:801. Below is example, make sure you set LINUX_MPIHOME and LOCAL_LIBRARIES correctly.

RUNTIME_SYSTEM = “linux”
MPP_TARGET=$(RUNTIME_SYSTEM)

edit the following definition for your system

LINUX_MPIHOME = /opt/pgi/linux86/6.1/
MFC = $(LINUX_MPIHOME)/bin/mpif90
MCC = $(LINUX_MPIHOME)/bin/mpicc
MLD = $(LINUX_MPIHOME)/bin/mpif90
FCFLAGS = -O2 -Mcray=pointer -Mnoframe -byteswapio
LDOPTIONS = -O2 -Mcray=pointer -Mnoframe -byteswapio
LOCAL_LIBRARIES = -L$(LINUX_MPIHOME)/lib -lfmpich -lmpich
MAKE = make -i -r
AWK = awk
SED = sed
CAT = cat
CUT = cut
EXPAND = expand
M4 = m4
CPP = /lib/cpp -C -P -traditional
CPPFLAGS = -DMPI -Dlinux -DSYSTEM_CALL_OK
CFLAGS = -DMPI -I$(LINUX_MPIHOME)/include
ARCH_OBJS = milliclock.o
IWORDSIZE = 4
RWORDSIZE = 4
LWORDSIZE = 4

  1. Set Path to 32-bit 6.1 PGI compilers.
  2. Type: make mpp

Hope this helps,
Hongyon