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

Last change on this file since 2530 was 1530, checked in by emillour, 9 years ago

Venus and Titan GCMs:
Updates in the physics to keep up with updates in LMDZ5 (up to
LMDZ5 trunk, rev 2350) concerning dynamics/physics separation:

  • Adapted makelmdz and makelmdz_fcm script to stop if trying to compile 1d model or newstart or start2archive in parallel.
  • got rid of references to "dimensions.h" in physics. Within physics packages, use nbp_lon (=iim), nbp_lat (=jjmp1) and nbp_lev (=llm) from module mod_grid_phy_lmdz (in phy_common) instead. Only partially done for Titan, because of many hard-coded commons; a necessary first step will be to clean these up (using modules).

EM

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
91IMPLICIT NONE
92#include "microtab.h"
93
94      ALLOCATE(rmcbar(klon,klev),xfbar(klon,klev,4))
95      ALLOCATE(ncount(klon,klev))
96
97      ALLOCATE(maer(klon,klev,4),prodaer(klon,klev,4))
98      ALLOCATE(csn(klon,klev,4),csh(klon,klev,4))
99      ALLOCATE(psurfhaze(klon,klev))
100
101      ALLOCATE(flxesp_i(klon,klev,3),tau_drop(klon,klev))
102      ALLOCATE(tau_aer(klon,klev,nrad),solesp(klon,klev,3))
103      ALLOCATE(evapch4(klon),occcld_m(klon,klev,12))
104      ALLOCATE(occcld(klon,klev),satch4(klon,klev))
105      ALLOCATE(satc2h6(klon,klev),satc2h2(klon,klev))
106      ALLOCATE(precip(klon,5),rmcloud(klon,klev))
107
108      ALLOCATE(TauHID(klon,klev,NSPECI))
109      ALLOCATE(TauCID(klon,klev,NSPECI))
110      ALLOCATE(TauGID(klon,klev,NSPECI))
111      ALLOCATE(TauHVD(klon,klev,NSPECV))
112      ALLOCATE(TauCVD(klon,klev,NSPECV))
113      ALLOCATE(TauGVD(klon,klev,NSPECV))
114
115END SUBROUTINE common_init
116
117!======================================================================
118      END MODULE common_mod
Note: See TracBrowser for help on using the repository browser.