MPICH run for MM5

I am running mm5 with mpp but there are warning in compilation.
The mm5.mpp was made and the excution semms OK but there are error message in excution mm5.mpp. The result with mpp was different from that with mm5 single cpu…

I am using Xeon 3G 2cpu/board, 4 boeard in total.
PGI 6.1 version used, MPICH 1.27 used

The configure.usr follows in 7g.1[/b]#-----------------------------------------------------------------------------
RUNTIME_SYSTEM = “linux”
MPP_TARGET=$(RUNTIME_SYSTEM)

edit the following definition for your system

LINUX_MPIHOME = /usr/local/mpich
MFC = $(LINUX_MPIHOME)/bin/mpif90
MCC = $(LINUX_MPIHOME)/bin/mpicc -DMPI2_SUPPORT
##MCC = $(LINUX_MPIHOME)/bin/mpicc
MLD = $(LINUX_MPIHOME)/bin/mpif90

FCFLAGS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
LDOPTIONS = -O2 -Mcray=pointer -tp p6 -pc 32 -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
#-----------------------------------------------------------------------------



And the waring in compliation as follows,




m4 …/…/MPP/RSL/LMexp.m4 diffu.dm | sed ‘/^$/d’ | /lib/cpp -C -P -traditional -I…/…/MPP -I…/…/MPP/RSL -I…/…/pick -I…/…/MPP/debug -I…/…/MPP/RSL/RSL | …/…/MPP/col_cutter >diffu.f
/usr/local/mpich/bin/mpif90 -c -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio diffu.f 2> diffu.lis
echo diffu.b diffu.dm diffu.f
diffu.b diffu.dm diffu.f
cut -c1-72 diffth.F | sed -e ‘s///' -e 's/ *$//' |\ expand | /lib/cpp -C -P -traditional -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 -Dlinux -DSYSTEM_CALL_OK | m4 - > diffth.b ../../MPP/FLIC/FLIC/flic -F=../../MPP/FLICFILE -CPP='include<rsl.inc>' -CPP='include<rslcom.inc>' -H='FLIC_RUN_DECL' -STOP=FKILL_MODEL diffth.b > diffth.dm scanning diffth.b parsing diffth.b /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce real and unknown on line 372. /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce integer and unknown on line 373. /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce real and unknown on line 373. Ident = lam /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce real and unknown on line 376. /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce integer and unknown on line 377. /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce real and unknown on line 377. Ident = lam /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce real and unknown on line 380. /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce integer and unknown on line 381. /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce real and unknown on line 381. Ident = lam /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce real and unknown on line 384. /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce integer and unknown on line 385. /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce real and unknown on line 385. Ident = lam /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce unknown and real on line 633. Ident = min /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce unknown and real on line 635. Ident = min /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce unknown and integer on line 652. Ident = max /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce unknown and real on line 738. Ident = min /tmp/aaa.31520: type warning: possibly incompatible types. cannot coerce unknown and real on line 740. Ident = min finished parsing diffth.b m4 ../../MPP/RSL/LMexp.m4 diffth.dm | sed '/^$/d' | /lib/cpp -C -P -traditional -I../../MPP -I../../MPP/RSL -I../../pick -I../../MPP/debug -I../../MPP/RSL/RSL | ../../MPP/col_cutter >diffth.f /usr/local/mpich/bin/mpif90 -c -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio diffth.f 2> diffth.lis echo diffth.b diffth.dm diffth.f diffth.b diffth.dm diffth.f cut -c1-72 diffthd.F | sed -e 's///’ -e ‘s/ *$//’ |
expand | /lib/cpp -C -P -traditional -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 -Dlinux -DSYSTEM_CALL_OK | m4 - > diffthd.b
…/…/MPP/FLIC/FLIC/flic -F=…/…/MPP/FLICFILE -CPP=‘include<rsl.inc>’ -CPP=‘include<rslcom.inc>’ -H=‘FLIC_RUN_DECL’ -STOP=FKILL_MODEL diffthd.b > diffthd.dm
scanning diffthd.b
parsing diffthd.b
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce real and unknown on line 370.
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce integer and unknown on line 371.
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce real and unknown on line 371. Ident = lam
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce real and unknown on line 374.
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce integer and unknown on line 375.
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce real and unknown on line 375. Ident = lam
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce real and unknown on line 378.
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce integer and unknown on line 379.
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce real and unknown on line 379. Ident = lam
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce real and unknown on line 382.
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce integer and unknown on line 383.
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce real and unknown on line 383. Ident = lam
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce unknown and real on line 631. Ident = min
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce unknown and real on line 633. Ident = min
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce unknown and integer on line 650. Ident = max
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce unknown and real on line 736. Ident = min
/tmp/aaa.31582: type warning: possibly incompatible types. cannot coerce unknown and real on line 738. Ident = min
finished parsing diffthd.b


There were more warnig as same comment… and then complie was Ok with making mm5.mpp.

If I run the mpp, there are message in rsl.error.001

