source: CONFIG/publications/ICOLMDZORINCA_CO2_Transport_GMD_2023/INCA/src/INCA_MOD/airpl_src_mod.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: 7.1 KB
Line 
1!$Id: airpl_src_mod.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!! Didier Hauglustaine, LSCE, hauglustaine@cea.fr
11!!
12!! Anne Cozic, LSCE, anne.cozic@cea.fr
13!! Yann Meurdesoif, LSCE, yann.meurdesoif@cea.fr
14!!
15!! This software is a computer program whose purpose is to simulate the
16!! atmospheric gas phase and aerosol composition. The model is designed to be
17!! used within a transport model or a general circulation model. This version
18!! of INCA was designed to be coupled to the LMDz GCM. LMDz-INCA accounts
19!! for emissions, transport (resolved and sub-grid scale), photochemical
20!! transformations, and scavenging (dry deposition and washout) of chemical
21!! species and aerosols interactively in the GCM. Several versions of the INCA
22!! model are currently used depending on the envisaged applications with the
23!! chemistry-climate model.
24!!
25!! This software is governed by the CeCILL  license under French law and
26!! abiding by the rules of distribution of free software.  You can  use,
27!! modify and/ or redistribute the software under the terms of the CeCILL
28!! license as circulated by CEA, CNRS and INRIA at the following URL
29!! "http://www.cecill.info".
30!!
31!! As a counterpart to the access to the source code and  rights to copy,
32!! modify and redistribute granted by the license, users are provided only
33!! with a limited warranty  and the software's author,  the holder of the
34!! economic rights,  and the successive licensors  have only  limited
35!! liability.
36!!
37!! In this respect, the user's attention is drawn to the risks associated
38!! with loading,  using,  modifying and/or developing or reproducing the
39!! software by the user in light of its specific status of free software,
40!! that may mean  that it is complicated to manipulate,  and  that  also
41!! therefore means  that it is reserved for developers  and  experienced
42!! professionals having in-depth computer knowledge. Users are therefore
43!! encouraged to load and test the software's suitability as regards their
44!! requirements in conditions enabling the security of their systems and/or
45!! data to be ensured and,  more generally, to use and operate it in the
46!! same conditions as regards security.
47!!
48!! The fact that you are presently reading this means that you have had
49!! knowledge of the CeCILL license and that you accept its terms.
50!! =========================================================================
51#include <inca_define.h>
52
53module AIRPLANE_SRC
54  !--------------------------------------------------------------------
55  !     ... Airplane insitu emission sources
56  ! Didier Hauglustaine, IPSL, 2000.
57  !--------------------------------------------------------------------
58
59  implicit none
60
61
62  LOGICAL, SAVE :: aircraft_month  ! variable indiquant si le fichier d'input aircraft est mensuel ou horaire
63                                   ! les deux types ayant respectivement 12 pas de temps mais une utilisation
64                                   ! differente dans setext.
65!$OMP THREADPRIVATE(aircraft_month)
66
67
68  integer, save :: ncida
69  integer, save :: klona
70  integer, save :: ntimea
71  integer, save :: nleva
72!$OMP THREADPRIVATE(ncida)
73!$OMP THREADPRIVATE(klona)
74!$OMP THREADPRIVATE(ntimea)
75!$OMP THREADPRIVATE(nleva)
76
77  integer, save :: ncidb
78  integer, save :: klonb
79  integer, save :: ntimeb
80  integer, save :: nlevb
81!$OMP THREADPRIVATE(ncidb)
82!$OMP THREADPRIVATE(klonb)
83!$OMP THREADPRIVATE(ntimeb)
84!$OMP THREADPRIVATE(nlevb)
85
86  real, save, allocatable :: daysa(:)
87!$OMP THREADPRIVATE(daysa)
88  real, save, allocatable :: daysb(:)
89!$OMP THREADPRIVATE(daysb)
90 
91  real, save, allocatable :: zmida(:)
92!$OMP THREADPRIVATE(zmida)
93  real, save, allocatable :: zmidb(:)
94!$OMP THREADPRIVATE(zmidb)
95
96  real, save, allocatable :: pno_airpl(:,:,:)
97  real, save, allocatable :: pfuel_cairpl(:,:,:)
98  real, save, allocatable :: pfuel_mairpl(:,:,:)
99  real, save, allocatable :: pso2_airpl(:,:,:)
100  real, save, allocatable :: pbc_airpl(:,:,:)
101  real, save, allocatable :: poc_airpl(:,:,:)
102  real, save, allocatable :: pso4_airpl(:,:,:)
103  real, save, allocatable :: pco_airpl(:,:,:)
104  real, save, allocatable :: pch4_airpl(:,:,:)
105  real, save, allocatable :: pch3oh_airpl(:,:,:)
106  real, save, allocatable :: pc2h5oh_airpl(:,:,:)
107  real, save, allocatable :: pc2h6_airpl(:,:,:)
108  real, save, allocatable :: pc3h8_airpl(:,:,:)
109  real, save, allocatable :: palkan_airpl(:,:,:)
110  real, save, allocatable :: pc2h4_airpl(:,:,:)
111  real, save, allocatable :: pc3h6_airpl(:,:,:)
112  real, save, allocatable :: pc2h2_airpl(:,:,:)
113  real, save, allocatable :: palken_airpl(:,:,:)
114  real, save, allocatable :: parom_airpl(:,:,:)
115  real, save, allocatable :: pch2o_airpl(:,:,:)
116  real, save, allocatable :: pch3cho_airpl(:,:,:)
117  real, save, allocatable :: pch3coch3_airpl(:,:,:)
118  real, save, allocatable :: pmek_airpl(:,:,:)
119  real, save, allocatable :: pmvk_airpl(:,:,:)
120  real, save, allocatable :: pmacr_airpl(:,:,:)
121  real, save, allocatable :: pch3cooh_airpl(:,:,:)
122  real, save, allocatable :: ppom_airpl(:,:,:)
123  real, save, allocatable :: pco2_airpl(:,:,:)
124  real, save, allocatable :: ph2o_airpl(:,:,:)
125  real, save, allocatable :: distance_airpl(:,:,:)
126!$OMP THREADPRIVATE(pno_airpl,pfuel_cairpl,pfuel_mairpl)
127!$OMP THREADPRIVATE(pso2_airpl,pbc_airpl,poc_airpl,pso4_airpl)
128!$OMP THREADPRIVATE(pco_airpl,pch4_airpl,pch3oh_airpl,pc2h5oh_airpl,pc2h6_airpl,pc3h8_airpl,palkan_airpl,pch2o_airpl)
129!$OMP THREADPRIVATE(pc2h4_airpl,pc3h6_airpl,pc2h2_airpl,palken_airpl,parom_airpl,pch3cho_airpl,pch3coch3_airpl)
130!$OMP THREADPRIVATE(pmek_airpl,pmvk_airpl,pmacr_airpl,pch3cooh_airpl,ppom_airpl,pco2_airpl,ph2o_airpl,distance_airpl)
131
132  real, save, allocatable :: pno_hs_airpl(:,:,:)
133!$OMP THREADPRIVATE(pno_hs_airpl)
134  real, save, allocatable :: ph2o_hs_airpl(:,:,:)
135!$OMP THREADPRIVATE(ph2o_hs_airpl)
136  real, save, allocatable :: ph2_hs_airpl(:,:,:)
137!$OMP THREADPRIVATE(ph2_hs_airpl)
138
139! Variables for plume parameterization
140  real, parameter :: einox_ca=13.2
141  real, parameter :: einox_ma=9.1
142  real, parameter :: airtau=7200.
143  real, parameter :: xmmnox=46
144  real, parameter :: airKeff=3.0E-18
145  real, parameter :: plume_ratio=0.1
146  real, parameter :: beta1=0.06
147  real, parameter :: beta2=0.20
148
149  real,save,allocatable    :: xgradient(:,:)
150!$OMP THREADPRIVATE(xgradient)
151  integer,SAVE,ALLOCATABLE :: itrop(:)
152  REAL,SAVE,ALLOCATABLE    :: ptrop(:)
153  REAL,SAVE,ALLOCATABLE    :: ttrop(:)
154  REAL,SAVE,ALLOCATABLE    :: ztrop(:)
155!$OMP THREADPRIVATE(itrop)
156!$OMP THREADPRIVATE(ptrop)
157!$OMP THREADPRIVATE(ttrop)
158!$OMP THREADPRIVATE(ztrop)
159
160CONTAINS
161
162  SUBROUTINE INIT_AIRPLANE_SRC
163    USE inca_dim
164    USE MOD_INCA_PARA
165    IMPLICIT NONE
166
167    ALLOCATE(itrop(PLON_OMP))
168    ALLOCATE(ptrop(PLON_OMP))
169    ALLOCATE(ttrop(PLON_OMP))
170    ALLOCATE(ztrop(PLON_OMP))
171    ALLOCATE(xgradient(PLON_OMP,PLEV))
172
173    itrop(:)=0
174    ptrop(:)=0.
175    ttrop(:)=0.
176    ztrop(:)=0.
177
178    xgradient(:,:)=0
179
180  END SUBROUTINE INIT_AIRPLANE_SRC
181
182end module AIRPLANE_SRC
183
Note: See TracBrowser for help on using the repository browser.