52 lines
1.3 KiB
FortranFixed
52 lines
1.3 KiB
FortranFixed
subroutine time_resolution(npoints,sampletime,
|
|
& avetimeresolution,avetimesampled)
|
|
implicit none
|
|
integer npoints
|
|
double precision sampletime(npoints),
|
|
& avetimeresolution,avetimesampled
|
|
|
|
! sampletime: hour fraction
|
|
! avetimeresolution: minutes
|
|
! avetimesampled: hour fraction
|
|
|
|
integer i,j,nactual
|
|
double precision term,copy(npoints),temp,sum
|
|
|
|
nactual=0
|
|
do i=1,npoints
|
|
if(sampletime(i).gt.-9000.0d0)then
|
|
nactual=nactual+1
|
|
copy(nactual)=sampletime(i)
|
|
endif
|
|
enddo
|
|
if(nactual.eq.0)then
|
|
avetimeresolution=-9999.0d0
|
|
avetimesampled=-9999.0d0
|
|
return
|
|
endif
|
|
do i=1,nactual
|
|
do j=i,nactual
|
|
if(copy(j).lt.copy(i))then
|
|
temp=copy(i)
|
|
copy(i)=copy(j)
|
|
copy(j)=temp
|
|
endif
|
|
enddo
|
|
enddo
|
|
|
|
sum=copy(1)
|
|
avetimeresolution=0.0d0
|
|
do i=2,nactual
|
|
sum=sum+copy(i)
|
|
avetimeresolution=avetimeresolution+copy(i)-copy(i-1)
|
|
enddo
|
|
avetimesampled=sum/dble(nactual)
|
|
if(nactual.eq.1)then
|
|
avetimeresolution=-9999.0d0
|
|
else
|
|
avetimeresolution=60.0d0*
|
|
& avetimeresolution/dble(nactual-1)
|
|
endif
|
|
return
|
|
end
|