********> bugfix.17 Author: Dave Case Date: 5/17/95 Program: makeNOEEXP Severity: serious Problem: This program translates a simpler constraint format into files that sander can read, dividing the whole molecule into "submolecules" during the process. The format of the output in the distributed version is incorrect. This should lead to obviously incorrect spectral simulations. Fix: Make the following change to nmr_aux/prepare_input/makeNOEEXP.f ---------------------------------------------------------------------- *** OLD makeNOEEXP.f --- NEW makeNOEEXP.f *************** *** 119,125 open(unit=10,file=volfil,status='old') 2 read(10,'(a)') card if (card(1:1).eq.'#') then ! write(6,*) card(1:72) go to 2 end if read(card,*) nmix,(emix(imix),imix=1,nmix) --- 119,125 ----- open(unit=10,file=volfil,status='old') 2 read(10,'(a)') card if (card(1:1).eq.'#') then ! write(6,'(a)') card(1:72) go to 2 end if read(card,*) nmix,(emix(imix),imix=1,nmix) *************** *** 123,129 go to 2 end if read(card,*) nmix,(emix(imix),imix=1,nmix) - write (6,*) nmix, emix(1) if (nmix.gt.NMX) then write(0,*) 'Too many mixing timess! Max. is ',NMX stop --- 123,128 ----- go to 2 end if read(card,*) nmix,(emix(imix),imix=1,nmix) if (nmix.gt.NMX) then write(0,*) 'Too many mixing timess! Max. is ',NMX stop *************** *** 131,137 do 10 i=1,MAXPK 3 read(10,'(a)',end=20) card if (card(1:1).eq.'#') then ! write(6,*) card(1:72) go to 3 end if read(card,*) pknum(1,i),pknum(2,i), --- 130,136 ----- do 10 i=1,MAXPK 3 read(10,'(a)',end=20) card if (card(1:1).eq.'#') then ! write(6,'(a)') card(1:72) go to 3 end if read(card,*) pknum(1,i),pknum(2,i), *************** *** 357,378 c c --- now write everything out: c ! write(6,*) ' &noeexp' ! write(6,*) ' npeak =',nmix,'*',jj,',' ! write(6,'(9H emix = ,4(f10.5,1H,))') ! . (emix(imix),imix=1,min(4,nmix)) ! if (nmix.gt.4) write(6,'(5(f10.5,1H,))') (emix(imix),imix=5,nmix) ! do 322 imix=1,nmix ! write(6,'(6H ihp(,i2,5H,1) =,8(i5,1H,))') ! . imix,(ihp(jjd),jjd=1,min(8,jj)) ! if (jj.gt.8) write(6,'((13x,8(i5,1H,)))') (ihp(jjd),jjd=9,jj) ! write(6,'(6H jhp(,i2,5H,1) =,8(i5,1H,))') ! . imix,(jhp(jjd),jjd=1,min(8,jj)) ! if (jj.gt.8) write(6,'((13x,8(i5,1H,)))') (jhp(jjd),jjd=9,jj) ! write(6,'(7H aexp(,i2,5H,1) =,4(1pe10.2,1H,))') ! . imix,(aexp(imix,jjd),jjd=1,min(4,jj)) ! if (jj.gt.4) write(6,'((14x,4(1pe10.2,1H,)))') ! . (aexp(imix,jjd),jjd=5,jj) 322 continue write(6,*) ' &end' write(6,*) 'SUBM ',k --- 356,376 ----- c c --- now write everything out: c ! write(6,'(a)') ' &noeexp' ! write(6,*) ' npeak =',nmix,'*',jj,', -1,' ! write(6,'(9H emix = ,5(f10.5,1H,))') ! . (emix(imix),imix=1,min(5,nmix)) ! if (nmix.gt.5) write(6,'(9x,5(f10.5,1H,))') ! . (emix(imix),imix=6,nmix) ! do 322 ipeak=1,jj ! write(6,'(8H ihp(1,,i3,3H) =,i2,1H*,i3,1H,)') ! . ipeak, nmix, ihp(ipeak) ! write(6,'(8H jhp(1,,i3,3H) =,i2,1H*,i3,1H,)') ! . ipeak, nmix, jhp(ipeak) ! write(6,'(9H aexp(1,,i3,3H) =,5(1pe10.2,1H,))') ! . ipeak,(aexp(imix,ipeak),imix=1,min(5,nmix)) ! if (nmix.gt.5) write(6,'((15x,5(1pe10.2,1H,)))') ! . (aexp(imix,ipeak),imix=6,nmix) 322 continue write(6,'(a)') ' &end' write(6,'(a,i4)') 'SUBM ',k *************** *** 374,386 if (jj.gt.4) write(6,'((14x,4(1pe10.2,1H,)))') . (aexp(imix,jjd),jjd=5,jj) 322 continue ! write(6,*) ' &end' ! write(6,*) 'SUBM ',k ! write(6,*) 'RES ',(ires(k,ljd),ljd=1,min(lj,14)) ! if (lj.gt.14) write(6,*) 'RES ',(ires(k,ljd),ljd=15,min(lj,28)) ! if (lj.gt.28) write(6,*) 'RES ',(ires(k,ljd),ljd=29,min(lj,42)) ! write(6,*) 'END' ! write(6,*) 'END' c c c----re-form the ipksub and iresub by taking out the pks that are --- 372,386 ----- if (nmix.gt.5) write(6,'((15x,5(1pe10.2,1H,)))') . (aexp(imix,ipeak),imix=6,nmix) 322 continue ! write(6,'(a)') ' &end' ! write(6,'(a,i4)') 'SUBM ',k ! write(6,'(a,14i5)') 'RES ',(ires(k,ljd),ljd=1,min(lj,14)) ! if (lj.gt.14) write(6,'(a,14i5)') ! . 'RES ',(ires(k,ljd),ljd=15,min(lj,28)) ! if (lj.gt.28) write(6,'(a,14i5)') ! . 'RES ',(ires(k,ljd),ljd=29,min(lj,42)) ! write(6,'(a)') 'END' ! write(6,'(a)') 'END' c c c----re-form the ipksub and iresub by taking out the pks that are ---------------------------------------------------------------------- Temporary workarounds: prepare the SANDER input by hand