Line data Source code
1 : ! Include shortname defintions, so that the F77 code does not have to be modified to 2 : ! reference the CARMA structure. 3 : #include "carma_globaer.h" 4 : 5 : !! This routine applies evaporation and nucleation production terms to 6 : !! particle concentrations. 7 : !! 8 : !! @author Andy Ackerman 9 : !! @version Dec-1995 10 213271518 : subroutine downgevapply(carma, cstate, iz, rc) 11 : 12 : ! types 13 : use carma_precision_mod 14 : use carma_enums_mod 15 : use carma_constants_mod 16 : use carma_types_mod 17 : use carmastate_mod 18 : use carma_mod 19 : 20 : implicit none 21 : 22 : type(carma_type), intent(in) :: carma !! the carma object 23 : type(carmastate_type), intent(inout) :: cstate !! the carma state object 24 : integer, intent(in) :: iz !! z index 25 : integer, intent(inout) :: rc !! return code, negative indicates failure 26 : 27 : ! Local declarations 28 : integer :: ibin !! bin index 29 : integer :: ielem !! element index 30 : 31 : 32 : ! Visit each radius bin for each element to compute particle production 33 : ! due to evaporation and element transfer processes for which the source 34 : ! element number is greater than the target element number 35 2559258216 : do ielem = 1,NELEM 36 49478992176 : do ibin = 1,NBIN 37 : 38 0 : pc(iz,ibin,ielem) = pc(iz,ibin,ielem) + & 39 0 : dtime * ( evappe(ibin,ielem) + & 40 46919733960 : rnucpe(ibin,ielem) ) 41 : 42 : ! Prevent particle concentrations from dropping below SMALL_PC 43 49265720658 : call smallconc(carma, cstate, iz, ibin, ielem, rc) 44 : 45 : enddo 46 : enddo 47 : 48 : 49 : ! Return to caller with evaporation and down-grid element transfer 50 : ! production terms applied to particle concentrations. 51 213271518 : return 52 213271518 : end