[Dart-dev] DART/branches Revision: 11135

dart at ucar.edu dart at ucar.edu
Wed Feb 22 13:18:24 MST 2017


mizzi at ucar.edu
2017-02-22 13:18:24 -0700 (Wed, 22 Feb 2017)
34
Update WRF-Chem/DART repository.




Deleted: DART/branches/mizzi/observations/IASI_CO/APM_README
===================================================================
--- DART/branches/mizzi/observations/IASI_CO/APM_README	2017-02-22 20:17:24 UTC (rev 11134)
+++ DART/branches/mizzi/observations/IASI_CO/APM_README	2017-02-22 20:18:24 UTC (rev 11135)
@@ -1 +0,0 @@
-_DnN and Mig_DA are the same.  convert to Mig_DA.f90
\ No newline at end of file

Modified: DART/branches/mizzi/observations/IASI_CO/iasi_ascii_to_obs.f90
===================================================================
--- DART/branches/mizzi/observations/IASI_CO/iasi_ascii_to_obs.f90	2017-02-22 20:17:24 UTC (rev 11134)
+++ DART/branches/mizzi/observations/IASI_CO/iasi_ascii_to_obs.f90	2017-02-22 20:18:24 UTC (rev 11135)
@@ -170,6 +170,7 @@
 character*4             :: chr_year
 character*129           :: filedir, filename, copy_meta_data, filen
 character*129           :: transform_typ
+character*129           :: IASI_CO_retrieval_type
 !
 ! QOR/CPSR variables
 integer                                        :: info,nlvls_trc,qstatus
@@ -183,8 +184,15 @@
 !
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !
-namelist /create_iasi_obs_nml/filedir,filename,year,month,day,hour,bin_beg, bin_end
+! IASI_CO_retrieval_type:
+!     RAWR - retrievals in VMR (ppb) units
+!     RETR - retrievals in log10(VMR ([ ])) units
+!     QOR  - quasi-optimal retrievals
+!     CPSR - compact phase space retrievals
 !
+namelist /create_iasi_obs_nml/filedir,filename,year,month,day,hour,bin_beg, bin_end, &
+         IASI_CO_retrieval_type
+!
 ! Set constants
 ln_10=log(10.)
 pi=4.*atan(1.)
@@ -562,8 +570,8 @@
         xg_lat(i,j)=xg_lat(i,j)/xg_twt(i,j)
 !
 ! Skip for SINGLE_CLUSTER   
-        if((xg_lon(i,j).lt.-97. .or. xg_lon(i,j).gt.-93.) .or. &
-           (xg_lat(i,j).lt.38.  .or. xg_lat(i,j).gt.42.)) cycle
+!        if((xg_lon(i,j).lt.-97. .or. xg_lon(i,j).gt.-93.) .or. &
+!           (xg_lat(i,j).lt.38.  .or. xg_lat(i,j).gt.42.)) cycle
 !
         do k=1,ias_dim
            if(xg_norm(i,j,k).eq.0) cycle
@@ -627,157 +635,310 @@
 !             print *, 'cov ',k,(xg_raw_cov(i,j,k,l),l=kstr,ias_dim)
 !           enddo
 !
-! Calculate SVD of avg_k (Z=U_xxx * SV_xxx * VT_xxx)
-        allocate(Z(nlvls,nlvls),SV_cov(nlvls),SV(nlvls,nlvls))
-        allocate(U_cov(nlvls,nlvls),UT_cov(nlvls,nlvls),V_cov(nlvls,nlvls),VT_cov(nlvls,nlvls))
-        allocate(rs_avg_k(nlvls,nlvls),rs_cov(nlvls,nlvls),rs_x_r(nlvls),rs_x_p(nlvls))       
-        allocate(rr_avg_k(nlvls,nlvls),rr_cov(nlvls,nlvls),rr_x_r(nlvls),rr_x_p(nlvls))       
-        allocate(ZL(nlvls,nlvls),ZR(nlvls,nlvls),ZV(nlvls))
-        Z(1:nlvls,1:nlvls)=dble(xg_avg_k(i,j,kstr:ias_dim,kstr:ias_dim))
-        call dgesvd('A','A',nlvls,nlvls,Z,nlvls,SV_cov,U_cov,nlvls,VT_cov,nlvls,wrk,lwrk,info)
-        nlvls_trc=0
-        do k=1,nlvls
-           if(SV_cov(k).ge.eps_tol) then
-              nlvls_trc=k
-           else
-              SV_cov(k)=0
-              U_cov(:,k)=0. 
-              VT_cov(k,:)=0.
-           endif 
-        enddo
-!           print *,'nlvls_trc ',nlvls_trc
-!           print *, 'SV ',SV_cov(:)
-        call mat_transpose(U_cov,UT_cov,nlvls,nlvls)
-        call mat_transpose(VT_cov,V_cov,nlvls,nlvls)
-        call vec_to_mat(SV_cov,SV,nlvls)
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !
-! Rotate terms in the forward operator
-        ZL(1:nlvls,1:nlvls)=dble(xg_avg_k(i,j,kstr:ias_dim,kstr:ias_dim))
-        call mat_prd(UT_cov(1:nlvls,1:nlvls),ZL(1:nlvls,1:nlvls), &
-        rr_avg_k(1:nlvls,1:nlvls),nlvls,nlvls,nlvls,nlvls)
-!           do k=1,nlvls
-!             print *, 'UT ',k,(UT_cov(k,l),l=1,nlvls)
-!           enddo
-!           do k=kstr,ias_dim
-!             print *, 'xg_avg_k ',k,(xg_avg_k(i,j,k,l),l=kstr,ias_dim)
-!           enddo
-!           do k=1,nlvls
-!             print *, 'rr_avg_k ',k,(rr_avg_k(k,l),l=1,nlvls)
-!           enddo
-        ZL(1:nlvls,1:nlvls)=dble(xg_raw_cov(i,j,kstr:ias_dim,kstr:ias_dim))
-        call mat_tri_prd(UT_cov(1:nlvls,1:nlvls),ZL(1:nlvls,1:nlvls),U_cov(1:nlvls,1:nlvls), &
-        rr_cov(1:nlvls,1:nlvls),nlvls,nlvls,nlvls,nlvls,nlvls,nlvls)
-!           do k=1,nlvls
-!             print *, 'UT ',k,(UT_cov(k,l),l=1,nlvls)
-!           enddo
-!           do k=kstr,mop_dim
-!             print *, 'xg_raw_cov ',k,(xg_raw_cov(i,j,k,l),l=kstr,ias_dim)
-!           enddo
-!           do k=1,nlvls
-!             print *, 'rr_cov ',k,(rr_cov(k,l),l=1,nlvls)


More information about the Dart-dev mailing list