Processor 0: Clock 100.0000
Processor 1: Clock 100.0000
Processor 2: Clock 100.0000
Processor 3: Clock 100.0000
Inest = 1
Trim = 0
bdyweight = 0.300000
Returning 0 from mapping
Inest = 2
Trim = 2
bdyweight = 0.300000
Returning 0 from mapping
*** 90 1 1 7844082
*** 30 2 1 7845268
*** 60 2 2 7845476
*** 90 2 3 7845691
*** 180 1 2 7846320
*** 120 2 4 7846771
*** 150 2 5 7846992
*** 180 2 6 7847190
*** 270 1 3 7847729
*** 210 2 7 7848076
*** 240 2 8 7848277
*** 270 2 9 7848478
*** 360 1 4 7848977
*** 300 2 10 7849339
*** 330 2 11 7849545
*** 360 2 12 7849765
*** 450 1 5 7850316
*** 390 2 13 7850674
*** 420 2 14 7850972
*** 450 2 15 7851202
*** 540 1 6 7851752
*** 480 2 16 7852112
*** 510 2 17 7852330
*** 540 2 18 7852535
*** 630 1 7 7853073
*** 570 2 19 7853449
*** 600 2 20 7853650
*** 630 2 21 7853849
*** 720 1 8 7854375
*** 660 2 22 7854729
*** 690 2 23 7854925
*** 720 2 24 7855126
*** 810 1 9 7855656
*** 750 2 25 7856008
*** 780 2 26 7856211
*** 810 2 27 7856408
*** 900 1 10 7856912
*** 840 2 28 7857262
*** 870 2 29 7857482


there are lots of silimar comment in running…

After finished running, I compared results with mpp with those with single cpu…

There clearly were different…


Please let me know how to fix the problems…

Thank you in advance

Hi gold,

This will take a bit of digging, but the incompatible type warnings offer our first clue. I’m out of time for today, but will try and take a look at it tommorrow.

On a side note, remove the “-tp p6” since this targets a Pentium III chip. It won’t result in wrong answers but will hurt your performance.

  • Mat

Dear Mat,

We have same warning message without “-tp p6”…

In configure file, we added “-DMPI2_SUPPORT” which is known for Intel fortran… Please let me know if there is PGI option corresponding to “-DMPI2_SUPPORT”…

Thank you for your support…

Dear Mate,

I am still waiting for your reply on the subject…

Thank you again…

Hi gold,

I haven’t forgotten you. I’ve spent a few hours looking into it and was able to recreate the errors. It looks like a configuration issue but I haven’t yet determined the correct solution. The authors at UCAR might have better insight but I’ll continue to work on it.

  • Mat

Dear Mate,

Previous one was not problem in running MM5. I have same results with single cpu running… But I have another problem in compile with mpp.
I changed configure.user option from IBLTYP 5 & ISOIL = to IBLTYP =7 & ISOIL =3, there were then compile error at the end of compilation as following




m4 …/…/MPP/RSL/LMexp.m4 rrtm_taumol.dm | sed ‘/^$/d’ | /lib/cpp -C -P -traditional -I…/…/MPP -I…/…/MPP/RSL -I…/…/pick -I…/…/MPP/debug -I…/…/MPP/RSL/RSL | …/…/MPP/col_cutter >rrtm_taumol.f
/usr/local/mpich/bin/mpif90 -c -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio rrtm_taumol.f 2> rrtm_taumol.lis
echo rrtm_taumol.b rrtm_taumol.dm rrtm_taumol.f
rrtm_taumol.b rrtm_taumol.dm rrtm_taumol.f
/usr/local/mpich/bin/mpicc -DMPI2_SUPPORT -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/mpich/include milliclock.c
/usr/local/mpich/bin/mpif90 -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 exmoisr.o exmoisg.o rslf.o heipre.o maxim.o minim.o moiene.o precip.o zunc.o bmpara.o cupara7.o lutbl.o spline.o tpfc.o cloudws.o entrs.o kerhels.o shallcu.o shallow.o araouts.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 in4dgd.o mpblw.o conv3.o smther.o unity.o mpmapsmp.o qsatgd.o nopro.o bufslgd.o nudgd.o blnudgd.o intpsgd.o setupgd.o bufvdgd.o blbrgd.o julgmt.o setfd.o fdaoff.o lwrad.o swrad.o inirad.o o3data.o mm5atm.o rrtm.o rrtm_gasabs.o rrtm_init.o rrtm_k_g.o rrtm_rtrn.o rrtm_setcoef.o rrtm_taumol.o milliclock.o …/…/MPP/RSL/RSL/librsl.a -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio -L/usr/local/mpich/lib -lfmpich -lmpich
rdinit.o(.text+0x6029): In function rdinit_': : undefined reference to vegeland_’
rdinit.o(.text+0x6053): In function rdinit_': : undefined reference to soilav_’
solve.o(.text+0x7646): In function solve_': : undefined reference to pxpbl_’
make[1]: [all] Error 2 (ignored)
/bin/mv mm5.mpp …/…/Run/mm5.mpp
/bin/mv: can’t stat source mm5.mpp
make[1]: [all] Error 1 (ignored)
make[1]: Leaving directory `/home/cmaq4_5_m/mm5_m/MM5/MPP/build’


Do you have any idea on this problem…

Thank you in advance…

Bye,

Hi Gold,

A work around to the undefined reference errors is to add the following objects to the “MPP/mpp_object_all” file:

BASE_OBJ = \
vegeland.o \
soilav.o \
pxpbl.o \
radsfc.o \
surfpx.o \
eddymm4.o \
acm.o \
vdiff.o \
sfcmm4.o \
qflux.o \
smass.o \

However, I don’t consider this a good solution so have sent a note to John Michalakes at UCAR asking for his input.

  • Mat

Dear Mat,

With adding files in “MPP/mpp_object.all”, the compile was ok but in running the mm5.mpp, there was error with
“STOP : 9003 in PARAM
CALLING MPI_ABORT
[O] MPI Abort by user Aborting program !
[O] Aborting program !” in rsl001

Do you have any idea???

I am going to ask the compile problem in MM5-user.

Thank you

Bye,

Hi gold,

Sorry, I’m sure what’s wrong here. Hopefully UCAR can help. I try my best to work through there application issues, but the authors should have more insight than I.

If/when John emails me back, I can ask him about this as well.

  • Mat