1 logical function argos_prep_disres(card,card2,isegm,csa,msa,nsa, 2 + inoe,dnoe,mnoe,nnoe) 3c 4c $Id$ 5c 6 implicit none 7c 8#include "inp.fh" 9c 10 logical argos_prep_str_replace 11 external argos_prep_str_replace 12c 13 integer mnoe,nnoe,msa,nsa 14 integer isegm(msa),inoe(2,mnoe) 15 real*8 dnoe(5,mnoe) 16 character*16 csa(msa) 17 character*80 card,card2 18 integer i,ifr,ito 19 character*255 target,atomi,atomj 20 integer ndx,iatom,jatom,isgm,jsgm 21c 22 card=card(8:80) 23c 24 ifr=0 25 if(.not.inp_strtok(card,' ',ifr,ito)) 26 + call md_abort('Unable to find atom',9999) 27 target=card(ifr:ito)//' ' 28 ndx=index(target,':') 29 read(target(1:ndx-1),*) isgm 30 atomi=target(ndx+1:index(target,' ')-1)//' ' 31 if(.not.argos_prep_str_replace(atomi,'_',' ')) 32 + call md_abort('argos_prep_str_replace',9999) 33 if(.not.inp_strtok(card,' ',ifr,ito)) 34 + call md_abort('Unable to find atom',9999) 35 target=card(ifr:ito)//' ' 36 ndx=index(target,':') 37 read(target(1:ndx-1),*) jsgm 38 atomj=target(ndx+1:index(target,' ')-1)//' ' 39 if(.not.argos_prep_str_replace(atomj,'_',' ')) 40 + call md_abort('argos_prep_str_replace',9999) 41 iatom=0 42 jatom=0 43 do 1 i=1,nsa 44 if(isgm.eq.isegm(i).and.atomi(1:4).eq.csa(i)(11:14)) iatom=i 45 if(jsgm.eq.isegm(i).and.atomj(1:4).eq.csa(i)(11:14)) jatom=i 46 1 continue 47 if(iatom.eq.0.or.jatom.eq.0) 48 + call md_abort('argos_prep_disres error',9999) 49 nnoe=nnoe+1 50 if(nnoe.gt.mnoe) call md_abort('Increase mnoe',9999) 51 inoe(1,nnoe)=iatom 52 inoe(2,nnoe)=jatom 53 read(card2,1000) (dnoe(i,nnoe),i=1,5) 54 1000 format(3f12.6,2e12.5) 55c 56 argos_prep_disres=.true. 57 return 58c 59 9999 continue 60 argos_prep_disres=.false. 61 return 62 end 63