| 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 |
|---|