anchor.diff:  MODULE mo_salsa_coagulation_processes
  +
     USE mo_submctl, ONLY : in1a,fn1a,in2a,fn2a,in2b,fn2b,   &
                            ica,fca,icb,fcb,iia,fia,iib,fib, &
                            nbins,ncld,nprc,nice,nsnw,       &
  
positive.code:   !
    ! The selection between this and the basic approach is given by the switch lscollectGCCN
    !
    SUBROUTINE accumulateSourceGiantCCN(kbdim,klev,nspec,ck,istr,iend,trgt,part,nbtrgt,nbpart,source)
      
      INTEGER, INTENT(in) :: kbdim,klev,nspec
      INTEGER, INTENT(in) :: istr,iend
      INTEGER, INTENT(in) :: nbtrgt,nbpart  ! Number of bins in the target category and the coagulating category
      REAL, INTENT(in) :: ck(kbdim,klev,nbpart,nbtrgt)
      TYPE(Section), INTENT(in) :: part(kbdim,klev,nbpart), trgt(kbdim,klev,nbtrgt)
      REAL, INTENT(inout) :: source(nspec,kbdim,klev,nbtrgt)
  
      INTEGER :: iae_cld, ll, jj, ii, cc
      REAL :: contr(nspec)
  
      source(:,:,:,:) = 0.
  
      DO cc = 1,nbtrgt
         DO ll = istr,iend ! Aerosolibinit
            DO jj = 1,klev
               DO ii = 1,kbdim
                  
                  ! Get the contribution of current bins to the collection process
                  contr(:) = 0.
                  contr(1:nspec) = ck(ii,jj,ll,cc)*part(ii,jj,ll)%volc(1:nspec)
               
                  IF ( part(ii,jj,ll)%dmid > trgt(ii,jj,cc)%dmid ) THEN
                     ! The aerosol bin is larger than cloud bin -> move the contribution 
                     ! to the cloud bin corresponding to the larger aerosol bin
                     iae_cld = ll - ica%par + 1
                     source(1:nspec,ii,jj,iae_cld) = source(1:nspec,ii,jj,iae_cld) + contr(1:nspec)                
                  ELSE
                     ! Just do the normal procedure
                     source(1:nspec,ii,jj,cc) = source(1:nspec,ii,jj,cc) + contr(1:nspec)
                  END IF
  
               END DO          
            END DO       
         END DO    
      END DO
  
    END SUBROUTINE accumulateSourceGiantCCN
  
    ! -------------------------------------------------
  
  
negative.code:        IF (lscgaa) &
              CALL accumulateSink(kbdim,klev,zccaa,kk,index_2b+1,fn2b,aero,nbins,nbins,zminusterm)
         
         ! Particles lost by cloud collection by larger or equal cloud bins
         IF (lscgca) THEN
            ! cloud bins a
            index_cld = MAX(kk - ica%par + ica%cur, ica%cur)
            CALL accumulateSink(kbdim,klev,zccca,kk,index_cld,fca%cur,cloud,nbins,ncld,zminusterm)
            ! cloud bins b
            index_cld = MAX(index_2b - icb%par + icb%cur, icb%cur)
            CALL accumulateSink(kbdim,klev,zccca,kk,index_cld,fcb%cur,cloud,nbins,ncld,zminusterm)
         END IF
  
         ! Particles lost by collection by rain
         IF (lscgpa) &
              CALL accumulateSink(kbdim,klev,zccpa,kk,1,nprc,precp,nbins,nprc,zminusterm)
         
         ! particles lost by ice collection
         IF (lscgia) &
  