[2560] | 1 | module 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 | |
---|
| 113 | end module radcommon_h |
---|