120 likes | 331 Views
Single OBS test in wrf3dvar system. Yong-Run Guo National Center for Atmospheric Research (NCAR) Supported by AFWA and CWB project Presented at AFWA/NCAR/FSL WRF IOC Pre-Implementation Workshop 24 August 2004. Outline Of Talk. Brief description of the procedure
E N D
Single OBS test in wrf3dvar system Yong-Run Guo National Center for Atmospheric Research (NCAR) Supported by AFWA and CWB project Presented at AFWA/NCAR/FSL WRF IOC Pre-Implementation Workshop 24 August 2004
Outline Of Talk Brief description of the procedure Direct variables tests: u, t Indirect variables tests: ref
1. Brief description of the procedure • 8-byte binary analysis increment file in A-grid There is a subroutine DA_Setup_Structures/da_write_increments to write out six (u, v, w, p, t, q) 3D- and two (m, psfc) 2D-fields of the increments. The analysis date, domain dimension, vertical coordinate definition, geographic parameters, and 2D constatnt fields are also written out. • Utility program to read the analysis increment file There is a program utl/convert_to_mm5v3.f90 to read the increment file and write out to a analysis increment file in mm5v3 format for plotting with MM5V3/GRAPH.
Fortran statements for reading the analysis increments ! wrf3dvar increment data: CHARACTER(LEN=24) :: ANALYSIS_DATE ! Analysis time, "CCYY-MM-DD_HH:MM:SS.ssss"! INTEGER :: map_projection ! 1=LamConf/2=PolarSte/3=Mercator REAL (kind=8) :: ycntr INTEGER :: coarse_ix ! COARSE DOMAIN DIM IN I DIRECTION. INTEGER :: coarse_jy ! COARSE DOMAIN DIM IN Y DIRECTION. REAL (kind=8) :: coarse_ds ! Coarse domain gridlength (km) REAL (kind=8) :: start_x ! i posn. of (1,1) in coarse domain. REAL (kind=8) :: start_y ! j posn. of (1,1) in coarse domain. REAL (kind=8) :: phic ! COARSE DOMAIN CENTRAL LAT(DEGREE) REAL (kind=8) :: xlonc ! COARSE DOMAIN CENTRAL LON(DEGREE) REAL (kind=8) :: cone_factor ! Cone Factor REAL (kind=8) :: truelat1_3dv ! True latitude 1 (degrees) REAL (kind=8) :: truelat2_3dv ! True latitude 2 (degrees) REAL (kind=8) :: pole ! Pole latitude (degrees) REAL (kind=8) :: dsm ! Current domain gridlength (km) REAL (kind=8) :: psi1 ! ? REAL (kind=8) :: c2 ! earth_radius * COS(psi1) REAL (kind=8) :: ptop REAL (kind=8) :: ps0 REAL (kind=8) :: ts0 REAL (kind=8) :: tlp REAL (kind=8) :: tis0 integer :: is, ie, js, je, ks, ke real(kind=8), allocatable, dimension(:,:,:) :: ua, va, u, v, w, t, p, qv real(kind=8), allocatable, dimension(:,:) :: mu, terr, snow, lat, lon, & lanu, msft, cori, xland, & tgrn, psac, psfc real(kind=8), allocatable, dimension(:) :: sigma! ...........................................................................
! wrf3dvar increment file (8-byte binary): open(iunit2, file=trim(flnm), form='unformatted', & status='old', action='read') read (iunit2) ANALYSIS_DATE read (iunit2) is, ie, js, je, ks, ke read (iunit2) & map_projection, coarse_ix, coarse_jy, coarse_ds, start_x, start_y, & phic, xlonc, cone_factor, truelat1_3dv, truelat2_3dv, pole, dsm, &psi1, c2, ptop, ps0, ts0, tlp, tis0allocate(ua(ie+1,je+1,ke+1)) allocate(va(ie+1,je+1,ke+1)) allocate(u (ie+1,je+1,ke+1)) allocate(v (ie+1,je+1,ke+1)) allocate(w (ie+1,je+1,ke+1)) allocate(t (ie+1,je+1,ke+1)) allocate(p (ie+1,je+1,ke+1)) allocate(qv(ie+1,je+1,ke+1)) allocate(mu (ie+1,je+1)) allocate(psfc (ie+1,je+1)) allocate(psac (ie+1,je+1)) allocate(cori (ie+1,je+1)) allocate(terr (ie+1,je+1)) allocate(snow (ie+1,je+1)) allocate(tgrn (ie+1,je+1)) allocate(lat (ie+1,je+1)) allocate(lon (ie+1,je+1)) allocate(msft (ie+1,je+1)) allocate(lanu (ie+1,je+1)) allocate(xland(ie+1,je+1)) allocate(sigma(ke)) read (iunit2) sigma read (iunit2) ua, va, w, p, t, qv, mu, psfc read (iunit2) psac, tgrn, terr, snow, lat, lon, & lanu, msft, cori, xland
How to use the program convert_to_mm5v3.f90 cd wrf3dvar configure select 1 (single-threaded) cd da_3dvar/utl make convert_to_mm5v3 cp convert_to_mm5v3.csh to your working directory Then, edit the shell script: convert_to_mm5v3.csh to provide the MMINPUT tempolate file (any MMINPUT_DOMAIN1) and the wrf3dvar analysis increment file (ANALYSIS_INCREMENT). Execution of convert_to_mm5v3.csh, you will have a file: MMINPUT_ANALYSIS_INCREMENT In this file, psfc TGD, m TSEASFC, and the 3D fields are stored in the fields with the same names. Here q is the water vapor mixing ratio, and m is the dry air mass in a column of model atmosphere (psfc-ptop-pw)
2. Direct variable tests: u and t (cv_options=2) • Model configuration - Resolution: 10-km, - Grid points: 200x200x27. • Wind component u test Location (100,100,13), value = 1 m/s, error = 1 m/s at level h = 0.5415 • Temperature t test Location (100,100,13), value = 1o, error = 1o. at level h = 0.5415
Wind component u test U/V cross-section Cont. intvl. 0.05 m/s Psfc, cont. intvl. 0.25 Pa T/P cross-section Cont. intvl. 0.005o/0.5 Pa
Temperature t test V U Psfc Cont. intvl. 1.0 Pa T/P cross-section Cont. intvl 0.01o/1.0 Pa U/V cross section Cont. intvl 0.01 m/s
3. Indirect variables test: ref (cv_options= 2) OBS: Ref.= 1 unit, error = 1.0 unit T/P cross-section Cont. intvl. 0.01o/0.01 Pa Psfc Cont. intvl. 0.25 Pa U/V cross-section Cont. intvl. 0.001 m/s Q cross-section Cont. intvl. 0.05 g/kg V V
Tuning the variance scaling factors V Var_scaling4 = 0.75, Var_scaling3 = 4.0