6 public :: get_spc_ndx, get_het_ndx, get_extfrc_ndx, get_rxt_ndx, get_inv_ndx
8 public :: get_spc_ndx, get_het_ndx, get_inv_ndx
15 integer function get_spc_ndx( spc_name )
16 !-----------------------------------------------------------------------
17 ! ... return overall species index associated with spc_name
18 !-----------------------------------------------------------------------
21 use chem_mods, only : gas_pcnst
22 use mo_tracname, only : tracnam => solsym
24 use constituents, only : cnst_get_ind
25 use module_cam_support, only : pcnst_non_chem => pcnst_non_chem_modal_aero
30 !-----------------------------------------------------------------------
32 !-----------------------------------------------------------------------
33 character(len=*), intent(in) :: spc_name
35 !-----------------------------------------------------------------------
37 !-----------------------------------------------------------------------
43 if( trim( spc_name ) == trim( tracnam(m) ) ) then
49 call cnst_get_ind(trim(adjustl(spc_name)),m,.false.)
50 get_spc_ndx = m - pcnst_non_chem
53 end function get_spc_ndx
55 integer function get_inv_ndx( invariant )
56 !-----------------------------------------------------------------------
57 ! ... return overall external frcing index associated with spc_name
58 !-----------------------------------------------------------------------
61 use chem_mods, only : nfs, inv_lst
66 !-----------------------------------------------------------------------
68 !-----------------------------------------------------------------------
69 character(len=*), intent(in) :: invariant
71 !-----------------------------------------------------------------------
73 !-----------------------------------------------------------------------
79 if( trim( invariant ) == trim( inv_lst(m) ) ) then
86 end function get_inv_ndx
89 integer function get_het_ndx( het_name )
90 !-----------------------------------------------------------------------
91 ! ... return overall het process index associated with spc_name
92 !-----------------------------------------------------------------------
94 use gas_wetdep_opts,only : gas_wetdep_method, gas_wetdep_list, gas_wetdep_cnt
96 use module_cam_support, only: gas_wetdep_method, gas_wetdep_list, gas_wetdep_cnt
101 !-----------------------------------------------------------------------
102 ! ... dummy arguments
103 !-----------------------------------------------------------------------
104 character(len=*), intent(in) :: het_name
106 !-----------------------------------------------------------------------
107 ! ... local variables
108 !-----------------------------------------------------------------------
113 do m=1,gas_wetdep_cnt
115 if( trim( het_name ) == trim( gas_wetdep_list(m) ) ) then
116 get_het_ndx = get_spc_ndx( gas_wetdep_list(m) )
122 end function get_het_ndx
124 integer function get_extfrc_ndx( frc_name )
125 !-----------------------------------------------------------------------
126 ! ... return overall external frcing index associated with spc_name
127 !-----------------------------------------------------------------------
129 use chem_mods, only : extcnt, extfrc_lst
133 !-----------------------------------------------------------------------
134 ! ... dummy arguments
135 !-----------------------------------------------------------------------
136 character(len=*), intent(in) :: frc_name
138 !-----------------------------------------------------------------------
139 ! ... local variables
140 !-----------------------------------------------------------------------
144 if( extcnt > 0 ) then
145 do m = 1,max(1,extcnt)
146 if( trim( frc_name ) == trim( extfrc_lst(m) ) ) then
153 end function get_extfrc_ndx
155 integer function get_rxt_ndx( rxt_tag )
156 !-----------------------------------------------------------------------
157 ! ... return overall external frcing index associated with spc_name
158 !-----------------------------------------------------------------------
160 use chem_mods, only : rxt_tag_cnt, rxt_tag_lst, rxt_tag_map
164 !-----------------------------------------------------------------------
165 ! ... dummy arguments
166 !-----------------------------------------------------------------------
167 character(len=*), intent(in) :: rxt_tag
169 !-----------------------------------------------------------------------
170 ! ... local variables
171 !-----------------------------------------------------------------------
176 if( trim( rxt_tag ) == trim( rxt_tag_lst(m) ) ) then
177 get_rxt_ndx = rxt_tag_map(m)
182 end function get_rxt_ndx
185 end module mo_chem_utls