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 117648 : 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 117648 : if( class == 1 ) then
24 91464480 : prod(:,:,1) = 0._r8
25 : !--------------------------------------------------------------------
26 : ! ... "independent" production for Implicit species
27 : !--------------------------------------------------------------------
28 58824 : else if( class == 4 ) then
29 91464480 : prod(:,:,1) = + extfrc(:,:,1)
30 91464480 : prod(:,:,2) = + extfrc(:,:,2)
31 91405656 : prod(:,:,3) = 0._r8
32 91405656 : prod(:,:,4) = 0._r8
33 91405656 : prod(:,:,5) = 0._r8
34 91405656 : prod(:,:,6) = 0._r8
35 91405656 : prod(:,:,7) = 0._r8
36 91405656 : prod(:,:,8) = 0._r8
37 91405656 : prod(:,:,9) = 0._r8
38 91405656 : prod(:,:,10) =rxt(:,:,6)
39 91405656 : prod(:,:,11) = 0._r8
40 91405656 : prod(:,:,12) = 0._r8
41 91405656 : prod(:,:,13) = 0._r8
42 91405656 : prod(:,:,14) = 0._r8
43 91405656 : prod(:,:,15) = 0._r8
44 91405656 : prod(:,:,16) = + extfrc(:,:,4)
45 91405656 : prod(:,:,17) = + extfrc(:,:,5)
46 91405656 : prod(:,:,18) = 0._r8
47 91405656 : prod(:,:,19) = + extfrc(:,:,6)
48 91405656 : prod(:,:,20) = + extfrc(:,:,7)
49 91405656 : prod(:,:,21) = + extfrc(:,:,8)
50 91405656 : prod(:,:,22) = + extfrc(:,:,9)
51 91405656 : prod(:,:,23) = + extfrc(:,:,10)
52 91405656 : prod(:,:,24) = + extfrc(:,:,11)
53 91405656 : prod(:,:,25) = 0._r8
54 91405656 : prod(:,:,26) = 0._r8
55 91405656 : prod(:,:,27) = 0._r8
56 91405656 : prod(:,:,28) = 0._r8
57 91405656 : prod(:,:,29) = 0._r8
58 91405656 : prod(:,:,30) = + extfrc(:,:,3)
59 : end if
60 117648 : end subroutine indprd
61 : end module mo_indprd
|