program save_seed ! ********************************************************************** ! * . . . ! * PROGRAM: Get seed for the random number generator (RNG) ! * ! * PRGMMR: D. ZUPANSKI ORG: CIRA/CSU DATE: 2004-01-06 ! * ! * ABSTRACT: THIS PROGRAM GETS SEED TO BE USED IN RNG RANDOM_NUMBER ! * ! * OUTPUT FILES: ! * put_seed_obs ! * put_seed_fcst ! * ! * PROGRAM LOG: ! * ! * 01/06/2004 ..... D. ZUPANSKI ! * ! ********************************************************************** ! ! INSTRUCTIONS: ! ! Use 'pgf90 -o save_seed.x save_seed.f' to create executable ! ! Run 'save_seed.x' to obtain output seed files 'put_seed_obs' and 'put_seed_fcst' ! and Copy these files to '$HOME/$username/ensda/namelists' directory ! ! ********************************************************************** integer,parameter :: imax=100 real, dimension(:), allocatable :: random_x integer, dimension(:), allocatable :: seed !----- write(*,*) "START save_seed" allocate(random_x(1:imax)) !------------------------------------------ call random_seed(size=k) write(*,*) " k=",k allocate(seed(1:2*k)) call random_seed(get=seed(1:k)) write(*,*)" old seed=",seed do i=1,k seed(i+k)=seed(i) end do write(*,*)" new seed=",seed !-------- obs seed ------- CLOSE(331) OPEN(331,file='put_seed_obs',status='unknown',form='formatted') write(331,*) k write(331,*) seed(1:k) close(331,status='keep') call random_seed(put=seed(1:k)) call random_number(random_x(1:imax)) write(*,*)" ------------------ " write(*,*)" obs random numbers " write(*,*)" ------------------ " write(*,*) "random_x=",random_x !-------- fcst seed ------- CLOSE(332) OPEN(332,file='put_seed_fcst',status='unknown',form='formatted') write(332,*) k write(332,*) seed(1+5:k+5) close(332,status='keep') !------------------------------------ call random_seed(put=seed(1+5:k+5)) call random_number(random_x(1:imax)) write(*,*)" ------------------ " write(*,*)" fcst random numbers " write(*,*)" ------------------ " write(*,*) "random_x=",random_x write(*,*) "END save_seed" end program save_seed