source: trunk/LMDZ.VENUS/libf/phyvenus/radcommon_h.F90 @ 3461

Last change on this file since 3461 was 2560, checked in by slebonnois, 3 years ago

SL: Implementation of SW computation based on generic model. Switch between this new SW module or old module that reads R. Haus tables implemented with a key (solarchoice)

File size: 4.3 KB
Line 
1module radcommon_h
2      use radinc_h, only: L_NSPECTV, NTstart, NTstop, &
3                          naerkind, nsizemax
4      implicit none
5
6!----------------------------------------------------------------------C
7!
8!                             radcommon.h
9!
10!----------------------------------------------------------------------C
11!
12!  "Include" grid.h and radinc.h before this file in code that uses
13!  some or all of this common data set
14!
15!     WNOV       - Array of wavenumbers at the spectral interval
16!                  center for the VISUAL.  Array is NSPECTV
17!                  elements long.
18!     DWNV       - Array of "delta wavenumber", i.e., the width,
19!                  in wavenumbers (cm^-1) of each VISUAL spectral
20!                  interval.  NSPECTV elements long.
21!     WAVEV      - Array (NSPECTV elements long) of the wavelenght
22!                  (in microns) at the center of each VISUAL spectral
23!                  interval.
24!     STELLARF   - Array (NSPECTV elements) of stellar flux (W/M^2) in
25!                  each spectral interval.  Values are for 1 AU,
26!                  scaled to the planetary distance elsewhere.
27!     TAURAY     - Array (NSPECTV elements) of the pressure-independent
28!                  part of Rayleigh scattering optical depth.
29!     TAURAYVAR  - Array (NSPECTV elements) of the pressure-independent
30!                  part of Rayleigh scattering optical depth for the variable gas.
31!     FZEROV     - Fraction of zeros in the VISUAL CO2 k-coefficients, for
32!                  each temperature, pressure, and spectral interval
33!
34!     AEROSOL RADIATIVE OPTICAL CONSTANTS
35!
36!   Shortwave
37!   ~~~~~~~~~
38!
39! For the "naerkind" kind of aerosol radiative properties :
40! QVISsQREF  :  Qext / Qext("longrefvis")
41! omegavis   :  single scattering albedo
42! gvis       :  assymetry factor
43!
44
45      REAL*8 BWNV(L_NSPECTV+1), WNOV(L_NSPECTV), DWNV(L_NSPECTV), WAVEV(L_NSPECTV) !BWNV read by master in setspv
46      REAL*8 STELLARF(L_NSPECTV), TAURAY(L_NSPECTV), TAURAYVAR(L_NSPECTV)
47!$OMP THREADPRIVATE(WNOV,DWNV,WAVEV,&
48        !$OMP STELLARF,TAURAY,TAURAYVAR)
49
50      REAL*8 blamv(L_NSPECTV+1) ! these are needed by suaer.F90
51!$OMP THREADPRIVATE(blamv)
52
53      !! AS: introduced to avoid doing same computations again for continuum
54      INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: indv
55!$OMP THREADPRIVATE(indi,indv)
56
57      !!! ALLOCATABLE STUFF SO THAT DIMENSIONS ARE READ in *.dat FILES -- AS 12/2011 
58      REAL*8, DIMENSION(:,:,:,:,:), ALLOCATABLE :: gasv
59      REAL*8, DIMENSION(:), ALLOCATABLE :: PGASREF, TGASREF, PFGASREF, GWEIGHT
60      real*8 FZEROV(L_NSPECTV)
61      real*8 pgasmin, pgasmax
62      real*8 tgasmin, tgasmax
63!$OMP THREADPRIVATE(gasv,&  !pgasref,tgasref,pfgasref read by master in sugas_corrk
64        !$OMP FZEROV)           !pgasmin,pgasmax,tgasmin,tgasmax read by master in sugas_corrk
65
66      real QVISsQREF(L_NSPECTV,naerkind,nsizemax)
67      real omegavis(L_NSPECTV,naerkind,nsizemax)
68      real gvis(L_NSPECTV,naerkind,nsizemax)
69!$OMP THREADPRIVATE(QVISsQREF,omegavis,gvis)
70
71
72! Reference wavelengths used to compute reference optical depth (m)
73! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74
75      REAL lamrefvis(naerkind)
76
77! Actual number of grain size classes in each domain for a
78!   given aerosol:
79
80      INTEGER          :: nsize(naerkind,2)
81
82! Particle size axis (depend on the kind of aerosol and the
83!   radiation domain)
84
85      DOUBLE PRECISION :: radiustab(naerkind,2,nsizemax)
86!$OMP THREADPRIVATE(lamrefir,lamrefvis,radiustab) !nsize read by suaer_corrk
87
88! Extinction coefficient at reference wavelengths;
89!   These wavelengths are defined in aeroptproperties, and called longrefvis
90
91      REAL :: QREFvis(naerkind,nsizemax)
92
93      REAL,SAVE :: tstellar ! Stellar brightness temperature (SW)
94
95      real*8,save :: PTOP
96
97      real*8,parameter :: UBARI = 0.5D0
98
99!$OMP THREADPRIVATE(QREFvis,&   ! gweight read by master in sugas_corrk
100                !$OMP tstellar,PTOP)
101
102!     If the gas optical depth (top to the surface) is less than
103!     this value, we place that Gauss-point into the "zeros"
104!     channel.
105      real*8, parameter :: TLIMIT =  1.0D-30
106
107!     Factor to convert pressures from millibars to Pascals
108      real*8, parameter :: SCALEP = 1.00D+2
109
110      real*8, parameter :: sigma = 5.67032D-8
111      real*8, parameter :: grav = 6.672E-11
112
113end module radcommon_h
Note: See TracBrowser for help on using the repository browser.