source: trunk/LMDZ.TITAN/libf/phytitan/callkeys_mod.F90 @ 2054

Last change on this file since 2054 was 2050, checked in by jvatant, 7 years ago

Major radiative transfer contribution : Add the 'corrk_recombin' option that allows to use
correlated-k for single species instead of pre-mix and enables more flexiblity for variable species.
-> Algorithm inspired from Lacis and Oinas 1991 and Amundsen et al 2016

+ Added 'recombin_corrk.F90' - Important improvements in 'sugas_corrk.90' and 'callcork.F90'

  • Must have the desired variable species as tracers -> TBD : Enable to force composition even if no tracers
  • To have decent CPU time recombining is not done on all gridpoints and wavelenghts but we calculate a gasi/v_recomb variable on the reference corrk-k T,P grid (only for T,P values who match the atmospheric conditions ) which is then processed as a standard pre-mix in optci/v routines, but updated every time tracers on the ref P grid have varied > 1%.


READ CAREFULY :

  • In case of 'corrk_recombin', the variable L_NREFVAR doesn't have the same meaning as before and doesn't stand for the different mixing ratios but the different species.
  • Input corr-k should be found in corrkdir within 'corrk_gcm_IR/VI_XXX.dat' and can contain a 'fixed' specie ( compulsory if you include self-broadening ) that MUST have been created with correct mixing ratios, or a variable specie for which mixing ratio MUST have been set to 1 ( no self-broadening then, assume it's a trace sepecie ) -> You can't neither have CIA of variable species included upstream in the corr-k
File size: 2.8 KB
RevLine 
[1397]1MODULE callkeys_mod
2IMPLICIT NONE 
3
[1520]4      logical,save :: callrad,corrk,calldifv,UseTurbDiff
5!$OMP THREADPRIVATE(callrad,corrk,calldifv,UseTurbDiff)
[1795]6      logical,save :: calladj,callsoil
7!$OMP THREADPRIVATE(calladj,callsoil)
[1520]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)
[1647]12      logical,save :: callgasvis,continuum,graybody
13!$OMP THREADPRIVATE(callgasvis,continuum,graybody)
[1897]14      logical,save :: strictboundcorrk
[1520]15!$OMP THREADPRIVATE(strictboundcorrk)
[2050]16      logical,save :: corrk_recombin
17!$OMP_THREADPRIVATE(corrk_recombin)
[2046]18      logical,save :: seashaze,uncoupl_optic_haze
19!$OMP THREADPRIVATE(seashaze,uncoupl_optic_haze)
[1897]20
[1795]21      logical,save :: callchim, callmufi, callclouds
22!$OMP THREADPRIVATE(callchim,callmufi,callclouds)
[1822]23      logical,save :: global1d
24!$OMP THREADPRIVATE(global1d)
[1520]25      logical,save :: enertest
26      logical,save :: nonideal
27      logical,save :: meanOLR
28      logical,save :: specOLR
[1647]29!$OMP THREADPRIVATE(enertest,nonideal,meanOLR)
[1520]30      logical,save :: newtonian
31      logical,save :: check_cpp_match
32      logical,save :: force_cpp
33      logical,save :: testradtimes
34      logical,save :: rayleigh
35!$OMP THREADPRIVATE(newtonian,check_cpp_match,force_cpp,testradtimes,rayleigh)
36      logical,save :: stelbbody
37      logical,save :: ozone
38      logical,save :: tracer
39      logical,save :: mass_redistrib
[1647]40!$OMP THREADPRIVATE(stelbbody,ozone,tracer,mass_redistrib)
[1520]41      logical,save :: nosurf
42      logical,save :: oblate
[1647]43!$OMP THREADPRIVATE(nosurf,oblate)
[1947]44      logical,save :: eff_gz
45!$OMP THREADPRIVATE(eff_gz)
[1672]46     
47      integer,save :: ichim
[1795]48!$OMP THREADPRIVATE(ichim)
[1520]49      integer,save :: iddist
50      integer,save :: iradia
51      integer,save :: startype
[1795]52!$OMP THREADPRIVATE(iddist,iradia,startype)
53     
54      real,save :: p_prod, tx_prod, rc_prod
55      real,save :: air_rad
[1897]56!$OMP THREADPRIVATE(p_prod,tx_prod,rc_prod,air_rad)
57     
[1822]58      real,save :: szangle
59!$OMP THREADPRIVATE(szangle)
[1520]60      real,save :: Fat1AU
61      real,save :: stelTbb
[1668]62!$OMP THREADPRIVATE(Fat1AU,stelTbb)
[1520]63      real,save :: pceil
[1647]64!$OMP THREADPRIVATE(pceil)
[1520]65      real,save :: tau_relax
66      real,save :: intheat
[1647]67!$OMP THREADPRIVATE(tau_relax,intheat)
[1520]68      real,save :: flatten
69      real,save :: Rmean
70      real,save :: J2
71      real,save :: MassPlanet
72!$OMP THREADPRIVATE(flatten,Rmean,J2,MassPlanet)
[1722]73      real,save :: surfalbedo
74      real,save :: surfemis
75!$OMP THREADPRIVATE(surfalbedo,surfemis)
[1397]76
[1520]77      logical,save :: iscallphys=.false.!existence of callphys.def
78!$OMP THREADPRIVATE(iscallphys)
79
[1670]80      ! do we read a startphy.nc file (default=.true.)
81      logical,save :: startphy_file=.true.
82!$OMP THREADPRIVATE(startphy_file)
83
[1397]84END MODULE callkeys_mod
Note: See TracBrowser for help on using the repository browser.