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