Need to add new CCN activation
SUBROUTINE ccn_activation_AKM(ik_slice, atmo, cloud,d_qc_nuc, d_qc_nuc_i) !AO3
!*******************************************************************************
! Calculation of ccn activation *
! using the approach of Hande et al 2015 *
! adjusted by AKM to fit NAWDEX FAAM PCASPobservations *
!*******************************************************************************
IMPLICIT NONE
! start and end indices for 2D slices
! istart = slice(1), iend = slice(2), kstart = slice(3), kend = slice(4)
INTEGER, INTENT(in) :: ik_slice(4)
TYPE(atmosphere), INTENT(inout) :: atmo
CLASS(particle), INTENT(inout) :: cloud
REAL(wp), INTENT(inout) :: d_qc_nuc(:,:) ! AO3
REAL(wp), INTENT(inout) :: d_qc_nuc_i(:,:) ! AO3
! Locale Variablen
! start and end indices for 2D slices
INTEGER :: istart, iend, kstart, kend
INTEGER :: i,k,nuc_typ
REAL(wp) :: n_c,q_c
REAL(wp) :: nuc_n,nuc_q, Na ! AO3
REAL(wp) :: wcb,pres,tAKM !AO3
REAL(wp) :: Bcoeff,Ccoeff !AO3
REAL(wp), PARAMETER:: eps = 1e-20_wp
! Data from HDCP2_CCN_params.txt for 20130417
REAL(wp), PARAMETER :: &
! old parameters for scale height 200 (instead of 150) for accumulation mode
!b_ccn(3) = (/ 1.61139384_wp, 3.86538308e-04_wp, &
!& 6.421509938e-01_wp /), &
!c_ccn(3) = (/ 4.17192932_wp, 1.32372677e-03_wp, &
!& 1.20585483_wp /)
b_ccn(3) = (/ 3.46281429_wp, 1.74926665e-04_wp, &
& -2.85967514e-01_wp /), &
c_ccn(3) = (/ 2.72664755_wp, 1.12852352e-03_wp, &
& 1.50069026_wp /)
istart = ik_slice(1)
iend = ik_slice(2)
kstart = ik_slice(3)
kend = ik_slice(4)
nuc_typ = nuc_c_typ
IF(isdebug) THEN
WRITE(txt,*) "cloud_activation_AKM: nuc_typ = ",nuc_typ ; CALL message(routine,TRIM(txt))
ENDIF
DO k = kstart,kend
DO i = istart,iend
nuc_q = 0.0d0
nuc_n = 0.d0
n_c = cloud%n(i,k)
q_c = cloud%q(i,k)
pres = atmo%p(i,k) / 100 !AO3 pressure in hPa for AKM fit
wcb = atmo%w(i,k)
tAKM = atmo%T(i,k) ! AO3 temperature in °C
if (q_c > eps .and. wcb > 0.0_wp .and. tAKM >= (T_3 - 38_wp)) then !T_3 = melting temperature of ice no nucleation below -38°C >> messes with cloud_freeze() and produces too large ice number concentration
! Based on PCASP data from NAWDEX FAAM flights
Bcoeff = b_ccn(1) * EXP( -b_ccn(2) * pres + b_ccn(3) )
Ccoeff = c_ccn(1) * EXP( -c_ccn(2) * pres + c_ccn(3) )
IF (pres < 800_wp) then
Na = 250_wp * EXP((pres-800_wp)/150_wp) + 7_wp * EXP((pres-800_wp)/400_wp)
ELSE
Na = 250_wp + 7_wp
END IF
nuc_n = Hande_CCN_fac * ( Na * ( ( 1_wp + EXP( -Bcoeff * log(wcb) - Ccoeff ) )**-1_wp ) ) * 1e6 ! AO3 *1e6 required as PARAM by AKM is in cm-3 and ICON in m-3
nuc_n = MAX(MAX(nuc_n,10.0e-6_wp) - n_c,0.0_wp)
nuc_q = MIN(nuc_n * cloud%x_min, atmo%qv(i,k))
nuc_n = nuc_q / cloud%x_min
cloud%n(i,k) = cloud%n(i,k) + nuc_n
cloud%q(i,k) = cloud%q(i,k) + nuc_q
atmo%qv(i,k) = atmo%qv(i,k) - nuc_q
d_qc_nuc(i,k) = d_qc_nuc(i,k) + nuc_q ! AO3
d_qc_nuc_i(i,k) = d_qc_nuc_i(i,k) + nuc_q ! AO3
END IF
END DO
END DO
END SUBROUTINE ccn_activation_AKM
Edited by Hieronymus, Maicon