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 | |
---|
86 | CONTAINS |
---|
87 | |
---|
88 | !====================================================================== |
---|
89 | SUBROUTINE common_init |
---|
90 | use dimphy |
---|
91 | USE control_mod |
---|
92 | IMPLICIT 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 | |
---|
117 | END SUBROUTINE common_init |
---|
118 | |
---|
119 | !====================================================================== |
---|
120 | END MODULE common_mod |
---|