source: trunk/LMDZ.GENERIC/libf/phystd/callkeys_mod.F90 @ 2806

Last change on this file since 2806 was 2803, checked in by aslmd, 3 years ago

Initialisation of Radiative Generic Condensable Aerosols

We can activate the scheme by putting aerogeneric = # of aerosols in callphys.def. This is the only needed thing for activating the radiative effects. They must be tracer in modern tracer.def

Commented out the abort if we use more than 4 aerosols

Added reading of optprop files for Radiative Generic Condensable Aerosols

We use the same file for IR and VI channel. For now, only MnS, Cr,Fe and Mg2SiO4 can be read. If you want to add another specie, check the code, it is explained how to quickly do that (right above the Initializations)

Added radii calculation for Radiative Generic Condensable aerosols

Changed the hardcoded size of the totalemit array

The hardcoded size is now 1900 instead of 100 so we don't exceed the array size when working at high spectral resolution (very rare case)

Added opacity computation for Radiative Generic Condensable aerosols

We do this computation in the same fashion as what's performed on water and dust.

switch iniaerosol and initracer order, to prepare for the RGCS scheme

Needed to switch the order of initialization so we can use the RGCS scheme without the assumption that ice and vap tracer of the same specie are following each other in the traceur.def file

File size: 6.5 KB
Line 
1MODULE callkeys_mod
2IMPLICIT NONE 
3
4      logical,save :: callrad,corrk,calldifv,UseTurbDiff
5!$OMP THREADPRIVATE(callrad,corrk,calldifv,UseTurbDiff)
6      logical,save :: calladj,calltherm,co2cond,callsoil
7!$OMP THREADPRIVATE(calladj,calltherm,co2cond,callsoil)
8      logical,save :: season,diurnal,tlocked,rings_shadow,lwrite
9!$OMP THREADPRIVATE(season,diurnal,tlocked,rings_shadow,lwrite)
10      logical,save :: callstats,calleofdump
11!$OMP THREADPRIVATE(callstats,calleofdump)
12      logical,save :: callgasvis,continuum,graybody
13!$OMP THREADPRIVATE(callgasvis,continuum,graybody)
14      logical,save :: strictboundcorrk                                     
15!$OMP THREADPRIVATE(strictboundcorrk)
16      logical,save :: strictboundcia                                     
17!$OMP THREADPRIVATE(strictboundcia)
18
19      logical,save :: enertest
20      logical,save :: nonideal
21      logical,save :: meanOLR
22      logical,save :: specOLR
23      logical,save :: kastprof
24      logical,save :: diagdtau
25!$OMP THREADPRIVATE(enertest,nonideal,meanOLR,kastprof,diagdtau)
26      logical,save :: newtonian
27      logical,save :: force_cpp
28      integer,save :: cpp_mugaz_mode
29      logical,save :: testradtimes
30      logical,save :: rayleigh
31!$OMP THREADPRIVATE(newtonian,force_cpp,cpp_mugaz_mode,testradtimes,rayleigh)
32      logical,save :: stelbbody
33      logical,save :: nearco2cond
34      logical,save :: tracer
35      logical,save :: mass_redistrib
36!$OMP THREADPRIVATE(stelbbody,nearco2cond,tracer,mass_redistrib)
37      logical,save :: varactive
38      logical,save :: varfixed
39      logical,save :: radfixed
40      logical,save :: sedimentation
41      logical,save :: generic_condensation
42      logical,save :: generic_rain
43!$OMP THREADPRIVATE(varactive,varfixed,radfixed,sedimentation,generic_condensation,generic_rain)
44      logical,save :: water,watercond,waterrain
45!$OMP THREADPRIVATE(water,watercond,waterrain)
46      logical,save :: aeroco2,aeroh2o,aeroh2so4,aeroback2lay
47!$OMP THREADPRIVATE(aeroco2,aeroh2o,aeroh2so4,aeroback2lay)
48      logical,save :: aeronh3, aeronlay, aeroaurora
49!$OMP THREADPRIVATE(aeronh3,aeronlay,aeroaurora)
50      logical,save :: aerofixco2,aerofixh2o
51!$OMP THREADPRIVATE(aerofixco2,aerofixh2o)
52      integer,save :: aerogeneric
53!$OMP THREADPRIVATE(aerogeneric)
54      logical,save :: hydrology
55      logical,save :: sourceevol
56      logical,save :: CLFvarying
57      logical,save :: nosurf
58      logical,save :: oblate
59!$OMP THREADPRIVATE(hydrology,sourceevol,CLFvarying,nosurf,oblate)
60      logical,save :: ok_slab_ocean
61      logical,save :: ok_slab_sic
62      logical,save :: ok_slab_heat_transp
63      logical,save :: albedo_spectral_mode
64!$OMP THREADPRIVATE(ok_slab_ocean,ok_slab_sic,ok_slab_heat_transp,albedo_spectral_mode)
65      logical,save :: photochem
66      logical,save :: photoheat
67      logical,save :: jonline
68      logical,save :: depos
69      logical,save :: haze
70!$OMP THREADPRIVATE(photochem,photoheat,jonline,depos)
71      logical,save :: calllott_nonoro
72!$OMP THREADPRIVATE(calllott_nonoro)
73      logical,save :: global1d
74      real,save    :: szangle
75!$OMP THREADPRIVATE(global1d,szangle)
76
77      integer,save :: iddist
78      integer,save :: iaervar
79      integer,save :: iradia
80      integer,save :: startype
81      integer,save :: versH2H2cia
82      character(64),save :: H2orthopara_mixture
83      integer,save :: nlayaero
84!$OMP THREADPRIVATE(iddist,iaervar,iradia,startype,versH2H2cia,H2orthopara_mixture,nlayaero)
85      integer,dimension(:),allocatable,save :: aeronlay_choice
86!$OMP THREADPRIVATE(aeronlay_choice)
87
88      character(64),save :: optprop_back2lay_vis
89      character(64),save :: optprop_back2lay_ir
90      character(64),dimension(:),allocatable,save :: optprop_aeronlay_vis
91      character(64),dimension(:),allocatable,save :: optprop_aeronlay_ir
92!$OMP THREADPRIVATE(optprop_back2lay_vis,optprop_back2lay_ir,optprop_aeronlay_vis,optprop_aeronlay_ir)
93
94      real,save :: tplanckmin
95      real,save :: tplanckmax
96      real,save :: dtplanck
97!$OMP THREADPRIVATE(tplanckmin,tplanckmax,dtplanck)
98      real,save :: topdustref
99      real,save :: Nmix_co2
100      real,save :: dusttau
101      real,save :: Fat1AU
102      real,save :: stelTbb
103!$OMP THREADPRIVATE(topdustref,Nmix_co2,dusttau,Fat1AU,stelTbb)
104      real,save :: Tstrat
105      real,save :: tplanet
106      real,save :: obs_tau_col_tropo
107      real,save :: obs_tau_col_strato
108!$OMP THREADPRIVATE(Tstrat,tplanet,obs_tau_col_tropo,obs_tau_col_strato)
109      real,save :: pres_bottom_tropo
110      real,save :: pres_top_tropo
111      real,save :: pres_bottom_strato
112      real,save :: pres_top_strato
113!$OMP THREADPRIVATE(pres_bottom_tropo,pres_top_tropo,pres_bottom_strato,pres_top_strato)
114      real,save :: size_tropo
115      real,save :: size_strato
116      real,save :: satval
117      real,save :: CLFfixval
118      real,save :: n2mixratio
119!$OMP THREADPRIVATE(size_tropo,size_strato,satval,CLFfixval,n2mixratio)
120      real,save :: size_nh3_cloud
121      real,save :: pres_nh3_cloud
122      real,save :: tau_nh3_cloud
123!$OMP THREADPRIVATE(size_nh3_cloud, pres_nh3_cloud, tau_nh3_cloud)
124      real,dimension(:),allocatable,save :: aeronlay_tauref
125      real,dimension(:),allocatable,save :: aeronlay_lamref
126      real,dimension(:),allocatable,save :: aeronlay_ptop
127      real,dimension(:),allocatable,save :: aeronlay_pbot
128      real,dimension(:),allocatable,save :: aeronlay_sclhght
129      real,dimension(:),allocatable,save :: aeronlay_size
130      real,dimension(:),allocatable,save :: aeronlay_nueff
131!$OMP THREADPRIVATE(aeronlay_tauref,aeronlay_lamref,aeronlay_ptop,aeronlay_pbot,aeronlay_sclhght,aeronlay_size,aeronlay_nueff)
132      real,save :: co2supsat
133      real,save :: pceil
134      real,save :: albedosnow
135      real,save :: alb_ocean
136      real,save :: albedoco2ice
137      real,save :: maxicethick
138!$OMP THREADPRIVATE(co2supsat,pceil,albedosnow,alb_ocean,albedoco2ice,maxicethick)
139      real,save :: Tsaldiff
140      real,save :: tau_relax
141      real,save :: cloudlvl
142      real,save :: icetstep
143      real,save :: intheat
144!$OMP THREADPRIVATE(Tsaldiff,tau_relax,cloudlvl,icetstep,intheat)
145      real,save :: flatten
146      real,save :: Rmean
147      real,save :: J2
148      real,save :: MassPlanet
149!$OMP THREADPRIVATE(flatten,Rmean,J2,MassPlanet)
150      real,save :: surfalbedo
151      real,save :: surfemis
152!$OMP THREADPRIVATE(surfalbedo,surfemis)
153      real,save :: noseason_day
154!$OMP THREADPRIVATE(noseason_day)
155      real,save :: kmixmin
156!$OMP THREADPRIVATE(kmixmin)
157     
158      logical,save :: iscallphys=.false.!existence of callphys.def
159!$OMP THREADPRIVATE(iscallphys)
160
161      ! do we read a startphy.nc file (default=.true.)
162      logical,save :: startphy_file=.true.
163!$OMP THREADPRIVATE(startphy_file)
164
165END MODULE callkeys_mod
Note: See TracBrowser for help on using the repository browser.