1
2! KGEN-generated Fortran source file
3!
4! Filename    : rrlw_wvn.f90
5! Generated at: 2015-07-06 23:28:43
6! KGEN version: 0.4.13
7
8
9
10    MODULE rrlw_wvn
11        USE kgen_utils_mod, ONLY : kgen_dp, check_t, kgen_init_check, kgen_print_check
12        USE shr_kind_mod, ONLY: r8 => shr_kind_r8
13        !      use parkind, only : jpim, jprb
14        USE parrrtm, ONLY: maxinpx
15        USE parrrtm, ONLY: ngptlw
16        USE parrrtm, ONLY: nbndlw
17        IMPLICIT NONE
18        !------------------------------------------------------------------
19        ! rrtmg_lw spectral information
20        ! Initial version:  JJMorcrette, ECMWF, jul1998
21        ! Revised: MJIacono, AER, jun2006
22        !------------------------------------------------------------------
23        !  name     type     purpose
24        ! -----  :  ----   : ----------------------------------------------
25        ! ng     :  integer: Number of original g-intervals in each spectral band
26        ! nspa   :  integer: For the lower atmosphere, the number of reference
27        !                    atmospheres that are stored for each spectral band
28        !                    per pressure level and temperature.  Each of these
29        !                    atmospheres has different relative amounts of the
30        !                    key species for the band (i.e. different binary
31        !                    species parameters).
32        ! nspb   :  integer: Same as nspa for the upper atmosphere
33        !wavenum1:  real   : Spectral band lower boundary in wavenumbers
34        !wavenum2:  real   : Spectral band upper boundary in wavenumbers
35        ! delwave:  real   : Spectral band width in wavenumbers
36        ! totplnk:  real   : Integrated Planck value for each band; (band 16
37        !                    includes total from 2600 cm-1 to infinity)
38        !                    Used for calculation across total spectrum
39        !totplk16:  real   : Integrated Planck value for band 16 (2600-3250 cm-1)
40        !                    Used for calculation in band 16 only if
41        !                    individual band output requested
42        !
43        ! ngc    :  integer: The number of new g-intervals in each band
44        ! ngs    :  integer: The cumulative sum of new g-intervals for each band
45        ! ngm    :  integer: The index of each new g-interval relative to the
46        !                    original 16 g-intervals in each band
47        ! ngn    :  integer: The number of original g-intervals that are
48        !                    combined to make each new g-intervals in each band
49        ! ngb    :  integer: The band index for each new g-interval
50        ! wt     :  real   : RRTM weights for the original 16 g-intervals
51        ! rwgt   :  real   : Weights for combining original 16 g-intervals
52        !                    (256 total) into reduced set of g-intervals
53        !                    (140 total)
54        ! nxmol  :  integer: Number of cross-section molecules
55        ! ixindx :  integer: Flag for active cross-sections in calculation
56        !------------------------------------------------------------------
57        INTEGER :: nspa(nbndlw)
58        INTEGER :: nspb(nbndlw)
59        REAL(KIND=r8) :: delwave(nbndlw)
60        REAL(KIND=r8) :: totplnk(181,nbndlw)
61        REAL(KIND=r8) :: totplk16(181)
62        INTEGER :: ngs(nbndlw)
63        INTEGER :: ngb(ngptlw)
64        INTEGER :: ixindx(maxinpx)
65        PUBLIC kgen_read_externs_rrlw_wvn
66    CONTAINS
67
68    ! write subroutines
69
70    ! module extern variables
71
72    SUBROUTINE kgen_read_externs_rrlw_wvn(kgen_unit)
73        INTEGER, INTENT(IN) :: kgen_unit
74        READ(UNIT=kgen_unit) nspa
75        READ(UNIT=kgen_unit) nspb
76        READ(UNIT=kgen_unit) delwave
77        READ(UNIT=kgen_unit) totplnk
78        READ(UNIT=kgen_unit) totplk16
79        READ(UNIT=kgen_unit) ngs
80        READ(UNIT=kgen_unit) ngb
81        READ(UNIT=kgen_unit) ixindx
82    END SUBROUTINE kgen_read_externs_rrlw_wvn
83
84    END MODULE rrlw_wvn
85