Initial commit
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
program main
|
||||
implicit none
|
||||
! integer C_flag1,C_flag2,TA1_flag1,TA1_flag2,TA1_flag3,
|
||||
! & Ta1_flag4,P_flag1,P_flag2,P_flag3,P_flag4
|
||||
! double precision Year,month,DoY,Hour,seq_day_90,seq_time_90,
|
||||
! & obs_NEE,obs_FCO2,fco2_corr,ustar,nee,Resp_e,gee,
|
||||
! & obs_Ta_27m,Ta_27m_filled,Ta_2_5m,Ta_2_5m_filled,
|
||||
! & PAR_28m,PAR_28m_filled
|
||||
double precision daycurrent,gppmax,dataraw(33),datapick(33),
|
||||
& work(50000,33),gppsamp(50),std,fmean
|
||||
integer i,j,ntotal,nwindow,nstart,nend
|
||||
|
||||
nwindow=7
|
||||
daycurrent=301.0d0
|
||||
gppmax=-1.0d+10
|
||||
open(unit=1,file='HF_9204_filled')
|
||||
read(1,*)
|
||||
read(1,*)
|
||||
read(1,*)
|
||||
read(1,*)
|
||||
open(unit=2,file='HF_9204_gppmax')
|
||||
10 read(1,*,end=100)dataraw
|
||||
if(dabs(daycurrent-dataraw(3)).lt.0.01d0)then
|
||||
dataraw(13)=dabs(dataraw(13))
|
||||
if(dataraw(13).lt.150.0d0)then
|
||||
if(dataraw(13).gt.gppmax)then
|
||||
gppmax=dataraw(13)
|
||||
do i=1,33
|
||||
datapick(i)=dataraw(i)
|
||||
enddo
|
||||
endif
|
||||
endif
|
||||
else
|
||||
if(dabs(gppmax).lt.150.0d0)then
|
||||
write(2,310)datapick
|
||||
endif
|
||||
daycurrent=dataraw(3)
|
||||
dataraw(13)=dabs(dataraw(13))
|
||||
if(dataraw(13).lt.150.0d0)then
|
||||
gppmax=dataraw(13)
|
||||
do i=1,33
|
||||
datapick(i)=dataraw(i)
|
||||
enddo
|
||||
else
|
||||
gppmax=-1.0d+10
|
||||
endif
|
||||
endif
|
||||
goto 10
|
||||
100 write(2,310)datapick
|
||||
close(1)
|
||||
close(2)
|
||||
open(unit=1,file='HF_9204_gppmax')
|
||||
open(unit=2,file='HF_9204_gppmax_clean')
|
||||
i=1
|
||||
110 read(1,*,end=200)(work(i,j),j=1,33)
|
||||
i=i+1
|
||||
goto 110
|
||||
200 close(1)
|
||||
ntotal=i-1
|
||||
do i=1,ntotal
|
||||
nstart=i-nwindow/2
|
||||
if(nstart.lt.1)then
|
||||
nstart=1
|
||||
endif
|
||||
nend=i+nwindow/2
|
||||
if(nend.gt.ntotal)then
|
||||
nend=ntotal
|
||||
endif
|
||||
if((nend-nstart+1).lt.nwindow)then
|
||||
if(nstart.eq.1)then
|
||||
nend=nend+nwindow-(nend-nstart+1)
|
||||
else
|
||||
nstart=nstart-(nwindow-(nend-nstart+1))
|
||||
endif
|
||||
endif
|
||||
fmean=0.0d0
|
||||
do j=nstart,nend
|
||||
fmean=fmean+work(j,13)
|
||||
enddo
|
||||
fmean=fmean/dble(nwindow)
|
||||
std=0.0d0
|
||||
do j=nstart,nend
|
||||
std=std+(work(j,13)-fmean)*(work(j,13)-fmean)
|
||||
enddo
|
||||
std=dsqrt(std/dble(nwindow-1))
|
||||
if((fmean-work(i,13)).lt.std.or.work(i,13).lt.1.0d-8)then
|
||||
write(2,310)(work(i,j),j=1,33)
|
||||
endif
|
||||
enddo
|
||||
310 format(33f15.7)
|
||||
end
|
||||
Reference in New Issue
Block a user