AMBER Archive (2007)

Subject: Re: AMBER: Weird restart file with ioutfm=0, iwrap=1 and ntwprt >0

From: David A. Case (case_at_scripps.edu)
Date: Wed Nov 28 2007 - 13:27:52 CST


On Mon, Nov 26, 2007, Hai Long wrote:
>
> I have a problem with sander of Amber 9.0. When I set ntwprt > 0, for
> example, ntwprt=5000, and iwrap = 1 at the same time, it generates a
> weird restart file: from atom # 1 to 5001 coordinates are ok but the
> coordinates for atom # after 5001 is either 0, 0, 0 or equal to the
> ones of atom # 5001. This only happens in sander and pmemd does not
> have this problem. I think I have applied the bug fix patch to my copy
> of Amber. Is it an unfound bug or something?

Looks like a bug. Please try the patch below -- I haven't tested it myself,
but it looks like it should fix the problem. Let us know if something is
still amiss -- otherwise, I'll post a bug fix.

Thanks for the report!...dac

*** runmd.f 3 Apr 2006 23:35:55 -0000 9.0
--- runmd.f 28 Nov 2007 18:57:05 -0000
***************
*** 2021,2034 ****
              ! --- use temp. array to hold coords. so that the master's values
              ! are always identical to those on all other nodes:
              
! call get_stack(l_temp,nrx,routine)
              if(.not. rstack_ok)then
                 deallocate(r_stack)
                 allocate(r_stack(1:lastrst),stat=alloc_ier)
                 call reassign_rstack(routine)
              endif
              REQUIRE(rstack_ok)
! do m=1,nrx
                 r_stack(l_temp + m - 1) = x(m)
              end do
              
--- 2029,2042 ----
              ! --- use temp. array to hold coords. so that the master's values
              ! are always identical to those on all other nodes:
              
! call get_stack(l_temp,nr3,routine)
              if(.not. rstack_ok)then
                 deallocate(r_stack)
                 allocate(r_stack(1:lastrst),stat=alloc_ier)
                 call reassign_rstack(routine)
              endif
              REQUIRE(rstack_ok)
! do m=1,nr3
                 r_stack(l_temp + m - 1) = x(m)
              end do
              
***************
*** 2065,2078 ****
              call corpac(x,1,nrx,MDCRD_UNIT,loutfm)
              if(ntb > 0) call corpac(box,1,3,MDCRD_UNIT,loutfm)
           else
! call get_stack(l_temp,nrx,routine)
              if(.not. rstack_ok)then
                 deallocate(r_stack)
                 allocate(r_stack(1:lastrst),stat=alloc_ier)
                 call reassign_rstack(routine)
              endif
              REQUIRE(rstack_ok)
! do m=1,nrx
                 r_stack(l_temp + m - 1) = x(m)
              end do
              
--- 2073,2086 ----
              call corpac(x,1,nrx,MDCRD_UNIT,loutfm)
              if(ntb > 0) call corpac(box,1,3,MDCRD_UNIT,loutfm)
           else
! call get_stack(l_temp,nr3,routine)
              if(.not. rstack_ok)then
                 deallocate(r_stack)
                 allocate(r_stack(1:lastrst),stat=alloc_ier)
                 call reassign_rstack(routine)
              endif
              REQUIRE(rstack_ok)
! do m=1,nr3
                 r_stack(l_temp + m - 1) = x(m)
              end do
              
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu