1 subroutine read_coords(ncon,*)
7 integer IERROR,ERRCODE,STATUS(MPI_STATUS_SIZE)
10 include "COMMON.CONTROL"
11 include "COMMON.CHAIN"
12 include "COMMON.INTERACT"
13 include "COMMON.IOUNITS"
15 include "COMMON.SBRIDGE"
17 include "COMMON.CLUSTER"
20 integer i,j,jj,jjj,jj_old,icount,k,kk,l,ii,if,ib,
22 integer ixdrf,iret,itmp
23 real*4 prec,reini,refree,rmsdev
24 integer nrec,nlines,iscor,lenrec,lenrec_in
25 double precision energ,t_acq,tcpu
28 double precision rjunk
29 integer ntot_all(0:maxprocs-1)
31 double precision energia(0:max_ene),etot
32 real*4 csingle(3,maxres2+2)
34 character*256 bprotfiles
35 c print *,"Processor",me," calls read_protein_data"
37 if (me.eq.master) then
38 Previous=MPI_PROC_NULL
42 if (me.eq.nprocs-1) then
47 c Set the scratchfile names
48 write (liczba,'(bz,i3.3)') me
50 c 1/27/05 AL Change stored coordinates to single precision and don't store
51 c energy components in the binary databases.
52 lenrec=12*(nres+nct-nnt+1)+4*(2*nss+2)+16
53 lenrec_in=12*(nres+nct-nnt+1)+4*(2*nss+2)+24
55 write (iout,*) "nres",nres," nnt",nnt," nct",nct," nss", nss
56 write (iout,*) "lenrec_in",lenrec_in
58 bprotfiles=scratchdir(:ilen(scratchdir))//
59 & "/"//prefix(:ilen(prefix))//liczba//".xbin"
64 if (from_cart .and. .not. from_bx .and. .not. from_cx) then
66 read (intin,*,end=13,err=11) energy(icon),totfree(icon),
68 & nss_all(icon),(ihpb_all(ii,icon),jhpb_all(i,icon),
69 & i=1,nss_all(icon)),iscore(icon)
71 read (intin,*,end=13,err=11) energy(icon),rmstb(icon),
72 & nss_all(icon),(ihpb_all(ii,icon),jhpb_all(i,icon),
73 & i=1,nss_all(icon)),iscore(icon)
75 read (intin,'(8f10.5)',end=13,err=10)
76 & ((allcart(j,i,icon),j=1,3),i=1,nres),
77 & ((allcart(j,i+nres,icon),j=1,3),i=nnt,nct)
78 print *,icon,energy(icon),nss_all(icon),rmstb(icon)
80 read(intin,'(a80)',end=13,err=12) lineh
81 read(lineh(:5),*,err=8) ic
83 read(lineh(6:),*,err=8) energy(icon)
85 read(lineh(6:),*,err=8) energy(icon)
89 print *,'error, assuming e=1d10',lineh
93 cold read(lineh(18:),*,end=13,err=11) nss_all(icon)
94 ii = index(lineh(15:)," ")+15
95 read(lineh(ii:),*,end=13,err=11) nss_all(icon)
96 IF (NSS_all(icon).LT.9) THEN
97 read (lineh(20:),*,end=102)
98 & (IHPB_all(I,icon),JHPB_all(I,icon),I=1,NSS_all(icon)),
101 read (lineh(20:),*,end=102)
102 & (IHPB_all(I,icon),JHPB_all(I,icon),I=1,8)
103 read (intin,*) (IHPB_all(I,icon),JHPB_all(I,icon),
104 & I=9,NSS_all(icon)),iscore(icon)
109 PRINT *,'IC:',IC,' ENERGY:',ENERGY(ICON)
110 call read_angles(intin,*13)
112 phiall(i,icon)=phi(i)
113 thetall(i,icon)=theta(i)
114 alphall(i,icon)=alph(i)
115 omall(i,icon)=omeg(i)
121 C CALCULATE DISTANCES
123 10 print *,'something wrong with angles'
125 11 print *,'something wrong with NSS',nss
127 12 print *,'something wrong with header'
134 open (icbase,file=bprotfiles,status="unknown",
135 & form="unformatted",access="direct",recl=lenrec)
136 c Read conformations from binary DA files (one per batch) and write them to
137 c a binary DA scratchfile.
141 write (liczba,'(bz,i3.3)') me
142 IF (ME.EQ.MASTER) THEN
143 c Only the master reads the database; it'll send it to the other procs
151 open (intin,file=intinname,status="old",form="unformatted",
152 & access="direct",recl=lenrec_in)
154 else if (from_cx) then
155 #if (defined(AIX) && !defined(JUBL))
156 call xdrfopen_(ixdrf,intinname, "r", iret)
158 call xdrfopen(ixdrf,intinname, "r", iret)
161 write (iout,*) "xdrfopen: iret",iret
163 write (iout,*) "Error: coordinate file ",
164 & intinname(:ilen(intinname))," does not exist."
171 call MPI_ABORT(MPI_COMM_WORLD,IERROR,ERRCODE)
176 write (iout,*) "Error: coordinate format not specified"
183 call MPI_ABORT(MPI_COMM_WORLD,IERROR,ERRCODE)
190 write (iout,*) "Opening file ",intinname(:ilen(intinname))
191 write (iout,*) "lenrec",lenrec_in
198 c write (iout,*) "maxconf",maxconf
202 if (i.gt.maxconf) then
203 write (iout,*) "Error: too many conformations ",
204 & "(",maxconf,") maximum."
206 call MPI_Abort(MPI_COMM_WORLD,errcode,ierror)
210 c write (iout,*) "i",i
213 read(intin,err=101,end=101)
214 & ((csingle(l,k),l=1,3),k=1,nres),
215 & ((csingle(l,k+nres),l=1,3),k=nnt,nct),
216 & nss,(ihpb(k),jhpb(k),k=1,nss),
218 & entfac(jj+1),rmstb(jj+1),iscor
225 #if (defined(AIX) && !defined(JUBL))
226 call xdrf3dfcoord_(ixdrf, csingle, itmp, prec, iret)
227 if (iret.eq.0) goto 101
228 call xdrfint_(ixdrf, nss, iret)
229 if (iret.eq.0) goto 101
232 cc call xdrfint_(ixdrf, idssb(j), iret)
233 cc if (iret.eq.0) goto 101
234 cc call xdrfint_(ixdrf, jdssb(j), iret)
235 cc if (iret.eq.0) goto 101
236 cc idssb(j)=idssb(j)-nres
237 cc jdssb(j)=jdssb(j)-nres
239 call xdrfint_(ixdrf, ihpb(j), iret)
240 if (iret.eq.0) goto 101
241 call xdrfint_(ixdrf, jhpb(j), iret)
242 if (iret.eq.0) goto 101
245 call xdrffloat_(ixdrf,reini,iret)
246 if (iret.eq.0) goto 101
247 call xdrffloat_(ixdrf,refree,iret)
248 if (iret.eq.0) goto 101
249 call xdrffloat_(ixdrf,rmsdev,iret)
250 if (iret.eq.0) goto 101
251 call xdrfint_(ixdrf,iscor,iret)
252 if (iret.eq.0) goto 101
254 c write (iout,*) "calling xdrf3dfcoord"
255 call xdrf3dfcoord(ixdrf, csingle, itmp, prec, iret)
256 c write (iout,*) "iret",iret
258 if (iret.eq.0) goto 101
259 call xdrfint(ixdrf, nss, iret)
260 c write (iout,*) "iret",iret
261 c write (iout,*) "nss",nss
263 if (iret.eq.0) goto 101
266 cc call xdrfint(ixdrf, idssb(k), iret)
267 cc if (iret.eq.0) goto 101
268 cc call xdrfint(ixdrf, jdssb(k), iret)
269 cc if (iret.eq.0) goto 101
270 cc idssb(k)=idssb(k)-nres
271 cc jdssb(k)=jdssb(k)-nres
272 cc write(iout,*) "TUTU", idssb(k),jdssb(k)
274 call xdrfint(ixdrf, ihpb(k), iret)
275 if (iret.eq.0) goto 101
276 call xdrfint(ixdrf, jhpb(k), iret)
277 if (iret.eq.0) goto 101
280 call xdrffloat(ixdrf,reini,iret)
281 if (iret.eq.0) goto 101
282 call xdrffloat(ixdrf,refree,iret)
283 if (iret.eq.0) goto 101
284 call xdrffloat(ixdrf,rmsdev,iret)
285 if (iret.eq.0) goto 101
286 call xdrfint(ixdrf,iscor,iret)
287 if (iret.eq.0) goto 101
290 cc write(iout,*) 'reini=', reini, jj+1
291 entfac(jj+1)=dble(refree)
292 cc write(iout,*) 'refree=', refree,jj+1
301 c(l,nres+k)=csingle(l,nres+k-nnt+1)
306 write (iout,'(5hREAD ,i5,3f15.4,i10)')
307 & jj+1,energy(jj+1),entfac(jj+1),
309 write (iout,*) "Conformation",jjj+1,jj+1
310 write (iout,'(8f10.5)') ((c(j,i),j=1,3),i=1,nres)
311 write (iout,'(8f10.5)') ((c(j,i+nres),j=1,3),i=nnt,nct)
318 call add_new_cconf(jjj,jj,jj_old,icount,Next)
321 write (iout,*) i-1," conformations read from DA file ",
322 & intinname(:ilen(intinname))
323 write (iout,*) jj," conformations read so far"
327 #if (defined(AIX) && !defined(JUBL))
328 call xdrfclose_(ixdrf, iret)
330 call xdrfclose(ixdrf, iret)
335 write (iout,*) "jj_old",jj_old," jj",jj
337 call write_and_send_cconf(icount,jj_old,jj,Next)
338 call MPI_Send(0,1,MPI_INTEGER,Next,570,
339 & MPI_COMM_WORLD,IERROR)
342 call write_and_send_cconf(icount,jj_old,jj,Next)
344 t_acq = tcpu() - t_acq
346 write (iout,*) "Processor",me,
347 & " time for conformation read/send",t_acq
349 c A worker gets the confs from the master and sends them to its neighbor
351 call receive_and_pass_cconf(icount,jj_old,jj,
353 t_acq = tcpu() - t_acq
360 write(iout,*)"A total of",ncon," conformations read."
363 c Check if everyone has the same number of conformations
364 call MPI_Allgather(ncon,1,MPI_INTEGER,
365 & ntot_all(0),1,MPI_INTEGER,MPI_Comm_World,IERROR)
369 if (ncon.ne.ntot_all(i)) then
370 write (iout,*) "Number of conformations at processor",i,
371 & " differs from that at processor",me,
379 write (iout,*) "Number of conformations read by processors"
382 write (iout,'(8i10)') i,ntot_all(i)
384 write (iout,*) "Calculation terminated."
394 1111 write(iout,*) "Error opening coordinate file ",
395 & intinname(:ilen(intinname))
403 c------------------------------------------------------------------------------
404 subroutine add_new_cconf(jjj,jj,jj_old,icount,Next)
407 include "sizesclu.dat"
408 include "COMMON.CLUSTER"
409 include "COMMON.CHAIN"
410 include "COMMON.INTERACT"
411 include "COMMON.LOCAL"
412 include "COMMON.IOUNITS"
413 include "COMMON.NAMES"
415 include "COMMON.SBRIDGE"
417 integer i,j,jj,jjj,jj_old,icount,k,kk,l,ii,ib
418 & nn,nn1,inan,Next,itj
419 double precision etot,energia(0:max_ene)
421 call int_from_cart1(.false.)
423 if (vbld(j).lt.2.0d0 .or. vbld(j).gt.5.0d0) then
424 write (iout,*) "Conformation",jjj,jj+1
425 write (iout,*) "Bad CA-CA bond length",j," ",vbld(j)
426 write (iout,*) "The Cartesian geometry is:"
427 write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
428 write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
429 write (iout,*) "The internal geometry is:"
430 write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
431 write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
432 write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
433 write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
434 write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
435 write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
437 & "This conformation WILL NOT be added to the database."
443 if (itype(j).ne.10 .and. (vbld(nres+j)-dsc(itj)).gt.2.0d0) then
444 write (iout,*) "Conformation",jjj,jj+1
445 write (iout,*) "Bad CA-SC bond length",j," ",vbld(nres+j)
446 write (iout,*) "The Cartesian geometry is:"
447 write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
448 write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
449 write (iout,*) "The internal geometry is:"
450 write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
451 write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
452 write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
453 write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
454 write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
455 write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
457 & "This conformation WILL NOT be added to the database."
462 if (theta(j).le.0.0d0) then
464 & "Zero theta angle(s) in conformation",jjj,jj+1
465 write (iout,*) "The Cartesian geometry is:"
466 write (iout,'(8f10.5)') ((c(l,k),l=1,3),k=1,nres)
467 write (iout,'(8f10.5)') ((c(l,k+nres),l=1,3),k=nnt,nct)
468 write (iout,*) "The internal geometry is:"
469 write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
470 write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
471 write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
472 write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
473 write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
474 write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
476 & "This conformation WILL NOT be added to the database."
479 if (theta(j).gt.179.97*deg2rad) theta(j)=179.97*deg2rad
483 write (iout,*) "Conformation",jjj,jj
484 write (iout,'(8f10.5)') ((c(j,i),j=1,3),i=1,nres)
485 write (iout,'(8f10.5)') ((c(j,i+nres),j=1,3),i=nnt,nct)
486 write (iout,'(8f10.4)') (vbld(k),k=nnt+1,nct)
487 write (iout,'(8f10.4)') (vbld(k),k=nres+nnt,nres+nct)
488 write (iout,'(8f10.4)') (rad2deg*theta(k),k=3,nres)
489 write (iout,'(8f10.4)') (rad2deg*phi(k),k=4,nres)
490 write (iout,'(8f10.4)') (vbld(k+nres),k=nnt,nct)
491 write (iout,'(8f10.4)') (rad2deg*alph(k),k=2,nres-1)
492 write (iout,'(8f10.4)') (rad2deg*omeg(k),k=2,nres-1)
493 write (iout,'(16i5)') nss,(ihpb(k),jhpb(k),k=1,nss)
494 write (iout,'(e15.5,16i5)') entfac(icount+1),
498 call store_cconf_from_file(jj,icount)
499 if (icount.eq.maxstr_proc) then
501 write (iout,* ) "jj_old",jj_old," jj",jj
503 call write_and_send_cconf(icount,jj_old,jj,Next)
509 c------------------------------------------------------------------------------
510 subroutine store_cconf_from_file(jj,icount)
513 include "sizesclu.dat"
514 include "COMMON.CLUSTER"
515 include "COMMON.CHAIN"
516 include "COMMON.SBRIDGE"
517 include "COMMON.INTERACT"
518 include "COMMON.IOUNITS"
520 integer i,j,jj,icount
521 c Store the conformation that has been read in
524 allcart(j,i,icount)=c(j,i)
529 ihpb_all(i,icount)=ihpb(i)
530 jhpb_all(i,icount)=jhpb(i)
534 c------------------------------------------------------------------------------
535 subroutine write_and_send_cconf(icount,jj_old,jj,Next)
538 include "sizesclu.dat"
544 include "COMMON.CHAIN"
545 include "COMMON.SBRIDGE"
546 include "COMMON.INTERACT"
547 include "COMMON.IOUNITS"
548 include "COMMON.CLUSTER"
550 integer icount,jj_old,jj,Next
551 c Write the structures to a scratch file
553 c Master sends the portion of conformations that have been read in to the neighbor
555 write (iout,*) "Processor",me," entered WRITE_AND_SEND_CONF"
562 call MPI_Send(icount,1,MPI_INTEGER,Next,570,MPI_COMM_WORLD,IERROR)
563 call MPI_Send(nss_all(1),icount,MPI_INTEGER,
564 & Next,571,MPI_COMM_WORLD,IERROR)
565 call MPI_Send(ihpb_all(1,1),icount,MPI_INTEGER,
566 & Next,572,MPI_COMM_WORLD,IERROR)
567 call MPI_Send(jhpb_all(1,1),icount,MPI_INTEGER,
568 & Next,573,MPI_COMM_WORLD,IERROR)
569 call MPI_Send(rmstb(jj_old),icount,MPI_DOUBLE_PRECISION,
570 & Next,577,MPI_COMM_WORLD,IERROR)
571 call MPI_Send(entfac(jj_old),icount,MPI_DOUBLE_PRECISION,
572 & Next,579,MPI_COMM_WORLD,IERROR)
573 call MPI_Send(allcart(1,1,1),3*icount*maxres2,
574 & MPI_REAL,Next,580,MPI_COMM_WORLD,IERROR)
576 call dawrite_ccoords(jj_old,jj,icbase)
579 c------------------------------------------------------------------------------
581 subroutine receive_and_pass_cconf(icount,jj_old,jj,Previous,
585 include "sizesclu.dat"
587 integer IERROR,STATUS(MPI_STATUS_SIZE)
589 include "COMMON.CHAIN"
590 include "COMMON.SBRIDGE"
591 include "COMMON.INTERACT"
592 include "COMMON.IOUNITS"
595 include "COMMON.CLUSTER"
596 integer i,j,k,icount,jj_old,jj,Previous,Next
599 write (iout,*) "Processor",me," entered RECEIVE_AND_PASS_CONF"
606 do while (icount.gt.0)
607 call MPI_Recv(icount,1,MPI_INTEGER,Previous,570,MPI_COMM_WORLD,
609 call MPI_Send(icount,1,MPI_INTEGER,Next,570,MPI_COMM_WORLD,
612 write (iout,*) "Processor",me," icount",icount
614 if (icount.eq.0) return
615 call MPI_Recv(nss_all(1),icount,MPI_INTEGER,
616 & Previous,571,MPI_COMM_WORLD,STATUS,IERROR)
617 call MPI_Send(nss_all(1),icount,MPI_INTEGER,
618 & Next,571,MPI_COMM_WORLD,IERROR)
619 call MPI_Recv(ihpb_all(1,1),icount,MPI_INTEGER,
620 & Previous,572,MPI_COMM_WORLD,STATUS,IERROR)
621 call MPI_Send(ihpb_all(1,1),icount,MPI_INTEGER,
622 & Next,572,MPI_COMM_WORLD,IERROR)
623 call MPI_Recv(jhpb_all(1,1),icount,MPI_INTEGER,
624 & Previous,573,MPI_COMM_WORLD,STATUS,IERROR)
625 call MPI_Send(jhpb_all(1,1),icount,MPI_INTEGER,
626 & Next,573,MPI_COMM_WORLD,IERROR)
627 call MPI_Recv(rmstb(jj_old),icount,MPI_DOUBLE_PRECISION,
628 & Previous,577,MPI_COMM_WORLD,STATUS,IERROR)
629 call MPI_Send(rmstb(jj_old),icount,MPI_DOUBLE_PRECISION,
630 & Next,577,MPI_COMM_WORLD,IERROR)
631 call MPI_Recv(entfac(jj_old),icount,MPI_DOUBLE_PRECISION,
632 & Previous,579,MPI_COMM_WORLD,STATUS,IERROR)
633 call MPI_Send(entfac(jj_old),icount,MPI_DOUBLE_PRECISION,
634 & Next,579,MPI_COMM_WORLD,IERROR)
635 call MPI_Recv(allcart(1,1,1),3*icount*maxres2,
636 & MPI_REAL,Previous,580,MPI_COMM_WORLD,STATUS,IERROR)
637 call MPI_Send(allcart(1,1,1),3*icount*maxres2,
638 & MPI_REAL,Next,580,MPI_COMM_WORLD,IERROR)
640 call dawrite_ccoords(jj_old,jj,icbase)
643 write (iout,*) "Processor",me," received",icount," conformations"
645 write (iout,'(8f10.4)') (allcart(l,k,i),l=1,3,k=1,nres)
646 write (iout,'(8f10.4)')((allcart(l,k,i+nres),l=1,3,k=nnt,nct)
647 write (iout,'(e15.5,16i5)') entfac(i)
654 c------------------------------------------------------------------------------
655 subroutine daread_ccoords(istart_conf,iend_conf)
658 include "sizesclu.dat"
663 include "COMMON.CHAIN"
664 include "COMMON.CLUSTER"
665 include "COMMON.IOUNITS"
666 include "COMMON.INTERACT"
668 include "COMMON.SBRIDGE"
670 integer istart_conf,iend_conf
671 integer i,j,ij,ii,iii
673 character*16 form,acc
676 c Read conformations off a DA scratchfile.
679 write (iout,*) "DAREAD_COORDS"
680 write (iout,*) "istart_conf",istart_conf," iend_conf",iend_conf
681 inquire(unit=icbase,name=nam,recl=len,form=form,access=acc)
682 write (iout,*) "len=",len," form=",form," acc=",acc
683 write (iout,*) "nam=",nam
690 do ii=istart_conf,iend_conf
691 ij = ii - istart_conf + 1
694 write (iout,*) "Reading binary file, record",iii," ii",ii
702 read(icbase,rec=iii) ((allcart(j,i,ij),j=1,3),i=1,nres),
703 & ((allcart(j,i,ij),j=1,3),i=nnt+nres,nct+nres),
704 c & nss_all(ij),(ihpb_all(i,ij),jhpb_all(i,ij),i=1,nss),
705 & entfac(ii),rmstb(ii)
707 read(icbase,rec=iii) ((allcart(j,i,ij),j=1,3),i=1,nres),
708 & ((allcart(j,i,ij),j=1,3),i=nnt+nres,nct+nres),
709 & nss_all(ij),(ihpb_all(i,ij),jhpb_all(i,ij),i=1,nss),
710 & entfac(ii),rmstb(ii)
713 write (iout,*) ii,iii,ij,entfac(ii)
714 write (iout,'(8f10.5)') ((allcart(j,i,ij),j=1,3),i=1,nres)
715 write (iout,'(8f10.4)') ((allcart(j,i,ij),j=1,3),
716 & i=nnt+nres,nct+nres)
717 write (iout,'(2e15.5)') entfac(ij)
718 write (iout,'(16i5)') nss_all(ij),(ihpb_all(i,ij),
719 & jhpb_all(i,ij),i=1,nss)
729 c------------------------------------------------------------------------------
730 subroutine dawrite_ccoords(istart_conf,iend_conf,unit_out)
733 include "sizesclu.dat"
738 include "COMMON.CHAIN"
739 include "COMMON.INTERACT"
740 include "COMMON.IOUNITS"
742 include "COMMON.SBRIDGE"
744 include "COMMON.CLUSTER"
745 integer istart_conf,iend_conf
746 integer i,j,ii,ij,iii,unit_out
748 character*16 form,acc
751 c Write conformations to a DA scratchfile.
754 write (iout,*) "DAWRITE_COORDS"
755 write (iout,*) "istart_conf",istart_conf," iend_conf",iend_conf
756 write (iout,*) "lenrec",lenrec
757 inquire(unit=unit_out,name=nam,recl=len,form=form,access=acc)
758 write (iout,*) "len=",len," form=",form," acc=",acc
759 write (iout,*) "nam=",nam
766 do ii=istart_conf,iend_conf
768 ij = ii - istart_conf + 1
770 write (iout,*) "Writing binary file, record",iii," ii",ii
778 write(unit_out,rec=iii) ((allcart(j,i,ij),j=1,3),i=1,nres),
779 & ((allcart(j,i,ij),j=1,3),i=nnt+nres,nct+nres),
780 c & nss_all(ij),(ihpb_all(i,ij),jhpb_all(i,ij),i=1,nss_all(ij))
781 & entfac(ii),rmstb(ii)
783 write(unit_out,rec=iii) ((allcart(j,i,ij),j=1,3),i=1,nres),
784 & ((allcart(j,i,ij),j=1,3),i=nnt+nres,nct+nres),
785 & nss_all(ij),(ihpb_all(i,ij),jhpb_all(i,ij),i=1,nss_all(ij)),
786 & entfac(ii),rmstb(ii)
789 write (iout,'(8f10.5)') ((allcart(j,i,ij),j=1,3),i=1,nres)
790 write (iout,'(8f10.4)') ((allcart(j,i,ij),j=1,3),i=nnt+nres,
792 write (iout,'(2e15.5)') entfac(ij)
793 write (iout,'(16i5)') nss_all(ij),(ihpb(i,ij),jhpb(i,ij),i=1,