!=============================================================== !=============================================================== subroutine read_rawstats(cpath,filename,nobsout, & biasout,abseout,rmseout,nflds,nmodels,lgood) implicit none ! Declare passed variables character(80),intent(in)::cpath,filename integer(4),intent(in)::nflds integer(4),intent(in)::nmodels integer(4),intent(out)::nobsout(nflds,nmodels) real(4),intent(out)::biasout(nflds,nmodels) real(4),intent(out)::abseout(nflds,nmodels) real(4),intent(out)::rmseout(nflds,nmodels) logical,intent(out)::lgood ! Declare local parameters ! Declare local variables character(60) cmodel integer(4) nflds0,nobsmax0 integer(4),allocatable,dimension(:):: nobs real(4),allocatable,dimension(:):: bias,rmse,abse integer(4) imodel,n,nn logical lres1,lres2,lres3 !*********************************************************** !*********************************************************** allocate(nobs(nflds)) allocate(bias(nflds),rmse(nflds),abse(nflds)) print*,'in read_rawstats: nmodels=',nmodels lgood=.true. open (18,file=trim(cpath)//'/'//trim(filename),form='unformatted') do 100 imodel=1,nmodels read(18) cmodel read(18) nflds0,nobsmax0 print*,'in read_rawstats: imodel=',imodel print*,'in read_rawstats: cmodel=',trim(cmodel) print*,'in read_rawstats: nflds0,nobsmax0=',nflds0,nobsmax0 read(18) nobs,bias,abse,rmse lres1=any(bias(1:9) > 9998.) !any(bias(1:nflds) > 9998.) lres2=any(abse(1:9) > 9998.) !any(abse(1:nflds) > 9998.) lres3=any(rmse(1:9) > 9998.) !any(rmse(1:nflds) > 9998.) if (lres1 .or. lres2 .or. lres3) then print*,'in read_rawstats : start block' print*,'this run may have used an empty prepbufr file' print*,'set bias,abse,rmse to zero' bias=0. ; abse=0.; rmse=0. lgood=.false. print*,'in read_rawstats : end block' endif deallocate(nobs) deallocate(bias,rmse,abse) return end !=============================================================== !===============================================================