subroutine datin include 'TThead.f' c c subroutine to read and store the data c data are sorted by animal ID c character*10 tnam(ntr) real*8 trt(ntr),hilo(ntr,4),dx,x,z,zm,w integer iy(ntr) open(11,file='TYP08.d',form='formatted',status='old') c tnam(1)='Stature ' tnam(2)='ChestW ' tnam(3)='BodyDep ' tnam(4)='Angular ' tnam(5)='RumpAngl' tnam(6)='RumpW ' tnam(7)='RearLegSet' tnam(8)='FootAngl' tnam(9)='ForeAttach' tnam(10)='RearUHt' tnam(11)='RearUW ' tnam(12)='UdderSup' tnam(13)='UdderDep' tnam(14)='FrontTPl' tnam(15)='FrontTLn' tnam(16)='OCS ' tnam(17)='LoinStr' tnam(18)='UdderTex' tnam(19)='RearTPl' tnam(20)='HeelDep' tnam(21)='BoneQual' tnam(22)='RearLegVu' tnam(23)='HeightFrnt' tnam(24)='Locomotn' tnam(25)='BCS ' hilo=0.d0 do 4 j=1,ntr hilo(j,3)=9999999.0 hilo(j,4)=-9999999.0 4 continue mrec = 0 c nerr = 0 an=0 hys=0 kymj=0 bage=0 kcod=0 obs = 0.d0 11 read(11,1101,end=20,err=20)iam,jdate,iagp,nss,ihys,icod,iy 1101 format(13x,i10,13x,i9,14x,i5,5x,2i8,3x,i3,25i3) c if(ihys.lt.1.or.ihys.gt.nhys)go to 88 if(iagp.lt.1.or.iagp.gt.nage)go to 88 if(icod.lt.1.or.icod.gt.38)go to 88 if(nss.lt.1.or.nss.gt.nymj)go to 88 if(iam.lt.1.or.iam.gt.nam)go to 88 mrec = mrec + 1 if(mrec.gt.nrec)go to 19 an(mrec) = iam kymj(mrec) = nss hys(mrec) = ihys bage(mrec) = iagp kcod(mrec) = icod c do 27 m=1,ntr if(iy(m).gt.0)then x=dfloat(iy(m)) hilo(m,1)=hilo(m,1)+1.d0 z=hilo(m,1) zm=z-1.d0 dx = x - hilo(m,2) hilo(m,2)=hilo(m,2)+dx/z obs(mrec,m) = x if(x.lt.hilo(m,3))hilo(m,3)=x if(x.gt.hilo(m,4))hilo(m,4)=x endif 27 continue c go to 11 19 print *,'Too many records' go to 20 88 print *,'Err rec',iam print *,'ihys ',ihys print *,'iagp ',iagp print *,'icod ',icod print *,'nss ',nss go to 11 20 close(11) print *,' data in, mrec,nrec= ',mrec,nrec c c sort the arrays to make pointers c kflag = 1 ier = 0 call IPSORT(an,mrec,panm,kflag,ier) c kflag = 1 call IPSORT(bage,mrec,page,kflag,ier) c kflag = 1 call IPSORT(hys,mrec,phys,kflag,ier) c kflag = 1 call IPSORT(kymj,mrec,pymj,kflag,ier) c c means of observations, ranges c 8999 do 51 j=1,ntr z=hilo(j,1) if(z.gt.0.d0)then print 2024,tnam(j),(hilo(j,k),k=1,4) 2024 format(1x,a8,1x,f10.0,3f12.4) endif 51 continue c sanm=0.d0 shys=0.d0 sage=0.d0 sape = 0.d0 symj = 0.d0 c return end