Line data Source code
1 : module mo_indprd
2 : use shr_kind_mod, only : r8 => shr_kind_r8
3 : private
4 : public :: indprd
5 : contains
6 2978352 : subroutine indprd( class, prod, nprod, y, extfrc, rxt, ncol )
7 : use chem_mods, only : gas_pcnst, extcnt, rxntot
8 : use ppgrid, only : pver
9 : implicit none
10 : !--------------------------------------------------------------------
11 : ! ... dummy arguments
12 : !--------------------------------------------------------------------
13 : integer, intent(in) :: class
14 : integer, intent(in) :: ncol
15 : integer, intent(in) :: nprod
16 : real(r8), intent(in) :: y(ncol,pver,gas_pcnst)
17 : real(r8), intent(in) :: rxt(ncol,pver,rxntot)
18 : real(r8), intent(in) :: extfrc(ncol,pver,extcnt)
19 : real(r8), intent(inout) :: prod(ncol,pver,nprod)
20 : !--------------------------------------------------------------------
21 : ! ... "independent" production for Explicit species
22 : !--------------------------------------------------------------------
23 2978352 : if( class == 1 ) then
24 2315495520 : prod(:,:,1) = 0._r8
25 : !--------------------------------------------------------------------
26 : ! ... "independent" production for Implicit species
27 : !--------------------------------------------------------------------
28 1489176 : else if( class == 4 ) then
29 2315495520 : prod(:,:,1) = + extfrc(:,:,1)
30 2315495520 : prod(:,:,2) = + extfrc(:,:,2)
31 2314006344 : prod(:,:,3) = 0._r8
32 2314006344 : prod(:,:,4) = 0._r8
33 2314006344 : prod(:,:,5) = 0._r8
34 2314006344 : prod(:,:,6) = 0._r8
35 2314006344 : prod(:,:,7) = 0._r8
36 2314006344 : prod(:,:,8) = 0._r8
37 2314006344 : prod(:,:,9) = 0._r8
38 2314006344 : prod(:,:,10) =rxt(:,:,6)
39 2314006344 : prod(:,:,11) = 0._r8
40 2314006344 : prod(:,:,12) = 0._r8
41 2314006344 : prod(:,:,13) = 0._r8
42 2314006344 : prod(:,:,14) = 0._r8
43 2314006344 : prod(:,:,15) = 0._r8
44 2314006344 : prod(:,:,16) = + extfrc(:,:,4)
45 2314006344 : prod(:,:,17) = + extfrc(:,:,5)
46 2314006344 : prod(:,:,18) = 0._r8
47 2314006344 : prod(:,:,19) = + extfrc(:,:,6)
48 2314006344 : prod(:,:,20) = + extfrc(:,:,7)
49 2314006344 : prod(:,:,21) = + extfrc(:,:,8)
50 2314006344 : prod(:,:,22) = + extfrc(:,:,9)
51 2314006344 : prod(:,:,23) = + extfrc(:,:,10)
52 2314006344 : prod(:,:,24) = + extfrc(:,:,11)
53 2314006344 : prod(:,:,25) = 0._r8
54 2314006344 : prod(:,:,26) = 0._r8
55 2314006344 : prod(:,:,27) = 0._r8
56 2314006344 : prod(:,:,28) = 0._r8
57 2314006344 : prod(:,:,29) = 0._r8
58 2314006344 : prod(:,:,30) = + extfrc(:,:,3)
59 : end if
60 2978352 : end subroutine indprd
61 : end module mo_indprd
|