Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_define_structures / da_allocate_y_chem_sfc.inc
blob0fb772ad03795174f35d810f68f0e3d100989120
1 subroutine da_allocate_y_chem_sfc (iv, y)
3    !---------------------------------------------------------------------------
4    ! Purpose: Allocate arrays used in y and residual obs structures.
5    !---------------------------------------------------------------------------
7    implicit none
8    
9    type (iv_type), intent(in)    :: iv      ! Ob type input.
10    type (y_type),  intent(inout) :: y       ! Residual type structure.
11    integer                       :: ilocal
13    !---------------------------------------------------------------------------
14    !  [1.0] Copy number of observations:
15    !---------------------------------------------------------------------------
17    if (trace_use) call da_trace_entry("da_allocate_y_chem_sfc")
19    y % nlocal(chemic_surf) = iv%info(chemic_surf)%nlocal
20    y % ntotal(chemic_surf) = iv%info(chemic_surf)%ntotal
22   !---------------------------------------------------------------------------
23   ! [2.0] Allocate:
24   !---------------------------------------------------------------------------
26    if (y % nlocal(chemic_surf) > 0) then
27       allocate (y % chemic_surf(1:y % nlocal(chemic_surf)))
28       do ilocal = 1, y % nlocal(chemic_surf)
29          allocate (y % chemic_surf(ilocal)%chem (num_chemic_surf) )
30          y % chemic_surf(ilocal) % chem(:) = 0.0
31       end do
32    end if
34    if (trace_use) call da_trace_exit("da_allocate_y_chem_sfc")
36 end subroutine da_allocate_y_chem_sfc