[MOAB-dev] Fortran interface to MOAB

kanaev at ibrae.ac.ru kanaev at ibrae.ac.ru
Wed Oct 30 09:41:41 CDT 2013


> What fortran compiler are you using ? Try mpif77 -show.

On my PC:
anton at ThinkPadX230:~$ mpif77 -showgfortran -Wl,-Bsymbolic-functions
-Wl,-z,relro -I/usr/include/mpich2 -L/usr/lib -lmpich -lopa -lmpl -lrt -lcr
-lpthread

On Mira:
[akanaev at miralac1 moab-f77]$ mpif77 -show
bgxlf_r -I/bgsys/drivers/V1R2M0/ppc64
-I/bgsys/drivers/V1R2M0/ppc64/comm/sys/include
-I/bgsys/drivers/V1R2M0/ppc64/spi/include
-I/bgsys/drivers/V1R2M0/ppc64/spi/include/kernel/cnk
-L/bgsys/drivers/V1R2M0/ppc64/spi/lib
-L/bgsys/drivers/V1R2M0/ppc64/comm/sys/lib
-L/bgsys/drivers/V1R2M0/ppc64/spi/lib
-L/bgsys/drivers/V1R2M0/ppc64/comm/sys/lib
-L/bgsys/drivers/V1R2M0/ppc64/spi/lib
-I/bgsys/drivers/V1R2M0/ppc64/comm/xl/include
-L/bgsys/drivers/V1R2M0/ppc64/comm/xl/lib -lmpich -lopa -lmpl -lpami -lSPI
-lSPI_cnk -lrt -lpthread -lstdc++ -lpthread -lmpichf90

> I dont know whether this is specifically a BG/Q quirk but it is
> possible that the pre-processor is screwing up something for the
> fortran compiler. It compiles/links/runs cleanly on my Macbook with
> gfortran. Without more output, it would be hard to figure out why this
> is happening.
> 
> Can you split that up in to a compilation and link phase separately so
> that we can take a look at the pre-processed file here.
> 
> FPP_FLAG="-d" # for BG/Q
> FPP_FLAG="-save_temps" # for Intel fortran compilers
> FPP_FLAG="-save-temps" # for GFortran
> 
> mpif77 -g $(FPP_FLAG) -fcray-pointer -I$(MOAB_DIR)/include
> -DHAVE_CONFIG_H  -c FindConnectF.F
> mpif77 -o FindConnectF FindConnectF.o -L$(MPI_DIR)/lib
> -L$(MOAB_DIR)/lib -liMesh -lMOAB  -lhdf5  -lm  -lmpi_cxx -lstdc++
> 
> Modify the above correctly for your configuration, compile and send
> the output again along with the pre-processed files.

I've tried to compile FindConnectF.F with MOAB both on my PC (Ubuntu
12.04.3) and on Mira

Here's the makefile i use on PC:

ZLIB_DIR=/home/anton/FATHOM_DIR/zlib/zlib-1.2.8/gcc
HDF5_DIR=/home/anton/FATHOM_DIR/hdf5/hdf5-1.8.11/gcc
MOAB_DIR=/home/anton/FATHOM_DIR/moab

F77 = mpif77
F77LD = $(F77)
INCLUDES = -I$(MOAB_DIR)/include

DEFS = -DHAVE_CONFIG_H
FFLAGS = -g -save-temps -fcray-pointer

LDADD = -liMesh -lMOAB ${MOAB_CXX_LIBS}
LDFLAGS =   -L$(ZLIB_DIR)/lib  -L$(HDF5_DIR)/lib -L$(MOAB_DIR)/lib 
LIBS =  -lm

MOAB_CXX_LIBS =  -lmpichcxx -lmpich -lopa -lmpl -lrt -lcr -lpthread
-lstdc++
MOAB_CXX_LINKFLAGS =

FindConnectF: FindConnectF.o
	@rm -f FindConnectF
	$(F77LD) $(FFLAGS) $(LDFLAGS) $(MOAB_CXX_LINKFLAGS) FindConnectF.o -o
FindConnectF $(LDADD) $(LIBS)

FindConnectF.o:
	$(F77) $(DEFS) $(FFLAGS) $(INCLUDES) -c FindConnectF.F


The output is:

