Re: AMBER: problem compiling amber9 on IBM 64 bit machine with xlf90_suse compiler

From: Martin Klefas-Stennett <>
Date: Wed, 19 Sep 2007 19:16:49 +0100

 I've replied inline below.
----- Original Message -----
From: "Hayden Eastwood" <>
To: <>
Sent: Wednesday, September 19, 2007 6:25 PM
Subject: RE: AMBER: problem compiling amber9 on IBM 64 bit machine with
xlf90_suse compiler

> Dear Martin
> Thankyou for getting back to me.
> Please forgive my ignorance but I'm not sure I follow what you're saying,
> perhaps you could elaborate a bit?
>> perhaps if you put in an explicit path to the libraries included in the
> amber distribution, and then compiled them yourself using the same
>> compiler as you intend to use for the rest of the installation.
> Are you refering to the files in the blas folder? I don't understand what
> the blas files are, I presume they are just libraries required for
> performing various operations. However, how do I go about compiling them?
BLAS are Basic Linear Algebra Subroutines and they do all the maths for
amber in the fastest cleverest way possible. To compile them you can just
type xlf90 -c *.f

> Would I need to modify the config.h file or what? Why do I need to specify
> a
> path to search for the blas library if these files are already known to be
> located in amber9/blas ? Are there a mixture of blas files that come with
> AMBER and blas files that are expected to be found on the local machine?

