Closed GoogleCodeExporter closed 9 years ago
I hope I didn't misinterpret the result, but Google tells me that pgfortran
supports
getpid() function. Search getpid in the PDF:
http://www.pgroup.com/doc/pgifortref.pdf
Original comment by cxc639
on 7 Jul 2014 at 10:36
There are lines in dqmc_hubbard.F90
----
#ifdef __INTEL_COMPILER
use IFPORT, only : getpid
----
May be should be similar line for the Portland compiler.
Original comment by iglovi...@gmail.com
on 7 Jul 2014 at 10:39
getpid() is an intrinsic function of GNU FORTRAN compiler. Intel puts it in its
Portability Library:
https://software.intel.com/sites/products/documentation/doclib/stdxe/2013/compos
erxe/compiler/fortran-mac/GUID-E2E955F7-8A3A-4242-874B-FCC5BA4E2F4C.htm#GUID-E2E
955F7-8A3A-4242-874B-FCC5BA4E2F4C
The Portability Library is pre-compiled as a FORTRAN 90 module called IFPORT.
Hence the line
use IFPORT, only : getpid
I do not know where PGI puts getpid. From PGI's FORTRAN reference manual, it
looks like getpid
is also an intrinsic function. Anyway, judging from examples I googled, one
thing you may try is
to add an additional statement in dqmc_hubbard.F90:
integer :: getpid
I don't know whether this would work though.
Original comment by cxc639
on 7 Jul 2014 at 10:54
It seems like for PG, you need to "use dfport" instead of "use ifport",
where as Chia-Chen mentioned, getpid is recognized.
Original comment by ehsankha...@gmail.com
on 7 Jul 2014 at 10:54
I think one main issue is: what is the equivalent of __INTEL_COMPILER for
PG?
If it is, e.g., __PG_COMPILER, I guess you could do the following:
#ifdef __INTEL_COMPILER
use IFPORT, only : getpid
#elseif __PG_COMPILER
use dfport, only : getpid
:
Original comment by ehsankha...@gmail.com
on 7 Jul 2014 at 10:58
But to write it I need some kind of the if condition similar to
----
#ifdef __INTEL_COMPILER
----
but corresponding to the Portland compiler and I can not figure out what should
I use in this case.
Original comment by iglovi...@gmail.com
on 7 Jul 2014 at 11:00
Ok. This compilation error fixed in the revision 5a71c4b41780 with the help of
Eshan and Chia-Chen.
Next one:
----
pgfortran -fast –Minform=inform -DDQMC_ASQRD -c dqmc_2dperl.F90
pgc++ -DDQMC_ASQRD -fast –Minform=inform -c computeg.c++
pgc++ -DDQMC_ASQRD -fast –Minform=inform -c blaslapack.c++
pgc++ -DDQMC_ASQRD -fast –Minform=inform -c profile.c++
pgc++ -DDQMC_ASQRD -fast –Minform=inform -c kernel_cpu.c++
ar cr ../libdqmc.a dqmc_mpi.o dqmc_util.o dqmc_cfg.o dqmc_geom_param.o
dqmc_latt.o dqmc_bonds.o dqmc_reclatt.o dqmc_hamilt.o dqmc_symm.o dqmc_wspace.o
dqmc_struct.o dqmc_geom_wrap.o dqmc_matb.o dqmc_ckb.o dqmc_seqb.o dqmc_gfun.o
dqmc_phy0.o dqmc_phy2.o dqmc_hubbard.o dqmc_gtau.o dqmc_tdm1.o dqmc_tdm2.o
dqmc_kbonds.o dqmc_2dperl.o computeg.o blaslapack.o profile.o kernel_cpu.o
ranlib ../libdqmc.a
make[1]: Leaving directory `/home/vladimir/work/quest-qmc/SRC'
(cd EXAMPLE; make)
make[1]: Entering directory `/home/vladimir/work/quest-qmc/EXAMPLE'
(cd geom; make)
make[2]: Entering directory `/home/vladimir/work/quest-qmc/EXAMPLE/geom'
pgfortran -fast –Minform=inform -I../../SRC -o ggeom ggeom.F90
../../libdqmc.a -lstdc++ -lrt ../../liblapack.a ../../libblas.a
ggeom.F90:
/usr/bin/ld: ../../libdqmc.a(computeg.o): undefined reference to symbol
'_Unwind_Resume@@GCC_3.0'
//lib/x86_64-linux-gnu/libgcc_s.so.1: error adding symbols: DSO missing from
command line
make[2]: *** [test] Error 2
Original comment by iglovi...@gmail.com
on 7 Jul 2014 at 11:28
Now QUEST code is compiled with PG compiler without errors. Example Makefile
added in the revision fef2be079c5f
Original comment by iglovi...@gmail.com
on 7 Jul 2014 at 11:44
Original issue reported on code.google.com by
iglovi...@gmail.com
on 7 Jul 2014 at 10:21