da_allocate_observations.inc

References to this file elsewhere.
1 subroutine da_allocate_observations  (ob)
2 
3    !---------------------------------------------------------------------------
4    ! Purpose: Allocate components of observation structure.
5    !---------------------------------------------------------------------------
6 
7    implicit none
8 
9    type (ob_type), intent(inout)        :: ob     ! Observation structure.
10 
11    if (trace_use) call da_trace_entry("da_allocate_observations")
12 
13    if (ob%num_sound > 0) then
14       allocate(ob%sound(1:ob%num_sound))
15 
16       allocate(ob%sonde_sfc(1:ob%num_sound))
17    end if
18 
19    if (ob%num_synop > 0) &
20       allocate(ob%synop(1:ob%num_synop))
21 
22    if (ob%num_airep > 0) &
23       allocate(ob%airep(1:ob%num_airep))
24 
25    if (ob%num_geoamv> 0) &
26       allocate(ob%geoamv(1:ob%num_geoamv))
27 
28    if (ob%num_polaramv> 0) &
29       allocate(ob%polaramv(1:ob%num_polaramv))
30 
31    if (ob%num_satem > 0) &
32       allocate(ob%satem(1:ob%num_satem))
33 
34    if (ob%num_metar > 0) &
35       allocate(ob%metar(1:ob%num_metar))
36 
37    if (ob%num_ships > 0) &
38       allocate(ob%ships(1:ob%num_ships))
39 
40    if (ob%num_pilot > 0) &
41       allocate(ob%pilot(1:ob%num_pilot))
42 
43    if (ob%num_gpspw > 0) &
44       allocate(ob%gpspw(1:ob%num_gpspw))
45 
46    if (ob%num_gpsref > 0) &
47       allocate(ob%gpsref(1:ob%num_gpsref))
48 
49    if (ob%num_ssmi_tb > 0) &
50       allocate(ob%ssmi_tb(1:ob%num_ssmi_tb))
51 
52    if (ob%num_ssmi_retrieval > 0) &
53       allocate(ob%ssmi_retrieval(1:ob%num_ssmi_retrieval))
54 
55    if (ob%num_ssmt1 > 0) &
56       allocate(ob%ssmt1(1:ob%num_ssmt1))
57 
58    if (ob%num_ssmt2 > 0) &
59       allocate(ob%ssmt2(1:ob%num_ssmt2))
60 
61    if (ob%num_qscat > 0) &
62       allocate(ob%qscat(1:ob%num_qscat))
63 
64    if (ob%num_profiler > 0) &
65       allocate(ob%profiler(1:ob%num_profiler))
66 
67    if (ob%num_buoy     > 0) &
68       allocate(ob%buoy(1:ob%num_buoy))
69 
70    if (ob%num_Radar     > 0) &
71       allocate(ob%Radar(1:ob%num_Radar))
72 
73    if (ob%num_Bogus     > 0) &
74       allocate(ob%Bogus(1:ob%num_Bogus))
75 
76    if (ob%num_airsr     > 0) &
77       allocate(ob%airsr(1:ob%num_airsr))
78 
79    if (trace_use) call da_trace_exit("da_allocate_observations")
80 
81 end subroutine da_allocate_observations
82 
83