[38] | 1 | subroutine lwtt (kdlon,u,up,nu,tr) |
---|
| 2 | |
---|
| 3 | c---------------------------------------------------------------------- |
---|
| 4 | c LWTT computes the longwave transmission functions |
---|
| 5 | c for all the absorbers in all spectral intervals |
---|
| 6 | c using pade approximants and horner's algorithm |
---|
| 7 | c---------------------------------------------------------------------- |
---|
| 8 | |
---|
[1047] | 9 | use dimradmars_mod, only : ndlon, ndlo2 |
---|
| 10 | use yomlw_h, only: ga, gb, cst_voigt |
---|
[38] | 11 | implicit none |
---|
| 12 | |
---|
| 13 | c---------------------------------------------------------------------- |
---|
| 14 | c 0.1 arguments |
---|
| 15 | c --------- |
---|
| 16 | c inputs: |
---|
| 17 | c ------- |
---|
| 18 | integer kdlon ! part of ngrid |
---|
| 19 | integer nu ! |
---|
| 20 | |
---|
| 21 | real u (ndlo2,nu) ! absorber amounts |
---|
| 22 | real up (ndlo2,nu) ! idem scaled by the pressure |
---|
| 23 | |
---|
| 24 | c outputs: |
---|
| 25 | c -------- |
---|
| 26 | real tr (ndlo2,nu) ! transmission functions |
---|
| 27 | |
---|
| 28 | c---------------------------------------------------------------------- |
---|
| 29 | c 0.2 local arrays |
---|
| 30 | c ------------ |
---|
| 31 | |
---|
| 32 | integer ja,jl |
---|
| 33 | |
---|
| 34 | real xn (ndlon) |
---|
| 35 | real xd (ndlon) |
---|
| 36 | real ueq (ndlon) |
---|
| 37 | |
---|
| 38 | c---------------------------------------------------------------------- |
---|
| 39 | c Transmission by the CO2 15 microns band: |
---|
| 40 | c ---------------------------------------- |
---|
| 41 | |
---|
| 42 | do ja=1,nu |
---|
| 43 | do jl=1,kdlon |
---|
| 44 | c equivalent absorber amount (Doppler effect) |
---|
| 45 | c -------------------------------------------- |
---|
| 46 | ueq(jl) = sqrt(up(jl,ja)) |
---|
| 47 | . +cst_voigt(1,ja)*u(jl,ja)**cst_voigt(2,ja) |
---|
| 48 | |
---|
| 49 | c Horner's algorithm |
---|
| 50 | c ------------------ |
---|
| 51 | xn(jl) = ga(1,ja) + |
---|
| 52 | . ueq(jl)*(ga(2,ja) + ueq(jl) * ga(3,ja) ) |
---|
| 53 | xd(jl) = gb(1,ja) + ueq(jl)*(gb(2,ja) + |
---|
| 54 | . ueq(jl) * ( gb(3,ja) + ueq(jl) )) |
---|
| 55 | tr(jl,ja) = xn(jl) / xd(jl) |
---|
| 56 | |
---|
| 57 | enddo |
---|
| 58 | enddo |
---|
| 59 | |
---|
| 60 | c---------------------------------------------------------------------- |
---|
| 61 | return |
---|
| 62 | end |
---|