module mo_indprd use shr_kind_mod, only : r8 => shr_kind_r8 private public :: indprd contains subroutine indprd( class, prod, nprod, y, extfrc, rxt, ncol ) use chem_mods, only : gas_pcnst, extcnt, rxntot use ppgrid, only : pver implicit none !-------------------------------------------------------------------- ! ... dummy arguments !-------------------------------------------------------------------- integer, intent(in) :: class integer, intent(in) :: ncol integer, intent(in) :: nprod real(r8), intent(in) :: y(ncol,pver,gas_pcnst) real(r8), intent(in) :: rxt(ncol,pver,rxntot) real(r8), intent(in) :: extfrc(ncol,pver,extcnt) real(r8), intent(inout) :: prod(ncol,pver,nprod) !-------------------------------------------------------------------- ! ... "independent" production for Explicit species !-------------------------------------------------------------------- if( class == 1 ) then prod(:,:,1) = 0._r8 prod(:,:,2) =.080_r8*rxt(:,:,311)*y(:,:,59)*y(:,:,1) prod(:,:,3) =rxt(:,:,184)*y(:,:,10)*y(:,:,8) prod(:,:,4) = 0._r8 prod(:,:,5) = 0._r8 prod(:,:,6) = 0._r8 prod(:,:,7) = 0._r8 prod(:,:,8) = 0._r8 prod(:,:,9) = 0._r8 prod(:,:,10) = 0._r8 prod(:,:,11) = 0._r8 prod(:,:,12) = 0._r8 prod(:,:,13) = 0._r8 prod(:,:,14) = 0._r8 prod(:,:,15) = 0._r8 prod(:,:,16) = 0._r8 prod(:,:,17) = 0._r8 prod(:,:,18) = 0._r8 prod(:,:,19) = 0._r8 prod(:,:,20) = 0._r8 prod(:,:,21) = 0._r8 prod(:,:,22) = (rxt(:,:,264)*y(:,:,20) +rxt(:,:,265)*y(:,:,20) + & rxt(:,:,276)*y(:,:,136) +rxt(:,:,291)*y(:,:,49) + & .500_r8*rxt(:,:,304)*y(:,:,54) +.800_r8*rxt(:,:,305)*y(:,:,52) + & rxt(:,:,306)*y(:,:,53) +.500_r8*rxt(:,:,355)*y(:,:,81))*y(:,:,23) & + (rxt(:,:,299)*y(:,:,9) +.900_r8*rxt(:,:,302)*y(:,:,16) + & 2.000_r8*rxt(:,:,303)*y(:,:,48) +2.000_r8*rxt(:,:,351)*y(:,:,76) + & rxt(:,:,379)*y(:,:,91))*y(:,:,48) + (rxt(:,:,350)*y(:,:,16) + & 2.000_r8*rxt(:,:,352)*y(:,:,76))*y(:,:,76) +rxt(:,:,63)*y(:,:,54) & +.400_r8*rxt(:,:,64)*y(:,:,58) prod(:,:,23) = 0._r8 prod(:,:,24) = 0._r8 prod(:,:,25) = 0._r8 prod(:,:,26) = 0._r8 prod(:,:,27) = 0._r8 prod(:,:,28) = 0._r8 prod(:,:,29) = 0._r8 prod(:,:,30) = 0._r8 prod(:,:,31) = + extfrc(:,:,15) prod(:,:,32) = 0._r8 prod(:,:,33) = 0._r8 prod(:,:,34) = 0._r8 prod(:,:,35) = 0._r8 prod(:,:,36) = 0._r8 prod(:,:,37) = 0._r8 !-------------------------------------------------------------------- ! ... "independent" production for Implicit species !-------------------------------------------------------------------- else if( class == 4 ) then prod(:,:,139) = 0._r8 prod(:,:,146) = (rxt(:,:,58) +rxt(:,:,114))*y(:,:,126) +.180_r8*rxt(:,:,60) & *y(:,:,15) prod(:,:,143) =rxt(:,:,5)*y(:,:,7) prod(:,:,129) = 0._r8 prod(:,:,43) = 0._r8 prod(:,:,42) = 0._r8 prod(:,:,120) =1.440_r8*rxt(:,:,60)*y(:,:,15) prod(:,:,115) = (rxt(:,:,58) +rxt(:,:,114))*y(:,:,126) +.380_r8*rxt(:,:,60) & *y(:,:,15) + extfrc(:,:,3) prod(:,:,105) = (rxt(:,:,98) +.800_r8*rxt(:,:,101) +rxt(:,:,110) + & .800_r8*rxt(:,:,113)) + extfrc(:,:,12) prod(:,:,134) = + extfrc(:,:,1) prod(:,:,144) = + extfrc(:,:,2) prod(:,:,138) =.330_r8*rxt(:,:,60)*y(:,:,15) + extfrc(:,:,14) prod(:,:,135) = 0._r8 prod(:,:,131) = 0._r8 prod(:,:,73) = 0._r8 prod(:,:,55) = 0._r8 prod(:,:,136) =rxt(:,:,59)*y(:,:,15) +rxt(:,:,37)*y(:,:,108) +rxt(:,:,48) & *y(:,:,109) prod(:,:,67) = 0._r8 prod(:,:,47) = 0._r8 prod(:,:,34) = 0._r8 prod(:,:,140) =.180_r8*rxt(:,:,60)*y(:,:,15) prod(:,:,141) = (rxt(:,:,59) +.330_r8*rxt(:,:,60))*y(:,:,15) prod(:,:,142) = 0._r8 prod(:,:,89) = 0._r8 prod(:,:,130) =.050_r8*rxt(:,:,60)*y(:,:,15) prod(:,:,145) =rxt(:,:,37)*y(:,:,108) +2.000_r8*rxt(:,:,40)*y(:,:,110) & +2.000_r8*rxt(:,:,41)*y(:,:,111) +2.000_r8*rxt(:,:,42)*y(:,:,112) & +rxt(:,:,45)*y(:,:,113) +4.000_r8*rxt(:,:,38)*y(:,:,114) & +3.000_r8*rxt(:,:,39)*y(:,:,115) +rxt(:,:,50)*y(:,:,117) & +rxt(:,:,46)*y(:,:,118) +rxt(:,:,47)*y(:,:,119) & +2.000_r8*rxt(:,:,43)*y(:,:,120) +rxt(:,:,44)*y(:,:,121) prod(:,:,44) = 0._r8 prod(:,:,132) = 0._r8 prod(:,:,37) = 0._r8 prod(:,:,28) = 0._r8 prod(:,:,137) = 0._r8 prod(:,:,107) = 0._r8 prod(:,:,113) = 0._r8 prod(:,:,50) = 0._r8 prod(:,:,133) =rxt(:,:,48)*y(:,:,109) +rxt(:,:,49)*y(:,:,116) +rxt(:,:,50) & *y(:,:,117) +2.000_r8*rxt(:,:,53)*y(:,:,122) +2.000_r8*rxt(:,:,54) & *y(:,:,123) +3.000_r8*rxt(:,:,51)*y(:,:,124) +2.000_r8*rxt(:,:,52) & *y(:,:,125) prod(:,:,128) = 0._r8 prod(:,:,104) = 0._r8 prod(:,:,96) = 0._r8 prod(:,:,80) = 0._r8 prod(:,:,92) = (rxt(:,:,94) +rxt(:,:,106)) + extfrc(:,:,10) prod(:,:,98) = + extfrc(:,:,8) prod(:,:,72) = (rxt(:,:,98) +rxt(:,:,99) +rxt(:,:,110) +rxt(:,:,111)) & + extfrc(:,:,9) prod(:,:,88) = + extfrc(:,:,7) prod(:,:,99) = 0._r8 prod(:,:,76) = (rxt(:,:,99) +1.200_r8*rxt(:,:,101) +rxt(:,:,111) + & 1.200_r8*rxt(:,:,113)) + extfrc(:,:,11) prod(:,:,100) = (rxt(:,:,94) +rxt(:,:,98) +rxt(:,:,99) +rxt(:,:,106) + & rxt(:,:,110) +rxt(:,:,111)) + extfrc(:,:,13) prod(:,:,114) = 0._r8 prod(:,:,109) = 0._r8 prod(:,:,103) = 0._r8 prod(:,:,116) = 0._r8 prod(:,:,87) = 0._r8 prod(:,:,82) = 0._r8 prod(:,:,127) = 0._r8 prod(:,:,75) = 0._r8 prod(:,:,74) = 0._r8 prod(:,:,61) = 0._r8 prod(:,:,53) = 0._r8 prod(:,:,77) = 0._r8 prod(:,:,29) = 0._r8 prod(:,:,81) = 0._r8 prod(:,:,30) = 0._r8 prod(:,:,56) = 0._r8 prod(:,:,93) = 0._r8 prod(:,:,90) = 0._r8 prod(:,:,68) = 0._r8 prod(:,:,91) = 0._r8 prod(:,:,57) = 0._r8 prod(:,:,38) = 0._r8 prod(:,:,39) = 0._r8 prod(:,:,84) = 0._r8 prod(:,:,62) = 0._r8 prod(:,:,45) = 0._r8 prod(:,:,112) = 0._r8 prod(:,:,70) = 0._r8 prod(:,:,85) = 0._r8 prod(:,:,95) = 0._r8 prod(:,:,31) = 0._r8 prod(:,:,63) = 0._r8 prod(:,:,1) = 0._r8 prod(:,:,32) = 0._r8 prod(:,:,71) = 0._r8 prod(:,:,2) = 0._r8 prod(:,:,123) = 0._r8 prod(:,:,125) = 0._r8 prod(:,:,119) = 0._r8 prod(:,:,124) = 0._r8 prod(:,:,58) = 0._r8 prod(:,:,126) = 0._r8 prod(:,:,106) = 0._r8 prod(:,:,59) = 0._r8 prod(:,:,86) = 0._r8 prod(:,:,35) = 0._r8 prod(:,:,108) = 0._r8 prod(:,:,64) = 0._r8 prod(:,:,94) = 0._r8 prod(:,:,65) = 0._r8 prod(:,:,79) = 0._r8 prod(:,:,51) = 0._r8 prod(:,:,110) = 0._r8 prod(:,:,118) = 0._r8 prod(:,:,97) = 0._r8 prod(:,:,69) = 0._r8 prod(:,:,40) = 0._r8 prod(:,:,60) = 0._r8 prod(:,:,117) = 0._r8 prod(:,:,121) = 0._r8 prod(:,:,102) = 0._r8 prod(:,:,111) = 0._r8 prod(:,:,122) = 0._r8 prod(:,:,52) = 0._r8 prod(:,:,83) = 0._r8 prod(:,:,54) = 0._r8 prod(:,:,78) = 0._r8 prod(:,:,66) = 0._r8 prod(:,:,41) =rxt(:,:,41)*y(:,:,111) +rxt(:,:,42)*y(:,:,112) +rxt(:,:,45) & *y(:,:,113) +rxt(:,:,49)*y(:,:,116) +rxt(:,:,50)*y(:,:,117) & +rxt(:,:,47)*y(:,:,119) +2.000_r8*rxt(:,:,43)*y(:,:,120) & +2.000_r8*rxt(:,:,44)*y(:,:,121) +rxt(:,:,53)*y(:,:,122) & +2.000_r8*rxt(:,:,54)*y(:,:,123) prod(:,:,46) =rxt(:,:,40)*y(:,:,110) +rxt(:,:,42)*y(:,:,112) +rxt(:,:,46) & *y(:,:,118) prod(:,:,48) = 0._r8 prod(:,:,101) =rxt(:,:,49)*y(:,:,116) +rxt(:,:,44)*y(:,:,121) prod(:,:,36) = + extfrc(:,:,4) prod(:,:,49) = 0._r8 prod(:,:,3) = + extfrc(:,:,5) prod(:,:,33) = 0._r8 prod(:,:,4) = 0._r8 prod(:,:,5) = 0._r8 prod(:,:,6) = 0._r8 prod(:,:,7) = 0._r8 prod(:,:,8) = 0._r8 prod(:,:,9) = 0._r8 prod(:,:,10) = 0._r8 prod(:,:,11) = 0._r8 prod(:,:,12) = 0._r8 prod(:,:,13) = 0._r8 prod(:,:,14) = 0._r8 prod(:,:,15) = 0._r8 prod(:,:,16) = + extfrc(:,:,6) prod(:,:,17) = 0._r8 prod(:,:,18) = 0._r8 prod(:,:,19) = 0._r8 prod(:,:,20) = 0._r8 prod(:,:,21) = 0._r8 prod(:,:,22) = 0._r8 prod(:,:,23) = 0._r8 prod(:,:,24) = 0._r8 prod(:,:,25) = 0._r8 prod(:,:,26) = 0._r8 prod(:,:,27) = 0._r8 end if end subroutine indprd end module mo_indprd