source: trunk/LMDZ.TITAN/libf/phytitan/common_mod.F90 @ 1242

Last change on this file since 1242 was 1126, checked in by slebonnois, 11 years ago

SL: update of Titan photochemical module to include computation of chemistry up to 1300 km

File size: 4.3 KB
Line 
1      MODULE common_mod
2! Variables sauvegardees - anciens common
3!======================================================================
4!
5!
6!======================================================================
7! Declaration des variables
8      USE dimphy
9      implicit none
10#include "dimensions.h"
11
12! ancien rnuabar
13      REAL,    ALLOCATABLE, SAVE :: rmcbar(:,:),xfbar(:,:,:)
14      INTEGER, ALLOCATABLE, SAVE :: ncount(:,:)
15!$OMP THREADPRIVATE(rmcbar,xfbar)
16!$OMP THREADPRIVATE(ncount)
17
18! Common de aerprod.h... aerprod et htoh2
19! Etaient utilises par calchim et la microphysique pour echanger
20! des variables pour la production des aerosols par la chimie
21! et la chimie heterogene de H a la surface des aerosols
22! Ca a disparu de la microphysique...
23! A remettre si on veut reutiliser cette fonctionnalite
24
25! ancien aerprod
26      INTEGER, SAVE :: utilaer(16)
27      REAL,    ALLOCATABLE, SAVE :: maer(:,:,:),prodaer(:,:,:)
28      REAL,    ALLOCATABLE, SAVE :: csn(:,:,:),csh(:,:,:)
29!$OMP THREADPRIVATE(utilaer)
30!$OMP THREADPRIVATE(maer,prodaer,csn,csh)
31! ancien htoh2
32      REAL,    ALLOCATABLE, SAVE :: psurfhaze(:,:)
33!$OMP THREADPRIVATE(psurfhaze)
34
35! ancien titan_for.h
36      INTEGER, PARAMETER :: NLEV=llm+70,NC=44,ND=54,NR=377
37!$OMP THREADPRIVATE(NLEV,NC,ND,NR)
38!!!  doivent etre en accord avec titan.h
39! pour l'UV (650 niveaux de 2 km)
40      INTEGER, PARAMETER :: NLRT=650
41
42! ancien diagmuphy.h
43!     toutes les variables
44!     diagnostiques sorties de la microphysique.
45
46! ---- flux de glace (1:CH4 / 2:C2H6 / 3:C2H2)
47      REAL, ALLOCATABLE, SAVE :: flxesp_i(:,:,:)
48!$OMP THREADPRIVATE(flxesp_i)
49! ---- taux sedimentation gouttes, aerosols sec
50      REAL, ALLOCATABLE, SAVE :: tau_drop(:,:),tau_aer(:,:,:)
51!$OMP THREADPRIVATE(tau_drop,tau_aer)
52! ---- Production de glace (negatif si disparition)
53      REAL, ALLOCATABLE, SAVE :: solesp(:,:,:)
54!$OMP THREADPRIVATE(solesp)
55! ---- Evaporation CH4
56      REAL, ALLOCATABLE, SAVE :: evapch4(:)
57!$OMP THREADPRIVATE(evapch4)
58! ---- occurences des nuages
59      REAL, ALLOCATABLE, SAVE :: occcld_m(:,:,:)
60!$OMP THREADPRIVATE(occcld_m)
61! ---- occcld sert a obtenir les opacités/extinction des nuages (proxy)
62      REAL, ALLOCATABLE, SAVE :: occcld(:,:)
63!$OMP THREADPRIVATE(occcld)
64! ---- saturation CH4,C2H6,C2H2
65      REAL, ALLOCATABLE, SAVE :: satch4(:,:),satc2h6(:,:),satc2h2(:,:)
66!$OMP THREADPRIVATE(satch4,satc2h6,satc2h2)
67! ---- precipitations (CH4, C2H6, C2H2, noyaux, aerosols)
68      REAL, ALLOCATABLE, SAVE :: precip(:,:)
69!$OMP THREADPRIVATE(precip)
70! ---- rayon moyen des gouttes
71      REAL, ALLOCATABLE, SAVE :: rmcloud(:,:)
72!$OMP THREADPRIVATE(rmcloud)
73
74! Anciently /TAUD/
75      REAL, ALLOCATABLE, SAVE :: TauHID(:,:,:) ! cumulative Haze   IR  opacity
76      REAL, ALLOCATABLE, SAVE :: TauCID(:,:,:) ! cumulative Clouds IR  opacity
77      REAL, ALLOCATABLE, SAVE :: TauGID(:,:,:) ! cumulative Gas    IR  opacity
78      REAL, ALLOCATABLE, SAVE :: TauHVD(:,:,:) ! cumulative Haze   Vis opacity
79      REAL, ALLOCATABLE, SAVE :: TauCVD(:,:,:) ! cumulative Clouds Vis opacity
80      REAL, ALLOCATABLE, SAVE :: TauGVD(:,:,:) ! cumulative Gas    Vis opacity
81!$OMP THREADPRIVATE(TauHID,TauCID,TauGID)
82!$OMP THREADPRIVATE(TauHVD,TauCVD,TauGVD)
83! besoin en plus en l'absence de racommon_h
84      INTEGER,PARAMETER :: NSPECI=46,NSPECV=24
85
86CONTAINS
87
88!======================================================================
89SUBROUTINE common_init
90use dimphy
91USE control_mod
92IMPLICIT NONE
93#include "dimensions.h"
94#include "microtab.h"
95
96      ALLOCATE(rmcbar(klon,klev),xfbar(klon,klev,4))
97      ALLOCATE(ncount(klon,klev))
98
99      ALLOCATE(maer(klon,klev,4),prodaer(klon,klev,4))
100      ALLOCATE(csn(klon,klev,4),csh(klon,klev,4))
101      ALLOCATE(psurfhaze(klon,klev))
102
103      ALLOCATE(flxesp_i(klon,klev,3),tau_drop(klon,klev))
104      ALLOCATE(tau_aer(klon,klev,nrad),solesp(klon,klev,3))
105      ALLOCATE(evapch4(klon),occcld_m(klon,klev,12))
106      ALLOCATE(occcld(klon,klev),satch4(klon,klev))
107      ALLOCATE(satc2h6(klon,klev),satc2h2(klon,klev))
108      ALLOCATE(precip(klon,5),rmcloud(klon,klev))
109
110      ALLOCATE(TauHID(klon,klev,NSPECI))
111      ALLOCATE(TauCID(klon,klev,NSPECI))
112      ALLOCATE(TauGID(klon,klev,NSPECI))
113      ALLOCATE(TauHVD(klon,klev,NSPECV))
114      ALLOCATE(TauCVD(klon,klev,NSPECV))
115      ALLOCATE(TauGVD(klon,klev,NSPECV))
116
117END SUBROUTINE common_init
118
119!======================================================================
120      END MODULE common_mod
Note: See TracBrowser for help on using the repository browser.