update new files
[unres.git] / source / maxlik / src_MD_T_maxlik-NEWCORR-PMF-5 / seq2chains.f
1       subroutine seq2chains(nres,itype,nchain,chain_length,chain_border)
2 c
3 c Split the total UNRES sequence, which has dummy residues separating
4 c the chains, into separate chains. The length of  chain ichain is
5 c contained in chain_length(ichain), the first and last non-dummy
6 c residues are in chain_border(1,ichain) and chain_border(2,ichain),
7 c respectively. The lengths pertain to non-dummy residues only.
8 c
9       implicit none
10       include 'DIMENSIONS'
11       integer nres,itype(nres),nchain,chain_length(nres),
12      &  chain_border(2,nres)
13       integer ii,ichain
14       logical new_chain
15       ichain=1
16       new_chain=.true.
17       chain_length(ichain)=0
18       ii=1
19       do while (ii.lt.nres)
20         if (itype(ii).eq.ntyp1) then
21           if (.not.new_chain) then
22             new_chain=.true.
23             chain_border(2,ichain)=ii-1
24             ichain=ichain+1
25             chain_border(1,ichain)=ii+1
26             chain_length(ichain)=0
27           endif
28         else
29           if (new_chain) then
30             chain_border(1,ichain)=ii
31             new_chain=.false.
32           endif
33           chain_length(ichain)=chain_length(ichain)+1
34         endif
35         ii=ii+1
36       enddo
37       if (itype(nres).eq.ntyp1) then
38         ii=ii-1
39       else
40         chain_length(ichain)=chain_length(ichain)+1
41       endif
42       if (chain_length(ichain).gt.0) then
43         chain_border(2,ichain)=ii
44         nchain=ichain
45       else
46         nchain=ichain-1
47       endif
48       return
49       end