Forked from
Méso-NH / Méso-NH code
4355 commits behind the upstream repository.
ch_aer_trans.f90 59.68 KiB
!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
!ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
!ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!ORILAM_LIC for details.
!-----------------------------------------------------------------
!--------------- special set of characters for RCS information
!-----------------------------------------------------------------
! $Source$ $Revision$
! MASDEV4_7 chimie 2007/03/02 13:59:36
!-----------------------------------------------------------------
!! ########################
MODULE MODI_CH_AER_TRANS
!! ########################
!!
INTERFACE
!!
SUBROUTINE CH_AER_TRANS(KDIR, PM, PSIG0, PRG0, PN0, PRHOP0, PAERO, &
PCONC, PCTOTG, PCTOTA, PCCTOT,PFRAC,PMI,PMASK,HSCHEME)
IMPLICIT NONE
INTEGER, INTENT(IN) :: KDIR ! KDIR = 0 gas -> aero
! KDIR = 1 aero -> gas
REAL, DIMENSION(:,:), INTENT(INOUT) :: PM ! moments
REAL, DIMENSION(:,:), INTENT(INOUT) :: PSIG0, PRG0, PN0, PRHOP0, PCTOTG
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCTOTA, PCCTOT
REAL, DIMENSION(:,:), INTENT(INOUT) :: PCONC
REAL, DIMENSION(:,:), INTENT(INOUT) :: PAERO
REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC
REAL, DIMENSION(:,:), INTENT(INOUT) :: PMI
REAL, DIMENSION(:,:), INTENT(INOUT) :: PMASK
CHARACTER(LEN=10), INTENT(IN) :: HSCHEME
END SUBROUTINE CH_AER_TRANS
!!
END INTERFACE
!!
END MODULE MODI_CH_AER_TRANS
!!
!! #######################################################################
SUBROUTINE CH_AER_TRANS(KDIR, PM, PSIG0, PRG0, PN0, PRHOP0, PAERO, &
PCONC, PCTOTG, PCTOTA, PCCTOT,PFRAC,PMI,PMASK,HSCHEME)
!! #######################################################################
!!
!! PURPOSE
!! -------
!! Transfer of gaz phase species into aerosol variables (KDIR = 0)
!! and back (KDIR = 1) after call to the aerosol module.
!!
!! REFERENCE
!! ---------
!a! none
!!
!! AUTHOR
!! ------
!! Vincent Crassier (LA)
!!
!! MODIFICATIONS
!! -------------
!! P .Tulet * add biogenics and BC
!! P .Tulet * stability of moments
!! P .Tulet * add SOA for AER and MPMPO
!! A. Berger * correct the treatment of H2SO4 g
!! M. Leriche * add ReLACS3
!!
!! EXTERNAL
!! --------
!! None
!!
USE MODD_CH_AEROSOL
USE MODD_CST, ONLY : XMNH_TINY
!!
IMPLICIT NONE
!!
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
! ------------
!
!* 0.1 declarations of arguments
INTEGER, INTENT(IN) :: KDIR ! KDIR = 0 gas -> aero
! KDIR = 1 aero -> gas
REAL, DIMENSION(:,:), INTENT(INOUT) :: PM ! moments
REAL, DIMENSION(:,:), INTENT(INOUT) :: PSIG0, PRG0, PN0, PRHOP0, PCTOTG
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PCTOTA, PCCTOT
REAL, DIMENSION(:,:), INTENT(INOUT) :: PCONC
REAL, DIMENSION(:,:), INTENT(INOUT) :: PAERO
REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC
REAL, DIMENSION(:,:), INTENT(INOUT) :: PMI
REAL, DIMENSION(:,:), INTENT(INOUT) :: PMASK
CHARACTER(LEN=10), INTENT(IN) :: HSCHEME
!
!
!* 0.2 declarations local variables
!
INTEGER :: JJ, JN ! loop counter
! variables for the aerosol module
!
REAL, DIMENSION(SIZE(PM,1)) :: ZSIGMA
REAL, DIMENSION(SIZE(PM,1)) :: ZSUM
REAL, SAVE, DIMENSION(JPIN) :: ZPMIN
LOGICAL, SAVE :: GPHYSLIM = .TRUE. ! flag
REAL :: ZRGMIN
REAL, PARAMETER :: ZCSTAVOG=6.0221367E+11
REAL :: ZINIRADIUSI, ZINIRADIUSJ
!
!-------------------------------------------------------------------------------
!
IF (KDIR .EQ. 0) THEN
!
!* 1. TRANSFER FROM GAS TO AEROSOL MODULE
! ------------------------------------
!
IF (GPHYSLIM) THEN
GPHYSLIM=.FALSE.
IF (CRGUNIT=="MASS") THEN
ZINIRADIUSI = XINIRADIUSI * EXP(-3.*(LOG(XINISIGI))**2)
ZINIRADIUSJ = XINIRADIUSJ * EXP(-3.*(LOG(XINISIGJ))**2)
ELSE
ZINIRADIUSI = XINIRADIUSI
ZINIRADIUSJ = XINIRADIUSJ
END IF
ZPMIN(1) = XN0IMIN
ZRGMIN = ZINIRADIUSI
ZPMIN(2) = ZPMIN(1) * (ZRGMIN**3)*EXP(4.5 * LOG(XSIGIMIN)**2)
ZPMIN(3) = ZPMIN(1) * (ZRGMIN**6)*EXP(18. * LOG(XSIGIMIN)**2)
ZPMIN(4) = XN0JMIN
ZRGMIN = ZINIRADIUSJ
ZPMIN(5) = ZPMIN(4) * (ZRGMIN**3)*EXP(4.5 * LOG(XSIGJMIN)**2)
ZPMIN(6) = ZPMIN(4) * (ZRGMIN**6)*EXP(18. * LOG(XSIGJMIN)**2)
END IF
PCTOTG(:,:) = 0.
PCTOTA(:,:,:) = 0.
PFRAC(:,:) = 0.
PCONC(:,:) = MAX(PCONC(:,:), XMNH_TINY)
PAERO(:,:) = MAX(PAERO(:,:), XMNH_TINY)
!* 1.n transfer aerosol mass from gas to aerosol variables
! (and conversion of molec/cm3 to microgram/m3)
!
! gas phase species
PCTOTG(:,JP_AER_SO4g) = 0. !all sulfates has been converted into aerosol phase
PCTOTG(:,JP_AER_NO3g) = PCONC(:,JP_CH_HNO3)*XHNO3/ZCSTAVOG
PCTOTG(:,JP_AER_NH3g) = PCONC(:,JP_CH_NH3)*XNH3/ZCSTAVOG
!
! aerosol phase
PCTOTA(:,JP_AER_SO4,1) = PAERO(:,JP_CH_SO4i)*PMI(:,JP_AER_SO4)/ZCSTAVOG
PCTOTA(:,JP_AER_SO4,2) = PAERO(:,JP_CH_SO4j)*PMI(:,JP_AER_SO4)/ZCSTAVOG
PCTOTA(:,JP_AER_NO3,1) = PAERO(:,JP_CH_NO3i)*PMI(:,JP_AER_NO3)/ZCSTAVOG
PCTOTA(:,JP_AER_NO3,2) = PAERO(:,JP_CH_NO3j)*PMI(:,JP_AER_NO3)/ZCSTAVOG
PCTOTA(:,JP_AER_NH3,1) = PAERO(:,JP_CH_NH3i)*PMI(:,JP_AER_NH3)/ZCSTAVOG
PCTOTA(:,JP_AER_NH3,2) = PAERO(:,JP_CH_NH3j)*PMI(:,JP_AER_NH3)/ZCSTAVOG
!
! water
PCTOTA(:,JP_AER_H2O,1) = PAERO(:,JP_CH_H2Oi)*PMI(:,JP_AER_H2O)/ZCSTAVOG
PCTOTA(:,JP_AER_H2O,2) = PAERO(:,JP_CH_H2Oj)*PMI(:,JP_AER_H2O)/ZCSTAVOG
!
! primary organic carbon
PCTOTA(:,JP_AER_OC,1) = PAERO(:,JP_CH_OCi)*PMI(:,JP_AER_OC)/ZCSTAVOG
PCTOTA(:,JP_AER_OC,2) = PAERO(:,JP_CH_OCj)*PMI(:,JP_AER_OC)/ZCSTAVOG
! primary black carbon
PCTOTA(:,JP_AER_BC,1) = PAERO(:,JP_CH_BCi)*PMI(:,JP_AER_BC)/ZCSTAVOG
PCTOTA(:,JP_AER_BC,2) = PAERO(:,JP_CH_BCj)*PMI(:,JP_AER_BC)/ZCSTAVOG
! dust
PCTOTA(:,JP_AER_DST,1) = PAERO(:,JP_CH_DSTi)*PMI(:,JP_AER_DST)/ZCSTAVOG
PCTOTA(:,JP_AER_DST,2) = PAERO(:,JP_CH_DSTj)*PMI(:,JP_AER_DST)/ZCSTAVOG
IF (NSOA .EQ. 10) THEN
IF (TRIM(CORGANIC) == 'PUN') THEN
IF (HSCHEME == "RELACS2") THEN ! ReLACS2 scheme
PCTOTG(:,JP_AER_SOA1) = PCONC(:,JP_CH_URG1)*XURG1/ZCSTAVOG
PFRAC(:,JP_CH_URG1) = 1.
PMI(:,JP_AER_SOA1) = PFRAC(:,JP_CH_URG1) * XURG1
PCTOTG(:,JP_AER_SOA2) = PCONC(:,JP_CH_URG2) *XURG2/ZCSTAVOG +&
PCONC(:,JP_CH_RPG2)*XRPG2/ZCSTAVOG +&
PCONC(:,JP_CH_RP18)*XRP18/ZCSTAVOG
PFRAC(:,JP_CH_URG2) = PCONC(:,JP_CH_URG2) *XURG2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RPG2) = PCONC(:,JP_CH_RPG2) *XRPG2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RP18) = PCONC(:,JP_CH_RP18) *XRP18/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PMI(:,JP_AER_SOA2) = PFRAC(:,JP_CH_URG2) * XURG2 + &
PFRAC(:,JP_CH_RPG2) * XRPG2 + &
PFRAC(:,JP_CH_RP18) * XRP18
PCTOTG(:,JP_AER_SOA3) = PCONC(:,JP_CH_RPG3)*XRPG3/ZCSTAVOG
PFRAC(:,JP_CH_RPG3) = 1.
PMI(:,JP_AER_SOA3) = PFRAC(:,JP_CH_RPG3) * XRPG3
PCTOTG(:,JP_AER_SOA4) = PCONC(:,JP_CH_URG4)*XURG4/ZCSTAVOG
PFRAC(:,JP_CH_URG4) = 1.
PMI(:,JP_AER_SOA4) = PFRAC(:,JP_CH_URG4) * XURG4
PCTOTG(:,JP_AER_SOA5) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG +&
PCONC(:,JP_CH_RPR3)*XRPR3/ZCSTAVOG +&
PCONC(:,JP_CH_AP7) *XAP7/ZCSTAVOG
PFRAC(:,JP_CH_UR17) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_RPR3) = PCONC(:,JP_CH_RPR3) *XRPR3/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_AP7) = PCONC(:,JP_CH_AP7) *XAP7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PMI(:,JP_AER_SOA5) = PFRAC(:,JP_CH_UR17) *XUR17 + &
PFRAC(:,JP_CH_RPR3) *XRPR3 + &
PFRAC(:,JP_CH_AP7) *XAP7
PCTOTG(:,JP_AER_SOA6) = PCONC(:,JP_CH_URG6) *XURG6/ZCSTAVOG +&
PCONC(:,JP_CH_UR22) *XUR22/ZCSTAVOG
PFRAC(:,JP_CH_URG6) = PCONC(:,JP_CH_URG6) *XURG6/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PFRAC(:,JP_CH_UR22) = PCONC(:,JP_CH_UR22)*XUR22/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PMI(:,JP_AER_SOA6) = PFRAC(:,JP_CH_URG6) *XURG6 + &
PFRAC(:,JP_CH_UR22) *XUR22
PCTOTG(:,JP_AER_SOA7) = PCONC(:,JP_CH_URG7) *XURG7/ZCSTAVOG +&
PCONC(:,JP_CH_RPR4)*XRPR4/ZCSTAVOG +&
PCONC(:,JP_CH_RPR7)*XRPR7/ZCSTAVOG +&
PCONC(:,JP_CH_RPG7)*XRPG7/ZCSTAVOG
PFRAC(:,JP_CH_URG7) = PCONC(:,JP_CH_URG7) *XURG7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPR4) = PCONC(:,JP_CH_RPR4) *XRPR4/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPR7) = PCONC(:,JP_CH_RPR7) *XRPR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPG7) = PCONC(:,JP_CH_RPG7) *XRPG7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PMI(:,JP_AER_SOA7) = PFRAC(:,JP_CH_URG7) * XURG7 + &
PFRAC(:,JP_CH_RPR4) * XRPR4 + &
PFRAC(:,JP_CH_RPR7) * XRPR7 + &
PFRAC(:,JP_CH_RPG7)* XRPG7
PCTOTG(:,JP_AER_SOA8) = PCONC(:,JP_CH_URG8) *XURG8/ZCSTAVOG
PFRAC(:,JP_CH_URG8) = 1.
PMI(:,JP_AER_SOA8) = PFRAC(:,JP_CH_URG8) *XURG8
PCTOTG(:,JP_AER_SOA9) = PCONC(:,JP_CH_URG9) *XURG9/ZCSTAVOG +&
PCONC(:,JP_CH_UR26) *XUR26/ZCSTAVOG
PFRAC(:,JP_CH_URG9) = PCONC(:,JP_CH_URG9) *XURG9/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_UR26) = PCONC(:,JP_CH_UR26) *XUR26/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PMI(:,JP_AER_SOA9) = PFRAC(:,JP_CH_URG9)*XURG9 + &
PFRAC(:,JP_CH_UR26)*XUR26
PCTOTG(:,JP_AER_SOA10) = PCONC(:,JP_CH_URG10)*XURG10/ZCSTAVOG +&
PCONC(:,JP_CH_UR7) *XUR7/ZCSTAVOG +&
PCONC(:,JP_CH_UR8) *XUR8/ZCSTAVOG +&
PCONC(:,JP_CH_PAN8) *XPAN8/ZCSTAVOG
PFRAC(:,JP_CH_URG10)= PCONC(:,JP_CH_URG10)*XURG10/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR7) = PCONC(:,JP_CH_UR7) *XUR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR8) = PCONC(:,JP_CH_UR8) *XUR8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_PAN8) = PCONC(:,JP_CH_PAN8) *XPAN8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PMI(:,JP_AER_SOA10) = PFRAC(:,JP_CH_URG10)*XURG10 + &
PFRAC(:,JP_CH_UR7) *XUR7 + &
PFRAC(:,JP_CH_UR8) *XUR8 + &
PFRAC(:,JP_CH_PAN8) *XPAN8
!
ELSE IF (HSCHEME == "RELACS3") THEN !ReLACS3 scheme
PCTOTG(:,JP_AER_SOA1) = PCONC(:,JP_CH_UR21)*XUR21/ZCSTAVOG + &
PCONC(:,JP_CH_UR28)*XUR28/ZCSTAVOG
PFRAC(:,JP_CH_UR21) = PCONC(:,JP_CH_UR21) *XUR21/ZCSTAVOG / PCTOTG(:,JP_AER_SOA1)
PFRAC(:,JP_CH_UR28) = PCONC(:,JP_CH_UR28) *XUR28/ZCSTAVOG / PCTOTG(:,JP_AER_SOA1)
PMI(:,JP_AER_SOA1) = PFRAC(:,JP_CH_UR21) * XUR21 + &
PFRAC(:,JP_CH_UR28) * XUR28
PCTOTG(:,JP_AER_SOA2) = PCONC(:,JP_CH_URG2) *XURG2/ZCSTAVOG +&
PCONC(:,JP_CH_RPG2)*XRPG2/ZCSTAVOG +&
PCONC(:,JP_CH_RP18)*XRP18/ZCSTAVOG
PFRAC(:,JP_CH_URG2) = PCONC(:,JP_CH_URG2) *XURG2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RPG2) = PCONC(:,JP_CH_RPG2) *XRPG2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RP18) = PCONC(:,JP_CH_RP18) *XRP18/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PMI(:,JP_AER_SOA2) = PFRAC(:,JP_CH_URG2) * XURG2 + &
PFRAC(:,JP_CH_RPG2) * XRPG2 + &
PFRAC(:,JP_CH_RP18) * XRP18
PCTOTG(:,JP_AER_SOA3) = PCONC(:,JP_CH_RPG3)*XRPG3/ZCSTAVOG
PFRAC(:,JP_CH_RPG3) = 1.
PMI(:,JP_AER_SOA3) = PFRAC(:,JP_CH_RPG3) * XRPG3
PCTOTG(:,JP_AER_SOA4) = PCONC(:,JP_CH_URG4)*XURG4/ZCSTAVOG
PFRAC(:,JP_CH_URG4) = 1.
PMI(:,JP_AER_SOA4) = PFRAC(:,JP_CH_URG4) * XURG4
PCTOTG(:,JP_AER_SOA5) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG +&
PCONC(:,JP_CH_RPR3)*XRPR3/ZCSTAVOG +&
PCONC(:,JP_CH_AP7) *XAP7/ZCSTAVOG
PFRAC(:,JP_CH_UR17) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_RPR3) = PCONC(:,JP_CH_RPR3) *XRPR3/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_AP7) = PCONC(:,JP_CH_AP7) *XAP7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PMI(:,JP_AER_SOA5) = PFRAC(:,JP_CH_UR17) *XUR17 + &
PFRAC(:,JP_CH_RPR3) *XRPR3 + &
PFRAC(:,JP_CH_AP7) *XAP7
PCTOTG(:,JP_AER_SOA6) = PCONC(:,JP_CH_URG6) *XURG6/ZCSTAVOG +&
PCONC(:,JP_CH_UR22) *XUR22/ZCSTAVOG
PFRAC(:,JP_CH_URG6) = PCONC(:,JP_CH_URG6) *XURG6/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PFRAC(:,JP_CH_UR22) = PCONC(:,JP_CH_UR22)*XUR22/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PMI(:,JP_AER_SOA6) = PFRAC(:,JP_CH_URG6) *XURG6 + &
PFRAC(:,JP_CH_UR22) *XUR22
PCTOTG(:,JP_AER_SOA7) = PCONC(:,JP_CH_URG7) *XURG7/ZCSTAVOG +&
PCONC(:,JP_CH_RPR4)*XRPR4/ZCSTAVOG +&
PCONC(:,JP_CH_RPR7)*XRPR7/ZCSTAVOG +&
PCONC(:,JP_CH_RPG7)*XRPG7/ZCSTAVOG
PFRAC(:,JP_CH_URG7) = PCONC(:,JP_CH_URG7) *XURG7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPR4) = PCONC(:,JP_CH_RPR4) *XRPR4/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPR7) = PCONC(:,JP_CH_RPR7) *XRPR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPG7) = PCONC(:,JP_CH_RPG7) *XRPG7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PMI(:,JP_AER_SOA7) = PFRAC(:,JP_CH_URG7) * XURG7 + &
PFRAC(:,JP_CH_RPR4) * XRPR4 + &
PFRAC(:,JP_CH_RPR7) * XRPR7 + &
PFRAC(:,JP_CH_RPG7)* XRPG7
PCTOTG(:,JP_AER_SOA8) = PCONC(:,JP_CH_URG8) *XURG8/ZCSTAVOG
PFRAC(:,JP_CH_URG8) = 1.
PMI(:,JP_AER_SOA8) = PFRAC(:,JP_CH_URG8) *XURG8
PCTOTG(:,JP_AER_SOA9) = PCONC(:,JP_CH_URG9) *XURG9/ZCSTAVOG +&
PCONC(:,JP_CH_UR26) *XUR26/ZCSTAVOG
PFRAC(:,JP_CH_URG9) = PCONC(:,JP_CH_URG9) *XURG9/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_UR26) = PCONC(:,JP_CH_UR26) *XUR26/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PMI(:,JP_AER_SOA9) = PFRAC(:,JP_CH_URG9)*XURG9 + &
PFRAC(:,JP_CH_UR26)*XUR26
PCTOTG(:,JP_AER_SOA10) = PCONC(:,JP_CH_URG10)*XURG10/ZCSTAVOG +&
PCONC(:,JP_CH_UR7) *XUR7/ZCSTAVOG +&
PCONC(:,JP_CH_UR8) *XUR8/ZCSTAVOG +&
PCONC(:,JP_CH_PAN8) *XPAN8/ZCSTAVOG
PFRAC(:,JP_CH_URG10)= PCONC(:,JP_CH_URG10)*XURG10/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR7) = PCONC(:,JP_CH_UR7) *XUR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR8) = PCONC(:,JP_CH_UR8) *XUR8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_PAN8) = PCONC(:,JP_CH_PAN8) *XPAN8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PMI(:,JP_AER_SOA10) = PFRAC(:,JP_CH_URG10)*XURG10 + &
PFRAC(:,JP_CH_UR7) *XUR7 + &
PFRAC(:,JP_CH_UR8) *XUR8 + &
PFRAC(:,JP_CH_PAN8) *XPAN8
!
ELSE ! CACM scheme
PCTOTG(:,JP_AER_SOA1) = PCONC(:,JP_CH_UR21)*XUR21/ZCSTAVOG + &
PCONC(:,JP_CH_UR28)*XUR28/ZCSTAVOG
PFRAC(:,JP_CH_UR21) = PCONC(:,JP_CH_UR21) *XUR21/ZCSTAVOG / PCTOTG(:,JP_AER_SOA1)
PFRAC(:,JP_CH_UR28) = PCONC(:,JP_CH_UR28) *XUR28/ZCSTAVOG / PCTOTG(:,JP_AER_SOA1)
PMI(:,JP_AER_SOA1) = PFRAC(:,JP_CH_UR21) * XUR21 + &
PFRAC(:,JP_CH_UR28) * XUR28
PCTOTG(:,JP_AER_SOA2) = PCONC(:,JP_CH_UR29) *XUR29/ZCSTAVOG +&
PCONC(:,JP_CH_UR30) *XUR30/ZCSTAVOG +&
PCONC(:,JP_CH_RP13)*XRP13/ZCSTAVOG +&
PCONC(:,JP_CH_RP17)*XRP17/ZCSTAVOG +&
PCONC(:,JP_CH_RP18)*XRP18/ZCSTAVOG
PFRAC(:,JP_CH_UR29) = PCONC(:,JP_CH_UR29) *XUR29/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_UR30) = PCONC(:,JP_CH_UR30) *XUR30/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RP13) = PCONC(:,JP_CH_RP13) *XRP13/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RP17) = PCONC(:,JP_CH_RP17) *XRP17/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RP18) = PCONC(:,JP_CH_RP18) *XRP18/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PMI(:,JP_AER_SOA2) = PFRAC(:,JP_CH_UR29) * XUR29 + &
PFRAC(:,JP_CH_UR30) * XUR30 + &
PFRAC(:,JP_CH_RP13) * XRP13 + &
PFRAC(:,JP_CH_RP17) * XRP17 + &
PFRAC(:,JP_CH_RP18) * XRP18
PCTOTG(:,JP_AER_SOA3) = PCONC(:,JP_CH_RPR9)*XRPR9/ZCSTAVOG + &
PCONC(:,JP_CH_RP12)*XRP12/ZCSTAVOG
PFRAC(:,JP_CH_RPR9) = PCONC(:,JP_CH_RPR9) *XRPR9/ZCSTAVOG / PCTOTG(:,JP_AER_SOA3)
PFRAC(:,JP_CH_RP12) = PCONC(:,JP_CH_RP12) *XRP12/ZCSTAVOG / PCTOTG(:,JP_AER_SOA3)
PMI(:,JP_AER_SOA3) = PFRAC(:,JP_CH_RPR9) * XRPR9 + &
PFRAC(:,JP_CH_RP12) * XRP12
PCTOTG(:,JP_AER_SOA4) = PCONC(:,JP_CH_UR3) *XUR3/ZCSTAVOG + &
PCONC(:,JP_CH_UR23)*XUR23/ZCSTAVOG
PFRAC(:,JP_CH_UR3) = PCONC(:,JP_CH_UR3) *XUR3/ZCSTAVOG / PCTOTG(:,JP_AER_SOA4)
PFRAC(:,JP_CH_UR23)= PCONC(:,JP_CH_UR23) *XUR23/ZCSTAVOG / PCTOTG(:,JP_AER_SOA4)
PMI(:,JP_AER_SOA4) = PFRAC(:,JP_CH_UR3) * XUR3 + &
PFRAC(:,JP_CH_UR23) * XUR23
PCTOTG(:,JP_AER_SOA5) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG +&
PCONC(:,JP_CH_RPR3)*XRPR3/ZCSTAVOG +&
PCONC(:,JP_CH_AP7) *XAP7/ZCSTAVOG
PFRAC(:,JP_CH_UR17) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_RPR3) = PCONC(:,JP_CH_RPR3) *XRPR3/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_AP7) = PCONC(:,JP_CH_AP7) *XAP7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PMI(:,JP_AER_SOA5) = PFRAC(:,JP_CH_UR17) *XUR17 + &
PFRAC(:,JP_CH_RPR3) *XRPR3 + &
PFRAC(:,JP_CH_AP7) *XAP7
PCTOTG(:,JP_AER_SOA6) = PCONC(:,JP_CH_UR31) *XUR31/ZCSTAVOG +&
PCONC(:,JP_CH_AP1) *XAP1 /ZCSTAVOG +&
PCONC(:,JP_CH_AP6) *XAP6 /ZCSTAVOG +&
PCONC(:,JP_CH_UR22) *XUR22/ZCSTAVOG
PFRAC(:,JP_CH_UR31) = PCONC(:,JP_CH_UR31) *XUR31/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PFRAC(:,JP_CH_AP1) = PCONC(:,JP_CH_AP1) *XAP1/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PFRAC(:,JP_CH_AP6) = PCONC(:,JP_CH_AP6) *XAP6/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PFRAC(:,JP_CH_UR22) = PCONC(:,JP_CH_UR22)*XUR22/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PMI(:,JP_AER_SOA6) = PFRAC(:,JP_CH_UR31) *XUR31 + &
PFRAC(:,JP_CH_AP1) *XAP1 + &
PFRAC(:,JP_CH_AP6) *XAP6 + &
PFRAC(:,JP_CH_UR22) *XUR22
PCTOTG(:,JP_AER_SOA7) = PCONC(:,JP_CH_ADAC)*XADAC/ZCSTAVOG +&
PCONC(:,JP_CH_UR2) *XUR2 /ZCSTAVOG +&
PCONC(:,JP_CH_UR14)*XUR14/ZCSTAVOG +&
PCONC(:,JP_CH_UR27)*XUR27/ZCSTAVOG +&
PCONC(:,JP_CH_RPR4)*XRPR4/ZCSTAVOG +&
PCONC(:,JP_CH_RPR7)*XRPR7/ZCSTAVOG +&
PCONC(:,JP_CH_RP19)*XRP19/ZCSTAVOG +&
PCONC(:,JP_CH_RP14)*XRP14/ZCSTAVOG
PFRAC(:,JP_CH_ADAC) = PCONC(:,JP_CH_ADAC) *XADAC/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_UR2 ) = PCONC(:,JP_CH_UR2 ) *XUR2 /ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_UR14) = PCONC(:,JP_CH_UR14) *XUR14/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPR4) = PCONC(:,JP_CH_RPR4) *XRPR4/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPR7) = PCONC(:,JP_CH_RPR7) *XRPR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RP19) = PCONC(:,JP_CH_RP19) *XRP19/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RP14) = PCONC(:,JP_CH_RP14) *XRP14/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PMI(:,JP_AER_SOA7) = PFRAC(:,JP_CH_ADAC) * XADAC + &
PFRAC(:,JP_CH_UR2 ) * XUR2 + &
PFRAC(:,JP_CH_UR14) * XUR14 + &
PFRAC(:,JP_CH_RPR4) * XRPR4 + &
PFRAC(:,JP_CH_RPR7) * XRPR7 + &
PFRAC(:,JP_CH_RP19) * XRP19 + &
PFRAC(:,JP_CH_RP14) * XRP14
PCTOTG(:,JP_AER_SOA8) = PCONC(:,JP_CH_UR11) *XUR11/ZCSTAVOG + &
PCONC(:,JP_CH_UR15) *XUR15/ZCSTAVOG + &
PCONC(:,JP_CH_AP10) *XAP10/ZCSTAVOG
PFRAC(:,JP_CH_UR11) = PCONC(:,JP_CH_UR11) *XUR11/ZCSTAVOG / PCTOTG(:,JP_AER_SOA8)
PFRAC(:,JP_CH_UR15) = PCONC(:,JP_CH_UR15) *XUR15/ZCSTAVOG / PCTOTG(:,JP_AER_SOA8)
PFRAC(:,JP_CH_AP10) = PCONC(:,JP_CH_AP10) *XAP10/ZCSTAVOG / PCTOTG(:,JP_AER_SOA8)
PMI(:,JP_AER_SOA8) = PFRAC(:,JP_CH_UR11) *XUR11 + &
PFRAC(:,JP_CH_UR15) *XUR15 + &
PFRAC(:,JP_CH_AP10) *XAP10
PCTOTG(:,JP_AER_SOA9) = PCONC(:,JP_CH_UR20) *XUR20/ZCSTAVOG +&
PCONC(:,JP_CH_UR34) *XUR34/ZCSTAVOG +&
PCONC(:,JP_CH_AP11) *XAP11/ZCSTAVOG +&
PCONC(:,JP_CH_AP12) *XAP12/ZCSTAVOG +&
PCONC(:,JP_CH_UR26) *XUR26/ZCSTAVOG
PFRAC(:,JP_CH_UR20) = PCONC(:,JP_CH_UR20) *XUR20/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_UR34) = PCONC(:,JP_CH_UR34) *XUR34/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_AP11) = PCONC(:,JP_CH_AP11) *XAP11/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_AP12) = PCONC(:,JP_CH_AP12) *XAP12/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_UR26) = PCONC(:,JP_CH_UR26) *XUR26/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PMI(:,JP_AER_SOA9) = PFRAC(:,JP_CH_UR20)*XUR20 + &
PFRAC(:,JP_CH_UR34)*XUR34 + &
PFRAC(:,JP_CH_AP11)*XAP11 + &
PFRAC(:,JP_CH_AP12)*XAP12 + &
PFRAC(:,JP_CH_UR26)*XUR26
PCTOTG(:,JP_AER_SOA10) = PCONC(:,JP_CH_PAN8)*XPAN8/ZCSTAVOG +&
PCONC(:,JP_CH_UR5) *XUR5/ZCSTAVOG +&
PCONC(:,JP_CH_UR6) *XUR6/ZCSTAVOG +&
PCONC(:,JP_CH_UR7) *XUR7/ZCSTAVOG +&
PCONC(:,JP_CH_UR8) *XUR8/ZCSTAVOG +&
PCONC(:,JP_CH_AP8) *XAP8/ZCSTAVOG
PFRAC(:,JP_CH_UR5) = PCONC(:,JP_CH_UR5) *XUR5/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR6) = PCONC(:,JP_CH_UR6) *XUR6/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR7) = PCONC(:,JP_CH_UR7) *XUR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR8) = PCONC(:,JP_CH_UR8) *XUR8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_AP8) = PCONC(:,JP_CH_AP8) *XAP8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_PAN8) = PCONC(:,JP_CH_PAN8) *XPAN8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PMI(:,JP_AER_SOA10) = PFRAC(:,JP_CH_UR5) *XUR5 + &
PFRAC(:,JP_CH_UR6) *XUR6 + &
PFRAC(:,JP_CH_UR7) *XUR7 + &
PFRAC(:,JP_CH_UR8) *XUR8 + &
PFRAC(:,JP_CH_AP8) *XAP8 + &
PFRAC(:,JP_CH_PAN8) *XPAN8
END IF
END IF
IF (TRIM(CORGANIC) == 'MPMPO') THEN
IF (HSCHEME == "RELACS2") THEN ! ReLACS2 scheme
PCTOTG(:,JP_AER_SOA1) = PCONC(:,JP_CH_URG6)*XURG6/ZCSTAVOG
PFRAC(:,JP_CH_URG6) = 1.
PMI(:,JP_AER_SOA1) = PFRAC(:,JP_CH_URG6) * XURG6
PCTOTG(:,JP_AER_SOA2) = PCONC(:,JP_CH_URG7) *XURG7/ZCSTAVOG +&
PCONC(:,JP_CH_RPG7)*XRPG7/ZCSTAVOG +&
PCONC(:,JP_CH_RPR7)*XRPR7/ZCSTAVOG
PFRAC(:,JP_CH_URG7) = PCONC(:,JP_CH_URG7) *XURG7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RPG7) = PCONC(:,JP_CH_RPG7) *XRPG7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RPR7) = PCONC(:,JP_CH_RPR7) *XRPR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PMI(:,JP_AER_SOA2) = PFRAC(:,JP_CH_URG7) * XURG7 + &
PFRAC(:,JP_CH_RPG7) * XRPG7 + &
PFRAC(:,JP_CH_RPR7) * XRPR7
PCTOTG(:,JP_AER_SOA3) = PCONC(:,JP_CH_URG8)*XURG8/ZCSTAVOG
PFRAC(:,JP_CH_URG8) = 1.
PMI(:,JP_AER_SOA3) = PFRAC(:,JP_CH_URG8) * XURG8
PCTOTG(:,JP_AER_SOA4) = PCONC(:,JP_CH_URG9)*XURG9/ZCSTAVOG
PFRAC(:,JP_CH_URG9) = PCONC(:,JP_CH_URG9) *XURG9/ZCSTAVOG / PCTOTG(:,JP_AER_SOA4)
PMI(:,JP_AER_SOA4) = PFRAC(:,JP_CH_URG9) * XURG9
PCTOTG(:,JP_AER_SOA5) = PCONC(:,JP_CH_URG10)*XURG10/ZCSTAVOG +&
PCONC(:,JP_CH_AP7)* XAP7/ZCSTAVOG
PFRAC(:,JP_CH_URG10) = PCONC(:,JP_CH_URG10) * XURG10/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_AP7) = PCONC(:,JP_CH_AP7) * XAP7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PMI(:,JP_AER_SOA5) = PFRAC(:,JP_CH_URG10) * XURG10 + &
PFRAC(:,JP_CH_AP7) * XAP7
PCTOTG(:,JP_AER_SOA6) = PCONC(:,JP_CH_URG1) * XURG1/ZCSTAVOG
PFRAC(:,JP_CH_URG1) = PCONC(:,JP_CH_URG1) * XURG1/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PMI(:,JP_AER_SOA6) = PFRAC(:,JP_CH_URG1) * XURG1
PCTOTG(:,JP_AER_SOA7) = PCONC(:,JP_CH_URG2) * XURG2/ZCSTAVOG +&
PCONC(:,JP_CH_RPG2)* XRPG2/ZCSTAVOG +&
PCONC(:,JP_CH_UR26)* XUR26/ZCSTAVOG +&
PCONC(:,JP_CH_RP18)* XRP18/ZCSTAVOG
PFRAC(:,JP_CH_URG2) = PCONC(:,JP_CH_URG2) * XURG2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_UR26) = PCONC(:,JP_CH_UR26) * XUR26/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPG2) = PCONC(:,JP_CH_RPG2) * XRPG2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RP18) = PCONC(:,JP_CH_RP18) * XRP18/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PMI(:,JP_AER_SOA7) = PFRAC(:,JP_CH_URG2)* XURG2 + &
PFRAC(:,JP_CH_UR26)* XUR26 + &
PFRAC(:,JP_CH_RPG2)* XRPG2 + &
PFRAC(:,JP_CH_RP18)* XRP18
PCTOTG(:,JP_AER_SOA8) = PCONC(:,JP_CH_RPG3) *XRPG3/ZCSTAVOG
PFRAC(:,JP_CH_RPG3) = PCONC(:,JP_CH_RPG3) *XRPG3/ZCSTAVOG / PCTOTG(:,JP_AER_SOA8)
PMI(:,JP_AER_SOA8) = PFRAC(:,JP_CH_RPG3) *XRPG3
PCTOTG(:,JP_AER_SOA9) = PCONC(:,JP_CH_URG4) *XURG4/ZCSTAVOG + &
PCONC(:,JP_CH_UR8)* XUR8/ZCSTAVOG
PFRAC(:,JP_CH_URG4) = PCONC(:,JP_CH_URG4) * XURG4/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_UR8) = PCONC(:,JP_CH_UR8) * XUR8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PMI(:,JP_AER_SOA9) = PFRAC(:,JP_CH_URG4)*XURG4 + &
PFRAC(:,JP_CH_UR8)*XUR8
PCTOTG(:,JP_AER_SOA10) = PCONC(:,JP_CH_UR7)*XUR7/ZCSTAVOG +&
PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG
PFRAC(:,JP_CH_UR7)= PCONC(:,JP_CH_UR7)*XUR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR17) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PMI(:,JP_AER_SOA10) = PFRAC(:,JP_CH_UR7)*XUR7 + &
PFRAC(:,JP_CH_UR17)*XUR17
!
ELSE IF (HSCHEME == "RELACS3") THEN ! ReLACS3 scheme
PCTOTG(:,JP_AER_SOA1) = PCONC(:,JP_CH_URG6)*XURG6/ZCSTAVOG
PFRAC(:,JP_CH_URG6) = 1.
PMI(:,JP_AER_SOA1) = PFRAC(:,JP_CH_URG6) * XURG6
PCTOTG(:,JP_AER_SOA2) = PCONC(:,JP_CH_URG7) *XURG7/ZCSTAVOG +&
PCONC(:,JP_CH_RPG7)*XRPG7/ZCSTAVOG +&
PCONC(:,JP_CH_RPR7)*XRPR7/ZCSTAVOG
PFRAC(:,JP_CH_URG7) = PCONC(:,JP_CH_URG7) *XURG7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RPG7) = PCONC(:,JP_CH_RPG7) *XRPG7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RPR7) = PCONC(:,JP_CH_RPR7) *XRPR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PMI(:,JP_AER_SOA2) = PFRAC(:,JP_CH_URG7) * XURG7 + &
PFRAC(:,JP_CH_RPG7) * XRPG7 + &
PFRAC(:,JP_CH_RPR7) * XRPR7
PCTOTG(:,JP_AER_SOA3) = PCONC(:,JP_CH_URG8)*XURG8/ZCSTAVOG
PFRAC(:,JP_CH_URG8) = 1.
PMI(:,JP_AER_SOA3) = PFRAC(:,JP_CH_URG8) * XURG8
PCTOTG(:,JP_AER_SOA4) = PCONC(:,JP_CH_URG9)*XURG9/ZCSTAVOG
PFRAC(:,JP_CH_URG9) = PCONC(:,JP_CH_URG9) *XURG9/ZCSTAVOG / PCTOTG(:,JP_AER_SOA4)
PMI(:,JP_AER_SOA4) = PFRAC(:,JP_CH_URG9) * XURG9
PCTOTG(:,JP_AER_SOA5) = PCONC(:,JP_CH_URG10)*XURG10/ZCSTAVOG +&
PCONC(:,JP_CH_AP7)* XAP7/ZCSTAVOG
PFRAC(:,JP_CH_URG10) = PCONC(:,JP_CH_URG10) * XURG10/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_AP7) = PCONC(:,JP_CH_AP7) * XAP7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PMI(:,JP_AER_SOA5) = PFRAC(:,JP_CH_URG10) * XURG10 + &
PFRAC(:,JP_CH_AP7) * XAP7
PCTOTG(:,JP_AER_SOA6) = PCONC(:,JP_CH_UR21) * XUR21/ZCSTAVOG + &
PCONC(:,JP_CH_UR28) * XUR28/ZCSTAVOG
PFRAC(:,JP_CH_UR21) = PCONC(:,JP_CH_UR21) * XUR21/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PFRAC(:,JP_CH_UR28) = PCONC(:,JP_CH_UR28) * XUR28/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PMI(:,JP_AER_SOA6) = PFRAC(:,JP_CH_UR21) * XUR21 + &
PFRAC(:,JP_CH_UR28) * XUR28
PCTOTG(:,JP_AER_SOA7) = PCONC(:,JP_CH_URG2) * XURG2/ZCSTAVOG +&
PCONC(:,JP_CH_RPG2)* XRPG2/ZCSTAVOG +&
PCONC(:,JP_CH_UR26)* XUR26/ZCSTAVOG +&
PCONC(:,JP_CH_RP18)* XRP18/ZCSTAVOG
PFRAC(:,JP_CH_URG2) = PCONC(:,JP_CH_URG2) * XURG2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_UR26) = PCONC(:,JP_CH_UR26) * XUR26/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RPG2) = PCONC(:,JP_CH_RPG2) * XRPG2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RP18) = PCONC(:,JP_CH_RP18) * XRP18/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PMI(:,JP_AER_SOA7) = PFRAC(:,JP_CH_URG2)* XURG2 + &
PFRAC(:,JP_CH_UR26)* XUR26 + &
PFRAC(:,JP_CH_RPG2)* XRPG2 + &
PFRAC(:,JP_CH_RP18)* XRP18
PCTOTG(:,JP_AER_SOA8) = PCONC(:,JP_CH_RPG3) *XRPG3/ZCSTAVOG
PFRAC(:,JP_CH_RPG3) = PCONC(:,JP_CH_RPG3) *XRPG3/ZCSTAVOG / PCTOTG(:,JP_AER_SOA8)
PMI(:,JP_AER_SOA8) = PFRAC(:,JP_CH_RPG3) *XRPG3
PCTOTG(:,JP_AER_SOA9) = PCONC(:,JP_CH_URG4) *XURG4/ZCSTAVOG + &
PCONC(:,JP_CH_UR8)* XUR8/ZCSTAVOG
PFRAC(:,JP_CH_URG4) = PCONC(:,JP_CH_URG4) * XURG4/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_UR8) = PCONC(:,JP_CH_UR8) * XUR8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PMI(:,JP_AER_SOA9) = PFRAC(:,JP_CH_URG4)*XURG4 + &
PFRAC(:,JP_CH_UR8)*XUR8
PCTOTG(:,JP_AER_SOA10) = PCONC(:,JP_CH_UR7)*XUR7/ZCSTAVOG +&
PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG
PFRAC(:,JP_CH_UR7)= PCONC(:,JP_CH_UR7)*XUR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR17) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PMI(:,JP_AER_SOA10) = PFRAC(:,JP_CH_UR7)*XUR7 + &
PFRAC(:,JP_CH_UR17)*XUR17
!
ELSE ! CACM scheme
PCTOTG(:,JP_AER_SOA1) = PCONC(:,JP_CH_AP1) *XAP1/ZCSTAVOG +&
PCONC(:,JP_CH_AP6) *XAP6/ZCSTAVOG +&
PCONC(:,JP_CH_UR31)*XUR31/ZCSTAVOG
PFRAC(:,JP_CH_AP1) = PCONC(:,JP_CH_AP1) *XAP1/ZCSTAVOG / PCTOTG(:,JP_AER_SOA1)
PFRAC(:,JP_CH_AP6) = PCONC(:,JP_CH_AP6) *XAP6/ZCSTAVOG / PCTOTG(:,JP_AER_SOA1)
PFRAC(:,JP_CH_UR31) = PCONC(:,JP_CH_UR31) *XUR31/ZCSTAVOG / PCTOTG(:,JP_AER_SOA1)
PMI(:,JP_AER_SOA1) = PFRAC(:,JP_CH_AP1) * XAP1 + &
PFRAC(:,JP_CH_AP6) * XAP6 + &
PFRAC(:,JP_CH_UR31)* XUR31
PCTOTG(:,JP_AER_SOA2) = PCONC(:,JP_CH_UR2) *XUR2/ZCSTAVOG +&
PCONC(:,JP_CH_UR14) *XUR14/ZCSTAVOG +&
PCONC(:,JP_CH_ADAC) *XADAC/ZCSTAVOG +&
PCONC(:,JP_CH_RP14)*XRP14/ZCSTAVOG +&
PCONC(:,JP_CH_RP19)*XRP19/ZCSTAVOG +&
PCONC(:,JP_CH_RPR7)*XRPR7/ZCSTAVOG
PFRAC(:,JP_CH_UR2) = PCONC(:,JP_CH_UR2) *XUR2/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_UR14) = PCONC(:,JP_CH_UR14) *XUR14/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RP14) = PCONC(:,JP_CH_RP14) *XRP14/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RP19) = PCONC(:,JP_CH_RP19) *XRP19/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_RPR7) = PCONC(:,JP_CH_RPR7) *XRPR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PFRAC(:,JP_CH_ADAC) = PCONC(:,JP_CH_ADAC) *XADAC/ZCSTAVOG / PCTOTG(:,JP_AER_SOA2)
PMI(:,JP_AER_SOA2) = PFRAC(:,JP_CH_UR2) * XUR2 + &
PFRAC(:,JP_CH_UR14) * XUR14 + &
PFRAC(:,JP_CH_ADAC) * XADAC + &
PFRAC(:,JP_CH_RP14) * XRP14 + &
PFRAC(:,JP_CH_RP19) * XRP19 + &
PFRAC(:,JP_CH_RPR7) * XRPR7
PCTOTG(:,JP_AER_SOA3) = PCONC(:,JP_CH_AP10)*XAP10/ZCSTAVOG + &
PCONC(:,JP_CH_UR11)*XUR11/ZCSTAVOG + &
PCONC(:,JP_CH_UR15)*XUR15/ZCSTAVOG
PFRAC(:,JP_CH_AP10) = PCONC(:,JP_CH_AP10) *XAP10/ZCSTAVOG / PCTOTG(:,JP_AER_SOA3)
PFRAC(:,JP_CH_UR11) = PCONC(:,JP_CH_UR11) *XUR11/ZCSTAVOG / PCTOTG(:,JP_AER_SOA3)
PFRAC(:,JP_CH_UR15) = PCONC(:,JP_CH_UR15) *XUR15/ZCSTAVOG / PCTOTG(:,JP_AER_SOA3)
PMI(:,JP_AER_SOA3) = PFRAC(:,JP_CH_AP10) * XAP10 + &
PFRAC(:,JP_CH_UR11) * XUR15 + &
PFRAC(:,JP_CH_UR15) * XUR15
PCTOTG(:,JP_AER_SOA4) = PCONC(:,JP_CH_AP11)*XAP11/ZCSTAVOG + &
PCONC(:,JP_CH_AP12)*XAP12/ZCSTAVOG + &
PCONC(:,JP_CH_UR20)*XUR20/ZCSTAVOG + &
PCONC(:,JP_CH_UR34)*XUR34/ZCSTAVOG
PFRAC(:,JP_CH_AP11) = PCONC(:,JP_CH_AP11) *XAP11/ZCSTAVOG / PCTOTG(:,JP_AER_SOA4)
PFRAC(:,JP_CH_AP12) = PCONC(:,JP_CH_AP12) *XAP12/ZCSTAVOG / PCTOTG(:,JP_AER_SOA4)
PFRAC(:,JP_CH_UR20) = PCONC(:,JP_CH_UR20) *XUR20/ZCSTAVOG / PCTOTG(:,JP_AER_SOA4)
PFRAC(:,JP_CH_UR34) = PCONC(:,JP_CH_UR34) *XUR34/ZCSTAVOG / PCTOTG(:,JP_AER_SOA4)
PMI(:,JP_AER_SOA4) = PFRAC(:,JP_CH_AP11) * XAP11 + &
PFRAC(:,JP_CH_AP11) * XAP11 + &
PFRAC(:,JP_CH_UR20) * XUR20 + &
PFRAC(:,JP_CH_UR34) * XUR34
PCTOTG(:,JP_AER_SOA5) = PCONC(:,JP_CH_UR5)*XUR5/ZCSTAVOG + &
PCONC(:,JP_CH_UR6)*XUR6/ZCSTAVOG + &
PCONC(:,JP_CH_AP8)*XAP8/ZCSTAVOG + &
PCONC(:,JP_CH_AP7)* XAP7/ZCSTAVOG
PFRAC(:,JP_CH_UR5) = PCONC(:,JP_CH_UR5) * XUR5/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_UR6) = PCONC(:,JP_CH_UR6) * XUR6/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_AP7) = PCONC(:,JP_CH_AP7) * XAP7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PFRAC(:,JP_CH_AP8) = PCONC(:,JP_CH_AP8) * XAP8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA5)
PMI(:,JP_AER_SOA5) = PFRAC(:,JP_CH_UR5) * XUR5 + &
PFRAC(:,JP_CH_UR6) * XUR6 + &
PFRAC(:,JP_CH_AP8) * XAP8 + &
PFRAC(:,JP_CH_AP7) * XAP7
PCTOTG(:,JP_AER_SOA6) = PCONC(:,JP_CH_UR21) * XUR21/ZCSTAVOG + &
PCONC(:,JP_CH_UR28) * XUR28/ZCSTAVOG
PFRAC(:,JP_CH_UR21) = PCONC(:,JP_CH_UR21) * XUR21/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PFRAC(:,JP_CH_UR28) = PCONC(:,JP_CH_UR28) * XUR28/ZCSTAVOG / PCTOTG(:,JP_AER_SOA6)
PMI(:,JP_AER_SOA6) = PFRAC(:,JP_CH_UR21) * XUR21 + &
PFRAC(:,JP_CH_UR28) * XUR28
PCTOTG(:,JP_AER_SOA7) = PCONC(:,JP_CH_UR29)* XUR29/ZCSTAVOG +&
PCONC(:,JP_CH_UR26)* XUR26/ZCSTAVOG +&
PCONC(:,JP_CH_UR30)* XUR30/ZCSTAVOG +&
PCONC(:,JP_CH_RP13)* XRP13/ZCSTAVOG +&
PCONC(:,JP_CH_RP17)* XRP17/ZCSTAVOG +&
PCONC(:,JP_CH_RP18)* XRP18/ZCSTAVOG
PFRAC(:,JP_CH_UR29) = PCONC(:,JP_CH_UR29) * XUR29/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_UR26) = PCONC(:,JP_CH_UR26) * XUR26/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_UR30) = PCONC(:,JP_CH_UR30) * XUR30/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RP13) = PCONC(:,JP_CH_RP13) * XRP13/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RP17) = PCONC(:,JP_CH_RP17) * XRP17/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PFRAC(:,JP_CH_RP18) = PCONC(:,JP_CH_RP18) * XRP18/ZCSTAVOG / PCTOTG(:,JP_AER_SOA7)
PMI(:,JP_AER_SOA7) = PFRAC(:,JP_CH_UR29)* XUR29 + &
PFRAC(:,JP_CH_UR26)* XUR26 + &
PFRAC(:,JP_CH_UR30)* XUR30 + &
PFRAC(:,JP_CH_RP13)* XRP13 + &
PFRAC(:,JP_CH_RP17)* XRP17 + &
PFRAC(:,JP_CH_RP18)* XRP18
PCTOTG(:,JP_AER_SOA8) = PCONC(:,JP_CH_RPR9) *XRPR9/ZCSTAVOG + &
PCONC(:,JP_CH_RP12) *XRP12/ZCSTAVOG
PFRAC(:,JP_CH_RPR9) = PCONC(:,JP_CH_RPR9) *XRPR9/ZCSTAVOG / PCTOTG(:,JP_AER_SOA8)
PFRAC(:,JP_CH_RP12) = PCONC(:,JP_CH_RP12) *XRP12/ZCSTAVOG / PCTOTG(:,JP_AER_SOA8)
PMI(:,JP_AER_SOA8) = PFRAC(:,JP_CH_RPR9) *XRPR9 + &
PFRAC(:,JP_CH_RP12) *XRP12
PCTOTG(:,JP_AER_SOA9) = PCONC(:,JP_CH_UR3) *XUR3/ZCSTAVOG + &
PCONC(:,JP_CH_UR23)*XUR23/ZCSTAVOG + &
PCONC(:,JP_CH_UR8) *XUR8/ZCSTAVOG
PFRAC(:,JP_CH_UR3) = PCONC(:,JP_CH_UR3) * XUR3 /ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_UR23) = PCONC(:,JP_CH_UR23) * XUR23/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PFRAC(:,JP_CH_UR8) = PCONC(:,JP_CH_UR8) * XUR8/ZCSTAVOG / PCTOTG(:,JP_AER_SOA9)
PMI(:,JP_AER_SOA9) = PFRAC(:,JP_CH_UR3) *XUR3 + &
PFRAC(:,JP_CH_UR23)*XUR23+ &
PFRAC(:,JP_CH_UR8)*XUR8
PCTOTG(:,JP_AER_SOA10) = PCONC(:,JP_CH_UR7)*XUR7/ZCSTAVOG +&
PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG
PFRAC(:,JP_CH_UR7)= PCONC(:,JP_CH_UR7)*XUR7/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PFRAC(:,JP_CH_UR17) = PCONC(:,JP_CH_UR17) *XUR17/ZCSTAVOG / PCTOTG(:,JP_AER_SOA10)
PMI(:,JP_AER_SOA10) = PFRAC(:,JP_CH_UR7)*XUR7 + &
PFRAC(:,JP_CH_UR17)*XUR17
END IF
END IF
PCTOTA(:,JP_AER_SOA1,1) = PAERO(:,JP_CH_SOA1i)*PMI(:,JP_AER_SOA1)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA1,2) = PAERO(:,JP_CH_SOA1j)*PMI(:,JP_AER_SOA1)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA2,1) = PAERO(:,JP_CH_SOA2i)*PMI(:,JP_AER_SOA2)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA2,2) = PAERO(:,JP_CH_SOA2j)*PMI(:,JP_AER_SOA2)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA3,1) = PAERO(:,JP_CH_SOA3i)*PMI(:,JP_AER_SOA3)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA3,2) = PAERO(:,JP_CH_SOA3j)*PMI(:,JP_AER_SOA3)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA4,1) = PAERO(:,JP_CH_SOA4i)*PMI(:,JP_AER_SOA4)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA4,2) = PAERO(:,JP_CH_SOA4j)*PMI(:,JP_AER_SOA4)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA5,1) = PAERO(:,JP_CH_SOA5i)*PMI(:,JP_AER_SOA5)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA5,2) = PAERO(:,JP_CH_SOA5j)*PMI(:,JP_AER_SOA5)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA6,1) = PAERO(:,JP_CH_SOA6i)*PMI(:,JP_AER_SOA6)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA6,2) = PAERO(:,JP_CH_SOA6j)*PMI(:,JP_AER_SOA6)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA7,1) = PAERO(:,JP_CH_SOA7i)*PMI(:,JP_AER_SOA7)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA7,2) = PAERO(:,JP_CH_SOA7j)*PMI(:,JP_AER_SOA7)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA8,1) = PAERO(:,JP_CH_SOA8i)*PMI(:,JP_AER_SOA8)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA8,2) = PAERO(:,JP_CH_SOA8j)*PMI(:,JP_AER_SOA8)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA9,1) = PAERO(:,JP_CH_SOA9i)*PMI(:,JP_AER_SOA9)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA9,2) = PAERO(:,JP_CH_SOA9j)*PMI(:,JP_AER_SOA9)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA10,1) = PAERO(:,JP_CH_SOA10i)*PMI(:,JP_AER_SOA10)/ZCSTAVOG
PCTOTA(:,JP_AER_SOA10,2) = PAERO(:,JP_CH_SOA10j)*PMI(:,JP_AER_SOA10)/ZCSTAVOG
END IF
!
PCTOTA(:,:,:) = MAX(PCTOTA(:,:,:),XMNH_TINY)
!
!* 1.n transfer moment 0 from gas to aerosol variable
!
PM(:,1) = MAX(PAERO(:,JP_CH_M0i) * 1E+6, XMNH_TINY) ! convert from 1/cc to 1/m3
PM(:,4) = MAX(PAERO(:,JP_CH_M0j) * 1E+6, XMNH_TINY) ! convert from 1/cc to 1/m3
!
!
!* 1.n calculate moment 3 from total aerosol mass
!
PM(:,2) = 0.
PM(:,5) = 0.
DO JJ = 1,NSP+NCARB+NSOA
PM(:,2) = PM(:,2)+PCTOTA(:,JJ,1)/XFAC(JJ)
PM(:,5) = PM(:,5)+PCTOTA(:,JJ,2)/XFAC(JJ)
ENDDO
!* 1.n set moment 6
IF (LVARSIGI) THEN ! set M6 variable standard deviation
PM(:,3) = MAX(PAERO(:,JP_CH_M6i), XMNH_TINY)
ELSE ! fixed standard deviation
PM(:,3) = PM(:,1) &
* ( (PM(:,2)/PM(:,1))**(1./3.) &
* exp(-(3./2.)*log(XINISIGI)**2))**6 &
* exp(18.*log(XINISIGI)**2)
END IF
IF (LVARSIGJ) THEN ! set M6 variable standard deviation
PM(:,6) = MAX(PAERO(:,JP_CH_M6j), XMNH_TINY)
ELSE ! fixed standard deviation
PM(:,6) = PM(:,4) &
* ( (PM(:,5)/PM(:,4))**(1./3.) &
* exp(-(3./2.)*log(XINISIGJ)**2))**6 &
* exp(18.*log(XINISIGJ)**2)
END IF
!*********************************************
! Calcul de PCCTOT
!**********************************************
DO JN=1,JPMODE
ZSUM(:)=0.
DO JJ=1,NSP+NCARB+NSOA
ZSUM(:)=ZSUM(:)+PCTOTA(:,JJ,JN)/XRHOI(JJ)
END DO
DO JJ=1,NSP+NCARB+NSOA
PCCTOT(:,JJ,JN)=PCTOTA(:,JJ,JN)/(XRHOI(JJ)*ZSUM(:))
ENDDO
END DO
! compute the new particle density
DO JN=1,JPMODE
PRHOP0(:,JN)=0.
DO JJ=1,NSP+NCARB+NSOA
PRHOP0(:,JN)=PRHOP0(:,JN)+PCCTOT(:,JJ,JN)*XRHOI(JJ)
ENDDO
ENDDO
!
!* 1.n set moment 6 (fixed or variable)
DO JN=1,JPMODE
IF (JN .EQ. 1) THEN
IF (LVARSIGI) THEN ! variable dispersion for mode 1
ZSIGMA(:)=PM(:,NM3(JN))**2/(PM(:,NM0(JN))*PM(:,NM6(JN)))
ZSIGMA(:)=MIN(1-1E-10,ZSIGMA(:))
ZSIGMA(:)=MAX(1E-10,ZSIGMA(:))
ZSIGMA(:)= LOG(ZSIGMA(:))
ZSIGMA(:)= EXP(1./3.*SQRT(-ZSIGMA(:)))
WHERE (ZSIGMA(:) > XSIGIMAX)
ZSIGMA(:) = XSIGIMAX
END WHERE
WHERE (ZSIGMA(:) < XSIGIMIN)
ZSIGMA(:) = XSIGIMIN
END WHERE
ELSE ! fixed dispersion for mode 1
ZSIGMA(:) = XINISIGI
END IF
END IF
!
IF (JN .EQ. 2) THEN
IF (LVARSIGJ) THEN ! variable dispersion for mode 2
ZSIGMA(:)=PM(:,NM3(JN))**2/(PM(:,NM0(JN))*PM(:,NM6(JN)))
ZSIGMA(:)=MIN(1-1E-10,ZSIGMA(:))
ZSIGMA(:)=MAX(1E-10,ZSIGMA(:))
ZSIGMA(:)= LOG(ZSIGMA(:))
ZSIGMA(:)= EXP(1./3.*SQRT(-ZSIGMA(:)))
WHERE (ZSIGMA(:) > XSIGJMAX)
ZSIGMA(:) = XSIGJMAX
END WHERE
WHERE (ZSIGMA(:) < XSIGJMIN)
ZSIGMA(:) = XSIGJMIN
END WHERE
ELSE ! fixed dispersion for mode 2
ZSIGMA(:) = XINISIGJ
END IF
END IF
PSIG0(:,JN) = LOG(ZSIGMA(:))
PN0(:,JN) = PM(:,NM0(JN))
PM(:,NM6(JN)) = PM(:,NM0(JN)) &
* ( (PM(:,NM3(JN))/PM(:,NM0(JN)))**(1./3.) * exp(-(3./2.)*log(ZSIGMA(:))**2))**6 &
* exp(18.*log(ZSIGMA(:))**2)
PRG0(:,JN)= (PM(:,NM3(JN))**4/(PM(:,NM6(JN)) * PM(:,NM0(JN))**3))**(1./6.)
PMASK(:,JN) = 0.
WHERE ( (PM(:,NM0(JN)) > ZPMIN(NM0(JN))).AND.&
(PM(:,NM3(JN)) > ZPMIN(NM3(JN))).AND.&
(PM(:,NM6(JN)) > ZPMIN(NM6(JN))) )
PMASK(:,JN) = 1.
END WHERE
ENDDO
ELSE
!
!* 2. TRANSFER FROM AEROSOL TO GAS MODULE
! ------------------------------------
!
!
!* 2.n transfer aerosol mass from aerosol to gas variables
!
! gas phase species
! PCTOTG is zero for H2SO4 <-> all H2SO4 is in AP phase
PCONC(:,JP_CH_H2SO4) = PCTOTG(:,JP_AER_SO4g) *ZCSTAVOG / XH2SO4
PCONC(:,JP_CH_HNO3) = PCTOTG(:,JP_AER_NO3g) *ZCSTAVOG / XHNO3
PCONC(:,JP_CH_NH3) = PCTOTG(:,JP_AER_NH3g) *ZCSTAVOG / XNH3
!
! aerosol phase
PAERO(:,JP_CH_SO4i) = PCTOTA(:,JP_AER_SO4,1)*ZCSTAVOG / PMI(:,JP_AER_SO4)
PAERO(:,JP_CH_SO4j) = PCTOTA(:,JP_AER_SO4,2)*ZCSTAVOG / PMI(:,JP_AER_SO4)
PAERO(:,JP_CH_NO3i) = PCTOTA(:,JP_AER_NO3,1)*ZCSTAVOG / PMI(:,JP_AER_NO3)
PAERO(:,JP_CH_NO3j) = PCTOTA(:,JP_AER_NO3,2)*ZCSTAVOG / PMI(:,JP_AER_NO3)
PAERO(:,JP_CH_NH3i) = PCTOTA(:,JP_AER_NH3,1)*ZCSTAVOG / PMI(:,JP_AER_NH3)
PAERO(:,JP_CH_NH3j) = PCTOTA(:,JP_AER_NH3,2)*ZCSTAVOG / PMI(:,JP_AER_NH3)
!
! water
PAERO(:,JP_CH_H2Oi) = PCTOTA(:,JP_AER_H2O,1)*ZCSTAVOG / PMI(:,JP_AER_H2O)
PAERO(:,JP_CH_H2Oj) = PCTOTA(:,JP_AER_H2O,2)*ZCSTAVOG / PMI(:,JP_AER_H2O)
!
! primary organic carbon
PAERO(:,JP_CH_OCi) = PCTOTA(:,JP_AER_OC,1)*ZCSTAVOG / PMI(:,JP_AER_OC)
PAERO(:,JP_CH_OCj) = PCTOTA(:,JP_AER_OC,2)*ZCSTAVOG / PMI(:,JP_AER_OC)
!
! primary black carbon
PAERO(:,JP_CH_BCi) = PCTOTA(:,JP_AER_BC,1)*ZCSTAVOG / PMI(:,JP_AER_BC)
PAERO(:,JP_CH_BCj) = PCTOTA(:,JP_AER_BC,2)*ZCSTAVOG / PMI(:,JP_AER_BC)
! dust
PAERO(:,JP_CH_DSTi) = PCTOTA(:,JP_AER_DST,1)*ZCSTAVOG / PMI(:,JP_AER_DST)
PAERO(:,JP_CH_DSTj) = PCTOTA(:,JP_AER_DST,2)*ZCSTAVOG / PMI(:,JP_AER_DST)
IF (NSOA .EQ. 10) THEN
! Secondary organic carbon
PAERO(:,JP_CH_SOA1i) = PCTOTA(:,JP_AER_SOA1,1)*ZCSTAVOG / PMI(:,JP_AER_SOA1)
PAERO(:,JP_CH_SOA1j) = PCTOTA(:,JP_AER_SOA1,2)*ZCSTAVOG / PMI(:,JP_AER_SOA1)
PAERO(:,JP_CH_SOA2i) = PCTOTA(:,JP_AER_SOA2,1)*ZCSTAVOG / PMI(:,JP_AER_SOA2)
PAERO(:,JP_CH_SOA2j) = PCTOTA(:,JP_AER_SOA2,2)*ZCSTAVOG / PMI(:,JP_AER_SOA2)
PAERO(:,JP_CH_SOA3i) = PCTOTA(:,JP_AER_SOA3,1)*ZCSTAVOG / PMI(:,JP_AER_SOA3)
PAERO(:,JP_CH_SOA3j) = PCTOTA(:,JP_AER_SOA3,2)*ZCSTAVOG / PMI(:,JP_AER_SOA3)
PAERO(:,JP_CH_SOA4i) = PCTOTA(:,JP_AER_SOA4,1)*ZCSTAVOG / PMI(:,JP_AER_SOA4)
PAERO(:,JP_CH_SOA4j) = PCTOTA(:,JP_AER_SOA4,2)*ZCSTAVOG / PMI(:,JP_AER_SOA4)
PAERO(:,JP_CH_SOA5i) = PCTOTA(:,JP_AER_SOA5,1)*ZCSTAVOG / PMI(:,JP_AER_SOA5)
PAERO(:,JP_CH_SOA5j) = PCTOTA(:,JP_AER_SOA5,2)*ZCSTAVOG / PMI(:,JP_AER_SOA5)
PAERO(:,JP_CH_SOA6i) = PCTOTA(:,JP_AER_SOA6,1)*ZCSTAVOG / PMI(:,JP_AER_SOA6)
PAERO(:,JP_CH_SOA6j) = PCTOTA(:,JP_AER_SOA6,2)*ZCSTAVOG / PMI(:,JP_AER_SOA6)
PAERO(:,JP_CH_SOA7i) = PCTOTA(:,JP_AER_SOA7,1)*ZCSTAVOG / PMI(:,JP_AER_SOA7)
PAERO(:,JP_CH_SOA7j) = PCTOTA(:,JP_AER_SOA7,2)*ZCSTAVOG / PMI(:,JP_AER_SOA7)
PAERO(:,JP_CH_SOA8i) = PCTOTA(:,JP_AER_SOA8,1)*ZCSTAVOG / PMI(:,JP_AER_SOA8)
PAERO(:,JP_CH_SOA8j) = PCTOTA(:,JP_AER_SOA8,2)*ZCSTAVOG / PMI(:,JP_AER_SOA8)
PAERO(:,JP_CH_SOA9i) = PCTOTA(:,JP_AER_SOA9,1)*ZCSTAVOG / PMI(:,JP_AER_SOA9)
PAERO(:,JP_CH_SOA9j) = PCTOTA(:,JP_AER_SOA9,2)*ZCSTAVOG / PMI(:,JP_AER_SOA9)
PAERO(:,JP_CH_SOA10i) = PCTOTA(:,JP_AER_SOA10,1)*ZCSTAVOG / PMI(:,JP_AER_SOA10)
PAERO(:,JP_CH_SOA10j) = PCTOTA(:,JP_AER_SOA10,2)*ZCSTAVOG / PMI(:,JP_AER_SOA10)
IF (TRIM(CORGANIC) == 'PUN') THEN
IF (HSCHEME == "RELACS2") THEN ! ReLACS2 scheme
PCONC(:,JP_CH_URG1) = PFRAC(:,JP_CH_URG1) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XURG1
PCONC(:,JP_CH_URG2) = PFRAC(:,JP_CH_URG2) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XURG2
PCONC(:,JP_CH_RPG2) = PFRAC(:,JP_CH_RPG2) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRPG2
PCONC(:,JP_CH_RP18) = PFRAC(:,JP_CH_RP18) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRP18
PCONC(:,JP_CH_RPG3) = PFRAC(:,JP_CH_RPG3) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XRPG3
PCONC(:,JP_CH_URG4) = PFRAC(:,JP_CH_URG4) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XURG4
PCONC(:,JP_CH_UR17) = PFRAC(:,JP_CH_UR17) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XUR17
PCONC(:,JP_CH_RPR3) = PFRAC(:,JP_CH_RPR3) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XRPR3
PCONC(:,JP_CH_AP7) = PFRAC(:,JP_CH_AP7) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XAP7
PCONC(:,JP_CH_UR22) = PFRAC(:,JP_CH_UR22) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XUR22
PCONC(:,JP_CH_URG6) = PFRAC(:,JP_CH_URG6) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XURG6
PCONC(:,JP_CH_URG7) = PFRAC(:,JP_CH_URG7) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XURG7
PCONC(:,JP_CH_RPG7) = PFRAC(:,JP_CH_RPG7) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPG7
PCONC(:,JP_CH_RPR4) = PFRAC(:,JP_CH_RPR4) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPR4
PCONC(:,JP_CH_RPR7) = PFRAC(:,JP_CH_RPR7) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPR7
PCONC(:,JP_CH_URG8) = PFRAC(:,JP_CH_URG8) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XURG8
PCONC(:,JP_CH_URG9) = PFRAC(:,JP_CH_URG9) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XURG9
PCONC(:,JP_CH_UR26) = PFRAC(:,JP_CH_UR26) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR26
PCONC(:,JP_CH_URG10) = PFRAC(:,JP_CH_URG10)* PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XURG10
PCONC(:,JP_CH_UR7) = PFRAC(:,JP_CH_UR7) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR7
PCONC(:,JP_CH_UR8) = PFRAC(:,JP_CH_UR8) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR8
PCONC(:,JP_CH_PAN8) = PFRAC(:,JP_CH_PAN8) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XPAN8
!
ELSE IF (HSCHEME == "RELACS3") THEN ! ReLACS3 scheme
PCONC(:,JP_CH_UR21) = PFRAC(:,JP_CH_UR21) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XUR21
PCONC(:,JP_CH_UR28) = PFRAC(:,JP_CH_UR28) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XUR28
PCONC(:,JP_CH_URG2) = PFRAC(:,JP_CH_URG2) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XURG2
PCONC(:,JP_CH_RPG2) = PFRAC(:,JP_CH_RPG2) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRPG2
PCONC(:,JP_CH_RP18) = PFRAC(:,JP_CH_RP18) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRP18
PCONC(:,JP_CH_RPG3) = PFRAC(:,JP_CH_RPG3) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XRPG3
PCONC(:,JP_CH_URG4) = PFRAC(:,JP_CH_URG4) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XURG4
PCONC(:,JP_CH_UR17) = PFRAC(:,JP_CH_UR17) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XUR17
PCONC(:,JP_CH_RPR3) = PFRAC(:,JP_CH_RPR3) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XRPR3
PCONC(:,JP_CH_AP7) = PFRAC(:,JP_CH_AP7) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XAP7
PCONC(:,JP_CH_UR22) = PFRAC(:,JP_CH_UR22) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XUR22
PCONC(:,JP_CH_URG6) = PFRAC(:,JP_CH_URG6) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XURG6
PCONC(:,JP_CH_URG7) = PFRAC(:,JP_CH_URG7) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XURG7
PCONC(:,JP_CH_RPG7) = PFRAC(:,JP_CH_RPG7) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPG7
PCONC(:,JP_CH_RPR4) = PFRAC(:,JP_CH_RPR4) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPR4
PCONC(:,JP_CH_RPR7) = PFRAC(:,JP_CH_RPR7) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPR7
PCONC(:,JP_CH_URG8) = PFRAC(:,JP_CH_URG8) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XURG8
PCONC(:,JP_CH_URG9) = PFRAC(:,JP_CH_URG9) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XURG9
PCONC(:,JP_CH_UR26) = PFRAC(:,JP_CH_UR26) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR26
PCONC(:,JP_CH_URG10) = PFRAC(:,JP_CH_URG10)* PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XURG10
PCONC(:,JP_CH_UR7) = PFRAC(:,JP_CH_UR7) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR7
PCONC(:,JP_CH_UR8) = PFRAC(:,JP_CH_UR8) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR8
PCONC(:,JP_CH_PAN8) = PFRAC(:,JP_CH_PAN8) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XPAN8
!
ELSE ! CACM scheme
PCONC(:,JP_CH_UR21) = PFRAC(:,JP_CH_UR21) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XUR21
PCONC(:,JP_CH_UR28) = PFRAC(:,JP_CH_UR28) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XUR28
PCONC(:,JP_CH_UR29) = PFRAC(:,JP_CH_UR29) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XUR29
PCONC(:,JP_CH_UR30) = PFRAC(:,JP_CH_UR30) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XUR30
PCONC(:,JP_CH_RP13) = PFRAC(:,JP_CH_RP13) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRP13
PCONC(:,JP_CH_RP17) = PFRAC(:,JP_CH_RP17) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRP17
PCONC(:,JP_CH_RP18) = PFRAC(:,JP_CH_RP18) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRP18
PCONC(:,JP_CH_RPR9) = PFRAC(:,JP_CH_RPR9) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XRPR9
PCONC(:,JP_CH_RP12) = PFRAC(:,JP_CH_RP12) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XRP12
PCONC(:,JP_CH_UR3 ) = PFRAC(:,JP_CH_UR3 ) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XUR3
PCONC(:,JP_CH_UR23) = PFRAC(:,JP_CH_UR23) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XUR23
PCONC(:,JP_CH_UR17) = PFRAC(:,JP_CH_UR17) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XUR17
PCONC(:,JP_CH_RPR3) = PFRAC(:,JP_CH_RPR3) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XRPR3
PCONC(:,JP_CH_AP7) = PFRAC(:,JP_CH_AP7) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XAP7
PCONC(:,JP_CH_UR22) = PFRAC(:,JP_CH_UR22) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XUR22
PCONC(:,JP_CH_UR31) = PFRAC(:,JP_CH_UR31) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XUR31
PCONC(:,JP_CH_AP1) = PFRAC(:,JP_CH_AP1 ) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XAP1
PCONC(:,JP_CH_AP6) = PFRAC(:,JP_CH_AP6 ) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XAP6
PCONC(:,JP_CH_ADAC) = PFRAC(:,JP_CH_ADAC) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XADAC
PCONC(:,JP_CH_UR14) = PFRAC(:,JP_CH_UR14) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XUR14
PCONC(:,JP_CH_UR27) = PFRAC(:,JP_CH_UR27) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XUR27
PCONC(:,JP_CH_UR2 ) = PFRAC(:,JP_CH_UR2 ) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XUR2
PCONC(:,JP_CH_RP14) = PFRAC(:,JP_CH_RP14) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRP14
PCONC(:,JP_CH_RP19) = PFRAC(:,JP_CH_RP19) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRP19
PCONC(:,JP_CH_RPR4) = PFRAC(:,JP_CH_RPR4) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPR4
PCONC(:,JP_CH_RPR7) = PFRAC(:,JP_CH_RPR7) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPR7
PCONC(:,JP_CH_UR11) = PFRAC(:,JP_CH_UR11) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XUR11
PCONC(:,JP_CH_UR15) = PFRAC(:,JP_CH_UR15) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XUR15
PCONC(:,JP_CH_AP10) = PFRAC(:,JP_CH_AP10) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XAP10
PCONC(:,JP_CH_UR20) = PFRAC(:,JP_CH_UR20) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR20
PCONC(:,JP_CH_UR34) = PFRAC(:,JP_CH_UR34) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR34
PCONC(:,JP_CH_AP11) = PFRAC(:,JP_CH_AP11) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XAP11
PCONC(:,JP_CH_AP12) = PFRAC(:,JP_CH_AP12) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XAP12
PCONC(:,JP_CH_UR26) = PFRAC(:,JP_CH_UR26) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR26
PCONC(:,JP_CH_UR5) = PFRAC(:,JP_CH_UR5) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR5
PCONC(:,JP_CH_UR6) = PFRAC(:,JP_CH_UR6) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR6
PCONC(:,JP_CH_UR7) = PFRAC(:,JP_CH_UR7) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR7
PCONC(:,JP_CH_UR8) = PFRAC(:,JP_CH_UR8) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR8
PCONC(:,JP_CH_AP8) = PFRAC(:,JP_CH_AP8) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XAP8
PCONC(:,JP_CH_PAN8) = PFRAC(:,JP_CH_PAN8) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XPAN8
END IF
END IF
!
IF (TRIM(CORGANIC) == 'MPMPO') THEN
IF (HSCHEME == "RELACS2") THEN ! ReLACS2 scheme
PCONC(:,JP_CH_URG6) = PFRAC(:,JP_CH_URG6) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XURG6
PCONC(:,JP_CH_URG7) = PFRAC(:,JP_CH_URG7) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XURG7
PCONC(:,JP_CH_RPR7) = PFRAC(:,JP_CH_RPR7) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRPR7
PCONC(:,JP_CH_RPG7) = PFRAC(:,JP_CH_RPG7) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRPG7
PCONC(:,JP_CH_URG8) = PFRAC(:,JP_CH_URG8) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XURG8
PCONC(:,JP_CH_URG9) = PFRAC(:,JP_CH_URG9) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XURG9
PCONC(:,JP_CH_URG10) = PFRAC(:,JP_CH_URG10) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XURG10
PCONC(:,JP_CH_AP7) = PFRAC(:,JP_CH_AP7) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XAP7
PCONC(:,JP_CH_URG1) = PFRAC(:,JP_CH_URG1) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XURG1
PCONC(:,JP_CH_URG2) = PFRAC(:,JP_CH_URG2) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XURG2
PCONC(:,JP_CH_RPG2) = PFRAC(:,JP_CH_RPG2) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPG2
PCONC(:,JP_CH_RP18) = PFRAC(:,JP_CH_RP18) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRP18
PCONC(:,JP_CH_UR26) = PFRAC(:,JP_CH_UR26) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XUR26
PCONC(:,JP_CH_RPG3) = PFRAC(:,JP_CH_RPG3) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XRPG3
PCONC(:,JP_CH_URG4) = PFRAC(:,JP_CH_URG4) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XURG4
PCONC(:,JP_CH_UR8) = PFRAC(:,JP_CH_UR8) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR8
PCONC(:,JP_CH_UR7) = PFRAC(:,JP_CH_UR7)* PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR7
PCONC(:,JP_CH_UR17) = PFRAC(:,JP_CH_UR17) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR17
!
ELSE IF (HSCHEME == "RELACS3") THEN ! ReLACS3 scheme
PCONC(:,JP_CH_URG6) = PFRAC(:,JP_CH_URG6) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XURG6
PCONC(:,JP_CH_URG7) = PFRAC(:,JP_CH_URG7) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XURG7
PCONC(:,JP_CH_RPR7) = PFRAC(:,JP_CH_RPR7) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRPR7
PCONC(:,JP_CH_RPG7) = PFRAC(:,JP_CH_RPG7) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRPG7
PCONC(:,JP_CH_URG8) = PFRAC(:,JP_CH_URG8) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XURG8
PCONC(:,JP_CH_URG9) = PFRAC(:,JP_CH_URG9) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XURG9
PCONC(:,JP_CH_URG10) = PFRAC(:,JP_CH_URG10) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XURG10
PCONC(:,JP_CH_AP7) = PFRAC(:,JP_CH_AP7) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XAP7
PCONC(:,JP_CH_UR21) = PFRAC(:,JP_CH_UR21) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XUR21
PCONC(:,JP_CH_UR28) = PFRAC(:,JP_CH_UR28) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XUR28
PCONC(:,JP_CH_URG2) = PFRAC(:,JP_CH_URG2) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XURG2
PCONC(:,JP_CH_RPG2) = PFRAC(:,JP_CH_RPG2) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRPG2
PCONC(:,JP_CH_RP18) = PFRAC(:,JP_CH_RP18) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRP18
PCONC(:,JP_CH_UR26) = PFRAC(:,JP_CH_UR26) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XUR26
PCONC(:,JP_CH_RPG3) = PFRAC(:,JP_CH_RPG3) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XRPG3
PCONC(:,JP_CH_URG4) = PFRAC(:,JP_CH_URG4) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XURG4
PCONC(:,JP_CH_UR8) = PFRAC(:,JP_CH_UR8) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR8
PCONC(:,JP_CH_UR7) = PFRAC(:,JP_CH_UR7)* PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR7
PCONC(:,JP_CH_UR17) = PFRAC(:,JP_CH_UR17) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR17
!
ELSE ! CACM scheme
PCONC(:,JP_CH_UR31) = PFRAC(:,JP_CH_UR31) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XUR31
PCONC(:,JP_CH_AP1) = PFRAC(:,JP_CH_AP1) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XAP1
PCONC(:,JP_CH_AP6) = PFRAC(:,JP_CH_AP6) * PCTOTG(:,JP_AER_SOA1) * ZCSTAVOG / XAP6
PCONC(:,JP_CH_ADAC) = PFRAC(:,JP_CH_ADAC) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XADAC
PCONC(:,JP_CH_RPR7) = PFRAC(:,JP_CH_RPR7) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRPR7
PCONC(:,JP_CH_UR2) = PFRAC(:,JP_CH_UR2) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XUR2
PCONC(:,JP_CH_UR14) = PFRAC(:,JP_CH_UR14) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XUR14
PCONC(:,JP_CH_UR27) = PFRAC(:,JP_CH_UR27) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XUR27
PCONC(:,JP_CH_RP14) = PFRAC(:,JP_CH_RP14) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRP14
PCONC(:,JP_CH_RP19) = PFRAC(:,JP_CH_RP19) * PCTOTG(:,JP_AER_SOA2) * ZCSTAVOG / XRP19
PCONC(:,JP_CH_UR11) = PFRAC(:,JP_CH_UR11) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XUR11
PCONC(:,JP_CH_UR15) = PFRAC(:,JP_CH_UR15) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XUR15
PCONC(:,JP_CH_AP10) = PFRAC(:,JP_CH_AP10) * PCTOTG(:,JP_AER_SOA3) * ZCSTAVOG / XAP10
PCONC(:,JP_CH_UR20) = PFRAC(:,JP_CH_UR20) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XUR20
PCONC(:,JP_CH_UR34) = PFRAC(:,JP_CH_UR34) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XUR34
PCONC(:,JP_CH_AP11) = PFRAC(:,JP_CH_AP11) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XAP11
PCONC(:,JP_CH_AP12) = PFRAC(:,JP_CH_AP12) * PCTOTG(:,JP_AER_SOA4) * ZCSTAVOG / XAP12
PCONC(:,JP_CH_UR5) = PFRAC(:,JP_CH_UR5) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XUR5
PCONC(:,JP_CH_UR6) = PFRAC(:,JP_CH_UR6) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XUR6
PCONC(:,JP_CH_AP7) = PFRAC(:,JP_CH_AP7) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XAP7
PCONC(:,JP_CH_AP8) = PFRAC(:,JP_CH_AP8) * PCTOTG(:,JP_AER_SOA5) * ZCSTAVOG / XAP8
PCONC(:,JP_CH_UR21) = PFRAC(:,JP_CH_UR21) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XUR21
PCONC(:,JP_CH_UR28) = PFRAC(:,JP_CH_UR28) * PCTOTG(:,JP_AER_SOA6) * ZCSTAVOG / XUR28
PCONC(:,JP_CH_UR29) = PFRAC(:,JP_CH_UR29) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XUR29
PCONC(:,JP_CH_UR26) = PFRAC(:,JP_CH_UR26) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XUR26
PCONC(:,JP_CH_UR30) = PFRAC(:,JP_CH_UR30) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XUR30
PCONC(:,JP_CH_RP13) = PFRAC(:,JP_CH_RP13) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRP13
PCONC(:,JP_CH_RP17) = PFRAC(:,JP_CH_RP17) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRP17
PCONC(:,JP_CH_RP18) = PFRAC(:,JP_CH_RP18) * PCTOTG(:,JP_AER_SOA7) * ZCSTAVOG / XRP18
PCONC(:,JP_CH_RPR9) = PFRAC(:,JP_CH_RPR9) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XRPR9
PCONC(:,JP_CH_RP12) = PFRAC(:,JP_CH_RP12) * PCTOTG(:,JP_AER_SOA8) * ZCSTAVOG / XRP12
PCONC(:,JP_CH_UR3) = PFRAC(:,JP_CH_UR3) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR3
PCONC(:,JP_CH_UR23) = PFRAC(:,JP_CH_UR23) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR23
PCONC(:,JP_CH_UR8) = PFRAC(:,JP_CH_UR8) * PCTOTG(:,JP_AER_SOA9) * ZCSTAVOG / XUR8
PCONC(:,JP_CH_UR7) = PFRAC(:,JP_CH_UR7) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR7
PCONC(:,JP_CH_UR17) = PFRAC(:,JP_CH_UR17) * PCTOTG(:,JP_AER_SOA10) * ZCSTAVOG / XUR17
END IF
END IF
END IF
!
!* 2.n transfer moment 0 and 6 back to gas variables
!
PAERO(:,JP_CH_M0i) = PM(:,1) * 1E-6 ! convert from 1/m3 to 1/cc
PAERO(:,JP_CH_M0j) = PM(:,4) * 1E-6 ! convert from 1/m3 to 1/cc
IF (LVARSIGI) PAERO(:,JP_CH_M6i) = PM(:,3)
IF (LVARSIGJ) PAERO(:,JP_CH_M6j) = PM(:,6)
!
!* 2.n transfer N, SIG, RG, RHOP
DO JN=1,JPMODE
PN0(:,JN) =PM(:,NM0(JN))
PRG0(:,JN)=PM(:,NM3(JN))**(2./3.) &
/ (PM(:,NM0(JN))**(0.5)*PM(:,NM6(JN))**(1./6.))
!
!attention, le xsig0 represente en realite ln(sigma)
!
PSIG0(:,JN)=1./3.*sqrt(-log(PM(:,NM3(JN))**2/(PM(:,NM0(JN))*PM(:,NM6(JN)))))
ENDDO
END IF
!
!
END SUBROUTINE CH_AER_TRANS
!