anton at ThinkPadX230:~/FATHOM_DIR/moab/moab-4.6.0/examples/itaps$ make -f
Makefile_FindConnect
mpif77 -g -save-temps -fcray-pointer
-L/home/anton/FATHOM_DIR/zlib/zlib-1.2.8/gcc/lib 
-L/home/anton/FATHOM_DIR/hdf5/hdf5-1.8.11/gcc/lib
-L/home/anton/FATHOM_DIR/moab/lib   FindConnectF.o -o FindConnectF -liMesh
-lMOAB -lmpichcxx -lmpich -lopa -lmpl -lrt -lcr -lpthread -lstdc++ -lm
FindConnectF.o: In function `MAIN__':
FindConnectF.F:(.text+0x2b): undefined reference to `imesh_newmesh_'
FindConnectF.F:(.text+0x56): undefined reference to `imesh_load_'
FindConnectF.F:(.text+0x9d): undefined reference to `imesh_getentities_'
FindConnectF.F:(.text+0x104): undefined reference to `imesh_getentadj_'
FindConnectF.F:(.text+0x1ab): undefined reference to `imesh_getentarradj_'
FindConnectF.F:(.text+0x243): undefined reference to `imesh_dtor_'
collect2: ld returned 1 exit status
make: *** [FindConnectF] Error 1



____________________________________________________________________________
Here's the makefile i use on Mira:

ZLIB_DIR=/soft/libraries/alcf/current/xl/ZLIB
HDF5_DIR=/soft/libraries/hdf5/1.8.10/cnk-xl/V1R2M0-20130405
MOAB_DIR=/soft/applications/moab/4.6.0/cnk-xl/V1R2M0-20130419

F77 = mpif77
F77LD = $(F77)
INCLUDES = -I$(MOAB_DIR)/include

CPPFLAGS = 
DEFS = -DHAVE_CONFIG_H
FFLAGS = -d -fcray-pointer

LDADD = -liMesh -lMOAB ${MOAB_CXX_LIBS}
LDFLAGS =   -L$(ZLIB_DIR)/lib  -L$(HDF5_DIR)/lib -L$(MOAB_DIR)/lib 
LIBS =  -lm

MOAB_CXX_LIBS =  -lmpichcxx -lmpich -lopa -lmpl -lrt -lcr -lpthread
-lstdc++
MOAB_CXX_LINKFLAGS = -L/usr/lib
-L/soft/apps/ibmcmp-feb2013/vacpp/bg/12.1/bglib64/
-L/soft/apps/ibmcmp-feb2013/vac/bg/12.1/bglib64/

FindConnectF: FindConnectF.o
	@rm -f FindConnectF
	$(F77LD) $(FFLAGS) $(LDFLAGS) $(MOAB_CXX_LINKFLAGS) FindConnectF.o -o
FindConnectF $(LDADD) $(LIBS)

FindConnectF.o:
	$(F77) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(FFLAGS) -c FindConnectF.F


The output is:

[akanaev at miralac1 moab-f77]$ make -f Makefile_FindConnect 
mpif77 -DHAVE_CONFIG_H
-I/soft/applications/moab/4.6.0/cnk-xl/V1R2M0-20130419/include  -d
-fcray-pointer -c FindConnectF.F
"FFindConnectF.f", line 164.16: 1515-019 (S) Syntax is incorrect.
"FFindConnectF.f", line 165.17: 1515-019 (S) Syntax is incorrect.
"FFindConnectF.f", line 166.20: 1515-019 (S) Syntax is incorrect.
"FFindConnectF.f", line 167.6: 1514-050 (S) Specification statement is out
of order.  Statement is ignored.
"FFindConnectF.f", line 168.6: 1514-050 (S) Specification statement is out
of order.  Statement is ignored.
"FFindConnectF.f", line 169.6: 1514-050 (S) Specification statement is out
of order.  Statement is ignored.
"FFindConnectF.f", line 170.6: 1514-050 (S) Specification statement is out
of order.  Statement is ignored.
"FFindConnectF.f", line 171.6: 1514-050 (S) Specification statement is out
of order.  Statement is ignored.
"FFindConnectF.f", line 172.6: 1514-050 (S) Specification statement is out
of order.  Statement is ignored.
"FFindConnectF.f", line 173.6: 1514-050 (S) Specification statement is out
of order.  Statement is ignored.
"FFindConnectF.f", line 174.6: 1514-050 (S) Specification statement is out
of order.  Statement is ignored.
"FFindConnectF.f", line 180.58: 1515-009 (E) Null literal string is not
permitted.  A single blank is assumed.
** findconnect   === End of Compilation 1 ===
1501-511  Compilation failed for file FindConnectF.F.
make: *** [FindConnectF.o] Error 1





More information about the moab-dev mailing list