program x1d_rms !********************************************************************** ! * . . . ! * PROGRAM: x1d_rms ! * PRGMMR: M. ZUPANSKI ORG: CIRA/CSU DATE: 2003-09-09 ! * ! * ABSTRACT: Prepare formated x1d file, suitable for plotting ! * ! * PROGRAM LOG: ! * ! * 09/09/2003 ..... M. ZUPANSKI: Original 'transform.F' ! * 10/17/2003 ..... M. ZUPANSKI: Innovation normalization ! * 10/22/2003 ..... M. ZUPANSKI: Innovation histogram ! * 10/22/2003 ..... M. ZUPANSKI: plotting ! * 10/23/2003 ..... M. ZUPANSKI: Root-Mean-Squared error calculation ! * ! ********************************************************************** !----- integer,parameter::in_anls=21 ! input analysis file # integer,parameter::in_true=21 ! input true (fcst) file # integer,parameter::out_rms=51 ! formatted RMS file # !----- integer :: N_model real :: rms real,dimension(:),allocatable::x1d_anls,x1d_true !----- !==============start calculation=================== !-- read in true forecast file rewind in_true read(in_true) N_model allocate(x1d_true(1:N_model)) read(in_true) x1d_true !-- read in analysis file rewind in_anls read(in_anls) NN allocate(x1d_anls(1:N_model)) read(in_anls) x1d_anls write(*,*) "READ X: N_model=",N_model !-- calculate rms error rms=0.0 do i=1,N_model rms=rms+(x_anls(i)-x_true(i))**2 end do rms=sqrt(rms/float(N_model)) !-- write formatted file rewind out_rms write(out_rms,100) rms 100 format(E20.10) stop end