1 subroutine da_transform_vchemtox(grid, vchem, be)
3 !-----------------------------------------------------------------------
4 ! Purpose: Transform chemical CV to model space
5 !-----------------------------------------------------------------------
9 type(domain), intent(inout) :: grid
10 type(xchem_type), intent(in) :: vchem ! Grid point/EOF equivalent.
11 type(be_type), intent(in) :: be ! Background error structure.
13 integer :: ij, ic, i, j, m, n ! Loop counters
17 if (trace_use) call da_trace_entry("da_transform_vchemtox")
20 !$OMP PRIVATE ( ij, ic, m, n, j, i, temp )
22 grid%xachem%chem_ic = 0.D0
24 do ij = 1 , grid%num_tiles
25 do ic = PARAM_FIRST_SCALAR, num_chem
26 do m = kts, kte !LEVELS
27 do n = 1, be % v12(ic-1) % mz !EIGENMODES
28 do j = grid%j_start(ij), grid%j_end(ij)
30 temp = be % v12(ic-1) % evec (j,m,n) * be % v12(ic-1) % val (j,n)
32 grid%xachem%chem_ic (i,j,m,ic) = grid%xachem%chem_ic (i,j,m,ic) + &
33 temp * vchem%chem_ic (i,j,n,ic)
43 #include "HALO_CHEM_XA.inc"
46 if (trace_use) call da_trace_exit("da_transform_vchemtox")
48 end subroutine da_transform_vchemtox