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

43 lines
1.0 KiB
FortranFixed

!####################################################################
subroutine stemaxmeanmin(nsamp0,xvar0,ste,fmean,xmin,xmax)
implicit none
integer nsamp,j,nsamp0
double precision xvar(nsamp0),ste,fmean,xmin,xmax,
& xvar0(nsamp0),gap
parameter(gap=-9999.0d0)
nsamp=0
do j=1,nsamp0
if(dabs(xvar0(j)-gap).gt.1.0d-5)then
nsamp=nsamp+1
xvar(nsamp)=xvar0(j)
endif
enddo
if(nsamp.lt.1)then
ste=gap
fmean=gap
xmin=gap
xmax=gap
return
endif
fmean=0.0d0
xmin=xvar(1)
xmax=xvar(1)
do j=1,nsamp
fmean=fmean+xvar(j)
if(xvar(j).gt.xmax)then
xmax=xvar(j)
endif
if(xvar(j).lt.xmin)then
xmin=xvar(j)
endif
enddo
fmean=fmean/dble(nsamp)
ste=0.0d0
do j=1,nsamp
ste=ste+(xvar(j)-fmean)*(xvar(j)-fmean)
enddo
if(nsamp.gt.1)ste=dsqrt(ste/dble((nsamp-1)*nsamp))
end