Dear all,

I just thought I would share my experience of compiling a 64-bit version of c34b1 with gfortran and openmpi. It had me stuck for quite a while, but I now seem to have solved it. (Perhaps the problem will become obvious to some, but it wasn't to me!).

System set-up: Charmm c34b1, gfortran/gcc v4.3.2, openmpi-1.2.8, Intel EMT64 processors

./ gnu xlarge gfortran x86_64
compilation and executable works

./ gnu xlarge gfortran x86_64 M MPI
compilation works, executable crashes immediately with:
chngbuf returned error

chngbuf is in some of the C code (cstuff.c, called from machio.src), so I checked the C compiler options... -Di8 was _not_ being passed to it. In the general makefile, there are two variables (I8DUM1 and I8DUM2) which should pass i8 flags to cc/mpicc, but this wasn't working for some reason (Makefiles aren't my strong point so I didn't look more closely at this). Manually adding -Di8 to the CC line in the
Makefile_gnu then sorted out the problem.

A couple of other comments:
Omitting x86_64 leads to a crash when the heap is expanded:
VEHEAP> Expanding heap size by 13320192 words.
[node032:17404] *** Process received signal ***
[node032:17404] Signal: Segmentation fault (11)
[node032:17404] Signal code: Address not mapped (1)
[node032:17404] Failing at address: 0x5f420014
[node032:17404] [ 0] /lib64/ [0x2ac8593e6fb0]
[node032:17404] [ 1] /usr/local/charmm/c34b1/exec/gnu/charmm(linkhp_+0x188) [0xadc408]
[node032:17404] [ 2] /usr/local/charmm/c34b1/exec/gnu/charmm(veheap_+0x1d6) [0x6abc36]
[node032:17404] [ 3] /usr/local/charmm/c34b1/exec/gnu/charmm(allhp_+0x1cd) [0xadd08d]
[node032:17404] [ 4] /usr/local/charmm/c34b1/exec/gnu/charmm(alldt_+0xde) [0xabc19e]
[node032:17404] [ 5] /usr/local/charmm/c34b1/exec/gnu/charmm(resiz2_+0x1d6) [0xabb0e6]
[node032:17404] [ 6] /usr/local/charmm/c34b1/exec/gnu/charmm(resize_+0x1ce) [0xabb5ae]
[node032:17404] [ 7] /usr/local/charmm/c34b1/exec/gnu/charmm(renbnd_+0x11f) [0x953aff]
[node032:17404] [ 8] /usr/local/charmm/c34b1/exec/gnu/charmm(nbonds_+0x2c50) [0x941650]
[node032:17404] [ 9] /usr/local/charmm/c34b1/exec/gnu/charmm(update_+0x569) [0x63a8e9]
[node032:17404] [10] /usr/local/charmm/c34b1/exec/gnu/charmm(dcntrl_+0x6c1) [0x4b9a61]
[node032:17404] [11] /usr/local/charmm/c34b1/exec/gnu/charmm(dynopt_+0x1201) [0x4c5651]
[node032:17404] [12] /usr/local/charmm/c34b1/exec/gnu/charmm(maincom_+0x2d68) [0x4406e8]
[node032:17404] [13] /usr/local/charmm/c34b1/exec/gnu/charmm(MAIN__+0x68d) [0x440ddd]
[node032:17404] [14] /usr/local/charmm/c34b1/exec/gnu/charmm(main+0x2c) [0xb8aaec]
[node032:17404] [15] /lib64/ [0x2ac859612b54]
[node032:17404] [16] /usr/local/charmm/c34b1/exec/gnu/charmm [0x43aad9]
[node032:17404] *** End of error message ***
Segmentation fault

This is actually described in another post on the Charmm forum.

Among the other things I tried were different options to the compilation of openmpi, including adding "--with-memory-manager=none" ( a suggestion from one of the openmpi lists )
This was before I had worked out that I needed the x86_64 option (the errors described are similar). I haven't tried recompiling it without this, but it most likely doesn't change anything.

Setting the environment variable for buffering was also useful: see this post

Anyway, it seems to work now...