1 | ! SPDX-FileCopyrightText: FLEXPART 1998-2019, see flexpart_license.txt |
---|
2 | ! SPDX-License-Identifier: GPL-3.0-or-later |
---|
3 | |
---|
4 | real function photo_O1D(sza) |
---|
5 | |
---|
6 | !***************************************************************************** |
---|
7 | ! * |
---|
8 | ! * |
---|
9 | ! Author: A. Stohl * |
---|
10 | ! * |
---|
11 | ! Nov 2014 * |
---|
12 | ! * |
---|
13 | ! * |
---|
14 | !***************************************************************************** |
---|
15 | ! * |
---|
16 | ! INPUT: * |
---|
17 | ! sza solar zenith angle (degrees) * |
---|
18 | ! * |
---|
19 | ! OUTPUT: * |
---|
20 | ! photo_O1D J(O1D) photoylsis rate * |
---|
21 | ! * |
---|
22 | !***************************************************************************** |
---|
23 | |
---|
24 | implicit none |
---|
25 | |
---|
26 | integer :: iz,ik |
---|
27 | real :: sza |
---|
28 | real :: z1,z2,zg,f1,f2,dummy |
---|
29 | real :: photo_NO2 |
---|
30 | integer, parameter :: nzenith=11 |
---|
31 | real, parameter :: pi=3.1415927 |
---|
32 | real, dimension(nzenith) :: zangle,fact_photo |
---|
33 | |
---|
34 | ! zangle: zenith angles for which fact_photo is tabulated |
---|
35 | ! fact_photo: conversion of photolysis rate of NO2 to photolysis |
---|
36 | ! rate of O3 into O1D as a function of solar zenith angle |
---|
37 | |
---|
38 | zangle=(/0.,10.,20.,30.,40.,50.,60.,70.,78.,86.,90.0001/) |
---|
39 | fact_photo=(/0.4616E-02,0.4478E-02,0.4131E-02,0.3583E-02,0.2867E-02,& |
---|
40 | &0.2081E-02,0.1235E-02,0.5392E-03,0.2200E-03,0.1302E-03,0.0902E-03/) |
---|
41 | |
---|
42 | if (sza.lt.90.) then |
---|
43 | do iz=1,nzenith-1 |
---|
44 | if(sza.ge.zangle(iz)) ik=iz |
---|
45 | end do |
---|
46 | z1=1./cos(zangle(ik)*pi/180.) |
---|
47 | z2=1./cos(zangle(ik+1)*pi/180.) |
---|
48 | zg=1./cos(sza*pi/180.) |
---|
49 | dummy=(zg-z1)/(z2-z1) |
---|
50 | f1=alog(fact_photo(ik)) |
---|
51 | f2=alog(fact_photo(ik+1)) |
---|
52 | photo_NO2=1.45e-2*exp(-0.4/cos(sza*pi/180.)) |
---|
53 | photo_O1D=photo_NO2*exp(f1+(f2-f1)*dummy) |
---|
54 | else |
---|
55 | photo_O1D=0. |
---|
56 | endif |
---|
57 | |
---|
58 | return |
---|
59 | |
---|
60 | end function photo_O1D |
---|
61 | |
---|
62 | |
---|