(3) Return the reply to the entry "Number of Stokes vector components" from "3" back to "1" inthe two input configuration files to their default stateWe turn now to some of the contents of the scalar test environment programs. The programs willproduce <strong>VLIDORT</strong> output for one particular atmospheric scenario, a 23-layer atmosphere withmolecular absorption and scattering in all layers, and with aerosols in the lowest 6 layers. Theprepared atmosphere is partly contained in the file input_atmos.dat, and the aerosols areinserted by hand. Down-welling and up-welling output is generated for 36 geometries (3 solarzenith angles, 4 relative azimuth angles, 3 viewing zenith angles) and for 5 vertical levels. In allcases, azimuth-averaged outputs (actinic and regular fluxes + linearizations) are generated as wellas radiances and Jacobians of intensities.The testers (or "drivers") are used to perform several tasks. For example, for the driver2p6_solar_lpcs_tester.f90, the first task is a baseline calculation of radiances, two totalcolumn Jacobians (with respect to the total gas absorption optical depth G and the total aerosoloptical depth Y) and one surface Jacobian with respect to Lambertian albedo A. The remainingtasks are designed to validate these analytic Jacobians by finite difference (FD) estimates. For theFD tasks, all linearization options are turned off, and for threads 2-4 respectively, intensity-onlycalculations are done with G, Y and A perturbed by 0.1% of their original values. The finaloutput file contains the baseline intensity followed by 6 columns giving the normalizedJacobians, featuring the 3 analytic computations from thread 1 and the 3 finite differenceestimates from threads 2-4.Programs 1-4 are controlled by the configuration file 2p6_<strong>VLIDORT</strong>_ReadInput.cfg, which isfirst read by the <strong>VLIDORT</strong> input read routine, then checked for errors before the main call to<strong>VLIDORT</strong> is undertaken. Program 1 generates radiances and fluxes only. Program 2 generatesradiances and fluxes, but also their linearizations with respect to 2 total column weightingfunctions (the total amount of trace gas in the atmosphere, and the total aerosol loading in thelowest 6 layers), 2 profile weighting functions (trace gas absorber and aerosol extinction profile),and surface property weighting functions with respect to the Lambertian albedo. Programs 3 and4 perform similar computations, but where thermal sources are also present.Program 5 provides an example using <strong>VLIDORT</strong> with the VBRDF supplements. Here thescenario is a 3-kernel BRDF surface (Ross-thin, Li-dense, Cox-Munk). In addition to theconfiguration file 2p6_<strong>VLIDORT</strong>_ReadInput.cfg, program 5 is also controlled by theconfiguration file BRDF_ReadInput.cfg, which is first read by the BRDF input read routine.Certain input variables from the two configuration files are then checked for consistency beforethe BRDF Fourier components are calculated and passed to <strong>VLIDORT</strong> by the subroutine<strong>VLIDORT</strong>_BRDF_INPUT_CHECKER in the module vlidort_sup_accessories.Program 5 generates 6 surface property weighting functions for this 3-kernel BRDF - one foreach of the three kernel amplitude factors, two more with respect to Li-dense kernel parameters,and a final one for the Cox-Munk wind speed.In the vector tests, program 6 provides an example of using the standard and linearizedVSLEAVE supplement code (both VSLEAVE input read and VSLEAVE computationalsubroutines) in conjunction with associated calls to <strong>VLIDORT</strong> (to <strong>VLIDORT</strong>_MASTER and<strong>VLIDORT</strong>_LCS_MASTER). A special subroutine <strong>VLIDORT</strong>_VSLEAVE_INPUT_CHECKER(in module vlidort_sup_accessories) is called to check the consistency of related input fed72
to both <strong>VLIDORT</strong> and the given VSLEAVE computational subroutine. This surface-leaving testsimulates the effect of fluorescence in the spectral band 640-820nm.Section 6.2 has additional notes on the scalar and vector test cases in this installation. Appendices6.3 and 6.4 have descriptions of the VBRDF and VSLEAVE supplements.4.3.5. Helpful Tips for input settingsIn this section, we compile some useful tips for setting the inputs:1. All angles are given in degrees. Solar angles must lie in the range [0°,90°); this version of<strong>VLIDORT</strong> is not a twilight code. Viewing zenith angles are by convention positive in therange [0°,90°], and relative azimuth angles are in the range [0°,360°]. These inputs arechecked; invalid values will cause the model to abort and generate error messages.2. Output at various vertical levels is essentially specified according to geometrical height (notoptical depth as in DISORT and earlier versions of <strong>VLIDORT</strong>). The reason for this is that theheight specification is independent of wavelength. We illustrate the convention for verticaloutput with some examples. USER_LEVELS(1) = 2.0 means that the first level for outputwill be at the bottom of the second layer in the atmosphere. USER_LEVELS(2) = 2.5 meansthat the second level of output will be halfway down the third layer. Thus if you want TOAoutput only, then you need to set USER_LEVELS(1) = 0.0. If there are 24 layers in youratmosphere and you want BOA output only, then you set USER_LEVELS(1) = 24.0. Theordering is not important; <strong>VLIDORT</strong> will make an internal "sort" of the output levels intoascending order, and the final intensities and Jacobians will be generated in the sorted order.Out-of-range levels are rejected (this is a fatal input check error).3. The number of scattering matrix expansion coefficients (NGREEK_MOMENTS_INPUT)should be at least 2N−1, where N is the number of discrete ordinates (the variableNSTREAMS). If you are using the delta-M scaling, then NGREEK_MOMENTS_INPUTshould be at least 2N (otherwise the scaling will not work). By definition, the multiplescattering fields are calculated using at most 2N−1 (possibly scaled) expansion coefficients,whereas the exact single scatter calculations will use all coefficients from 0 toNGREEK_MOMENTS_INPUT.4.4. Exception handling and utilities4.4.1. Exception handlingTable 4.6. Exception handling for the <strong>VLIDORT</strong> 2.6 code(; 0=<strong>VLIDORT</strong>_SUCCESS, 3=<strong>VLIDORT</strong>_WARNING, 4=<strong>VLIDORT</strong>_SERIOUS)Name Type Values PurposeSTATUS_INPUTCHECK INTEGER 0, 3 or 4 Overall Status of Input-checkNCHECKMESSAGES INTEGER 0 to 25 Number of Input-check Error MessagesCHECKMESSAGES CHARACTER ASCII String Array of Input-check Error MessagesACTIONS CHARACTER ASCII String Array of Input-check Actions to takeSTATUS_CALCULATION INTEGER 0 or 4 Overall Status of CalculationMESSAGE CHARACTER ASCII String Calculation Failure, MessageTRACE_1 CHARACTER ASCII String First Subroutine Trace for Place of FailureTRACE_2 CHARACTER ASCII String Second Subroutine Trace for Place of FailureTRACE_3 CHARACTER ASCII String Third Subroutine Trace for Place of Failure73
- 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 46 and 47: anded tri-diagonal matrix A contain
- 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: The main difference between “vlid
- 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