PROGRAM classwat c List waters by numbers of H-bonding main chain partners CHARACTER*66 line(12000), wat(240), junk INTEGER num(240)/240*0/, hist(0:6)/7*0/ REAL x(3), z(3) WRITE (6, 1000) 'Enter distance criterion:' READ (5, 999) crit 999 FORMAT (4f10.4) crit = crit*crit OPEN (unit=1, file='PCDall.pdb', status='OLD', readonly) n = 0 DO WHILE (.TRUE.) 1 READ (1, 1000, end=9) junk 1000 FORMAT (a, f8.3) IF (junk(18:20) .EQ. 'WAT') THEN IF (junk(22:22) .EQ. 'A') THEN READ (junk(23:26),1001) nres 1001 FORMAT (i4) wat(nres-600) = junk endIF GOTO 1 endIF IF (junk(14:17) .EQ. 'N ' .OR. junk(14:17) .EQ. 'O ') THEN n = n + 1 IF (n .GE. 12000) WRITE (6, 1000) junk line(n) = junk endIF endDO 9 CLOSE (unit=1) nl = n c Count interactions DO i = 1,239 WRITE (6, 1000) wat(i) READ (wat(i)(31:54), 1002) x 1002 FORMAT (3f8.3) DO j = 1,nl READ (line(j)(31:54), 1002) z dd = (x(1)-z(1))**2 + (x(2)-z(2))**2 + (x(3)-z(3))**2 IF (dd .LE. crit) THEN num(i) = num(i) + 1 WRITE (6, 1000) line(j), SQRT(dd) endIF endDO WRITE (6, 1000) endDO c Make histogram DO i = 1,239 hist(num(i)) = hist(num(i))+1 endDO WRITE (6, 1003) (i, i=0,6) 1003 FORMAT (7i5) WRITE (6, 1003) (hist(i), i=0,6) end