double precision function rmsnat(ib,jcon,iref,iprot) implicit none include 'DIMENSIONS' include 'DIMENSIONS.ZSCOPT' include 'COMMON.IOUNITS' include 'COMMON.COMPAR' include 'COMMON.CHAIN' include 'COMMON.INTERACT' include 'COMMON.VAR' double precision creff(3,maxres2),cc(3,maxres2) double precision przes(3),obrot(3,3) logical non_conv integer ishif,i,ii,j,jcon,ib,iref,iprot double precision rms if (caonly(iprot)) then call fitsq(rms,c(1,nstart_sup(iprot)),cref(1,nstart_sup(iprot), & iref,ib,iprot),nsup(iprot),przes,obrot,non_conv) else if (sconly(iprot)) then call fitsq(rms,c(1,nstart_sup(iprot)+nres), & cref(1,nstart_sup(iprot)+nres,iref,ib, & iprot),nsup(iprot),przes,obrot,non_conv) else ii=0 do i=nstart_sup(iprot),nend_sup(iprot) ii=ii+1 do j=1,3 cc(j,ii)=c(j,i) creff(j,ii)=cref(j,i,iref,ib,iprot) enddo enddo do i=nstart_sup(iprot),nend_sup(iprot) if (itype(i).ne.10 .and. itype(i).ne.21) then ii=ii+1 do j=1,3 cc(j,ii)=c(j,i+nres) creff(j,ii)=cref(j,i+nres,iref,ib,iprot) enddo endif enddo call fitsq(rms,cc(1,1),creff(1,1),ii,przes,obrot,non_conv) endif if (non_conv) then print *,'Error: FITSQ non-convergent, jcon',jcon rmsnat=1.0d2 else if (rms.lt.-1.0d-6) then print *,'Error: rms^2 = ',rms,jcon rmsnat = 1.0d2 else if (rms.ge.1.0d-6 .and. rms.lt.0) then rmsnat=0.0d0 else rmsnat = dsqrt(rms) endif return end