Compute tthe atmospheric optical depth
References:
Kreith, F., and Kreider, J. F., 1978, Principles of Solar Engineering (New York: McGraw-Hill ).
Cartwright, T. J., 1993, Modelling the World in a Spreadsheet: Environmental Simulation on a Microcomputer (Baltimore: Johns Hopkins University Press).
LALIT KUMAR, ANDREW K. SKIDMORE & EDMUND KNOWLES (1997) Modelling topographic variation in solar radiation in a GIS environment, International Journal of Geographical Information Science, 11 :5, 475-497, DOI: 10.1080/136588197242266
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | intent(in) | :: | time | |||
real(kind=float), | intent(in) | :: | lat | |||
real(kind=float), | intent(in) | :: | z |
optical depth
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=float), | public | :: | a1 | ||||
real(kind=float), | public | :: | presscorr | ||||
real(kind=float), | public | :: | s0 |
FUNCTION OpticalDepth & ! (time, lat, z) & ! RESULT (s) IMPLICIT NONE !Arguments with intent(in): TYPE (DateTime), INTENT(in) :: time REAL (KIND = float), INTENT(in) :: lat !latitude [radians] REAL (KIND = float), INTENT(in) :: z !terrain elevation [m] !local declarations: REAL (KIND = float) :: s !!optical depth REAL (KIND = float) :: presscorr !atmospheric correction factor REAL (KIND = float) :: s0 !depth at sea level REAL (KIND = float) :: a1 ! sun elevation angle [radians] !------------------------------------end of declarations----------------------- !compute sun elevation angle a1 = SunElevationAngle (time, lat) !compute atmospheric optical depth at sea level s0 = ( 1229. + (614. * SIN (a1) ) **2. )**0.5 -614. * SIN (a1) !compute pressure correction factor presscorr = ( ( 288.15 - 0.0065 * z ) / 288.15 ) ** 5.25588 !optical depth s = s0 * presscorr RETURN END FUNCTION OpticalDepth