Files
piscal/dataassim/math/othersupmath/meancyclepattern.f
T
2016-02-03 18:52:05 +00:00

44 lines
1.2 KiB
FortranFixed

subroutine meancyclepattern(nsamp,xvar,yvar,ncyc,xcyc,ycyc,ystd)
implicit none
!Calculate mean cycle pattern. xvar must be repeated cycles.
integer nsamp,ncyc
double precision xvar(nsamp),yvar(nsamp),xcyc(nsamp),
&ycyc(nsamp),ystd(nsamp)
integer i,j,k,m,n,iorder(nsamp)
double precision yvector(nsamp),fn9999,tiny
parameter(fn9999=-9999.0d0,tiny=1.0d-7)
!
ncyc=1
xcyc(ncyc)=xvar(1)
do i=2,nsamp
k=0
do j=1,ncyc
if(dabs(xcyc(j)-xvar(i)).lt.tiny)k=1
enddo
if(k.eq.0)then
ncyc=ncyc+1
xcyc(ncyc)=xvar(i)
endif
enddo
call sort_shell(ncyc,xcyc,iorder)
do j=1,ncyc
k=0
do i=1,nsamp
if(dabs(xvar(i)-xcyc(j)).lt.tiny)then
if(dabs(yvar(i)-fn9999).gt.tiny)then
k=k+1
yvector(k)=yvar(i)
endif
endif
enddo
if(k.gt.2)then
call stdmean(k,yvector,ystd(j),ycyc(j))
else
ycyc(j)=fn9999
ystd(j)=fn9999
endif
enddo
return
end
!####################################################################