40 INTEGER,
INTENT(IN) :: NP
43 DOUBLE PRECISION,
INTENT(OUT) :: pRgp(
nmax(0))
44 DOUBLE PRECISION,
INTENT(OUT) :: pRgc(
nmax(0))
45 DOUBLE PRECISION,
INTENT(OUT) :: pHoRg
46 DOUBLE PRECISION,
INTENT(OUT) :: pSUMRg
65 DOUBLE PRECISION :: lRate
66 DOUBLE PRECISION :: lTp
67 DOUBLE PRECISION :: lHoRs, llHoRg
69 DOUBLE PRECISION :: RxH
73 DOUBLE PRECISION :: speciesLimiter
78 DOUBLE PRECISION,
EXTERNAL :: CALC_H
104 IF(des_reaction(h)%nSpecies == 0) cycle rxn_lp
105 IF(
compare(des_rates(h),zero)) cycle rxn_lp
114 DO ln = 1, des_reaction(h)%nSpecies
116 m = des_reaction(h)%Species(ln)%pMap
118 nn = des_reaction(h)%Species(ln)%sMap
121 mxfr = des_reaction(h)%Species(ln)%mXfr
122 lrate = des_rates(h) * des_reaction(h)%Species(ln)%MWxStoich
126 IF(lrate < zero)
THEN 127 IF(
x_g(ijk,nn) > specieslimiter)
THEN 128 prgc(nn) = prgc(nn) - lrate
130 IF(m /= mxfr) rxh = rxh + &
131 lrate*calc_h(
t_g(ijk),0,nn)
139 prgp(nn) = prgp(nn) + lrate
141 IF(m /= mxfr) rxh = rxh + lrate*calc_h(ltp,0,nn)
155 IF(des_reaction(h)%Calc_DH)
THEN 157 DO ln = 1, des_reaction(h)%nSpecies
159 m = des_reaction(h)%Species(ln)%pMap
161 nn = des_reaction(h)%Species(ln)%sMap
163 lrate = des_rates(h) * &
164 des_reaction(h)%Species(ln)%MWxStoich
167 llhorg = llhorg + calc_h(
t_g(ijk),0,nn) * lrate
170 lhors = lhors + calc_h(ltp,m,nn) * lrate
176 llhorg = llhorg - rxh
181 IF(
units ==
'SI')
THEN 182 phorg = phorg + 4.183925d3*llhorg
185 phorg = phorg + llhorg
191 des_reaction(h)%HoR(0) * des_rates(h)
193 des_reaction(h)%HoR(pm) * des_rates(h)
199 lm = 1 + (pm - 1)*pm/2
200 prphase(lm) = prphase(lm) + &
201 des_rates(h) * des_reaction(h)%rPHASE(lm)
208 psumrg = sum(prgp(:
nmax(0)) - prgc(:
nmax(0)))
211 IF(des_reaction(h)%nPhases <= 0) cycle
212 lm = 1 + ((pm-1)*pm)/2
214 des_rates(h) * des_reaction(h)%rPHASE(lm)
double precision, dimension(:,:), allocatable des_r_s
logical function compare(V1, V2)
double precision, dimension(:), allocatable des_t_s
double precision, dimension(:), allocatable des_hor_g
logical, dimension(0:dim_m) species_eq
double precision, dimension(:), allocatable t_g
double precision, dimension(:), allocatable des_sum_r_g
subroutine calc_rrates_des(NP, pRgp, pRgc, pRPhase, pHoRg, pSUMRg)
double precision, dimension(:,:), allocatable x_g
double precision, dimension(:,:), allocatable des_r_gc
subroutine zero_rrate_des
double precision, dimension(:,:), allocatable des_r_phase
integer, dimension(0:dim_m) nmax
double precision, parameter zero_x_gs
double precision, dimension(:), allocatable q_source
double precision, dimension(:,:), allocatable des_r_gp
subroutine usr_rates_des(NP, pM, IJK, DES_RATES)
double precision, parameter zero
double precision, dimension(:), allocatable hor_g