anchor.diff:  
                  ! Volume gained from aerosol collection
                  DO ll = in1a,fn2b
  -                  zplusterm(1:7) = zplusterm(1:7) + zccia(ll,cc)*aero(ii,jj,ll)%volc(1:7)
  -                  zplusterm(8) = zplusterm(8) + zccia(ll,cc)*aero(ii,jj,ll)%volc(8)*spec%rhowa/spec%rhoic
  +                  zplusterm(1:ndry) = zplusterm(1:ndry) + zccia(ll,cc)*aero(ii,jj,ll)%volc(1:ndry)
  +                  zplusterm(iwa) = zplusterm(iwa) + zccia(ll,cc)*aero(ii,jj,ll)%volc(iwa)*spec%rhowa/spec%rhoic
                  END DO
   
                  ! Volume gained from cloud collection
                  DO ll = 1,ncld
  -                  zplusterm(1:7) = zplusterm(1:7) + zccic(ll,cc)*cloud(ii,jj,ll)%volc(1:7)
  -                  zplusterm(8) = zplusterm(8) + zccic(ll,cc)*cloud(ii,jj,ll)%volc(8)*spec%rhowa/spec%rhoic
  +                  zplusterm(1:ndry) = zplusterm(1:ndry) + zccic(ll,cc)*cloud(ii,jj,ll)%volc(1:ndry)
  +                  zplusterm(iwa) = zplusterm(iwa) + zccic(ll,cc)*cloud(ii,jj,ll)%volc(iwa)*spec%rhowa/spec%rhoic
                  END DO
   
                  ! Volume gained from rain drops
                  DO ll = 1,nprc
  -                  zplusterm(1:7) = zplusterm(1:7) + zccip(ll,cc)*precp(ii,jj,ll)%volc(1:7)
  -                  zplusterm(8) = zplusterm(8) + zccip(ll,cc)*precp(ii,jj,ll)%volc(8)*spec%rhowa/spec%rhoic
  +                  zplusterm(1:ndry) = zplusterm(1:ndry) + zccip(ll,cc)*precp(ii,jj,ll)%volc(1:ndry)
  +                  zplusterm(iwa) = zplusterm(iwa) + zccip(ll,cc)*precp(ii,jj,ll)%volc(iwa)*spec%rhowa/spec%rhoic
                  END DO
   
                  ! Volume gained from smaller ice particles in regime a
                  DO ll = iia%cur,cc-1
  -                  zplusterm(1:8) = zplusterm(1:8) + zccii(ll,cc)*ice(ii,jj,ll)%volc(1:8)
  +                  zplusterm(1:nspec) = zplusterm(1:nspec) + zccii(ll,cc)*ice(ii,jj,ll)%volc(1:nspec)
                  END DO
   
                  ! Volume gained from smaller or equal ice particles in regime b
                  DO ll = iib%cur,kk
  -                  zplusterm(1:8) = zplusterm(1:8) + zccii(ll,cc)*ice(ii,jj,ll)%volc(1:8)
  +                  zplusterm(1:nspec) = zplusterm(1:nspec) + zccii(ll,cc)*ice(ii,jj,ll)%volc(1:nspec)
                  END DO
   
                  ! Update the hydrometeor volume concentrations
  -               ice(ii,jj,cc)%volc(1:8) = max(0., ( ice(ii,jj,cc)%volc(1:8) +  &
  -                                                    ptstep*zplusterm(1:8)*ice(ii,jj,cc)%numc ) / &
  +               ice(ii,jj,cc)%volc(1:nspec) = max(0., ( ice(ii,jj,cc)%volc(1:nspec) +  &
  +                                                    ptstep*zplusterm(1:nspec)*ice(ii,jj,cc)%numc ) / &
                                                       (1. + ptstep*zminusterm) )
   
                  ! Update the hydrometeor number concentration (Removal by coagulation with larger bins and self)
  
positive.code: 
                 ! Volume gained by collection of aerosols
                 DO ll = in1a,fn2b
                    zplusterm(1:7) = zplusterm(1:7) + zccsa(ll,cc)*aero(ii,jj,ll)%volc(1:7)
                    zplusterm(8) = zplusterm(8) + zccsa(ll,cc)*aero(ii,jj,ll)%volc(8)*spec%rhowa/spec%rhosn
                 END DO
  
                 ! Volume gained by collection of cloud droplets
                 DO ll = 1,ncld
                    zplusterm(1:7) = zplusterm(1:7) + zccsc(ll,cc)*cloud(ii,jj,ll)%volc(1:7)
                    zplusterm(8) = zplusterm(8) + zccsc(ll,cc)*cloud(ii,jj,ll)%volc(8)*spec%rhowa/spec%rhosn
                 END DO
  
                 ! Volume gained by collection of rain drops
                 DO ll = 1,nprc
                    zplusterm(1:7) = zplusterm(1:7) + zccsp(ll,cc)*precp(ii,jj,ll)%volc(1:7)
                    zplusterm(8) = zplusterm(8) + zccsp(ll,cc)*precp(ii,jj,ll)%volc(8)*spec%rhowa/spec%rhosn
                 END DO
  
                 ! Volume gained by collection of ice particles
                 DO ll = 1,nice
                    zplusterm(1:7) = zplusterm(1:7) + zccsi(ll,cc)*ice(ii,jj,ll)%volc(1:7)
                    zplusterm(8) = zplusterm(8) + zccsi(ll,cc)*ice(ii,jj,ll)%volc(8)*spec%rhoic/spec%rhosn
                 END DO
  
                 ! Volume gained from smaller snow
                 DO ll = 1,cc-1
                    zplusterm(1:8) = zplusterm(1:8) + zccss(ll,cc)*snow(ii,jj,ll)%volc(1:8)
                 END DO
  
                 ! Update the hydrometeor volume concentrations
                 snow(ii,jj,cc)%volc(1:8) = max(0.,( snow(ii,jj,cc)%volc(1:8) +  &
                                                      ptstep*zplusterm(1:8)*snow(ii,jj,cc)%numc ) / &
                                                      (1. + ptstep*zminusterm) )
  
                 ! Update the hydrometeor number concentration (Removal by coagulation with larger bins and self)
  
negative.code:          zccsi(nice,nsnw),          & ! - '' - for collection of ice by snow 
           zccsp(nprc,nsnw),          & ! - '' - for collection of precip by snow 
           zccss(nsnw,nsnw),          & ! - '' - for collisions between snow
           zminusterm                   ! coagulation loss in a bin [1/s]
        REAL, ALLOCATABLE ::          &
           zplusterm(:)                 ! coagulation gain in a bin [fxm/s]
                                        ! (for each chemical compound)
  
        REAL :: &
           zmpart(fn2b),   & ! approximate mass of particles [kg]
  