source: CONFIG/publications/ICOLMDZORINCA_CO2_Transport_GMD_2023/INCA/src/INCA_SRC/bcpomsource.F90 @ 6610

Last change on this file since 6610 was 6610, checked in by acosce, 10 months ago

INCA used for ICOLMDZORINCA_CO2_Transport_GMD_2023

File size: 5.9 KB
Line 
1!$Id: bcpomsource.F90 104 2008-12-23 10:28:51Z acosce $
2!! =========================================================================
3!! INCA - INteraction with Chemistry and Aerosols
4!!
5!! Copyright Laboratoire des Sciences du Climat et de l'Environnement (LSCE)
6!!           Unite mixte CEA-CNRS-UVSQ
7!!
8!! Contributors to this INCA subroutine:
9!!
10!! Michael Schulz, LSCE, Michael.Schulz@cea.fr
11!! Yves Balkanski, LSCE, Yves.Balkanski@cea.fr
12!! S. Generoso, LSCE
13!!
14!! Anne Cozic, LSCE, anne.cozic@cea.fr
15!! Yann Meurdesoif, LSCE, yann.meurdesoif@cea.fr
16!!
17!! This software is a computer program whose purpose is to simulate the
18!! atmospheric gas phase and aerosol composition. The model is designed to be
19!! used within a transport model or a general circulation model. This version
20!! of INCA was designed to be coupled to the LMDz GCM. LMDz-INCA accounts
21!! for emissions, transport (resolved and sub-grid scale), photochemical
22!! transformations, and scavenging (dry deposition and washout) of chemical
23!! species and aerosols interactively in the GCM. Several versions of the INCA
24!! model are currently used depending on the envisaged applications with the
25!! chemistry-climate model.
26!!
27!! This software is governed by the CeCILL  license under French law and
28!! abiding by the rules of distribution of free software.  You can  use,
29!! modify and/ or redistribute the software under the terms of the CeCILL
30!! license as circulated by CEA, CNRS and INRIA at the following URL
31!! "http://www.cecill.info".
32!!
33!! As a counterpart to the access to the source code and  rights to copy,
34!! modify and redistribute granted by the license, users are provided only
35!! with a limited warranty  and the software's author,  the holder of the
36!! economic rights,  and the successive licensors  have only  limited
37!! liability.
38!!
39!! In this respect, the user's attention is drawn to the risks associated
40!! with loading,  using,  modifying and/or developing or reproducing the
41!! software by the user in light of its specific status of free software,
42!! that may mean  that it is complicated to manipulate,  and  that  also
43!! therefore means  that it is reserved for developers  and  experienced
44!! professionals having in-depth computer knowledge. Users are therefore
45!! encouraged to load and test the software's suitability as regards their
46!! requirements in conditions enabling the security of their systems and/or
47!! data to be ensured and,  more generally, to use and operate it in the
48!! same conditions as regards security.
49!!
50!! The fact that you are presently reading this means that you have had
51!! knowledge of the CeCILL license and that you accept its terms.
52!! =========================================================================
53
54#include <inca_define.h>
55
56#ifndef DUSS
57#ifdef AER
58SUBROUTINE BCPOMSOURCE(tr_seri)
59  !     -----------------------------------------------------------------------
60  !
61  !     Author
62  !     Yves Balkanski
63  !       / Laboratoire des Sciences du Climat et de l'Environnement / Saclay
64  !       14.1.2002
65  !
66  !     purpose
67  !     -------
68  !     source flux for Black and Organic Carbon
69  !
70  !     interface
71  !     ---------
72  !      input
73  !       delt           time step duration       [sec]
74  !       tr_seri        accumulated tracer mixing ratios
75  !
76  !      output
77  !       accumulated tracer mixing ratios
78  !
79  !       
80  !
81  !      from aerosol modules
82  !       srcsigmaln      sigma of aerosol modes   
83  !       rop             particle density
84  !
85  !      from input files
86  !       flxBCM          Monthly BC flux     [g cm-2 s-1]
87  !       flxPOMM         Monthly POM flux     [g cm-2 s-1]
88  !                               (from Liousse et al. 1986)
89  !      variables saved
90  !       entered        input fields read flag
91  !
92  !      output
93  !       eflux          emission of dust per tracer        [kg m-2 s-1]
94  !       eflux_alt      emission at altitude               [kg m-2 s-1]
95  !
96  !
97  !
98  !     -----------------------------------------------------------------------
99
100
101  USE SPECIES_NAMES
102  USE AEROSOL_METEO, ONLY : zcalday, zdp1
103  USE AEROSOL_MOD, ONLY : srcsigmaln,rop,asmode
104  USE SFLX, ONLY : eflux,eflux_alt, eflux_alt_so2, eflux_alt_nh3, eflux_alt_no2
105  USE INCA_DIM
106  USE MOD_INCA_PARA
107 
108  IMPLICIT NONE
109
110  ! source mass median diameter [m]
111  REAL ::  srcmmd_id_ASBCM  = 0.14e-6
112  REAL ::  srcmmd_id_ASPOMM = 0.34e-6
113
114  REAL, INTENT(inout) :: tr_seri(PLON,PLEV,PCNST)
115 
116  ! temp variables
117  REAL    :: fdistBC           ! Number/Mass factor to compute number flux
118  REAL    :: fdistPOM          ! Number/Mass factor to compute number flux
119
120  ! Source size distribution is always the same
121  fdistBC= 1./3.141592654*6./rop(id_ASBCM)/srcmmd_id_ASBCM**3 *EXP(4.5*srcsigmaln(asmode)**2)
122  fdistPOM=1./3.141592654*6./rop(id_ASPOMM)/srcmmd_id_ASPOMM**3 *EXP(4.5*srcsigmaln(asmode)**2)
123
124  !  compute flux in terms of mixing ratio zflux= eflux/zdp1 -->>zflux [kg/kg]
125  !  change of tracer tendency according to addition of tracer
126  !  due to emission flux
127  !
128    tr_seri(:,:,id_AIBCM)  = tr_seri(:,:,id_AIBCM)  + eflux_alt(:,:,id_AIBCM)/zdp1(:,:)
129    tr_seri(:,:,id_AIPOMM) = tr_seri(:,:,id_AIPOMM) + eflux_alt(:,:,id_AIPOMM)/zdp1(:,:)
130    tr_seri(:,:,id_ASBCM)  = tr_seri(:,:,id_ASBCM)  + eflux_alt(:,:,id_ASBCM)/zdp1(:,:)
131    tr_seri(:,:,id_ASPOMM) = tr_seri(:,:,id_ASPOMM) + eflux_alt(:,:,id_ASPOMM)/zdp1(:,:)
132   
133    tr_seri(:,:,id_AIN)=tr_seri(:,:,id_AIN)  &
134       + ( eflux_alt(:,:,id_AIBCM)/zdp1(:,:) )  * fdistBC &
135       + ( eflux_alt(:,:,id_AIPOMM)/zdp1(:,:) ) * fdistPOM
136   
137    tr_seri(:,:,id_ASN)=tr_seri(:,:,id_ASN) &
138       + ( eflux_alt(:,:,id_ASBCM)/zdp1(:,:) )  * fdistBC &
139       + ( eflux_alt(:,:,id_ASPOMM)/zdp1(:,:) ) * fdistPOM
140   
141
142   tr_seri(:,:,id_SO2)  = tr_seri(:,:,id_SO2)  + eflux_alt_so2(:,:)/zdp1(:,:)
143   tr_seri(:,:,id_NH3)  = tr_seri(:,:,id_NH3)  + eflux_alt_nh3(:,:)/zdp1(:,:)   
144   tr_seri(:,:,id_NO2)  = tr_seri(:,:,id_NO2)  + eflux_alt_no2(:,:)/zdp1(:,:)   
145   
146
147     
148END SUBROUTINE BCPOMSOURCE
149#endif
150#endif
Note: See TracBrowser for help on using the repository browser.