100 likes | 214 Views
Initial development of regional EnKF data assimilation for Rapid Refresh. GSI version: svn info Path: . URL: http://gsdforge.fsl.noaa.gov/svn/gsi/trunk/gsi_code Repository Root: http://gsdforge.fsl.noaa.gov/svn/gsi Repository UUID: 4cb9ce34-484d-0410-8406-e1a1132c1d7f Revision: 43
E N D
Initial development of regional EnKF data assimilation for Rapid Refresh
GSI version: svn info Path: . URL: http://gsdforge.fsl.noaa.gov/svn/gsi/trunk/gsi_code Repository Root: http://gsdforge.fsl.noaa.gov/svn/gsi Repository UUID: 4cb9ce34-484d-0410-8406-e1a1132c1d7f Revision: 43 Node Kind: directory Schedule: normal Last Changed Author: kevin.brundage Last Changed Rev: 41 Last Changed Date: 2009-08-26 21:09:37 +0000 (Wed, 26 Aug 2009) WRF version: 3.2 Right now, tests of the ENKF are carried out in two machines: tacc ranger (PGI compiler) and wjet (Intel compiler)
GSI updated variables: MU, T, QVAPOR, U, V, SEAICE, SST If (cloud_analysis) QCLOUD, QRAIN, QSNOW, QICE, QGRAUP Current control variables of regional ENKF : nvar =1 : U nvar =2 : V nvar =3 : potential temperature nvar =4 : surface pressure nvar =5 : water vapor specific humidity In the furture, more variables like W and cloud/hydrometeor fields will be added to both GSI and ENKF system
Subroutine getgridinfo_reg Add pressure calculation at each model level: pt_ll=0.01*ptop q_integral=1.0 do k = 1, nlevsin deltasigma=eta1(k)-eta1(k+1) q_integral(:) = q_integral(:)+deltasigma*qg(:,k,1) Enddo psfc_this_dry=0.01*psfc psfc(:)=(psfc_this_dry(:)-pt_ll)*q_integral(:)+pt_ll do k = 1, nlevsin psig(:,k)=eta1(k)*(psfc(:)-pt_ll) + pt_ll pslg(:,k)=aeta1(k)*(psfc(:)-pt_ll)+pt_ll enddo pslg = pslg*100.0 Height of each control variable: do nvar=1,nvars if ( nvar .eq. 4 ) then nn = nn + 1 logp(:,nn) = log(pressimn(:,1)) logsigma(:,nn) = -log(pressimn(:,1)/spressmn(:)) else do k=1,nlevs nn = nn + 1. logp(:,nn) = log(presslmn(:,k)) logsigma(:,nn) = -log(presslmn(:,k)/spressmn(:)) end do endif end do
Subroutine readgriddata_reg Calculated the virtural temperature from the potential temperature: q(:,k) = qg(:,k,1)/(1.+qg(:,k,1)) ! Q = water vapor specific humidity ! q_bk = water vapor mixing ratio rd_over_cp=287.04/1004.67 ! calculated the temperature from the potention temperature ! get the virtural temperature do k = 1, nlevsin temp(:,k) = tempg(:,k)*(pslg(:,k)/1000)**rd_over_cp *(1+0.61*q(:,k)) enddo
upwrfnc.exe • Read in the wrfinput files and ENKF analysis fields • Transfer the U, V from the ENKF analyzed grid to C grid • Update the U, V, T, Mu, Qvapor in the wrfinput
Knowingissues: 1. Satellite data diagnose files is not consistence: IPCHAN_RESERVE = 8 (global) IPCHAN_RESERVE = 7 (regional) diagbufchan(1,i)=tb_obs(i) ! observed brightness temperature (K) diagbufchan(2,i)=tbc(i) ! observed - simulated Tb with bias corrrection (K) diagbufchan(3,i)=tbcnob(i) ! observed - simulated Tb with no bias correction (K) errinv = sqrt(varinv(i)) diagbufchan(4,i)=errinv ! inverse observation error useflag=one if (iuse_rad(ich(i))/=1) useflag=-one diagbufchan(5,i)= id_qc(i)*useflag! quality control mark or event indicator diagbufchan(6,i)=emissivity(i) ! surface emissivity diagbufchan(7,i)=tlapchn(i) ! stability index do j=1,npred+1 diagbufchan(7+j,i)=predterms(j,i) ! Tb bias correction terms (K) end do real(fp_diag) :: tbobs ! Tb (obs) (K) real(fp_diag) :: omgbc ! Tb_(obs) - Tb_(simulated w/ bc) (K) real(fp_diag) :: omgnbc ! Tb_(obs) - Tb_(simulated_w/o bc) (K) real(fp_diag) :: errinv ! inverse error (K**(-1)) real(fp_diag) :: qcmark ! quality control mark real(fp_diag) :: emiss ! surface emissivity real(fp_diag) :: tlap ! temperature lapse rate real(fp_diag) :: pres ! pressure (mb) at max in weighting fn. real(fp_diag) :: bifix ! fixed angle dependent bias real(fp_diag) :: bilap ! lapse rate bias correction term real(fp_diag) :: bilap2 ! square lapse rate bias correction term real(fp_diag) :: bicons ! constant bias correction term real(fp_diag) :: biang ! scan angle bias correction term real(fp_diag) :: biclw ! CLW bias correction term
Knowing issues: 2. Test in the wjet machine reads in the conventional diagnose files properly, but there is still something wrong in the tacc ranger computer. region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): WJET NH all ps 3971 -0.129E-01 0.865E+00 0.229E+01 0.212E+01 0.888E+00 TR all ps 208 -0.153E+00 0.144E+01 0.117E+01 0.696E+00 0.935E+00 NH all t 14478 -0.194E+00 0.131E+01 0.391E+01 0.129E+01 0.369E+01 TR all t 671 -0.398E-01 0.970E+00 0.256E+01 0.516E+00 0.251E+01 NH all uv 46444 -0.150E+00 0.256E+01 0.606E+01 0.333E+01 0.506E+01 TR all uv 5148 0.349E+00 0.234E+01 0.683E+01 0.274E+01 0.626E+01 NH all q 5969 -0.890E-02 0.130E+00 0.246E+00 0.136E+00 0.205E+00 TR all q 323 -0.225E-01 0.114E+00 0.213E+00 0.655E-01 0.203E+00 region, obtype, nobs, bias, innov stdev, sqrt(S+R), sqrt(S), sqrt(R): Ranger NH all ps 3971 NaN NaN NaN NaN 0.888E+00 TR all ps 208 NaN NaN NaN NaN 0.935E+00 NH all t 14478 NaN NaN NaN NaN 0.369E+01 TR all t 671 NaN NaN NaN NaN 0.251E+01 NH all uv 46444 NaN NaN NaN NaN 0.506E+01 TR all uv 5148 NaN NaN NaN NaN 0.626E+01 NH all q 5969 NaN NaN NaN NaN 0.205E+00 TR all q 323 NaN NaN NaN NaN 0.203E+00