PROGRAM GETOBSINCR ! ********************************************************************** ! * . . . ! * PROGRAM: GETOBSINCR ! * PRGMMR: M. ZUPANSKI ORG: CIRA/CSU DATE: 2002-02-04 ! * ! * ABSTRACT: ADD OBSERVATION INCREMENTS ! * ! * PROGRAM LOG: ! * ! * 02/04/2002 ..... M. ZUPANSKI: ! * ! ********************************************************************** ! RESX ................... current observation increment ! RESY ................... previous observation increment !----------------------------------------------------------------------- ! NX ................. number of current observation increments ! NY ................. number of previous observation increments !----------------------------------------------------------------------- !---- obs characteristics ------------------------------ INTEGER NX,NY,NZ REAL,DIMENSION(:),ALLOCATABLE :: RESX,RESY,RESZ !====================================================================== !--- READ current obs increment R**(-1/2)*(y-Hx_i) ------------ KCUR=10 REWIND KCUR READ(KCUR) NX allocate(RESX(1:NX)) READ(KCUR) RESX write(*,*) "CURRENT: N=",NX," RES min,max=",minval(RESX),maxval(RESX) !--- READ previous (accumulated) obs increment R**(-1/2)*(y-Hx) ------------ KRES=20 REWIND KRES READ(KRES) NY allocate(RESY(1:NY)) READ(KRES) RESY write(*,*) "PREVIOUS: N=",NY," RES min,max=",minval(RESY),maxval(RESY) !====================================================================== !--- WRITE total obs increment (add more observation) ------------ NZ=NX+NY allocate(RESZ(1:NZ)) do N=1,NY RESZ(N)=RESY(N) end do do N=1,NX RESZ(NY+N)=RESX(N) end do deallocate(RESX) ; deallocate(RESY) KOUT=50 REWIND KOUT WRITE(KOUT) NZ WRITE(KOUT) RESZ write(*,*) "TOTAL: N=",NZ," RES min,max=",minval(RESZ),maxval(RESZ) write(*,*) "END WRITING TOTAL OBS INCREMENT" deallocate(RESZ) !-------------------------------- STOP END