Date: Sat, 3 Aug 2002 13:02:42 -0700
From: David Case
Subject: Re: Please give me a hand on understanding AMBER/MPI and locmem.

On Fri, Aug 02, 2002, Margaret Cheung wrote:
>
> I'm still using sander_classic and lately I've been trying
> to increase the array size of CN1, CN2, ASOL, BSOL listed in parms.h, due
> to
> having a large number of NTTYPE (larger than default 60) in the system.
> The forces and energies were calculated correctly if the executable
> is not compiled for parallel tasks. However, when executables were
> compiled with MPI libraries, all my outputs were wrong. (note that: if I
> don't touch parms.h, everything works fine for sander_classic).

If you change the size of the common blocks in parms.h, you also have to
edit the lines in parallel.f that broadcast this info to all nodes:

call mpi_bcast(RK,23320,MPI_DOUBLE_PRECISION,
+ 0,MPI_COMM_WORLD,ierr)
call mpi_bcast(IPN,1200,MPI_INTEGER,0,MPI_COMM_WORLD,ierr)

That is, the "23320" and "1200" are hardwired to the original sizes, and
need to be changed when parms.h is changed. That is, 23320 has to be set to
the total number of double precision variables in the parms common
block....

Yes, I know this is horrible progamming...it has been mostly fixed in the
current releases (but not completely....) *Surely* by release 8 it will be
completely fixed :-)

There may be some other change I'm not remembering, but I think changing
the lines above will fix your problem.

...regards...dac