Skip to content
Snippets Groups Projects
Commit 0413cd3b authored by RODIER Quentin's avatar RODIER Quentin
Browse files

P.Tulet 11/07/2024: bugfix anthropic aerosols flux

parent ddc26937
No related branches found
No related tags found
No related merge requests found
......@@ -140,11 +140,24 @@ IF (I_CH_DSTi ==-999) CALL ABOR1_SFX ('WRONG VALUE FOR I_CH_DSTi ')
IF (I_CH_DSTj ==-999) CALL ABOR1_SFX ('WRONG VALUE FOR I_CH_DSTj ')
ZMI(:) = 250.
ZMI(JP_AER_SO4) = 98.
ZMI(JP_AER_NO3) = 63.
ZMI(JP_AER_NH3) = 17.
ZMI(JP_AER_H2O) = 18.
ZMI(JP_AER_DST) = 100.
ZMI(JP_AER_SO4) = 98.
ZMI(JP_AER_NO3) = 63.
ZMI(JP_AER_NH3) = 17.
ZMI(JP_AER_H2O) = 18.
ZMI(JP_AER_BC) = 12.
ZMI(JP_AER_DST) = 100.
IF (NSOA .EQ. 10) THEN
ZMI(JP_AER_SOA1) = 88.
ZMI(JP_AER_SOA2) = 180.
ZMI(JP_AER_SOA3) = 1.5374857E+02
ZMI(JP_AER_SOA4) = 1.9586780E+02
ZMI(JP_AER_SOA5) = 195.
ZMI(JP_AER_SOA6) = 195.
ZMI(JP_AER_SOA7) = 165.
ZMI(JP_AER_SOA8) = 195.
ZMI(JP_AER_SOA9) = 270.
ZMI(JP_AER_SOA10) = 210.
END IF
! Aerosol Density
! Cf Ackermann (all to black carbon except water)
......@@ -181,52 +194,36 @@ IF ((LCO2PM).AND.(PRESENT(PFCO))) THEN
ZVALBC= 5.* 0.6E-10 / 0.4E-8 ! CO / BC conversion factor
ZVALOC= 5.* 0.3E-10 / 0.4E-8 ! CO / POM conversion factor
ZFCO(:) = PFCO(:)
PFLUX(:,I_CH_OCi) = PFLUX(:,I_CH_OCi) + ZFCO(:) * ZVALOC / 2.
PFLUX(:,I_CH_OCj) = PFLUX(:,I_CH_OCj) + ZFCO(:) * ZVALOC
PFLUX(:,I_CH_BCi) = PFLUX(:,I_CH_BCi) + ZFCO(:) * ZVALBC / 2
PFLUX(:,I_CH_BCj) = PFLUX(:,I_CH_BCj) + ZFCO(:) * ZVALBC
END IF
! Initial aerosols fluxes have been transformed into molecu.m-2.s-1,
! conversion into are in kg.kg-1.m.s-1
! conversion in kg.kg-1.m.s-1
!
ZCONVERSION(:) = XAVOGADRO * PRHODREF(:)
!
PFLUX(:,I_CH_SO4i) = PFLUX(:,I_CH_SO4i) / ZCONVERSION(:) * ZMI(JP_AER_SO4)*1E-3
PFLUX(:,I_CH_SO4j) = PFLUX(:,I_CH_SO4j) / ZCONVERSION(:) * ZMI(JP_AER_SO4)*1E-3
PFLUX(:,I_CH_NO3i) = PFLUX(:,I_CH_NO3i) / ZCONVERSION(:) * ZMI(JP_AER_NO3)*1E-3
PFLUX(:,I_CH_NO3j) = PFLUX(:,I_CH_NO3j) / ZCONVERSION(:) * ZMI(JP_AER_NO3)*1E-3
PFLUX(:,I_CH_NH3i) = PFLUX(:,I_CH_NH3i) / ZCONVERSION(:) * ZMI(JP_AER_NH3)*1E-3
PFLUX(:,I_CH_NH3j) = PFLUX(:,I_CH_NH3j) / ZCONVERSION(:) * ZMI(JP_AER_NH3)*1E-3
PFLUX(:,I_CH_H2Oi) = PFLUX(:,I_CH_H2Oi) / ZCONVERSION(:) * ZMI(JP_AER_H2O)*1E-3
PFLUX(:,I_CH_H2Oj) = PFLUX(:,I_CH_H2Oj) / ZCONVERSION(:) * ZMI(JP_AER_H2O)*1E-3
PFLUX(:,I_CH_OCi) = (PFLUX(:,I_CH_OCi) + ZFCO(:) * ZVALOC / 2.) / ZCONVERSION(:) * ZMI(JP_AER_OC)*1E-3
PFLUX(:,I_CH_OCj) = (PFLUX(:,I_CH_OCj) + ZFCO(:) * ZVALOC ) / ZCONVERSION(:) * ZMI(JP_AER_OC)*1E-3
PFLUX(:,I_CH_BCi) = (PFLUX(:,I_CH_BCi) + ZFCO(:) * ZVALBC / 2.) / ZCONVERSION(:) * ZMI(JP_AER_BC)*1E-3
PFLUX(:,I_CH_BCj) = (PFLUX(:,I_CH_BCj) + ZFCO(:) * ZVALBC ) / ZCONVERSION(:) * ZMI(JP_AER_BC)*1E-3
PFLUX(:,I_CH_DSTi) = PFLUX(:,I_CH_DSTi) / ZCONVERSION(:) * ZMI(JP_AER_DST)*1E-3
PFLUX(:,I_CH_DSTj) = PFLUX(:,I_CH_DSTj) / ZCONVERSION(:) * ZMI(JP_AER_DST)*1E-3
!
!* 1.0 transfer aerosol mass from gas to aerosol variables
! (and conversion of kg.kg-1.m.s-1 --> microgram.m-2.s-1)
! (and conversion of molecu.m-2.s-1 --> microgram.m-2.s-1)
!
ZFCTOTA(:,JP_AER_SO4,1) = PFLUX(:,I_CH_SO4i) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_SO4,2) = PFLUX(:,I_CH_SO4j) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_SO4,1) = PFLUX(:,I_CH_SO4i) *1E+6 * ZMI(JP_AER_SO4) / XAVOGADRO
ZFCTOTA(:,JP_AER_SO4,2) = PFLUX(:,I_CH_SO4j) *1E+6 * ZMI(JP_AER_SO4) / XAVOGADRO
ZFCTOTA(:,JP_AER_NH3,1) = PFLUX(:,I_CH_NH3i) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_NH3,2) = PFLUX(:,I_CH_NH3j) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_NH3,1) = PFLUX(:,I_CH_NH3i) *1E+6 * ZMI(JP_AER_NH3) / XAVOGADRO
ZFCTOTA(:,JP_AER_NH3,2) = PFLUX(:,I_CH_NH3j) *1E+6 * ZMI(JP_AER_NH3) / XAVOGADRO
ZFCTOTA(:,JP_AER_NO3,1) = PFLUX(:,I_CH_NO3i) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_NO3,2) = PFLUX(:,I_CH_NO3j) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_NO3,1) = PFLUX(:,I_CH_NO3i) *1E+6 * ZMI(JP_AER_NO3) / XAVOGADRO
ZFCTOTA(:,JP_AER_NO3,2) = PFLUX(:,I_CH_NO3j) *1E+6 * ZMI(JP_AER_NO3) / XAVOGADRO
ZFCTOTA(:,JP_AER_H2O,1) = PFLUX(:,I_CH_H2Oi) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_H2O,2) = PFLUX(:,I_CH_H2Oj) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_H2O,1) = PFLUX(:,I_CH_H2Oi) *1E+6 * ZMI(JP_AER_H2O) / XAVOGADRO
ZFCTOTA(:,JP_AER_H2O,2) = PFLUX(:,I_CH_H2Oj) *1E+6 * ZMI(JP_AER_H2O) / XAVOGADRO
ZFCTOTA(:,JP_AER_OC,1) = PFLUX(:,I_CH_OCi) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_OC,2) = PFLUX(:,I_CH_OCj) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_OC,1) = PFLUX(:,I_CH_OCi) *1E+6 * ZMI(JP_AER_OC) / XAVOGADRO
ZFCTOTA(:,JP_AER_OC,2) = PFLUX(:,I_CH_OCj) *1E+6 * ZMI(JP_AER_OC) / XAVOGADRO
ZFCTOTA(:,JP_AER_BC,1) = PFLUX(:,I_CH_BCi) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_BC,2) = PFLUX(:,I_CH_BCj) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_BC,1) = PFLUX(:,I_CH_BCi) *1E+6 * ZMI(JP_AER_BC) / XAVOGADRO
ZFCTOTA(:,JP_AER_BC,2) = PFLUX(:,I_CH_BCj) *1E+6 * ZMI(JP_AER_BC) / XAVOGADRO
ZFCTOTA(:,JP_AER_DST,1) = PFLUX(:,I_CH_DSTi) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_DST,2) = PFLUX(:,I_CH_DSTj) *1E+9 * PRHODREF(:)
ZFCTOTA(:,JP_AER_DST,1) = PFLUX(:,I_CH_DSTi)*1E+6 * ZMI(JP_AER_DST) / XAVOGADRO
ZFCTOTA(:,JP_AER_DST,2) = PFLUX(:,I_CH_DSTj)*1E+6 * ZMI(JP_AER_DST) / XAVOGADRO
!
!* 1.1 calculate moment 3 flux from total aerosol mass
!
......@@ -258,23 +255,7 @@ PFLUX(:,I_CH_M0j) = ZFM(:,4) * 1E-6 / (ZDEN2MOL * PRHODREF(:))
IF (LVARSIGI) PFLUX(:,I_CH_M6i) = ZFM(:,3) / (ZDEN2MOL * PRHODREF(:))
IF (LVARSIGJ) PFLUX(:,I_CH_M6j) = ZFM(:,6) / (ZDEN2MOL * PRHODREF(:))
!
! aerosol phase conversion kg/kg.m.s-1 into molecules.m-2.s-1
PFLUX(:,I_CH_SO4i) = PFLUX(:,I_CH_SO4i) * ZCONVERSION(:) / (ZMI(JP_AER_SO4)*1E-3)
PFLUX(:,I_CH_SO4j) = PFLUX(:,I_CH_SO4j) * ZCONVERSION(:) / (ZMI(JP_AER_SO4)*1E-3)
PFLUX(:,I_CH_NO3i) = PFLUX(:,I_CH_NO3i) * ZCONVERSION(:) / (ZMI(JP_AER_NO3)*1E-3)
PFLUX(:,I_CH_NO3j) = PFLUX(:,I_CH_NO3j) * ZCONVERSION(:) / (ZMI(JP_AER_NO3)*1E-3)
PFLUX(:,I_CH_NH3i) = PFLUX(:,I_CH_NH3i) * ZCONVERSION(:) / (ZMI(JP_AER_NH3)*1E-3)
PFLUX(:,I_CH_NH3j) = PFLUX(:,I_CH_NH3j) * ZCONVERSION(:) / (ZMI(JP_AER_NH3)*1E-3)
PFLUX(:,I_CH_H2Oi) = PFLUX(:,I_CH_H2Oi) * ZCONVERSION(:) / (ZMI(JP_AER_H2O)*1E-3)
PFLUX(:,I_CH_H2Oj) = PFLUX(:,I_CH_H2Oj) * ZCONVERSION(:) / (ZMI(JP_AER_H2O)*1E-3)
!
PFLUX(:,I_CH_OCi) = PFLUX(:,I_CH_OCi) * ZCONVERSION(:) / (ZMI(JP_AER_OC)*1E-3)
PFLUX(:,I_CH_OCj) = PFLUX(:,I_CH_OCj) * ZCONVERSION(:) / (ZMI(JP_AER_OC)*1E-3)
PFLUX(:,I_CH_BCi) = PFLUX(:,I_CH_BCi) * ZCONVERSION(:) / (ZMI(JP_AER_BC)*1E-3)
PFLUX(:,I_CH_BCj) = PFLUX(:,I_CH_BCj) * ZCONVERSION(:) / (ZMI(JP_AER_BC)*1E-3)
PFLUX(:,I_CH_DSTi) = PFLUX(:,I_CH_DSTi) * ZCONVERSION(:) / (ZMI(JP_AER_DST)*1E-3)
PFLUX(:,I_CH_DSTj) = PFLUX(:,I_CH_DSTj) * ZCONVERSION(:) / (ZMI(JP_AER_DST)*1E-3)
!
ZCONVERSION(:) = XAVOGADRO * PRHODREF(:) / XMD
! conversion M0 and M6 ppv.m.s-1 into molecules.m-2.s-1
PFLUX(:,I_CH_M0i) = PFLUX(:,I_CH_M0i) * ZCONVERSION(:)
PFLUX(:,I_CH_M0j) = PFLUX(:,I_CH_M0j) * ZCONVERSION(:)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment