Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_define_structures / da_allocate_observations.inc
blob90cf02f1203ffe59d416b630c4bfddcfd9dda344
1 subroutine da_allocate_observations (iv)
3    !---------------------------------------------------------------------------
4    ! Purpose: Allocate components of 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")
15    if (iv%info(sound)%nlocal     > 0) allocate(iv%sound    (1:iv%info(sound)%nlocal))
16    if (iv%info(sonde_sfc)%nlocal > 0) allocate(iv%sonde_sfc(1:iv%info(sonde_sfc)%nlocal))
17    if (iv%info(mtgirs)%nlocal    > 0) allocate(iv%mtgirs   (1:iv%info(mtgirs)%nlocal))
18    if (iv%info(tamdar)%nlocal    > 0) allocate(iv%tamdar   (1:iv%info(tamdar)%nlocal))
19    if (iv%info(tamdar_sfc)%nlocal > 0) allocate(iv%tamdar_sfc (1:iv%info(tamdar_sfc)%nlocal))
20    if (iv%info(synop)%nlocal     > 0) allocate(iv%synop    (1:iv%info(synop)%nlocal))
21    if (iv%info(airep)%nlocal     > 0) allocate(iv%airep    (1:iv%info(airep)%nlocal))
22    if (iv%info(geoamv)%nlocal    > 0) allocate(iv%geoamv   (1:iv%info(geoamv)%nlocal))
23    if (iv%info(polaramv)%nlocal  > 0) allocate(iv%polaramv (1:iv%info(polaramv)%nlocal))
24    if (iv%info(satem)%nlocal     > 0) allocate(iv%satem    (1:iv%info(satem)%nlocal))
25    if (iv%info(metar)%nlocal     > 0) allocate(iv%metar    (1:iv%info(metar)%nlocal))
26    if (iv%info(ships)%nlocal     > 0) allocate(iv%ships    (1:iv%info(ships)%nlocal))
27    if (iv%info(pilot)%nlocal     > 0) allocate(iv%pilot    (1:iv%info(pilot)%nlocal))
28    if (iv%info(gpspw)%nlocal     > 0) allocate(iv%gpspw    (1:iv%info(gpspw)%nlocal))
29    if (iv%info(gpsref)%nlocal    > 0) allocate(iv%gpsref   (1:iv%info(gpsref)%nlocal))
30    if (iv%info(gpseph)%nlocal    > 0) allocate(iv%gpseph   (1:iv%info(gpseph)%nlocal))
31    if (iv%info(ssmi_tb)%nlocal   > 0) allocate(iv%ssmi_tb  (1:iv%info(ssmi_tb)%nlocal))
32    if (iv%info(ssmi_rv)%nlocal   > 0) allocate(iv%ssmi_rv  (1:iv%info(ssmi_rv)%nlocal))
33    if (iv%info(ssmt1)%nlocal     > 0) allocate(iv%ssmt1    (1:iv%info(ssmt1)%nlocal))
34    if (iv%info(ssmt2)%nlocal     > 0) allocate(iv%ssmt2    (1:iv%info(ssmt2)%nlocal))
35    if (iv%info(qscat)%nlocal     > 0) allocate(iv%qscat    (1:iv%info(qscat)%nlocal))
36    if (iv%info(profiler)%nlocal  > 0) allocate(iv%profiler (1:iv%info(profiler)%nlocal))
37    if (iv%info(buoy)%nlocal      > 0) allocate(iv%buoy     (1:iv%info(buoy)%nlocal))
38    if (iv%info(radar)%nlocal     > 0) allocate(iv%radar    (1:iv%info(radar)%nlocal))
39    if (iv%info(lightning)%nlocal > 0) allocate(iv%lightning(1:iv%info(lightning)%nlocal))
40    if (iv%info(bogus)%nlocal     > 0) allocate(iv%bogus    (1:iv%info(bogus)%nlocal))
41    if (iv%info(airsr)%nlocal     > 0) allocate(iv%airsr    (1:iv%info(airsr)%nlocal))
43    call da_allocate_obs_info (iv)
45    if (trace_use) call da_trace_exit("da_allocate_observations")
47 end subroutine da_allocate_observations