anded tri-diagonal matrix A contains only contributions from the RTE homogeneous solutions.The inverse matrix A -1 can be determined once only, before the loop over solar geometry starts.This is the most time consuming step in the complete solution for the RT field, and oncecompleted, it is straightforward and fast to set the integration constants X g = A -1 B g by backsubstitution.In summary then, two important operations on the homogeneous RT field are carried out beforeany reference to solar beam terms. Thus, the <strong>VLIDORT</strong> code has an internal loop over SZAangles. It is well known that convergence of the Fourier cosine azimuth series for the radiationfield depends on the solar beam angle. We keep track of the convergence separately for eachSZA; once the intensity field at our desired output angles and optical depths has converged forone particular SZA, we stop further calculation of Fourier terms for this SZA, even thoughsolutions at other SZAs still require further computation of Fourier terms.This multiple SZA feature was implemented at the outset in <strong>VLIDORT</strong>. This is a very substantialperformance enhancement for <strong>VLIDORT</strong>, particularly in view of the increased time taken overthe eigenproblem and the much larger BVP matrix inversion compared with the scalar code.3.3.3. Eigensolver usageWe have already noted differences between the LAPACK solver DGEEV and the condensedversion ASYMTX as used in LIDORT and DISORT. DGEEV must be used for any layers withscattering by aerosols or clouds, since there will be complex roots in this case. ASYMTX onlydeals with real symmetric eigenmatrices. Linearization of the homogeneous solutions fromDGEEV uses adjoint theory and has some subtleties; adjoint solutions are not available forASYMTX.It turns out that, aside from additional elements down the diagonal, the eigenmatrix Γ n in layer nTconsists of blocks of 4x4 matrices of the form Plm( μi) BnlPlm( μj) , where the P and B nl matriceswere defined in Eq. (2.24) and (2.25) in section 2.1.1, μi are the discrete ordinates, and the ‘T’superscript denotes matrix transpose. Since P and P T are symmetric, then Γ n will be symmetric ifΒ nl is. Thus, Γ n will be symmetric if the Greek constants ε l in Β nl are zero for all values of l. Thisis a special case satisfied by the Rayleigh scattering law, but in general, this is not true forscattering with aerosols and clouds.For aerosols and clouds, we require the complex eigensolver DGEEV from LAPACK, but forRayleigh scattering we can use the faster “real-only” ASYMTX package. Our policy in<strong>VLIDORT</strong> will be to retain both eigensolvers and use them as appropriate – if any of the Greekconstants ε l in Β nl is non-zero for a given scattering layer, then we will choose the complexeigensolver in that layer. The use of ASYMTX and its linearization for Rayleigh layers willrepresent a considerable saving in processing time. For an application with a few particulatelayers in an otherwise Rayleigh-scattering atmosphere, both eigensolvers will be required.In version 2.4, <strong>VLIDORT</strong> can run with 2 or 3 Stokes vectors instead of the full 4. This is helpfulfor atmospheric simulations, since circular polarization in the Earth’s atmosphere is typicallythree orders of magnitude smaller that its linear counterpart. For a 3-component calculation of I,Q, and U, the model uses 3x3 Mueller and scattering matrices, with the (3,4) and (4,4) elementsof the Greek matrix omitted. In this case, the eigenproblem has real-valued solutions only, and this contributes to the substantial performance savings to be gained with this reduced problem.46
3.3.4. Solution savingIn DISORT and earlier LIDORT versions, the models contained full computations of all RTEsolutions in all layers and for all Fourier components contributing to radiance outputs. Thesesolutions are computed regardless of the scattering properties of the layer: the RTE is solved byfirst calling an eigensolver routine for homogeneous solutions, and then by solving a linearalgebra or Green’s function problem to determine solar-forcing particular solutions. If there is noscattering for a given Fourier component m and layer n, then the RTE solution is trivial – it isjust the extinction across the layer with transmittance factors T n (μ) = exp[-Δ n /μ], where μ is anypolar direction and Δ n is the layer optical thickness.The “solution saving” option is to skip numerical computations of homogeneous and particularsolutions in the absence of scattering. In this case, if there are N discrete ordinates μ j in the halfspace,then the j th homogeneous solution vector X j is trivial: it has components {X j } k = δ jk .Separation constants are μ j −1 , with whole-layer transmittances given by T n (μ j ). Particular solutionvectors are set to zero, since there is no solar beam scattering. Source function integrationrequired for post-processing the solution at arbitrary polar direction is then a simpletransmittance recursion using factors T n (μ). Linearizations (optical parameter derivatives) ofRTE solutions in any non-scattering layer are zero, and linearized solutions in adjacent scatteringlayers will be transmitted with factors T n (μ). We note that if this transmittance propagationpasses through layer n for which a linearization L[Δ n ] exists, then the linearization will pick upan additional term L[T n (μ)] = −μ −1 T n (μ) L[Δ n ].Rayleigh scattering has a P(Θ) ~ cos 2 Θ phase function dependency on scattering angle Θ. Thereis no scattering for Fourier components m > 2; solution saving then applies to “Rayleigh layers”for m > 2. For an atmosphere with Rayleigh scattering and a limited number of aerosol or cloudlayers, there will be a substantial reduction in RTE solution computations is the solution savingoption applies, and consequently a marked improvement in performance. In general, the phasefunction has a Legendre polynomial expansion Φ(Θ) ~ ∑ β λ P λ (cosΘ) in terms of momentcoefficients β λ . For a discrete ordinate solution with N streams, the phase function is truncated:β 2Ν−1 is the last usable coefficient in the multiple scatter solution. In the delta-M approximation,β 2Ν is used to scale the problem and redefine the β λ for 0 ≤ λ ≤ 2Ν−1. Solution saving occurswhen β λ = 0 for m ≤ λ ≤ 2N−1; there is then no scattering for Fourier component m and higher.3.3.5. BVP telescopingFor some Fourier component m, we consider a single active layer with non-trivial RTE solutions;all other atmospheric layers have no scattering (the extension to a number of adjacent activelayers is easy). Integration constants L n and M n in layer n are given throughI±N( x,μi) = ∑α = 1xk α xk α ( x)−± − nm − n Δ n − ± μ0[ L X e + M X e ] + G enαinαnαinαin. (3.10)Here, X nα and k nα denote the homogeneous solution vectors and separation constantsrespectively, G n are the solar source vectors (a plane-parallel solution has been assumed). Theboundary value problem (BVP) for the entire atmosphere is posed by compiling boundaryconditions at all levels to create a large sparse linear algebra system. The BVP matrix has size2NS, where S is the total number of layers, and although there are band compression algorithms47
- Page 1: User’s GuideVLIDORTVersion 2.6Rob
- Page 5 and 6: Table of Contents1H1. Introduction
- Page 7 and 8: 1. Introduction to VLIDORT1.1. Hist
- Page 9 and 10: Table 1.1 Major features of LIDORT
- Page 11 and 12: In 2006, R. Spurr was invited to co
- Page 13: corrections, and sphericity correct
- Page 16 and 17: Matrix Π relates scattering and in
- Page 18 and 19: m⎛ P⎞l( μ)0 0 0⎜⎟mmm ⎜ 0
- Page 20 and 21: In the following sections, we suppr
- Page 22 and 23: of the single scatter albedo ω and
- Page 24 and 25: Here T n−1 is the solar beam tran
- Page 26 and 27: ~ + ~ ~ (1)~ ~ + ~ ~ (2)~ ~ − ~ 1
- Page 28 and 29: The solution proceeds first by the
- Page 30 and 31: Linearizations. Derivatives of all
- Page 32 and 33: For the plane-parallel case, we hav
- Page 34 and 35: One of the features of the above ou
- Page 36 and 37: L↑↑ ↑k (cot n −cotn −1)[
- Page 38 and 39: Note the use of the profile-column
- Page 40 and 41: βl,aer(1)(2)fz1e1βl+ ( 1−f ) z2
- Page 42 and 43: For BRDF input, it is necessary for
- Page 44 and 45: streams were used in the half space
- Page 48 and 49: in place to aid with the LU-decompo
- Page 50 and 51: In earlier versions of LIDORT and V
- Page 53 and 54: 4. The VLIDORT 2.6 package4.1. Over
- Page 55 and 56: (discrete ordinates), so that dimen
- Page 57 and 58: Table 4.2 Summary of VLIDORT I/O Ty
- Page 59 and 60: Table 4.3. Module files in VLIDORT
- Page 61 and 62: Finally, modules vlidort_ls_correct
- Page 63 and 64: end program main_VLIDORT4.3.2. Conf
- Page 65 and 66: $(VLID_DEF_PATH)/vlidort_sup_brdf_d
- Page 67 and 68: Finally, the command to build the d
- Page 69 and 70: Here, “s” indicates you want to
- Page 71 and 72: The main difference between “vlid
- Page 73 and 74: to both VLIDORT and the given VSLEA
- Page 75 and 76: STATUS_INPUTREAD is equal to 4 (VLI
- Page 77 and 78: 5. ReferencesAnderson, E., Z. Bai,
- Page 79 and 80: Mishchenko, M.I., and L.D. Travis,
- Page 81: Stamnes K., S-C. Tsay, W. Wiscombe,
- Page 84 and 85: Table A2: Type Structure VLIDORT_Fi
- Page 86 and 87: DO_WRITE_FOURIER Logical (I) Flag f
- Page 88 and 89: USER_LEVELS (o) Real*8 (IO) Array o
- Page 90 and 91: angle s, Stokes parameter S, and di
- Page 92 and 93: DO_SLEAVE_WFS Logical (IO) Flag for
- Page 94 and 95: 6.1.1.8. VLIDORT linearized outputs
- Page 96 and 97:
NFINELAYERS Integer Number of fine
- Page 98 and 99:
6.1.2.4. VLIDORT linearized modifie
- Page 100 and 101:
The output file contains (for all 3
- Page 102 and 103:
The first call is the baseline calc
- Page 104 and 105:
for a 2-parameter Gamma-function si
- Page 106 and 107:
Remark. In VLIDORT, the BRDF is a 4
- Page 108 and 109:
6.3.3.1. Input and output type stru
- Page 110 and 111:
Table C: Type Structure VBRDF_LinSu
- Page 112 and 113:
Special note regarding Cox-Munk typ
- Page 114 and 115:
squared parameter, so that Jacobian
- Page 116 and 117:
6.4. SLEAVE SupplementHere, the sur
- Page 118 and 119:
is possible to define Jacobians wit
- Page 120 and 121:
etween 0 and 90 degrees.N_USER_OBSG
- Page 122:
6.4.4.2 SLEAVE configuration file c