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 | |
---|
9 | use dimradmars_mod, only : ndlon, ndlo2 |
---|
10 | use yomlw_h, only: ga, gb, cst_voigt |
---|
11 | implicit none |
---|
12 | |
---|
13 | !#include "dimensions.h" |
---|
14 | !#include "dimphys.h" |
---|
15 | !#include "dimradmars.h" |
---|
16 | !#include "yomlw.h" |
---|
17 | |
---|
18 | c---------------------------------------------------------------------- |
---|
19 | c 0.1 arguments |
---|
20 | c --------- |
---|
21 | c inputs: |
---|
22 | c ------- |
---|
23 | integer kdlon ! part of ngrid |
---|
24 | integer nu ! |
---|
25 | |
---|
26 | real u (ndlo2,nu) ! absorber amounts |
---|
27 | real up (ndlo2,nu) ! idem scaled by the pressure |
---|
28 | |
---|
29 | c outputs: |
---|
30 | c -------- |
---|
31 | real tr (ndlo2,nu) ! transmission functions |
---|
32 | |
---|
33 | c---------------------------------------------------------------------- |
---|
34 | c 0.2 local arrays |
---|
35 | c ------------ |
---|
36 | |
---|
37 | integer ja,jl |
---|
38 | |
---|
39 | real xn (ndlon) |
---|
40 | real xd (ndlon) |
---|
41 | real ueq (ndlon) |
---|
42 | |
---|
43 | c---------------------------------------------------------------------- |
---|
44 | c Transmission by the CO2 15 microns band: |
---|
45 | c ---------------------------------------- |
---|
46 | |
---|
47 | do ja=1,nu |
---|
48 | do jl=1,kdlon |
---|
49 | c equivalent absorber amount (Doppler effect) |
---|
50 | c -------------------------------------------- |
---|
51 | ueq(jl) = sqrt(up(jl,ja)) |
---|
52 | . +cst_voigt(1,ja)*u(jl,ja)**cst_voigt(2,ja) |
---|
53 | |
---|
54 | c Horner's algorithm |
---|
55 | c ------------------ |
---|
56 | xn(jl) = ga(1,ja) + |
---|
57 | . ueq(jl)*(ga(2,ja) + ueq(jl) * ga(3,ja) ) |
---|
58 | xd(jl) = gb(1,ja) + ueq(jl)*(gb(2,ja) + |
---|
59 | . ueq(jl) * ( gb(3,ja) + ueq(jl) )) |
---|
60 | tr(jl,ja) = xn(jl) / xd(jl) |
---|
61 | |
---|
62 | enddo |
---|
63 | enddo |
---|
64 | |
---|
65 | c---------------------------------------------------------------------- |
---|
66 | return |
---|
67 | end |
---|