There are often optimized BLAS supplied with machines, as what works fastest
is different on every machine. The compiler should look around and find
them, but sometimes will struggle. In this instance you can just tell it
where they are by putting the absolute path to the blas directory (ie
>> A second option which would probably work as a bit of a sneaky workaround
> would be to copy the relevant source code into the sander directory and >
> let the compiler link it in all on it's own.
> Again please excuse my ignorance, what exactly would the "relevant source
> code" be?

Basically if it says could not find dseyv then copy dseyv.f into src/sander.
repeat until all of the error messages vanish, then hey presto. The only
problem with this approach is that it is cheating and isn't really
addressing the problem, it's just sweeping it under the carpet.

To be honest there should be some BLAS which are optimized for your machine
which would probably speed up amber a whole lot if you were able to find

> Many thanks
> Hayden
>> Dear Amber guys
>> I am having problems compiling sander (amber9, both serial and
>> parallel) on a 64 bit IBM cluster with the xlf90_suse compiler.
>> Typically, compillation begins without problem, but crashes out with
>> references such as those
>> below:
>> **********************************************************************
>> ******
>> ***********
>> .
>> .
>> .
>> a - ../obj/commandqmmm.o
>> a - ../obj/initmem2.o
>> a - ../obj/allocateMxAtomVarsqmmm.o
>> /bin/true libdivcon.a
>> mv libdivcon.a ../src/qmmm/
>> make[2]: Leaving directory `/home/b23/barran/bin/amber9/src/dcqtp/mod'
>> make[1]: Leaving directory `/home/b23/barran/bin/amber9/src/dcqtp'
>> xlf90 -qfree=f90 -o sander evb_vars.o evb_input.o evb_init.o
>> evb_alloc.o
>> evb_dealloc.o check_input.o evb_io.o evb_keywrd.o exchange_CM.o
>> evb_mcp.o evb_force.o diabati c.o evb_2stdebug.o egap_umb_2stdebug.o
>> exchange_gauss.o exchange_warshel.o morsify.o morse_anal2num.o
>> evb_matrix.o evb_ntrfc.o out_evb.o constants.o stack.o qmmm_module.o
>> trace.o lmod.o decomp.o icosasurf.o egb.o findmask.o pb_force.o
>> pb_exmol.o pb_mpfrc.o pb_direct.o pb_list.o np_force.o sa_driver.o
>> relax_mat.o nmr.o multisander.o sander .o trajene.o cshf.o nmrcal.o
>> pearsn.o printe.o runmin.o rdparm.o mdread.o locmem.o runmd.o getcor.o
>> degcnt.o decnvh.o fastwt.o parallel.o shake.o ene.o mdwrit.o minrit.o
>> set.o dynlib.o mdfil.o nmlsrc.o ew_force.o ew_setup.o ew_box.o
>> ew_bspline.o ew_fft.o nonbond_list.o short_ene.o ew_recip.o pcshift.o
>> align.o rfree.o rgroup.o random.o amo pen.o debug.o ew_recip_reg.o
>> ew_handle_dips.o ew_dipole_recip.o mexit.o new_time.o extra_pts.o
>> thermo_int.o matinv.o assert.o mmtsb.o mmtsb_client.o erfcfun.o
>> veclib.o is _init.o constantph.o prn_dipoles.o ips.o sglds.o
>> amoeba_valence.o amoeba_multipoles.o amoeba_recip.o amoeba_interface.o
>> amoeba_direct.o amoeba_mdin.o amoeba_adjust.o amoe ba_self.o
>> amoeba_vdw.o amoeba_induced.o amoeba_runmd.o bintraj.o
>> spatial_recip.o spatial_fft.o parms.o qm_mm.o qm_link_atoms.o
>> qm_nb_list.o qm_extract_coords.o qm_ewald.
>> o qm_gb.o qm_zero_charges.o qm_print_info.o qm_assign_atom_types.o
>> qm2_allocate_e_repul.o qm2_calc_charges.o qm2_calc_rij_and_eqns.o
>> qm2_dihed.o qm2_energy.o qm2_fock.o q m2_get_qm_forces.o
>> qm2_get_qmmm_forces.o qm2_h1elec.o qm2_hcore_qmqm.o qm2_hcore_qmmm.o
>> qm2_identify_peptide_links.o qm2_load_params_and_allocate.o qm2_repp.o
>> qm2_rotate_ qmqm.o qm2_scf.o qm2_setup_orb_exp.o qm2_smallest_number.o
>> qm2_dftb_module.o qm2_dftb_broyden.o qm2_dftb_dispersion_egr.o
>> qm2_dftb_dispersion_params.o qm2_dftb_dispersion read.o
>> qm2_dftb_eglcao.o qm2_dftb_energy.o qm2_dftb_ewevge.o
>> qm2_dftb_externalchgrad.o qm2_dftb_externalshift.o qm2_dftb_fermi.o
>> qm2_dftb_forces.o qm2_dftb_gamma.o qm2_df tb_gammamat.o
>> qm2_dftb_get_qmmm_forces.o qm2_dftb_gettab.o qm2_dftb_load_params.o
>> qm2_dftb_long_range.o qm2_dftb_main.o qm2_dftb_my_gradient.o
>> qm2_dftb_my_mulliken.o qm2_ dftb_repulsiv.o qm2_dftb_self.o
>> qm2_dftb_shift.o qm2_dftb_short_range.o qm2_dftb_skpar.o
>> qm2_dftb_slkode.o qm2_dftb_slktrafo.o \
>> qm_div.o force.o \
>> ../lmod/lmod.a ../dcqtp/src/qmmm/libdivcon.a \
>> ../lapack/lapack.a ../blas/blas.a \
>> ../lib/nxtsec.o ../lib/sys.a
>> evb_force.o(.text+0x560): In function `evb_force':
>> : undefined reference to `dsyev'
>> lmod.o(.text+0x848): In function `__lmod_driver_NMOD_run_xmin':
>> : undefined reference to `xmin'
>> lmod.o(.text+0x23f4): In function `__lmod_driver_NMOD_run_lmod':
>> : undefined reference to `lmod'
>> relax_mat.o(.text+0xfec): In function `__relax_mat_NMOD_remarc':
>> : undefined reference to `dspev'
>> sander.o(.text+0x1e14): In function `sander':
>> : undefined reference to `amflsh'
>> sander.o(.text+0x2f08): In function `sander':
>> : undefined reference to `amflsh'
>> sander.o(.text+0x39e8): In function `sander':
>> Etc etc etc (there are a lot more)
>> **********************************************************************
>> ******
>> **************************
>> My questions are these:
>> 1. It looks like the libraries aren't loading for this. I tried
>> implementing the idea suggested by DAC in an earlier post(see: "AMBER:
>> Problem compiling AMBER 9 on ppc64" - sept 4th). However, my blas
>> library does not appear to be in /usr/lib location. Indeed, I've used
>> the "find" command within linux and not found any library by that name
>> (I did of course find the "blas"
>> folder within the amber9 directory). DACs suggestion of entering the
>> USE_BLASLIB=$(SOURCE_COMPILED) line into the config file didn't work.
>> Is it possible that the library doesn't exist?
>> 2. With regards to the parallel compilation: I notice that the
>> config.h file tries to implement mpif90. However, the mpich2
>> distribution on this machine does not have an mpif90 executable in the
>> bin directory. There is however an mpixlf90 executable and an mpif77,
>> can I use either of these instead?
>> I attach with this e-mail config.h for both parallel and serial compiles.
>> Many thanks for any advice on the matter.
>> Best
>> Hayden
> -----------------------------------------------------------------------
> The AMBER Mail Reflector
> To post, send mail to
> To unsubscribe, send "unsubscribe amber" to
> -----------------------------------------------------------------------
> The AMBER Mail Reflector
> To post, send mail to
> To unsubscribe, send "unsubscribe amber" to

The AMBER Mail Reflector
To post, send mail to
To unsubscribe, send "unsubscribe amber" to
Received on Sun Sep 23 2007 - 06:07:15 PDT
Custom Search