subroutine lastevents_q(wtq,mqdata,lbig3ges,mype) !-------- final processing of data before analysis iterations. !-------- !-------- 1. read all obs information into memory !-------- 2. get scriptK, the interpolation operator real(4) wtq(4,max(1,mqdata)) real(4) yoq(max(1,mqdata)),xbarbq(max(1,mqdata)),bighq(lbig3ges,max(1,mqdata)) real(4) eyoq00(max(1,mqdata)),qsatges(max(1,mqdata)) integer(4) ibighq(lbig3ges,max(1,mqdata)) character(8) qstaid(max(1,mqdata)) integer(8),allocatable::iqlabel(:) real(4),allocatable::qlon(:),qlat(:),qpres(:),qletaobs(:) real(4),allocatable::qlone(:),qlate(:),qelev(:) real(4),allocatable::qtobs(:) real(4),allocatable::qtime(:),qtype(:),qmaxerr(:),qqm(:) character(10)eventfile if(mqdata.le.0) return write(eventfile,'("events",i4)')mype+9000 ievout=4 open(ievout,file=eventfile,form='formatted',position='append') allocate(qlon(max(1,mqdata))) ; allocate(qlat(max(1,mqdata))) allocate(qlone(max(1,mqdata))) ; allocate(qlate(max(1,mqdata))) allocate(qpres(max(1,mqdata))) ; allocate(qtobs(max(1,mqdata))) allocate(qelev(max(1,mqdata))) allocate(qtime(max(1,mqdata))) allocate(qtype(max(1,mqdata))) allocate(qqm(max(1,mqdata))) allocate(qmaxerr(max(1,mqdata))) allocate(iqlabel(max(1,mqdata))) allocate(qletaobs(max(1,mqdata))) call rdqs(eyoq00,qlone,qlate,qlon,qlat,qpres,yoq,xbarbq,qsatges, & qletaobs,bighq,ibighq, & qstaid,qtime,qelev,qtobs,qqm,qtype,qmaxerr,iqlabel,mqdata,lbig3ges) wtlim=.1 do i=1,mqdata qanl=wtq(4,i)*eyoq00(i)+xbarbq(i) icode=0 if(abs(wtq(1,i)).lt.wtlim) icode=1 write(ievout,'("QQ.",i3.3,11e13.5,2x,a8)')icode, & yoq(i),xbarbq(i),qanl,qlone(i),qlate(i),exp(qpres(i)),qelev(i), & qtime(i),qqm(i),eyoq00(i),qtype(i),qstaid(i) end do close(ievout) print *,' in lastevents_q, mype,mqdata=',mype,mqdata deallocate(qlone) ; deallocate(qlate) deallocate(qelev) ; deallocate(qtobs) deallocate(qtime) ; deallocate(qqm) deallocate(qtype) ; deallocate(qmaxerr) deallocate(qletaobs) deallocate(qpres) deallocate(qlon) ; deallocate(qlat) deallocate(iqlabel) return end subroutine lastevents_q