Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_define_structures / da_allocate_observations_rain.inc
blobe090a7f40c22d1c1ae537184da9e7853c9c3d32f
1 subroutine da_allocate_observations_rain (iv)
3    !---------------------------------------------------------------------------
4    ! Purpose: Allocate components of rain observation structure.
5    !---------------------------------------------------------------------------
7    implicit none
9    type (iv_type), intent(inout) :: iv     ! Observation structure.
11    integer :: i
13    if (trace_use) call da_trace_entry("da_allocate_observations_rain")
15    if (iv%info(rain)%nlocal    > 0) allocate(iv%rain   (1:iv%info(rain)%nlocal))
16    if (iv%info(rain)%nlocal > 0) then
17       allocate (iv%info(rain)%name(iv%info(rain)%nlocal))     
18       allocate (iv%info(rain)%platform(iv%info(rain)%nlocal)) 
19       allocate (iv%info(rain)%id(iv%info(rain)%nlocal))       
20       allocate (iv%info(rain)%date_char(iv%info(rain)%nlocal))
21       allocate (iv%info(rain)%levels(iv%info(rain)%nlocal))   
22       allocate (iv%info(rain)%lat(iv%info(rain)%max_lev,iv%info(rain)%nlocal))    
23       allocate (iv%info(rain)%lon(iv%info(rain)%max_lev,iv%info(rain)%nlocal))    
24       allocate (iv%info(rain)%elv(iv%info(rain)%nlocal))      
25       allocate (iv%info(rain)%pstar(iv%info(rain)%nlocal))    
27       allocate (iv%info(rain)%slp(iv%info(rain)%nlocal))   
28       allocate (iv%info(rain)%pw(iv%info(rain)%nlocal))    
30       allocate (iv%info(rain)%x  (kms:kme,iv%info(rain)%nlocal))   
31       allocate (iv%info(rain)%y  (kms:kme,iv%info(rain)%nlocal))   
32       allocate (iv%info(rain)%i  (kms:kme,iv%info(rain)%nlocal))   
33       allocate (iv%info(rain)%j  (kms:kme,iv%info(rain)%nlocal))      
34       allocate (iv%info(rain)%dx (kms:kme,iv%info(rain)%nlocal))  
35       allocate (iv%info(rain)%dxm(kms:kme,iv%info(rain)%nlocal)) 
36       allocate (iv%info(rain)%dy (kms:kme,iv%info(rain)%nlocal))  
37       allocate (iv%info(rain)%dym(kms:kme,iv%info(rain)%nlocal)) 
38       allocate (iv%info(rain)%k  (iv%info(rain)%max_lev,iv%info(rain)%nlocal))
39       allocate (iv%info(rain)%dz (iv%info(rain)%max_lev,iv%info(rain)%nlocal))  
40       allocate (iv%info(rain)%dzm(iv%info(rain)%max_lev,iv%info(rain)%nlocal)) 
41       allocate (iv%info(rain)%zk (iv%info(rain)%max_lev,iv%info(rain)%nlocal)) 
42       allocate (iv%info(rain)%proc_domain(iv%info(rain)%max_lev,iv%info(rain)%nlocal)) 
43       allocate (iv%info(rain)%thinned(iv%info(rain)%max_lev,iv%info(rain)%nlocal)) 
44       allocate (iv%info(rain)%obs_global_index(iv%info(rain)%nlocal)) 
46       iv%info(rain)%proc_domain(:,:)  = .false.
47       iv%info(rain)%thinned(:,:)      = .false.
48       iv%info(rain)%zk(:,:)           = missing_r
49    end if
51    if (trace_use) call da_trace_exit("da_allocate_observations_rain")
53 end subroutine da_allocate_observations_rain