| 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 | IMPLICIT 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 | |
|---|
| 115 | END SUBROUTINE common_init |
|---|
| 116 | |
|---|
| 117 | !====================================================================== |
|---|
| 118 | END MODULE common_mod |
|---|