[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